Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein (CLRS), Introduction to Algorithms, Fourth Edition, The MIT Press, 2022. (Third Edition is also fine — the topics notes and videos are based on this edition.)
Professor Dan Suthers has written excellent notes for this course. These serve as concise summaries of the topics covered each week — watch the videos or read the book for more detail.
Lectures are available on YouTube and Laulima. The YouTube versions are linked from the individual Notes pages (the pages named Topic-XX.html on the www2 web site above), and can also be found in the Resources/Screencasts folder in Laulima.
Online lectures are also available from the textbook authors. These chalk-on-whiteboard lectures were recorded in an MIT classroom in 2005. Two versions are available:
Videolectures.net or this link
Questions about Course Content
In general, questions should be posted to discord (link in Laulima announcements). This is because (1) other students can see our responses there, and thus also benefit; and (2) other students may notice the question and answer before the instructor or TA notices it.
Personal Topics
For topics that are not of interest to other students or are personal, you may email the TAs or professor as appropriate, or request a private office visit. If using email, put “ICS 311” in the subject line.
Communication with other students (e.g., group members)
If you don’t have and prefer another way to contact them, you can send email to other students in the course using the Laulima “Mailtool”.</dd>
ICS 311 Algorithms (4 credits) Design and correctness of algorithms, including divide-and-conquer, greedy and dynamic programming methods. Complexity analyses using recurrence relations, probabilistic methods, and NP-completeness. Applications to order statistics, disjoint sets, B-trees and balanced trees, graphs, network flows, and string matching. Pre: 211 and 241.
Students will develop an ability to apply mathematical foundations, algorithmic principles, and computer science theory to the modeling and design of computer-based systems. Specifically, the desired outcomes are:
Each class day, there will be a daily quiz and an inclass group assignment on a particular topic. You are expected to come to class having studied the topic via the text, notes, and video lectures.
Daily Quiz: Do this before class on Laulima. Quiz will be open at 8pm the night before and due 1pm. Answers will be discussed at the beginning of class.
Inclass Group Assignment: Submit this to Laulima by 5pm. Make sure to include the name of your group members on your doc. Each person should submit, but your group should submit the same document.
Discussion of homework problems is strongly encouraged. However, students must write their solutions in their own words. Sharing of written solutions is expressly prohibited. Violations will be reported to the Office of Student Conduct and result in zero credit.
Homework assignments will be due at 11:55pm on the due date, but will be accepted until 8am the next morning without penalty.
If you will miss class, you can submit the quiz and inclass assignment to Laulima the same day before the deadline.
Homework Assignments wil not be accepted late, but the lowest grade will be dropped.
There are two sections of ICS 311 this year. Due to FERPA regulations, we are required to inform you that this course space is being shared by students in both ICS 311 sections [CRNs 70848 and 76470] and if you do not wish to be in a shared course space, please drop this section and register for another section or alternate course.