COURSE DESCRIPTION

Examines fundamental
data structures and analyzes algorithms. Covers abstract data types and
essential data structures such as arrays, stacks, queues, linked lists,
and trees; introduces searching and sorting algorithms and algorithm analysis.
Prerequisites are CSC 201, Computer Science I, and MTH 173, Calculus with
Analytic Geometry I; corequisite is MTH 174, Calculus with Analytic Geometry
II. Lecture 4 hours per week.

ENTRY
LEVEL COMPETENCIES

Prerequisites are
CSC 201, Computer Science I, and MTH 173, Calculus with Analytic Geometry
I. Corequisite is MTH 174, Calculus with Analytic Geometry II.

GENERAL COURSE PURPOSE

This course is the
third course for the student majoring in Computer Science. There are four
major purposes of the course. Here we begin a detailed study of data structures
and data abstraction. We continue algorithmic analysis by examining various
searching and sorting algorithms. Students study object-oriented programming
in greater depth. Finally, we continue the development of discipline in
program design, in style and expression, and in testing and debugging.
The student writes programs larger than those in the previous course. A
high-level computer language is used for the students to implement their
solutions on a computer.

COURSE
OBJECTIVES

Upon completion of
this course, the student will be able to:

- Write a program which makes use of elementary features of object-oriented programming.
- Design and implement recursive solutions to selected problems.
- Write a program to implement and apply an Abstract Data Type (ADT), such as a linked list, stack, queue, or simple tree, and done with the static or dynamic use of memory.
- Implement common algorithms for searching and sorting and compare their efficiencies.

MAJOR TOPICS TO BE INCLUDED

- Data Abstraction and Object-Oriented Programming
- Dynamic Allocation

- Overloading Functions and Operators
- Constructors and Destructors
- Recursion
- Analysis
- Applications
- ADT Implementations (static and dynamic) and Applications
- Linked Lists (singly, doubly, circular)
- Stacks
- Queues
- Trees and Tree Traversal
- Searching
- Analyzing and Comparing Searching Methods
- Relationships between Methods and Data Structures
- Sorting
- Examples of Order n^2 and Order n*log(n) Sorts
- Analyzing and Comparing Sorting Methods
- Other Topics (optional)
- Hashing
- Tables
- File Structures
- Sets
- Templates

Suggested Time Allocation per Topic

In order to standardize
the core topics of CSC 202 so that a course taught at one campus is equivalent
to the same course taught at another campus, the following student-contact-hours
per topic are recommended. There are normally 64 student-contact-hours
per semester for a four-unit course. The last category, ** Other/Enhance,**
leaves ample time for an instructor to tailor the course to special needs
or resources.

Ref | Topic | Hours | Percent |
---|---|---|---|

I | Data Abstraction and Object-Oriented Programming | 10 | 16 |

II | Recursion | 4 | 7 |

III-A | Linked Lists | 10 | 16 |

III-B | Stacks | 6 | 9 |

III-C | Queues | 3 | 4 |

III-D | Trees | 4 | 6 |

IV | Searching | 4 | 6 |

V | Sorting | 6 | 9 |

VI | optional
content or Other
the above enhance |
11 | 18 |

Exams and Quizzes | 6 | 9 | |

Total | 64 | 100 |

Revised: October 2003; Inquiries to mailto:tseaman@nvcc.edu