Data structures and computer algorithms are the building blocks in computer programming. This course will give students a comprehensive introduction of common data structures, and algorithm design and analysis.
E115 Introduction to Programming
or
Knowledge of C++ programming
Data Structures and Algorithm Analysis in C++, Mark Allen Weiss, 3rd Edition, Published by Addison-Wesley, 2006.
Students are expected to attend all lectures and perform all reading assignments in the textbook. Students will be evaluated according to their performance on class attendance, homework, quiz, midterm and final exam.
Cheating on homework and exams will not be tolerated. We want to protect the fairness and integrity of the class, so we run code similarity detectors on the homework and scrutinize exams for copying. Both parties in the exchange are liable; e.g. if you give away solutions to friends, you're putting yourself at risk too. If you get caught, it's a nasty process---just don't go there! You're better off dropping the course and trying it again.
That said, we do encourage you to talk to your classmates, provided you follow the Gilligan's Island Rule. After a joint discussion of an assignment or problem, each student should discard all written material and then go do something mind-numbing for half an hour. For example, go watch an episode of Gilligan's Island (or Reality TV in modern terms), and then recreate the solutions. The idea of this policy is to ensure that you fully understand the solutions or ideas that the group came up with.
| Dates | Theme | Topics | Readings | Notes | Assignments |
|
Week 01 (8/25 - 8/29) |
Review | - C++ programming | Chapter 1 |
Lecture 1 Review Lecture 2 Review Handout for C++ basics |
Nothing yet, enjoy ... |
|
Week 02 (9/1 - 9/5) |
Review |
- C++ programming - Useful mathematics |
Chapter 1 |
Lecture 3 Review Lecture 4 Algorithm |
HW 1 posted on 9/7 |
|
Week 03 (9/8 - 9/12) |
Algorithm Analysis |
- Algorithm Analysis - Notations |
Chapter 2 |
Lecture 5 algorithm Lecture 6 algorithm |
|
|
Week 04 (9/15 - 9/19) |
- Algorithm Analysis - Basic Data Structures |
- Modeling Methods - ADT Concepts and Implementation |
Chapter 2 Chapter 3 3.1 - 3.5 |
Lecture 7 list |
- Quiz 1 on 9/18 - HW 1 due on 9/18 |
|
Week 05 (9/22 - 9/26) |
Basic Data Structures Trees |
- List, Stack, Queue - Binary Trees |
Chapter 3 3.6 - 3.7 Chapter 4 4.1 - 4.2 |
Lecture 8 queue Lecture 9 tree |
|
|
Week 06 (9/29 - 10/3) |
Recurrences |
- Master Method - Master Theorem |
Cormen book 4.1, 4.3 |
Lecture 10 Master Theorem |
Homework 2 posted. |
|
Week 07 (10/06 - 10/10) |
Trees | Binary Search Trees |
Chapter 4 4.3 |
Lecture 11 Binary Search Tree |
- Quiz 2 on 10/09 - HW 2 due on 10/09 |
|
Week 08 (10/13 - 10/17) |
Hashing Priority Queues |
- Hash Function - Collision Resolution Methods - Direct Addressing - Open Addressing - Priority Queues - Binary Heap |
Chapter 5 5.1 - 5.4 Chapter 6 6.1 |
Lecture 12 hashing |
|
|
Week 09 (10/20 - 10/24) |
Heap |
- Heap-Order Property - Heap Construction |
Chapter 6 6.2 - 6.3 |
Lecture 13 heap |
- HW 3 posted on 10/20 - Midterm on 10/23 |
|
Week 10 (10/27 - 10/31) |
HW 3 due on 10/30 |
||||
|
Week 11 (11/3 - 11/7) |
Sorting |
- Go Over Midterm Exam solutions - Selection Sort, Insertion Sort, Bubble Sort, Tree Sort, Heap Sort. |
Chapter 7 7.2, 7.3, and 7.5 |
Lecture 14 sorting Lecture 15 sorting |
- HW4 posted on 11/8 |
|
Week 12 (11/10 - 11/14) |
Sorting |
- Merge Sort, Quick Sort - Radix Sort, Shellsort - External Sorting |
Chapter 7 7.4, 7.11 |
Lecture 16 sorting Lecture 17 sorting |
Quiz 3 on 11/13 |