Share This

CSC 212 - Syllabus

Computer Science
0

CSC 212 - Syllabus

The City College of New York • Grove School of Engineering • Computer Science Department • Course Syllabus

Course number

CSc 21200

Course name

Data Structures

Credits & hours

3 cr., 4 hr.

Course coordinator

Prof. Zhigang Zhu

 

Textbook, title, author, and year

  • Data Structures and Other Objects Using C++, Third Edition, by Michael Main and Walter Savitch, ISBN 032119716X, Addison Wesley
  • Other supplemental materials: materials related to course work will become available at course website

Specific course information

  • Extension of the knowledge of algorithm design and programming gained in CSc 10300 with continued emphasis on the logic underlying the transition from specification to program. Particular attention is paid to issues arising in the implementation of larger programs: introduction of data structures and data abstraction; the basics of object-oriented programming. Introduction of recursion as a design tool. Introduction of complexity analysis. Stacks, queues, linked lists, trees, and graphs.
  • Prereq.: CSc 10300, CSc 10400
  • Required course

Specific goals for the course and Relationship to student outcomes

 

1

2

3

4

5

6

a. the student acquires knowledge of object oriented data types, abstract vs. implementation

 

R

       

b. the student acquires knowledge of how to manipulate arrays and linked lists; pointers and memory management

 

R

       

c. the student acquires knowledge of space and time complexity

I

I

       

d. the student develops familiarity in the implementation and application of stacks, queues, lists, trees, graphs, modular design, and hash tables

 

R

       

e. the student acquires knowledge of program design techniques including object oriented design, recursion, pre- and post-conditions, and invariants

P

P

     

P

I - introductory-level; R - reinforced-level; P - program-level

Brief list of topics to be covered

Seq.

Topics

1

The phase of software development

2

Abstract data types and C++ classes

3

Container classes: bags and sequences

4

Pointers and dynamic arrays

5

Linked lists

6

Stacks and queues

7

Recursive thinking

8

Trees and introduction to graphs

9

Classic searching (include hash tables) and sorting algorithms