Name: Office: Email: Office Hours: |
Professor Zhigang Zhu
NAC 8/203A zhu@cs.ccny.cuny.edu Tue 4:00-7:00 pm |
(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's 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 | Read/Assign/Exam |
Sep 02 (Tu) Sep 04 (Th) |
Lecture 1. Introduction & Software
Development Lecture 2. ADT & C++ Classes |
Ch. 1 Ch 2.1-2.3; Assignment 1 |
Sep 09 (Tu) Sep 11 (Th) |
Lecture 3. More Classes and Operator
Overloading Lecture 4. Container Classes |
Ch 2.4-2.5 (code) Ch 3 (code) |
Sep 16 (Tu ) Sep 18 (Th) |
Lecture 5. Container Classes
(cont.) Lecture 6. Pointers and Dynamic Arrays (I) (code) |
Ch 3, Assignment 2 Ch 4.1 - 4.2 |
Sep 23 (Tu) Sep 25 (Th) |
Lecture 7. Pointers and Dynamic
Arrays (II) Lecture 8. Dynamic Classes and the Big Three (code) |
Ch. 4.2 - 4.5, Assignment 3 |
Sep 30 (Tu) Oct 02 (Th) |
Exam review 1 First Exam (Chapters 1-4) |
NAC 4/129 |
Oct 07 ( x) Oct 09 (Th) |
Monday schedule, no
class Lecture 9. Linked Lists ( code) |
Ch. 5.1-5.2 |
Oct 14 (Tu) Oct 16 (Th) |
Discussions:
Exam 1 and Assignments Lecture 10. Building &Using the Linked List Toolkit (code) |
Assignment 4 Ch. 5.3 - 5.5 |
Oct 21 (Tu) Oct 23 (Th) |
Lecture 11. Software Development using Templates
and Iterators Lecture 12. Stacks (code) and Queues (code) |
Ch. 6, code (bag4&5, node2) Ch. 7, Ch 8 |
Oct 28 (Tu) Oct 30 (Th) |
Lecture 13. Introduction to Recursion
(NAC 8/203) Lecture 14. Using and Reasoning about Recursion |
Ch. 9.1, Assignment 5
Ch. 9.2 - 9.3 |
Nov 04 (Tu) Nov 06 (Th) |
Lecture 15. Trees and Traversals
(code) Lecture 16. Binary Search Trees and the Bag Class with a BST |
Ch. 10.1-10.4
Ch. 10.5, Assignment 6 |
Nov 11 (Tu) Nov 13 (Th) |
Review for Exam 2 Second Exam (Chapters 5-9) |
|
Nov 18 (Tu) Nov 20 (Th) |
Lecture 17. Heaps and Priority Queues (2MB!) Lecture 18. B-Trees and Set Class(code); Time Anaysis of Trees |
Ch. 11.1, 11.3 Ch. 11.2 |
Nov 25(Tu) Nov 27 ( x ) |
Lecture 19. Searching Thanksgiving Holiday |
Ch. 12.1-12.2 Relax ! |
Dec 02 (Tu) Dec 04 (Th) |
Lecture 20. Hashing Lecture 21. Quadradic Sorting |
Ch. 12.2-12.4 Ch. 13.1 |
Dec 09 (Tu) Dec 11 (Th) |
Lecture 22. Recusive Sorting , Heapsort &
the STL Quicksort (code)
Exam review 3 |
Ch. 13.2-13.4 |
Dec 16-23 | Final exam (mainly Ch 10-13, some from Ch 1-9) | 8:00 - 10:20 am, NAC R4/129 |
Notes:
1: No classes on 10/07 (Tu) and 11/27 (Th).
2. Most of the lectures have reading assignments that you should complete before the lecture
3. The lecture PPT slides are with color background - you'd better print them out in B-W.
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.