ICS 311 Fall 2020 General Course Information


Catalog Description

ICS 311 Algorithms (3 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, or consent.

(Our practice is to not admit without a passing grade in 211 and 241.)

SLOs (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:

Comment: On the fall 2013 final exam one student wrote about a problem:

"This question is too hard! We shouldn't have to know implementations we have not used before!"

This is exactly what this course is intended to teach! You may not "know" an implementation you have not encountered before, but this course should prepare you with the tools to analyze and make informed decisions about not only new implementations, but even new algorithms.

Do not approach this course solely as a memorization task, where you can only do algorithms you are trained to do, like a circus animal trained to do tricks! You will learn a "catalog" of algorithms, but you should also understand their analyses as examples that enable you to analyze unexpected algorithms in the future. This is essential for being successful in a fast changing field where you are expected to figure out whether a new idea will work, as you will be the computer scientist hired to do this.

Textbook

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, Third Edition, The MIT Press, 2009.

This textbook will be referenced as CLRS after the authors. Students are advised to purchase the textbook, as this book will serve as a lifelong reference. It is the second most cited publication in computer science!

Other reading material will also be provided.

Students are also advised to keep their ICS 241 (Discrete Mathematics for Computer Science) textbooks for reference.

Instructors

Peter Sadowski (Section 1, MW 3:30-5:10)

Dan Suthers (Section 2: MW 5:30-7:10)

Teaching Assistants

Moseli Motsoehli (Section 1 Class and Homework Assignments)

David Luis (Section 2 Class and Homework Assignments)

Rashmi Arvety Ramanatha (Homework Assignments only)

Communications

Questions about Course Content
In general, questions about course content such as concepts, clarifications of assignments, etc. should be posted to the Laulima discussion forum of the week. 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. If you email us a question, we will post the reply in Laulima unless personal information is involved.
Personal Topics
For topics that are not of interest to other students or are personal, you may email us, 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".

Online Tools and Media

The course is distributed across multiple online tools and media. ICS students should be comfortable coordinating their use.

Both sections share and use this course website http://www2.hawaii.edu/~suthers/courses/ics311f20/index.html for posting schedules and notes.

This semester, due to Covid-19, classes will be held online in Zoom. See Getting Started and Joining a Meeting. These will be synchronous class meetings, that is, at a scheduled time when you must participate. Your instructor will send you meeting IDs and Passwords for your section.

All office hours will also be held in a single shared Zoom "recurring meet anytime" room, to be sent to students.

We use Laulima for quizzes, posting and submitting assignments, and providing resources such as other readings and podcasts (if you want to download or don't want to use YouTube). Please see this document on everything Laulima users should know.

We will use Google Docs for in-class problem solving, as it supports simultaneous editing. Please ensure that you are familiar with Google Docs, and that you can access them via your UH login. While multiple browers are supported, Chrome likely provides the best experience for this part as it is also made by Google.

Screencasts (videos) of lectures are available on YouTube as well as Laulima (your choice). 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/Podcasts folder in Laulima.


Dan Suthers
Last modified: Mon Aug 31 04:54:34 HST 2020