ICS 311 Syllabus

Textbook

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.)

Notes

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.

Video lectures

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.

MIT Video Lectures

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

Instructor

Peter Sadowski

Teaching Assistants

Kai-Ying “Kevin” Lin

Akib Sadmanee

Communications

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>

Description

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.

Student Learning Outcomes

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:

Grading

Daily Class Structure

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.

Homework Policy

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.

Late Work

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.

Sections

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.