|
|
|
|
Lecture Slides
|
(Please note that access to lecture notes is restricted.)
- Lecture 1
(PDF)
(6-up PDF)
(Aug 22, 2011)
- administrative, introduction (syllabus overview, experience survey),
- Lecture 2
(PDF)
(6-up PDF)
(Aug 24, 2011)
- software engineering principles, basic memory management
- Lecture 3
(PDF)
(6-up PDF)
(Aug 29, 2011)
- data types (arrays, vectors, strings, enumerations) &
I/O (streams, console I/O, manipulators, file I/O, string stream)
- Lecture 4
(PDF)
(6-up PDF)
(Aug 31, 2011)
- data types (arrays, vectors, strings, enumerations) &
I/O (streams, console I/O, manipulators, file I/O, string stream)
- (Sep 5, 2011) - labor day holiday
- Lecture 5
(PDF)
(6-up PDF)
(Sep 7, 2011)
- object-oriented programming part 1 (struct, classes)
- Lecture 6
(PDF)
(6-up PDF)
(Sep 12, 2011)
- object-oriented programming part 2 (exception handling, namespaces).
- Lecture 7
(PDF)
(6-up PDF)
(Sep 14, 2011)
- object-oriented programming part 3 (operator overloading)
- Lecture 8
(PDF)
(6-up PDF)
(Sep 19, 2011)
- object-oriented programming part 4 (composition, inheritance).
- Lecture 9
(PDF)
(6-up PDF)
(Sep 21, 2011)
- object-oriented programming part 5 (pointers, dynamic objects)
- Lecture 10
(PDF)
(6-up PDF)
(Sep 26, 2011)
- object-oriented programming part 6 (polymorphism)
- Lecture 11
(PDF)
(6-up PDF)
(Sep 28, 2011)
- documentation and Doxygen, vectors
- Lecture 12
(PDF)
(6-up PDF)
(Oct 3, 2011)
- midterm #1 review
- (Oct 5, 2011) - midterm #1
- Lecture 13
(PDF)
(6-up PDF)
(Oct 10, 2011)
- linked lists
- Lecture 14
(PDF)
(6-up PDF)
(Oct 12, 2011)
- templates (and templated linked lists), commandline parsing
- Lecture 15
(PDF)
(6-up PDF)
(Oct 17, 2011)
- stacks, queues, deques
- Lecture 16
(PDF)
(6-up PDF)
(Oct 19, 2011)
- algorithmic thinking, recursion
- Lecture 17
(PDF)
(6-up PDF)
(Oct 24, 2011)
- algorithm analysis, slides for HW5
- Lecture 18
(PDF)
(6-up PDF)
(Oct 26, 2011)
- searching, sorting (part 1 - selection sort, bubble sort)
- Lecture 19
(PDF)
(6-up PDF)
(Oct 28, 2011)
- sorting (part 1 - insertion sort),
sorting (part 2 - merge sort, quick sort, linear time sorting algorithms)
- Lecture 20
(PDF)
(6-up PDF)
(Nov 2, 2011)
- sorting (part 3 - heap, heap sort, priority queues)
- Lecture 21
(PDF)
(6-up PDF)
(Nov 7, 2011)
- midterm #2 review, trees (part 1 - binary trees)
- (Nov 9, 2011) - midterm #2
- Lecture 22
(PDF)
(6-up PDF)
(Nov 14, 2011)
- trees (part 2 - binary search treee)
- Lecture 23
(PDF)
(6-up PDF)
(Nov 16, 2011)
- trees (part 3 - self-balancing trees, non-binary trees),
hash tables.
- Lecture 24
(PDF)
(6-up PDF)
(Nov 21, 2011)
- hash tables, sets, multisets, maps, multimaps
- (Nov 23, 2011) - thanksgiving holiday
- Lecture 25
(PDF)
(6-up PDF)
(Nov 28, 2011)
- graphs
- Lecture 26
(PDF)
(6-up PDF)
(Nov 30, 2011)
- Standard Template Library (STL), brief final exam review
Preview:
- (Dec 12, 2011) - final exam (firm)
|
|
Tentative Slides
|
- Administrative
- administrative stuff
(PDF)
(6-up PDF)
- introduction (syllabus overview, experience survey)
(PDF)
(6-up PDF)
- review for exams
(PDF)
- housekeeping (changes every lecture, go to last page to see the latest)
(PDF)
- C++ Data Types
- software engineering principles, basic memory management
(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.)
Week
| Date
| Topics
| Reading Assignment
|
---|
1
| 08/22/2011
(Lec 1)
| Administrative Stuff
Course Introduction (Syllabus Overview, Experience Survey)
| 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)
| 08/24/2011
(Lec 2)
| Basic C++ Memory Management
Software Engineering Principles
| Textbook Chap. 7 (Functions, Reference Variables)
Textbook Chap. 13 (p. 746-761) (Pointers)
| 2
| 08/29/2011
(Lec 3)
| C++ Data Types & I/O (Arrays, Vectors, Strings, Enumerations, I/O Streams)
| Textbook Chap. 8, 9, 22 (Strings, Enumerations, Arrays, Vectors)
Textbook Chap. 3 (I/O)
| 08/31/2011
(Lec 4)
| Write a Bunch of Code in Class (C++ Data Types & I/O)
| (none)
| 3
| 09/05/2011
| Labor Day Holiday
| (none)
| 09/07/2011
(Lec 5)
| Object-oriented Programming Part 1 (Struct & Classes)
| Textbook Chap. 10 (Records)
Textbook Chap. 11 (Classes)
| 4
| 09/12/2011
(Lec 6)
| Object-oriented Programming Part 2 (Exception Handling, Namespaces)
| Textbook Chap. 15 (Exceptions)
Textbook Chap. 8 (Enums, Namespaces)
| 09/14/2011
(Lec 7)
| Object-oriented Programming Part 3 (Operator Overloading)
| Textbook Chap. 14 (p.827-890) (Operator Overloading)
| 5
| 09/19/2011
(Lec 8)
| Object-oriented Programming Part 4 (Composition, Inheritance)
| Textbook Chap. 12 (Composition, Inheritance)
| 09/21/2011
(Lec 9)
| Object-oriented Programming Part 5 (Pointers, Dynamic Objects)
| Textbook Chap. 13 (Pointers, Dynamic Objects)
| 6
| 09/26/2011
(Lec 10)
| Object-oriented Programming Part 6 (Polymorphism - including Abstract Classes and Virtual Functions)
| Textbook Chap. 13 (p.770-796) (Abstract Classes, Virtual Functions)
| 09/28/2011
(Lec 11)
| Documentation and Doxygen
Arrays (Vectors Revisited)
| Doxygen Tutorial
Textbook Chap. 13 (p.761-770) (Dynamic Arrays)
Textbook Chap. 13 (p.796-809) (Lists)
| 7
| 10/03/2011
| Review for Midterm #1
| (none)
| 10/05/2011
| Midterm Exam #1
| (none)
| 8
| 10/10/2011
(Lec 12)
| Linked Lists
| Textbook Chap. 17 (p.992-1004) (Linked Lists)
| 10/12/2011
(Lec 13)
| Commandline Parsing
Templates
Templated Linked Lists
| Textbook Chap. 14 (p.891-902) (Templates)
Textbook Chap. 17 (p.1005-1071) (Linked List ADT)
| 9
| 10/17/2011
(Lec 14)
| Stack/Queues/Deques
| Textbook Chap. 18 (Stacks, Queues)
| 10/19/2011
(Lec 15)
| Algorithmic Thinking
Recursion
| Textbook Chap. 16 (Recursion)
| 10
| 10/24/2011
(Lec 16)
| Algorithm Analysis (Big O Notation)
| Textbook Chap. 19 (p.1184-1202) (Search, Big O)
| 10/26/2011
(Lec 17)
| Searching (Linear Search, Binary Search)
Sorting Part 1 (SelectionSort, BubbleSort, InsertionSort)
| Textbook Chap. 19 (p.1202-1218) (Sorting)
| 11
| 10/31/2011
(Lec 18)
| Sorting Part 2 (MergeSort, QuickSort, Linear Time Sorting Algorithms)
| Textbook Chap. 19 (p.1218-1256) (Sorting)
| 11/02/2011
(Lec 19)
| Sorting Part 3 (Heaps, HeapSort, Priority Queues)
|
(from University of Kent, Great Britain)
(from Flensburg University of Applied Sciences, Germany)
(from Saint Vincent College)
Chapter 4 of Algorithms in a Nutshell
| 12
| 11/07/2011
(Lec 20)
| Binary Trees
Binary Search Trees
| Textbook Chap. 20 (Binary Search Trees)
| 11/09/2011
| Midterm Exam #2
| (none)
| 13
| 11/14/2011
(Lec 21)
| Binary Search Trees
Self-Balancing Trees
Non-binary Trees
| Textbook Chap. 20 (Binary Search Trees)
| 11/16/2011
(Lec 22)
| Hashtables
| Chapter 5 of Algorithms in a Nutshell
| 14
| 11/21/2011
(Lec 23)
| Maps
Multimaps
Sets
Multisets
Introduction to Graphs
| Textbook Chap. 22 (STL)
Textbook Chap. 21 (Graphs)
| 11/23/2011
| Thanksgiving Holiday
| (none)
| 15
| 11/28/2011
(Lec 24)
| More on Graphs
| Textbook Chap. 21 (Graphs)
| 11/30/2011
(Lec 25)
| C++ Standard Template Library
Review for Final Exam
| Textbook Chap. 22 (STL)
Introduction to the STL
|
|
|
|