Instructor: TA: Class Meets: Classroom: Office Hours: Office: Email: |
Professor Zhigang Zhu Mr. Wai L. Khoo T,TH 04:00-05:40PM NAC-6/114 Tuesday 6:00 pm – 7:00 pm, Thursday 2:30 pm – 3:30 pm NAC-8/210 zhu@cs.ccny.cuny.edu |
(1) implement these structures as classes in C++;You will also learn part of object-oriented programming and software development methodology.
(2) determine which structures are appropriate in various situations;
(3) confidently learn new structures beyond what are presented in this class.
To become a Data Structures Expert start by learning... |
Supplements: The Code for the Book and the Corrections for the Text will be useful and can be found by clicking here.
References: Lots of good sample codes are found in CSc102's C++ How to Program by Dietel & Dietel, 3rd Ed., Prentice Hall 2001, QA76.73.C153D45, ISBN 0-13-089571-7. This course involves some of C++ language details that could be found in this book.
Date | Planned Lecture Topics | Readings/Assignments |
Feb 01 (T) Feb 03 (Th) |
Lecture 1.
Introduction
&
Software
Development Lecture 2. ADT & C++ Classes (code) |
Ch. 1 Ch 2.1-2.3; Assignment 1 |
Feb 08 (T ) Feb 10 (Th) |
Lecture 3.
More
Classes
and
Operator
Overloading
Lecture 4. Container Classes (slides for Lectures 4&5) |
Ch 2.4-2.5 Ch 3 (code) |
Feb 15 (T) Feb 17 (Th) |
Lecture 5. Container Classes (cont.) Lecture 6. Pointers and Dynamic Arrays (I) (slides for Lectures 6 &7) |
Ch 3, Assignment 2 Ch 4.1 - 4.2 |
Feb 22 (T) Feb 24 (Th) |
Lecture 7. Pointers and Dynamic Arrays (II) (point
code with pointers) Lecture 8. Dynamic Classes and the Big Three (code) |
Ch. 4.2 - 4.5 Assignment 3 |
Mar 01 (T) Mar 03 (Th) |
Exam
Review 1 First Exam (Chapters 1-4) |
|
Mar 08 (T) Mar 10 (Th) |
Lecture
9. Linked
Lists ( code) & Exam Discussions Lecture 10. Building &Using the Linked List Toolkit (code) |
Ch. 5.1-5.2, Assignment 4 Ch. 5.3 - 5.5 |
Mar 15 (T) Mar 17 (Th) |
Lecture 11.
Software
Development
using
Templates
and
Iterators Lecture 11a. Software Development using Templates and Iterators (cont.) |
Ch. 6, code (bag4&5, node2) |
Mar 22 (T) Mar 24 (Th) |
Lecture 12.
Stacks (code)
and
Queues
(code) Lecture 13. Introduction to Recursion |
Ch. 7, Ch 8 Ch. 9.1 , Assignment 5 |
Mar 29 (T) Mar 31 (Th) |
Lecture 14.
Using
and Reasoning about Recursion Exam Review 2 ; Assignment Discussions |
Ch. 9.2 - 9.3 |
Apr 05 (T) Apr 07 (Th) |
Second Exam (Chapters 5-9) Lecture 15. Trees and Traversals (code); Exam 2 discussions |
Ch. 10.1-10.4 |
Apr 12 (T) Apr 14 (Th ) |
Lecture 16.
Binary
Search Trees and the Bag Class with a BST Lecture 17. B-Trees and Set Class (code) |
Ch. 10.5, Assignment 6 Ch. 11.2 |
Apr 17 -26 Apr 28 (Th) |
Spring Recess Lecture 18. Heaps and Priority Queues ; Lecture 18a Time Anaysis of Trees |
Ch. 11.1, 11.3 |
May 03 (T) May 05 (Th) |
Lecture 19.
Searching
& Lecture 20. Hashing Lecture 21. Quadradic Sorting |
Ch. 12.1-12.4 Ch. 13.1 |
May 10 (T) May 12 (Th) |
Lecture
22.
Recusive
Sorting , Heapsort & the STL
Quicksort
(code) Lecture 23. Graphs; Exam Review 3 |
Ch. 13.2-13.4 Ch. 15 |
May 17 (T) |
Final Exam (mainly Ch 10-13, 15) |
Policies: Students may discuss ideas together. But since each student get credits for his or her submissions, all actual program code and written answers must be done separately by each student, and must not be shared.
Communications: I would like the course to run smoothly and enjoyably. Feel free to let me know what you find good and interesting about the course. Let me know as soon as possible about the reverse. You may see me in my office during my hours or send me messages by e-mail.