Week Saturday Monday Lecture Topic HW Topic HW Release TA1 TA2 Occasion
1 6/30 7/01 Algorithmic Warmup a+b: introducing the framework A1 Mahmoudi Mirshekari  
2 7/6 7/08 Greedy Algorithms Programming Challenges A2, W1 Yalsavar Moradi  
3 7/13 7/15 Divide and Conquer Algorithmic Warmup A3 Pirhadi Mirzaei  
4 7/20 7/22 Dynamic Programming 1 Greedy Algorithms A4 Abdollahpour Kodeiri  
5 7/27 7/29 Dynamic Programming 2 Programming Exam 1 E1 Ghaderan Moghadami Saturday Off
6 8/04 8/06 Dynamic Programming 3 Divide and Conquer A5, W2 Mahmoudi Mirshekari Sunday & Tuesday Off
7 8/11 8/13 Basic Data Structures Dynamic Programming 1 A6 Yalsavar Moradi Wednesday Off
8 8/18 8/20 Dynamic Array + Amortized Analysis Dynamic Programming 2 A7 Pirhadi Mirzaei Basic Sceince Midterms
9 8/25 8/27 Priority Queue and Disjoint Set Basic Data Structures A8 Abdollahpour Kodeiri Basic Sceince Midterms
10 9/02 9/04 Hashing - - Ghaderan Moghadami Basic Sceince Midterms
11 9/09 9/11 BST 1 Priority Queue and Disjoint Set A9 Ghaderan Moghadami  
12 9/16 9/18 BST 2 Hash Table and Hash Functions A10 Mahmoudi Mirshekari  
13 9/23 9/25 Graph Decomposition 1 BST A11 Yalsavar Moradi  
14 9/30 10/02 Graph Decomposition 2 Programming Exam 2 E2 Pirhadi Mirzaei  
15 10/07 10/09 Red-black Tree, B-Tree Graph1 A12, W3 Abdollahpour Kodeiri  
  • 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