Week Saturday Monday Lecture Topic HW Topic HW Release TA1 TA2 Occasion
2 7/05 7/07 Introduction a+b: introducing the framework A1 Mirzajani Hashemi  
3 7/12 7/14 Algorithmic Warmup - slides Programming Challenges A2 Sheikhi Nobakhtian  
4 7/19 7/21 Greedy Algorithms - slides Algorithmic Warmup A3, W1 Hosseini Namazi  
5 7/26 7/28 Divide and Conquer - slides Greedy Algorithms A4 Zeynolabedin Rostamkhani Saturaday Off
6 8/03 8/05 Dynamic Programming 1 - slides Divide and Conquer A5 Lotfollahi Nazarzadeh  
7 8/10 8/12 Dynamic Programming 2 Programming Exam 1 E1 Mirzajani Hashemi  
8 8/17 8/19 Dynamic Programming 3 Dynamic Programming 1 A6, W2 Sheikhi Nobakhtian  
9 8/24 8/26 Basic Data Structures Dynamic Programming 2 A7 Hosseini Namazi  
10 9/01 9/03 Dynamic Array + Amortized Analysis Basic Data Structures A8 Zeynolabedin Rostamkhani  
11 9/08 9/10 Priority Queue and Disjoint Set Priority Queue and Disjoint Set A9 Lotfollahi Nazarzadeh  
12 9/15 9/17 Hashing Hash Table and Hash Functions A10 Mirzajani Hashemi  
13 9/22 9/24 BST 1 BST A11 Sheikhi Nobakhtian  
14 9/29 10/01 BST 2 Graph1 A12,W3 Hosseini Namazi  
15 10/06 10/08 Graph 1, Graph 2, RB Tree Programming Exam 2 E2 Zeynolabedin Rostamkhani  

All course material can be found here.

  • A*: Programming Assignments
  • E*: Programming Exams
  • W*: Written Assignments

Grading Policy

  • 20%: Weekly Quizes
  • 45%: Programming Assignments
  • 10%: Written Assignments
  • 15%: Programming Exams
  • 10%: Final Written Exam
  • +10%: Extra Credit Project

Students must receive at least half the points on all class modules (above) for a passing grade. Extra credit only applicable to students who have received a passing grade.

Academic Dishonsty Policy

Any student involved in cheating (provider or receiver) will receive a failing grade along with a report to the University Decipline office. If you don’t have the time to help your friend, do not provide them with the answer. You will fail the course! Never, ever show your code or homework to anyone.

Programming Exam

Programming Exams will be held on Monday for the week of the exam (from the schedule above) from 12:30 to 5:30pm.

Weekly Quizes

Quizes will be held every Monday for half an hour and will be graded in GradeScope.


Written and programming assignment submission are not accepted after the deadline. If you are late, submit what you have and start working on the next assignment.

Attendance Policy

According to univesity guidlines, students who miss more than 6 sessions are not eligable for a passing grade. University guidelines will be followed. If you cannot attend a session always contact the instructor ahead of time with a valid reason. Depending on your reason and record, the instructor may decide to not count your absency for that session.

TA Classes

TA Classes will be held on Mondays from 12:30 till 2:30 in room -120.

TA Office Hours

Location: Basement Computer Lab (site), TA Help Desk #1