Guidelines:

  • Homework assignments are announced on the Blackboard with their deadlines, and must be submitted as PDF through the Blackboard. Assignments submitted by emails are NOT graded.
  • Before solving the homework problems, you are expected to do the weekly reading assignments and understand the related material.
  • An asterisk (*) indicates supplementary reading material.
  • Late submission is subjected to a 50% penalty if it is submitted by the cut-off time (usually 48 hours after the announced deadline).
  • Resubmission: If you submit a wrong file, or modify the solution after submission, you can resubmit within the deadline (at most twice). Only the latest submission on the Blackboard will be graded and late penalty may apply if resubmitted after the deadline.

Reading Assignment [Weeks 1-2]: Basic concepts, Searching and Sorting, Complexity notations
Alsuwaiyel: Sections 1.3 - 1.12 (skip 1.5)
Watch Python Tutorials: 1-7 (see Course Materials)

Reading Assignment [Weeks 3-4]: Solving recurrences, Mater Theorem, Input size analysis
CLRS: Sections 3.1*, 4.3, 4.5
Alsuwaiyel: Sections 1.14, 1.15*

Reading Assignment [Weeks 5-7]: Divide and Conqure, Quicksort, Dynamic Programming, Matrix Chain, Knapsack Problem, Greedy Algorithms
Alsuwaiyel: Sections 5.1-5.4, 5.6
Alsuwaiyel: Sections 6.1, 6.3, 6.4, 6.6
Alsuwaiyel: Sections 7.1

Reading Assignment [Weeks 8-9]: Classical and Quantum systems, Matrix Representations, Tensor Product, Classical and Quantum Gates
Yanofsky: Section 2.7 (Chapter 2*)
Yanofsky: Sections 3.1-3.3, 3.4*
Yanofsky: Chapter 5

Reading Assignment [Weeks 10-11]: Quantum Algorithms, Functions Implementation, Deutsch Algorithm, Deutsh-Jozsa Algorithm.
Yanofsky: Sections 6.1-6.2

Reading Assignment [Weeks 12-13]: Superdence Coding, Grover Algorithm, Shor Algorithm.
Yanofsky: Sections 6.1-6.2

Reading Assignment [Weeks 14-15]: Complexity Classes, NP Completeness, Reductions, NP Problems.
Alsuwaiyel: Sections 9.1-9.4
CLRS: Chapter 34