McMaster University

Algorithms and Complexity
COMP SCI 3AC3

Term 2, Winter 2024

Course Information

 

Instructor: Prof. Ryszard Janicki 

  • Office: ITB 217 
  • Phone: 525-7070 ext: 23919
  • Office hours: Monday 1:30-2:30.
  • Email: janicki AT mcmaster.ca

Teaching Assistants: 

Course website: https://www.cas.mcmaster.ca/~cs3ac3/

Lectures:

Monday  12:30 PM  - 01:20 PM  TSH B128
Tuesday 01:30 PM - 02:20 PM  TSH B128
Thursday 12:30 PM  - 01:20 PM  TSH B128

 

Tutorials:  

Monday 10:30 AM - 11:20 AM KTH 104 Start Date  January 15, 2024
Wednesday 12:30 PM - 01:20 PM PGCLL M24 Start Date  January 15, 2024
Wednesday 01:30 PM - 02:20 PM T13 106 Start Date  January 15, 2024
Friday 12:30 PM  - 01:20 PM T13 107 Start Date  January 15, 2024

                  

Submissions will be via Avenue.

Course Outline (Tentative) 

  1. Introduction and Representative Problems
  2. Greedy Algorithms
  3.  Divide-and-conquer
  4. Dynamic programming
  5. Network flow
  6. Intractability and coping with intractability
  7. Approximation algorithms
  8. Randomized algorithms
  9. Online algorithms

Prerequisites: COMPSCI 2C03 or SFWRENG 2C03, COMPSCI 2AC3 or 2FA3 or SFWRENG 2FA3, or permission of instructor

 

Texts:

  • J. Kleinberg and E. Tardos, Algorithm Design, Addison-Wesley 2005 (main)
  • M. Soltys, An Introduction to the Analysis of Algorithms, World Scientific 2010 (auxiliary)

The course may not always follow any text-book closely.
Lecture Notes will be on the website either before class or a few days after class.

Calendar Description: 

  • Basic computability models; the Church-Turing thesis, complexity classes; P versus NP; NP-completeness, reduction techniques; algorithmic design strategies; flows, distributed algorithms, advanced techniques such as randomization.

Mission: 

  • This course is designed to provide students with an understanding of the principles and techniques in the design and analysis of efficient data structures and algorithms. We shall discuss and analyze a variety of data structures and algorithms chosen for their importance and their illustration of fundamental concepts. We shall emphasize analyzing the worst-case running time of an algorithm as a function of input size. We shall also spend some time exploring the boundary between feasible (polynomial time) computations and infeasible computations. This will include discussion of the notorious P vs. NP question.

Outline of Course Topics (Tentative).

1. Introduction and Representative Problems
2. Greedy Algorithms
3. Divide-and-conquer
4. Dynamic programming
5. Network flow
6. Intractability and coping with intractability
7. Approximation algorithms
8. Randomized algorithms
9. Online algorithms

 

Learning Objectives: Preconditions: 

  • Students should have known basic knowledge of discrete mathematics (especially of logic, sets and relations), basic knowledge of data structures and algorithms.

Learning Objectives: Postconditions 

 

  1. Students should know and understand
    1. Greedy algorithms
    2. Divide-and-conquer techniques
    3. Dynamic programming
    4. Network flow
    5. Intractability
    6. Approximation algorithms
    7. Randomized algorithms
    8. Online algorithms
  2. Students should be able to use and/or implement, dependently of the need, each of the below
    1. Greedy algorithms
    2. Divide-and-conquer techniques
    3. Dynamic programming
    4. Network flow
    5. Approximation algorithms
    6. Randomized algorithms
    7. Online algorithms

Evaluation 

 

Assignments 30% Three assignments (3 x 10 = 30%).
Although you may discuss the general concept of the course material with your classmates, your assignment must be your individual effort.
Midterm test 20% (60 minutes midterm test plus 20 mintues for technology ) ( take home, virtual on avenue)
The week of February 26 – March 1, 7:00 or 8:00 pm, take home, submission via Avenue, details later.
Final examination 50%  There will be a 2.5 hours (one double side cheat sheet will be allowed).
Total 100%  

 

Late assignments will not be accepted. Although you may discuss the general concept of the course material with your classmates, your assignment must be your individual effort.

 

MSAF policy: 

For each MSAF the weight will be moved to the final exam. More information on the MSAF procedure can be found at this link.


Important


The instructor and university reserve the right to modify elements of the course during the term. The university may change the dates and deadlines for any or all courses in extreme circumstances. If either type of modification becomes necessary, reasonable notice and communication with the students will be given with explanation and the opportunity to comment on changes. It is the responsibility of the student to check their McMaster email and course websites weekly during the term and to note any changes.

 

Academic Dishonesty

Academic dishonesty consists of misrepresentation by deception or by other fraudulent means and can result in serious consequences, e.g. the grade of zero on an assignment, loss of credit with a notation on the transcript (notation reads: AGrade of F assigned for academic dishonesty@), and/or suspension or expulsion from the university.
It is your responsibility to understand what constitutes academic dishonesty. For information on the various kinds of academic dishonesty please refer to the Academic Integrity Policy, specifically Appendix 3, located at http://www.mcmaster.ca/senate/academic/ac_integrity.htm

The following illustrates only three forms of academic dishonesty:
1. Plagiarism, e.g. the submission of work that is not one=s own or for which other credit has been obtained.
2. Improper collaboration in group work.
3. Copying and using unauthorized aids in tests and examinations.