This is the course webpage for CS 401: Computer Algorithms I. Please check this webpage frequently for information regarding the class. Below are many useful information and links for the course.



Some latest news




Course syllabus (basic information about the course, grading, policies, final examination and so forth)


Course Number CS 401
Call Number 41266 (CS 401, for CS graduate students)
41267 (CS 401, for CS under-graduate students)
Course Title Computer Algorithms I
Course Webpage http://www.cs.uic.edu/~dasgupta/cs401
Lectures Monday and Wednesday, 5:00 PM to 6:15 PM
Room LC C1
Instructor Prof. Bhaskar DasGupta
Office: 1236 SEO Bldg
Phone: 312-355-1319
Email: bdasgup@uic.edu
Instructor Office Hours Monday and Wednesday, 3:30 PM to 4:30 PM and at other times by appointment only
Please make an appointment if you wish to see me outside my office hours
TAs Seo Yeon Park, Email: spark313@uic.edu
Sana Ebrahimi, Email: sebrah7@uic.edu
TA Office hours For Seo Yeon Park For Sana Ebrahimi
Textbook Algorithms Design
Jon Kleinberg and Eva Tardos
Addison Wesley, 2006, ISBN 0-321-29535-8
Date of midterm examination I 03/06/2024
Date of midterm examination II 04/10/2024
Date of final examination May 3 2024 (Friday) 3:30 PM to 5:30 PM in LC C1

In this course, we will cover basic technique for the design and analysis of efficient computer algorithms for solving various kinds of problems. The prerequisites for this course include Data Structures and Discrete Mathematics. Hence, you are assumed to have already familiar with basic data structures like stacks, queues, tress, linked lists etc., and basic concepts of discrete mathematics, such as basic mathematical identities, series summations and recurrences.

The course webpage will contain many materials (for example, assignments) related to the course. Please check the course webpage frequently (for example, at least once in every two days). You will be responsible for missing an assignment posted on the course webpage if you do not check the webpage frequently.

Evaluation Criteria (grading)

The following information on assignments and gradings are tentative and subject to change depending on the progress in the class. It is expected that there will be 3 assignments, 2 quizzes and 1 final examination. The final exam will be comprehensive. Each assignment will involve solving some excercise problems and/or writing programs implementing some algorithm. Assignments must be handed in class on the date specified. No late assignments will be accepted. Discussions with other students about assigments is allowed, but the work handed in must be the student's own work. Tentative weights of the assignments and exams in the final grading is as follows:

Assignments (3) 30%
Midterm 1 20%
Midterm 2 20%
Final 30%
Total 100%

Rules and Policies

Topics to be covered (tentative, subject to change if necessary)
  • Some representative problems
  • Basics of Algorithm Analysis
  • Graphs
  • Greedy Algorithms
  • Divide and Conquer approach
  • Dynamic Programming approach
  • Computational Intractability



Information about assignments and other important dates


  • Assignment 2, part 1 (PDF file, deadline: April 1 in class for regular students, April 8 in class for special needs students)

  • Assignment 2, part 2 (PDF file, deadline: April 15 in class for regular students, April 22 in class for special needs students)



    Powerpoint and PDF Slides of the lectures


    Please note that these slides are only accessory material for the class. We may teach in the class materials not discussed in details here. Please be advised not to skip class hoping that studying these slides will suffice. The PDF slides are generated from POWERPOINT using acrobat software and may not faithfully reproduce animations and other advanced features in POWERPOINT due to format differences.