Times: MWF 12:10pm - 1:00pm
Location: Sloan 175
Instructor: Nirmalya Roy
Instructor's Office Location and Hours: EME 127, W and F 2:00pm - 3:00pm, or by appointment
Instructor's Email: nroy at eecs dot wsu dot edu
Teaching Assistant 1: Shervin Hajiamini
Teaching Assistant1's Office Location and Hours: Sloan 343, Tuesday 3:00pm - 4:30pm and Friday 1:00pm - 2:30pm
Teaching Assistant1's Email: shajiami at eecs dot wsu dot edu
Teaching Assistant 2: Syeda (Selina) Akter
Teaching Assistant2's Office Location and Hours: EME 130, Monday 10:00am - 11:30am and Wednesday 10:00am - 11:30am
Teaching Assistant2's Email: sakter at eecs dot wsu dot edu
Course Descriptions: This course is about data structures, methods of organizing large amounts of data so they can be used efficiently, and algorithm analysis, the estimation of the running time of algorithms. Different kinds of data structures to be discussed include abstract data types (lists, stacks, queues), trees (e.g. binary search trees, splay trees, B-trees), hash tables, heaps or priority queues, disjoint sets, and graphs. Algorithms for sorting and searching, trees, and graphs will also be discussed together with their analysis. The various data structures and algorithms are to be implemented in C++ using the object-oriented programming paradigm.
Course Objectives: At the end of this course, you should be able to:
Course Prerequisites: Cpt S 122 (Data Structures), Math 216 (Discrete Structures) or equivalent
Required Textbook:
Textbook Source Code:
Course Requirements and Grading:
Homeworks and Quizzes (there are 5 homeworks and 6 quizzes for this course, each one is worth ~2.27% of your overall grade) |
25% |
4 Programs (6% for each of the first three assignments and 12% for the last assignment) |
30% |
2 Midterm Exams (12.5% each) & Final Exam (20%) |
45% |
Tentative Course Schedule:
(Subject to change as the semester progresses due to unforeseen events, instructor travel,
evolving student interests, etc)
Week | Date |
Topic |
Reading | Assignments |
Due |
Notes |
1 |
1/7 |
Introduction |
Course Syllabus | PPT, PDF | ||
1/9 |
C++ Review I |
M.W 1.4 to 1.5 | PPT, PDF | |||
1/11 |
C++ Review II |
M.W 1.6 to 1.7 | PPT, PDF | |||
2 |
1/14 |
Math Review I | M.W 1.2.5 | PPT, PDF | ||
1/16 |
Math Review II |
M.W 1.2.1 to 1.2.4 | PPT, PDF | |||
1/18 |
Math Review II |
Quiz 1 |
||||
3 |
1/21 |
No Class -- Martin Luther King Jr Day |
||||
1/23 |
Algorithm Analysis |
M.W 2.4.1 to 2.4.2 | PPT, PDF | |||
1/25 |
Algorithm Analysis |
M.W 2.1 to 2.2 | ||||
4 |
1/28 |
Algorithm Analysis |
M.W 2.4.3 | Homework 1 | MSS Notes | |
1/30 |
Algorithm Analysis |
M.W 2.4.4 | ||||
2/1 |
Abstract Data Types |
M.W 3.1 to 3.2 | Quiz 2 |
|
PPT, PDF | |
5 |
2/4 |
Abstract Data Types |
M.W 3.3 | Homework 1 Solution |
||
2/6 |
Abstract Data Types |
M.W 3.4 | Programming Project 1 | |||
2/8 |
Abstract Data Types |
M.W 3.5 to 3.7 | ||||
6 |
2/11 |
Trees |
M.W 4.1 | PPT, PDF | ||
2/13 |
Trees |
M.W 4.2 | Homework 2 | |||
2/15 |
Trees |
M.W 4.3 | Quiz 3 |
|||
7 |
2/18 |
No Class -- |
||||
2/20 |
Trees |
M.W 4.4 (AVL Trees) | Programming Project 1, Homework 2 Solution |
|||
2/22 |
Trees |
M.W 4.4 (AVL Trees) | Programming Project 2 | |||
8 |
2/25 |
Review |
Homework 3 | PPT, PDF | ||
2/27 |
Midterm Exam 1 |
|||||
3/1 |
Trees |
M.W 4.5 (Splay Trees) | ||||
9 |
3/4 |
Trees |
M.W 4.7 (B-Trees) | |||
3/6 |
Hash Tables |
M.W 5.2 (Hash Function) | Homework 3 Solution |
PPT, PDF | ||
3/8 |
Hash Tables |
M.W 5.3 (Separate Chaining) | Quiz 4 |
Programming Project 2 |
||
10 |
3/11 |
No Class -- Spring Vacation |
||||
3/13 |
No Class |
|||||
3/15 |
No Class |
|||||
11 |
3/18 |
Hash Tables |
M.W 5.4 (Linear, Quadratic, Double Hashing) M.W 5.5 (Rehashing) | Programming Project 3 | ||
3/20 |
Hash Tables/Heaps |
M.W 5.7 (Extendible Hashing) | PPT, PDF | |||
3/22 |
Heaps |
M.W 6.3 (Binary Heap) | Homework 4 | |||
12 |
3/25 |
Heaps |
M.W 6.4, 6.5, 6.6, 6.7 | |||
3/27 |
Heaps |
M.W 6.8 (Binomial Queues) | ||||
3/29 |
Disjoint Sets |
M.W 8.1, 8.2 | Quiz 5 |
PPT, PDF | ||
13 |
4/1 |
Review |
Programming Project 3 |
PPT, PDF | ||
4/3 |
Midterm Exam 2 |
|||||
4/5 |
Disjoint Sets |
Programming Project 4 | ||||
14 |
4/8 |
Disjoint Sets |
||||
4/10 |
Graphs |
PPT, PDF | ||||
4/12 |
Graphs |
PPT, PDF | ||||
15 |
4/15 |
Graphs |
Homework 5 | PPT, PDF | ||
4/17 |
Graphs |
PPT, PDF | ||||
4/19 |
Sorting |
Quiz 6 |
PPT, PDF | |||
16 |
4/22 |
Sorting |
Homework 5 Solution |
|||
4/24 |
Review |
PPT, PDF | ||||
4/26 |
No Class |
Programming Project 4 | ||||
17 |
5/2 | Final Exam |
1pm to 3pm |
Final Exam Schedule: May 2nd (Thursday) 1:00 to 3:00 pm in Classroom (Sloan 175)
Student Course Evaluations Link: https://skylight.wsu.edu/student