Instructor: Class Meets: Classroom: Office Hours: Office: Email: |
Professor Zhigang Zhu M, W 09:00-10:40 AM NAC 7227 Monday 11:00 am - 1:00 pm R 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'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 |
Jan 30 (M) Feb 01 (W) |
Lecture 1. Introduction
& Software Development Lecture 2. ADT & C++ Classes (code) |
Ch. 1
Ch 2.1-2.3; Assignment 1 |
Feb 06 (M) Feb 08 (W) |
Lecture 3. More
Classes and Operator Overloading Lecture 4. Container Classes (code) |
Ch 2.4-2.5 Ch 3, Assignment 2 |
Feb 13
(X ) Feb 15 (W) |
College
Closed (Lincoln's Birthday) Lecture 5. Container Classes (cont.) |
Ch 3 |
Feb 21 (T) Feb 22 (W) |
Lecture
6. Pointers and
Dynamic Arrays (I) (point
code with pointers)
Lecture 7. Pointers and Dynamic Arrays (II) |
Ch 4.1 - 4.2 Ch. 4.2 - 4.5 |
Feb 27 (M) Mar 01 (W) |
Lecture 8. Dynamic
Classes
and the Big Three (code) Exam Review 1 |
Assignment
3 |
Mar 06 (M) Mar 08 (W) |
First Exam
(Chapters 1-4) Lecture 9. Linked Lists ( code) |
Ch. 5.1-5.2, Assignment 4 |
Mar 13 (M) Mar 15 (W) |
Lecture 10. Building
&Using the Linked List
Toolkit
(code) Lecture 11. Software Development using Templates and Iterators |
Ch. 5.3 - 5.5 Ch. 6, code (bag4&5, node2) |
Mar 20 (M) Mar 22 (W) |
Lecture 11a.
Software Development using Templates and
Iterators
(cont.) Lecture 12. Stacks (code) and Queues (code) |
Assignments
Discussions Ch. 7, Ch 8 |
Mar 27 (M) Mar 29 (W) |
Lecture 13. Introduction
to Recursion Lecture 14. Using and Reasoning about Recursion |
Ch. 9.1 , Assignment
5 Ch. 9.2 - 9.3 |
Apr 03 (M) Apr 05 (W) |
Exam Review 2 Second Exam (Chapters 5-9) |
|
Apr 10 (M) Apr 12 (X) |
Lecture 15. Trees
and Traversals (code) Spring Recess |
Ch. 10.1-10.4 |
Apr 17 (X) Apr 19 (X) |
Spring
Recess |
|
Apr 24(M) Apr 26 (W ) |
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 |
May 01 (M) May 03 (W) |
Lecture 18. Heaps
and Priority Queues;Time
Anaysis
of
Trees Lecture 19. Searching |
Ch. 11.1, 11.3,Assignment
7 Ch. 12.1-12.2 |
May 08 (M) May 10 (W) |
Lecture 20. Hashing Lecture 21. Quadradic Sorting |
Ch. 12.2-12.4 Ch. 13.1 |
May 15 (M) May 17 (W) |
Lecture 22. Recusive
Sorting , Heapsort & the STL
Quicksort (code) Exam Review 3 , Assignment Discussions |
Ch. 13.2-13.4 |
MAY 23 | Final exam (mainly Ch 10-13, some from Ch 1-9) | 3:45-5:30 PM, NAC 7227 |
1: No classes on 02/13(M), 02/20(M), 04/12 - 04/23 (Spring Recess)
2. 02/21 (Tue) will have Monday schedule
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.