Information Technology 324

ITEC 324. Principles of Computer Science III

Prerequisites: ITEC 220 with a grade of “C” 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

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