Under Construction

CMPUT 396: Algorithmic Problem Solving

Check often. If you have clarification questions send a message to the forum (link below). I am not using eClass in this course, except for the forum and for submitting assignments. In particular, due dates will NOT appear in your eClass calendar!

Fall 2017, Instructor: Michael Buro
Lectures: TR 8:00-9:20 TL 11 (starting Sep. 5)
Office hours MB: TBA
Office hours TAs: TBA

eClass Forum Post general course related questions there.

TAs (email addresses end with ualberta.ca): TBA




Important: registration is open to anyone who has passed a CMPUT 2xx course. Students lacking the prerequisite will be withdrawn from the course without notice. Also helpful is the knowledge of fundamental algorithms and data structures (e.g., CMPUT 175, 204, 304, or 275) and basic coding skills in either C++, Python, or Java.

Tentative Schedule

               Lecture    Assign.  Lecture
  Week of     Tues.(+1)  Wed.(+2) Thurs.(+3)
  (Monday) |    8:00      22:00      8:00
 1. Sep.04 |     L1        A1r        L2 
 2. Sep.11 |     L3                   L4      (SQ?)
 3. Sep.18 |     L5      A1d/A2r      L6      (SQ?)
 4. Sep.25 |     L7                   L8      (SQ?)
 5. Oct.02 | LQ1 L9      A2d/A3r      L10      
 6. Oct.09 |     L11                  L12     (SQ?)
 7. Oct.16 |     L13     A3d/A4r      L14     (SQ?)
 8. Oct.23 |     L15                  L16     (SQ?)
 9. Oct.30 | LQ2 L17     A4d/A5r      L18      
10. Nov.06 |     L19                  L20     (SQ?)
--  Nov.13 |     ===== Reading Week =====
11. Nov.20 |     L21     A5d/A6r      L22     (SQ?)
12. Nov.27 |     L23                  L24     (SQ?)
13. Dec.04 |     L25       A6d        L26     (SQ?)
Legend: Li         : lecture i
        Ajr/Ajd    : assignment j released / due (Wednesdays 22:00)
        LQi        : long quiz i about previous 4 weeks' content (Tues.)               
        SQ?        : potential short quiz about previous week's content (randomized on T or R)
        Final Exam : TBA 


This course presents fundamental search algorithms and their applications to decision problems and optimization.

(Tentative) Topics

Course Work

There will be 6 assignments, 8 quizzes, and a final exam.


Please visit this page to learn about our interpretation of letter grades. In this course grades will not be curved, they are absolute - closely following these cut points:
≥ 95% A+   ≥ 90% A    ≥ 85% A-
≥ 80% B+   ≥ 75% B    ≥ 70% B-
≥ 65% C+   ≥ 60% C    ≥ 55% C-
≥ 50% D+   ≥ 45% D    < 45% F
subject to this important condition: if the result of the final exam is less than 40%, the final course grade can't be better than D+.


There will be 8 in-class quizzes in this course: 2 long (~30 minutes) and 6 short (~5 minutes). After each lecture week students are expected to go over the covered material at home and answer sample questions that will be provided. In one of the following week's lectures there might be a short quiz that checks whether students actually did their homework. The 6 short quizzes are scheduled randomly throughout the term and we will only consider the best 5. Missed short exams will receive 0 marks.

Long quizzes are scheduled ~4 weeks and ~8 weeks into the term (see schedule). They function as "midterm exams light" covering the recent ~4 weeks of course content. All quizzes will commence 8:03 sharp. The weight of missed long quizzes will be moved to the final exam.


Assignments are comprised of small programming tasks and exercises related to recently covered course material. Solutions have to be handed in by 22:00 on the due dates electronically via eClass. We will allow groups up to *2* students working on one assignment. Each student will be allowed AT MOST ONE assignment submission that is late by at most 24 hours. For such late assignments 30% of the achievable marks will be deducted. Any subsequent late submission will receive 0 marks - as will submissions that are late by more than 24 hours. Assignment marking related questions will be addressed by the TAs. You need to contact them within 2 days after you the marked assignments have been returned. Later inquiries will be ignored.

Final Exam

The final 2h exam will cover *all* course material.
Deferred final exam date: Monday, Jan. 8, 2018, 13:00 to 15:00 (ATH 332).

Academic Integrity

The University of Alberta is committed to the highest standards of academic integrity and honesty. Students are expected to be familiar with these standards regarding academic honesty and to uphold the policies of the University in this respect. Students are particularly urged to familiarize themselves with the provisions of the Code of Student Behaviour and avoid any behaviour which could potentially result in suspicions of cheating, plagiarism, misrepresentation of facts and/or participation in an offence. Academic dishonesty is a serious offence and can result in suspension or expulsion from the University. (GFC 29 SEP 2003)

Copying and cheating on assignments will be penalized with a mark of 0 (see the standard handouts for academic dishonesty and copying and cheating), and Section 30.3.2 Inappropriate Academic Behaviour.

Course Policies

Unless otherwise noted, the CS Department Policies are in effect.


In this course we use the "Consultation" model: students are encouraged to discuss and solve problem sets in small groups to speed up learning and stimulate idea exchange. In the end, however, students must write down their own solutions and be able to solve similar problems independently.

Regardless of the collaboration method allowed, you must always properly acknowledge the sources you used and people you worked with. Failure to give proper credit is considered plagiarism. In general, academic dishonesty is a serious offence and can result in suspension or expulsion from the University.

Your professors reserve the right to give you an exam (oral, written, or both) to determine the degree that you participated in the making of the deliverable, and how well you understand what was submitted. For example, you may be asked to explain any code that was submitted and why you choose to write it that way. This may impact the mark that you receive for the deliverable.

Note that this potential additional questioning about your deliverable is part of the assessment process, both summative (for marks) and formative (for feedback to you and us). It is intended to give us additional information about what you have learned. So, whenever you submit a deliverable, especially if you collaborate, you should be prepared for an individual inspection/walkthrough in which you explain what every line of your code, assignment, design, documentation etc. does and why you chose to write it that way.

last modified on  ; you are visitor # since Aug/8/2017