Instructor: Assistant Class Meets: Classroom: Office Hours: Office: Email: |
Professor Zhigang Zhu Mr. Wai L. Khoo M,W 04:00-05:40PM NAC-6/136 M,W 02:00-03:00 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 | Read/Assign/Exam |
Aug 31 (M) Sep 02 (W) |
Lecture 1. Introduction
&
Software
Development Lecture 2. ADT & C++ Classes (code) |
Ch. 1 Ch 2.1-2.3; Assignment 1 |
Sep 07 (M) Sep 09 (W) |
College is closed -
no
class! Lecture 3. More Classes and Operator Overloading |
Ch 2.4-2.5 |
Sep 14 (M ) Sep 16 (W) |
Lecture 4. Container
Classes (slides for
Lectures 4&5) Lecture 5. Container Classes (cont.) |
Ch 3 (code) Ch 3, Assignment 2 |
Sep 21 (M) Sep 23 (W) |
Lecture 6. Pointers
and
Dynamic Arrays (I) (slides
for
Lectures
6
&7) Lecture 7. Pointers and Dynamic Arrays (II) (point code with pointers) |
Ch 4.1 - 4.2 Ch. 4.2 - 4.5 |
Sep 29 (T) Sep 30 (W) |
Lecture 8. Dynamic
Classes
and
the
Big
Three (code) Monday schedule Exam Review 1 |
Assignment 3 |
Oct 05 (M) Oct 07 (W) |
First Exam
(Chapters 1-4) Lecture 9. Linked Lists ( code) & Exam Discussions |
Ch. 5.1-5.2, Assignment 4 |
Oct 12 (M) Oct 14 (W) |
College is closed -
no
class! Lecture 10. Building &Using the Linked List Toolkit (code) Monday schedule |
Ch. 5.3 - 5.5 |
Oct 19 (M) Oct 21 (W) |
Lecture 11. Software
Development
using
Templates
and Iterators Lecture 11a. Software Development using Templates and Iterators (cont.) |
Ch. 6, code (bag4&5, node2) |
Oct 26 (M) Oct 28 (W) |
Lecture 12.
Stacks (code)
and
Queues
(code) Lecture 13. Introduction to Recursion |
Ch. 7, Ch 8 Ch. 9.1 , Assignment 5 |
Nov 02 (M) Nov 04 (W) |
Lecture 14.
Using
and Reasoning about Recursion Exam Review 2 ; Assignment Discussions |
Ch. 9.2 - 9.3 |
Nov 09 (M) Nov 11 (W) |
Second Exam (Chapters 5-9) Lecture 15. Trees and Traversals (code) |
Ch. 10.1-10.4 |
Nov 16 (M) Nov 18 (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 |
Nov 23 (M) Nov 25 (W ) |
Lecture 18. Heaps
and Priority Queues ; Time
Anaysis
of
Trees No class meet. Assignment and Exam 2 Discussions on Monday |
Ch. 11.1, 11.3 |
Nov 30 (M) Dec 02 (W) |
Lecture 19. Searching
&
Lecture
20. Hashing Lecture 21. Quadradic Sorting |
Ch. 12.1-12.4 Ch. 13.1 |
Dec 07 (M) Dec 09 (W) |
Lecture
22. Recusive
Sorting , Heapsort & the STL
Quicksort
(code) Lecture 23. Graphs; Exam 3 Review |
Ch. 13.2-13.4 |
Dec 21 (M) |
Final Exam (mainly Ch 10-13), NAC 6136, 3:30pm - 5:15pm | |
|
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.