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