ITEC 324. Principles of Computer Science III
Prerequisites: ITEC 220 with a grade of 鈥淐鈥 or better.
Credit Hours: (3)
Continuation, from ITEC 220, of the development of a disciplined approach to programming
                                       with emphasis on data abstraction.
Note(s): Scientific and Quantitative Reasoning designated course.
Detailed Description of Content of Course
Topics include:
1. Object-oriented design
2. Guidelines for class design
3. Design patterns
4. GUI programming and moving shapes
5. Inheritance and abstract classes
6. Interface types
7. Polymorphism
8. Multithreading
9. Data structures: heaps and binary search tree
10. Sorting and searching: quicksort, mergesort, heapsort, shell sort, and radix sort
11. Recursion: implementing recursive algorithms
12. Analysis of algorithms
Detailed Description of Conduct of Course
Program examples for some problems will be introduced by the instructor, and students
                                       will then be required to complete projects that solve problems similar to those discussed
                                       in class.
Students will progressively learn more advanced techniques such as algorithm design
                                       and development, data structures, and the application of software engineering methods
                                       from the lectures and programming exercises.
Goals and Objectives of the Course
Students who complete the course will be able to:
1. Analyze quality of a class design as well as design and implement software using
                                       an object-oriented approach with various artifacts such as use cases, CRC cards, and
                                       UML diagrams.
2. Design and use interfaces and implement a program that uses polymorphism.
3. Identify a pattern that applies in a problem solving situation and use a pattern
                                       to solve a software design problem.
4. Design and implement a multithreading program.
5. Analyze and implement recursive searching and sorting algorithms including quicksort,
                                       mergesort, heaps, and binary search using an appropriate data structure.
6. Analyze algorithms in terms of a big-Oh notation.
Assessment Measures
Students will be evaluated based on several major programming assignments and examinations.
Other Course Information
None.
Review and Approval
October 30, 1996    New course proposal            Edward G. Okie, Chair
Sept. 25, 2001        Updated                              John P. Helm, Chair
Feb. 17, 2003        Updated                                John P. Helm, Chair
Sep. 27, 2007        Change number from 224       Art Carter, Chair
Revised: June 1, 2012
March 01, 2021