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.
-
The final exam is scheduled on Friday May 3 2024 3:30 PM to 5:30 PM in LC C1
The final exam is comprehensive.
Students with documented special needs:
please go to
TH 301
at 3:30 PM on Friday May 3 2024 to take the exam.
Your exam time will be from 3:30 PM until 7:30 PM. Please arrive on time.
TA Sana Ebrahimi will proctor the exam.
Sample questions for NP-completeness topics (Chapter 8)
-
The first midterm examination happened on March 6 2024 (Wednesday) in class.
The syllabus is from the very beginning
up to and including what was taught in the last slide of the class on February 26 2024.
Students with documented special needs:
please go to
Lincoln Hall 101
at 5:00 PM on March 6 to take the exam.
Your exam time will be from 5:00 PM until 7:30 PM. Please arrive on time.
TA Seo Yeon Park will proctor the exam.
- Statistics (for graduate students):
Maximum | 100
|
Minimum | 27
|
Average | 91
|
Median | 94
|
- Statistics (for under-graduate students):
Maximum | 100
|
Minimum | 23
|
Average | 75
|
Median | 80
|
-
The second midterm examination happened on April 10 2024 (Wednesday) in class.
The syllabus is from the very beginning
up to and including what was taught in the last slide of the class on April 3 2024.
Students with documented special needs:
please go to
TH 219
at 5:00 PM on April 10 to take the exam.
Your exam time will be from 5:00 PM until 7:30 PM. Please arrive on time.
TA Sana Ebrahimi will proctor the exam.
- Statistics (for graduate students):
Maximum | 100
|
Minimum | 58
|
Average | 94.7
|
Median | 100
|
- Statistics (for under-graduate students):
Maximum | 100
|
Minimum | 0
|
Average | 86.3
|
Median | 94.5
|
-
For checking grades in the future, you have been assigned a new ID (may be negative) based on your UIN.
To get your new-ID, click here and then input your UIN when asked.
-
Check grades based on your 5-digit new-ID by clicking here.
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
-
The course webpage may contain many materials related to the course. Please check the course webpage frequently (for example, at least once in every two days). You will be responsible for not checking the webpage frequently.
-
The terms of this syllabus are subject to change by announcements in class,
on the course website or by email.
-
Incompletes: The UIC
Undergraduate catalog states that in addition to needing excellent
justification for an incomplete, a student must also have been
"making satisfactory progress in the course.
-
Statute of limitations:
No grading questions or complaints, no matter how justified, will be
listened to one week after the item in question has been returned.
-
Cheating: Cheating
will not be tolerated. All work you submitted must be entirely your own.
Any suspicious similarities between students' work (this includes
homework and exams) will be recorded and brought to the attention
of the Dean. The MINIMUM penalty for any student found cheating will be to
receive a 0 for the item in question, and dropping your final course grade
one letter. The MAXIMUM penalty will be expulsion from the University.
-
Late assignments:
Late assignments will not, in general, be accepted. They will never be
accepted if the student has not made special arrangements with me at least
one day before the assignment is due. If a late assignment is accepted it
is subject to a reduction in score as a late penalty.
-
Classroom Conduct:
Classroom discussions and questions are a valuable part of the learning
process and are encouraged. However, students who repeatedly talk among
themselves disrupting the class lecture will be asked to leave.
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 1, part 1 (PDF file, deadline: February 14 Wednesday in class for regular students, February 21 Wednesday in class for special needs students)
-
Solutions for Assignment 1, Part 1
- Statistics (for graduate students):
Maximum | 50
|
Minimum | 30
|
Average | 46.8
|
Median | 50
|
- Statistics (for under-graduate students):
Maximum | 50
|
Minimum | 25
|
Average | 43.1
|
Median | 50
|
-
Assignment 1, part 2 (PDF file, deadline: March 11 in class for regular students, March 18 in class for special needs students)
-
Solutions for Assignment 1, Part 2
- Statistics (for graduate students):
Maximum | 50
|
Minimum | 25
|
Average | 45
|
Median | 50
|
- Statistics (for under-graduate students):
Maximum | 50
|
Minimum | 0
|
Average | 39.4
|
Median | 45
|
Assignment 2, part 1 (PDF file, deadline: April 1 in class for regular students, April 8 in class for special needs students)
-
Solutions for Assignment 2, part 1
- Statistics (for graduate students):
Maximum | 50
|
Minimum | 0
|
Average | 32.5
|
Median | 45
|
- Statistics (for under-graduate students):
Maximum | 50
|
Minimum | 0
|
Average | 39.5
|
Median | 45
|
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.
-
Some Representative Problems
POWERPOINT
,
PDF
-
Basics of Algorithm Analysis
POWERPOINT
,
PDF
-
Graphs
POWERPOINT
,
PDF
-
Greedy algorithms (Interval Scheduling and Partitioning, Scheduling to Minimize Lateness, Optimal Caching, Shortest Paths in a Graph, Coin Changing Problems, Selecting Breakpoints)
POWERPOINT
,
PDF
- Demo of interval scheduling algorithm
POWERPOINT
,
PDF
- Demo of interval partitioning algorithm
PDF
- Demo of Dijkstra's algorithm for shortest paths
POWERPOINT
,
PDF
-
Greedy algorithms (Minimum Spanning Tree, Clustering)
POWERPOINT
,
PDF
- Demos of various MST algorithms
PDF
-
Divide and Conquer approach (Mergesort, Counting Inversions, Closest Pair of Points)
POWERPOINT
,
PDF
-
Dynamic Programming approach (Weighted Interval Scheduling, Segmented Least Squares, Knapsack Problem, RNA Secondary Structure)
POWERPOINT
,
PDF
-
Computational Intractability (Polynomial-Time Reductions)
POWERPOINT
,
PDF
-
Computational Intractability (Definition of complexity classes P, NP, EXP, NP-Completeness, co-NP and the Asymmetry of NP)
POWERPOINT
,
PDF
-
Computational Intractability (NP-completeness reductions)
POWERPOINT
,
PDF
(these slides are not part of the final examination)