Information Technology 220

ITEC 220: Principles of Computer Science II (GE)

Prerequisite: ITEC 120 (Grade of “C” or better) 

Credit Hours: (4) Three hours lecture; two hours laboratory

Continuation, from ITEC 120, of the development of a disciplined approach to programming, with emphasis on data abstraction.

Note(s): General Education and Scientific and Quantitative Reasoning designated course.  Students may not attempt to take ITEC 220 more than two times (a “W” will count as an attempt).



Detailed Description of Content of Course

Topics include:
1. Programming Fundamentals including multi-dimensional arrays and recursion.
2. Java Topics including interfaces, abstract classes and inner classes.
3. Graphical User Interface events, listeners, and components.
4. Data Structures including stacks, queues, lists, binary tree concepts and binary search tree concepts.
5. Recursive Sorting and Searching Concepts including quicksort, mergesort and binary search.
6. Object Oriented Design and Programming Concepts including objects, references, classes, methods, fields, instance vs. class members, inheritance, polymorphism and overriding.
7. Software Engineering Concepts including problem solving, software analysis and design, testing and debugging, documentation and program structure, UML, encapsulation, abstraction and data structures.
8. Language Topics including linked structures, recursion and exceptions.
9. Analysis of Algorithms
10. Version control software.


Detailed Description of Conduct of Course


Program examples for some problems will be introduced by the instructor, and students will be required to complete projects that solve problems similar to those discussed in class.


Goals and Objectives of the Course


Students who complete the course will be able to:
1. Analyze a problem and design an object-oriented solution requiring multiple classes and document that design in UML.
2. Implement and document, including algorithm analysis, an object-oriented solution in Java to a problem requiring multiple classes and including both a text-based and a graphical user interface given a design documented in UML.
3. Demonstrate a conceptual understanding of the purpose, algorithmic complexity, and application of classic collections including stacks, queues, lists and trees.
4. Analyze, design, implement and document classic collections including stacks, queues, and lists including the use of generic types.
5. Demonstrate a conceptual understanding of classic sorting algorithms, their algorithmic complexity, and their application including the recursive mergesort and quicksort algorithms.
6. Demonstrate a conceptual understanding of the responsibilities of computing professionals.
7. Demonstrate the use of version control software for managing software changes.


Assessment Measures

Student achievement is measured by written tests and evaluation of homework and programming assignments.


Other Course Information

None.


Review and Approval

September 2001         Updated         John P. Helm, Chair

Revised: June 1, 2012

March 01, 2021