Instructor: Class Meets: Classroom: Office Hours: Office: Email: |
Professor Zhigang Zhu M, W 09:00-10:40 AM R 6/314 Monday 3:00-5:30 pm R 8/203A 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'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 |
Aug 30 (M) Sep 01 (W) |
Lecture 1. Introduction
& Software Development (lecture01) Lecture 2. ADT & C++ Classes (code) (lecture02) |
Ch. 1
Ch 2.1-2.3; Assignment 1 |
Sep 06 (X) Sep 08 (W) |
Labor Day, no class. Lecture 3. More Classes and Operator Overloading (lecture03a) (lecture03) |
Ch 2.4-2.5 |
Sep 13 (M ) Sep 15 (X) |
Lecture 4. Container
Classes (lecture04) College Open, No Class. |
Ch 3 (code) |
Sep 20(M) Sep 22 (W) |
Lecture 5. Container Classes (cont.) Lecture 6. Pointers and Dynamic Arrays (I) (point code with pointers) (lecture06) |
Ch 3, Assignment 2 Ch 4.1 - 4.2 |
Sep 27 (M) Sep 29 (W) |
Lecture 7. Pointers and Dynamic Arrays (II) (lecture07) Lecture 8. Dynamic Classes and the Big Three (code) (lecture08) |
Ch. 4.2 - 4.5 Assignment 3 |
Oct 04 ( M) Oct 06 (W) |
Exam review 1 First Exam (Chapters 1-4) |
|
Oct 11 (X) Oct 13 (W) |
Columbus Day, No Class. Lecture 9. Linked Lists ( code) |
Ch. 5.1-5.2 |
Oct 18 (M) Oct 20 (W) |
Lecture 10. Building
&Using the Linked List Toolkit (code) Lecture 11. Software Development using Templates and Iterators |
Ch. 5.3 - 5.5, Assignment 4 Ch. 6, code (bag4&5, node2) |
Oct 25 (M) Oct 27 (W) |
Lecture 11a. Software Development using Templates and
Iterators (cont.) Lecture 12. Stacks (code) and Queues (code) |
Ch. 7, Ch 8 |
Nov 01 (M) Nov 03 (W) |
Lecture 13. Introduction
to Recursion Lecture 14. Using and Reasoning about Recursion |
Ch. 9.1 , Assignment 5 Ch. 9.2 - 9.3 |
Nov 08 (M) Nov 10 (W) |
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 15 (M) Nov 17 (W) |
Review for Exam 2 (no
class meet) Second Exam (Chapters 5-9) |
9:00 -10:40 am, R 6/314 |
Nov 22(M) Nov 24 (X ) |
Lecture 17. Heaps and
Priority Queues ; ; Time Anaysis of Trees Friday Schedule (before Thanksgiving ) |
Ch. 11.1, 11.3, Assignment 7 |
Nov 29 (M) Dec 01 (W) |
Lecture 18. B-Trees
and Set Class (code) Lecture 19. Searching; Exam 2 Discussions |
Ch. 11.2 Ch. 12.1-12.2 |
Dec 06 (M) Dec 08 (W) |
Lecture 20. Hashing Lecture 21. Quadradic Sorting |
Ch. 12.2-12.4 Ch. 13.1 |
Dec 13 (M) Dec 14 (T) |
Lecture 22. Recusive
Sorting , Heapsort & the STL Quicksort (code) Exam review 3 (no class meet) |
Ch. 13.2-13.4 |
Dec 16 (Th) | Final exam (mainly Ch 10-13, some from Ch 1-9) | 8:00 – 10:20 am , R 6/314 |
1: No classes on 09/06(M), 09/15(W), 10/11 (M) and 11/24 (W)
2. 12/14 (Tue) will have Wednesday schedule (last day of classses)
3. Most of the lectures have reading assignments that you should complete before the lecture
4. The lecture PPT slides will have color background s - 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.