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.
SLOs (Student Learning Outcomes)
- Students are aware of fundamental algorithms of computer science, and their associated data
structures and problem solving techniques.
- Students can compose a problem formulation of a real-world
problem mathematically.
- Students can decide whether given pseudocode is correct for a
given problem formulation; construct a counterexample if the given
pseudocode is incorrect; and outline a proof for its correctness
otherwise.
- Students can design a correct algorithm for a given problem and
describe the algorithm as pseudocode in a given pseudocode syntax.
- Students can analyze the worst-case and best-case space and time complexities
of a given algorithm.
- Students can create a software program for accurately implementing an
algorithm specified in pseudocode. Students can implement software
objects meeting Abstract Data Type specifications.
- Students can produce a software product including documentation
for given requirements & design specifications.
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!"
I wrote back to thank the student for concisely expressing (the negation of) 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. We want you to 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.
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! Also, the textbook will be
available for reference during the exams, so familiarity with the book may help you.
Students are also advised to keep their ICS 241 (Discrete Mathematics
for Computer Science) textbooks for reference.
Instructor, Section 1
Dan Suthers
Professor of ICS
- Office: POST 309B
- Office Telephone: (808) 956-3890
- Email: suthers @ hawaii.edu.
Put "ICS 311" in the subject line. Use Laulima for questions that may also apply to other
students.
- Office Hours: Tuesdays 3:00-4:00, or by appointment. It's best to let me know in advance if
you plan to come to office hour, as sometimes other things come up. Please don't try to
talk to me while I am setting up for class. Brief consultations at the end of class are OK
unless I indicate that I need to leave.
Instructor, Section 2
Nodari Sitchinava
Assistant Professor of ICS
- Office: POST 306B
- Office Telephone: (808) 956-3581
- Email: nodari @ hawaii.edu.
(Put "ICS 311" in the subject line. Use Laulima for questions that may also apply to other
students.)
- Office Hours: Tuesdays 2:00-3:00, or by appointment. It's best to let me know in advance if
you plan to come to office hour, as sometimes other things come up. Please don't try to
talk to me while I am setting up for class. Brief consultations at the end of class are OK
unless I indicate that I need to leave.
Teaching Assistant
Lei Liu
MS Student in Mathematics
- Office: POST 303 Cubicle #1
- Email: liulei @ hawaii.edu.
(Put "ICS 311" in the subject line.)
- Office Hours: Monday 9-11, Friday 9-11.
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
stop by office hours. (Of course you may also use office hours for course content questions.)
If using email, put "ICS 311" in the subject line.
- Communication with other students (e.g., group members)
- You can send email to other students in the course using the Laulima "Mailtool". You don't
need to know their real email address to do this.
Online Media
We use the course website www2.hawaii.edu/~nodari/teaching/s15/
for posting schedules and notes.
We use Laulima for all other online
required course functions such as podcasts, quizzes, discussions and submitting assignments. 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.
Screencasts (videos) of lectures are available on YouTube and iTunesU as well as
Laulima (your choice). They are linked from the individual Notes pages (the pages named Topic-XX.html).
Nodari Sitchinava (based on material by Dan Suthers)
Last modified: Sun Jan 11 01:39:16 HST 2015