|
|
|
|
Lecture Slides
|
(Please note that access to lecture notes is restricted.)
- Lecture 1
(PDF)
(6-up PDF)
(Jan 11, 2011)
- administrative
- Lecture 2
(PDF)
(6-up PDF)
(Jan 13, 2011)
- introduction (syllabus overview, experience survey),
basic memory management
- Lecture 3
(PDF)
(6-up PDF)
(Jan 18, 2011)
- basic memory management, software engineering principles
- Lecture 4
(PDF)
(6-up PDF)
(Jan 20, 2011)
- data types & I/O
- Lecture 5
(PDF)
(6-up PDF)
(Jan 25, 2011)
- data types & I/O
- Lecture 6
(PDF)
(6-up PDF)
(Jan 27, 2011)
- object-oriented programming part 1 (struct, classes).
- Lecture 7
(PDF)
(6-up PDF)
(Feb 1, 2011)
- object-oriented programming part 2 (exception handling, namespaces)
- Lecture 8
(PDF)
(6-up PDF)
(Feb 3, 2011)
- object-oriented programming part 3 (operator overloading)
- Lecture 9
(PDF)
(6-up PDF)
(Feb 8, 2011)
- object-oriented programming part 4 (composition, inheritance).
- Lecture 10
(PDF)
(6-up PDF)
(Feb 10, 2011)
- object-oriented programming part 5 (pointers, dynamic objects).
- Lecture 11
(PDF)
(6-up PDF)
(Feb 15, 2011)
- object-oriented programming part 6 (polymorphism)
- Lecture 12
(PDF)
(6-up PDF)
(Feb 17, 2011)
- documentation and Doxygen, vectors
- (Feb 22, 2011) - review for midterm #1 (by Rami Al-Ghanmi)
- (Feb 24, 2011) - midterm #1
- Lecture 13
(PDF)
(6-up PDF)
(Mar 1, 2011)
- linked lists.
- Lecture 14
(PDF)
(6-up PDF)
(Mar 3, 2011)
- commandline parsing, templates (and templated linked lists)
- Lecture 15
(PDF)
(6-up PDF)
(Mar 8, 2011)
- stacks, queues, midterm #1 solutions
- Lecture 16
(PDF)
(6-up PDF)
(Mar 10, 2011)
- deques, algorithmic thinking, recursion
- (Mar 15, 2011) - spring break
- (Mar 17, 2011) - spring break
- Lecture 17
(PDF)
(6-up PDF)
(Mar 22, 2011)
- recursion, algorithm analysis
- Lecture 18
(PDF)
(6-up PDF)
(Mar 24, 2011)
- searching, sorting (part 1 - selection sort, bubble sort)
- Lecture 19
(PDF)
(6-up PDF)
(Mar 29, 2011)
- sorting (part 1 - selection sort),
sorting (part 2 - merge sort, quick sort)
- Lecture 20
(PDF)
(6-up PDF)
(Mar 31, 2011)
- sorting (part 2 - linear time sorting algorithms),
sorting (part 3 - heap, heap sort, priority queues)
- Lecture 21
(PDF)
(6-up PDF)
(Apr 5, 2011)
- review for midterm #2
- (Apr 7, 2011) - midterm #2
- Lecture 22
(PDF)
(6-up PDF)
(Apr 12, 2011)
- binary trees, binary search treee
- Lecture 23
(PDF)
(6-up PDF)
(Apr 14, 2011)
- binary search treee, self-balancing trees, non-binary trees
- Lecture 24
(PDF)
(6-up PDF)
(Apr 19, 2011)
- midterm #2 solutions, hash tables
- Lecture 25
(PDF)
(6-up PDF)
(Apr 21, 2011)
- hash tables, sets, multisets, maps, multimaps, graphs
- Lecture 26
(PDF)
(6-up PDF)
(Apr 26, 2011)
- graphs
- Lecture 27
(PDF)
(6-up PDF)
(Apr 28, 2011)
- STL, final exam review
Preview:
- (May 10, 2011) - final exam (firm)
|
|
Tentative Slides
|
- Administrative
- administrative (class overview)
(PDF)
(6-up PDF)
- introduction (syllabus overview, experience survey)
(PDF)
(6-up PDF)
- review for exams (midterm #2 only)
(PDF)
- housekeeping (changes every lecture, go to last page to see the latest)
(PDF)
- C++ Data Types
- basic memory management, software engineering principles
(PDF)
(6-up PDF)
- data types (arrays, vectors, strings, enumerations) & I/O (streams, console I/O, manipulators, file I/O, string stream)
(PDF)
(6-up PDF)
- C++ and Object-oriented Programming
- object-oriented programming part 1 (struct, classes)
(PDF)
(6-up PDF)
- object-oriented programming part 2 (exception handling, namespaces)
(PDF)
(6-up PDF)
- object-oriented programming part 3 (operator overloading)
(PDF)
(6-up PDF)
- object-oriented programming part 4 (composition, inheritance)
(PDF)
(6-up PDF)
- object-oriented programming part 5 (pointers, dynamic objects)
(PDF)
(6-up PDF)
- object-oriented programming part 6 (polymorphism)
(PDF)
(6-up PDF)
- Miscellaneous
- Abstract Data Types
- Basic Algorithms
- Basic Data Structures
|
|
Tentative Schedule
|
(Other than exams, subject to change without notice.)
Date
| Topics
| Reading Assignment
|
---|
01/11/2011
(Lec 1)
| Administrative Stuff
| Background - stuff you should have a good understanding of
(from course prerequisite):
- Textbook Chap. 1 (Programming Background)
- Textbook Chap. 2 (Basic C++)
- Textbook Chap. 4 (Control Structures I)
- Textbook Chap. 5 (Control Structures II)
- Textbook Chap. 6 (Defining Functions)
- Textbook Chap. 9 (Arrays)
- Unix Commands & Concepts
(from Boston University)
| 01/13/2011
(Lec 2)
| Class Overview
Syllabus Overview
Experience Survey
Basic C++ Memory Management
| Textbook Chap. 7 (Functions, Reference Variables)
Textbook Chap. 13 (p. 746-761) (Pointers)
| 01/18/2011
(Lec 3)
| Writing Code (Memory)
Software Engineering Principles
| (none)
| 01/20/2011
(Lec 4)
| C++ Strings
C++ Enumerations
C++ Arrays
C++ Vectors
C++ I/O Streams
| Textbook Chap. 8, 9, 22 (Strings, Enumerations, Arrays, Vectors)
Textbook Chap. 3 (I/O)
| 01/25/2011
(Lec 5)
| Writing Code (I/O)
| (none)
| 01/27/2011
(Lec 6)
| Struct & Classes
| Textbook Chap. 10 (Records)
Textbook Chap. 11 (Classes)
| 02/01/2011
(Lec 7)
| Exception Handling
Namespaces
| Textbook Chap. 15 (Exceptions)
Textbook Chap. 8 (Enums, Namespaces)
| 02/03/2011
(Lec 8)
| Operator Overloading
| Textbook Chap. 14 (p.827-890) (Operator Overloading)
| 02/08/2011
(Lec 9)
| Class Composition
Class Inheritance
| Textbook Chap. 12 (Composition, Inheritance)
| 02/10/2011
(Lec 10)
| Dynamic Memory
| Textbook Chap. 13 (Pointers, Dynamic Objects)
| 02/15/2011
(Lec 11)
| Abstract Classes
Virtual Functions
Polymorphism
| Textbook Chap. 12 (Composition, Inheritance)
Textbook Chap. 13 (p.770-796) (Abstract Classes, Virtual Functions)
| 02/17/2011
(Lec 12)
| Doxygen
Arrays
Vectors Revisited
| Doxygen Tutorial
Textbook Chap. 13 (p.761-770) (Dynamic Arrays)
Textbook Chap. 13 (p.796-809) (Lists)
| 02/22/2011
(Lec 13)
| Review for Midterm #1
| (none)
| 02/24/2011
| Midterm Exam #1
| (none)
| 03/01/2011
(Lec 14)
| Linked Lists
| Textbook Chap. 17 (p.992-1004) (Linked Lists)
| 03/03/2011
(Lec 15)
| Templates
Templated Linked Lists
| Textbook Chap. 14 (p.891-902) (Templates)
Textbook Chap. 17 (p.1005-1071) (Linked List ADT)
| 03/08/2011
(Lec 16)
| Stack/Queues
| Textbook Chap. 18 (Stacks, Queues)
| 03/10/2011
(Lec 17)
| Recursion
| Textbook Chap. 16 (Recursion)
| 03/15/2011
| Spring Break
| (none)
| 03/17/2011
| Spring Break
| (none)
| 03/22/2011
(Lec 18)
| Big O Notation
Search (Linear, Binary)
| Textbook Chap. 19 (p.1184-1202) (Search, Big O)
| 03/24/2011
(Lec 19)
| Sorting Part 1 (Bubble, Selection, Insertion)
Big O Notation
| Textbook Chap. 19 (p.1202-1218) (Sorting)
| 03/29/2011
(Lec 20)
| Sorting Part 2 (Quick, Merge, Linear Sort)
| Textbook Chap. 19 (p.1218-1256) (Sorting)
| 03/31/2011
(Lec 21)
| Heaps
HeapSort
Priority Queues
|
(from University of Kent, Great Britain)
(from Flensburg University of Applied Sciences, Germany)
(from Saint Vincent College)
Chapter 6 of
Introduction to Algorithms
| 04/05/2011
(Lec 22)
| Review for Midterm #2
| (none)
| 04/07/2011
| Midterm Exam #2
| (none)
| 04/12/2011
(Lec 23)
| Binary Search Trees
| Textbook Chap. 20 (Binary Search Trees)
| 04/14/2011
(Lec 24)
| Binary Search Trees
Self-Balancing Trees
Non-binary Trees
| Textbook Chap. 20 (Binary Search Trees)
| 04/19/2011
(Lec 25)
| Hashtables
| Chapter 11 of
Introduction to Algorithms
| 04/21/2011
(Lec 26)
| Maps
Multimaps
Sets
Multisets
| Chapter 11 of
Introduction to Algorithms
| 04/26/2011
(Lec 27)
| Graphs
| Textbook Chap. 21 (Graphs)
| 04/28/2011
(Lec 28)
| C++ Standard Template Library
Review for Final Exam
| Textbook Chap. 22 (STL)
Introduction to the STL
|
|
|
|