Computer Science 140 and Mathematics 168
Algorithms
Syllabus, Fall 2002
Professor: Belinda Thom (or "B" for short)
Office: Olin 1241
Phone: x79662
E-mail: bthom@cs.hmc.edu
Office Hours: TBD
Course Time and Location: Tuesdays and Thursdays, 2:45-4 PM in TG 201
Course Assistants: TBD
Course Homepage:
www.cs.hmc.edu/courses/2003/spring/cs140
What Is This Course About?
This course will introduce you to fundamental algorithm design and analysis techniques.
In addition to learning about a number of important classical algorithms,
you will also gain experience designing new and/or extending existing algorithms.
This experience will include analyzing various algorithms' computational efficiency and
applying them to a variety of interesting real-world computational problems.
Is This Course for You?
The short answer is Yes! -- as long as you've met a few basic requirements.
Much of our time will be spent carefully analyzing algorithms using mathematical induction,
recurrence relations, and summation techniques. Hence, Math 55 is a non-negotiable prerequisite.
On some homeworks there will also be short programming assignments, which may be solved in a
high-level language of your choice (i.e., C, C++, Java, Pascal, SML).
Thus, CS 60 and CS 70 (if registered as CS 140) or Math 131
(if registered as Math 168) are also required.
Text
Introduction to Algorithms, 2nd Edition by T. Cormen, C. Leiserson, R. Rivest, and C. Stein
Attendance
On-time attendance in every class is absolutely required in order to pass the course.
If you are sick or have a special reason for missing class, please send me email
before the class that you will miss.
Otherwise, you are expected to be in class. Please make sure to
arrive on-time as a courtesy to the instructor and your classmates.
Assignments
There will be two assignments each week.
On Tuesdays, you will receive a short assignment typically comprising 2-3 problems
and worth approximately 20-35 points. This assignment is due on Thursday at the
beginning of class. On Thursdays, you will receive a longer assignment, typically
comprising 5-6 problems, worth approximately 65-80 points. This assignment is
due on the following Tuesday at the beginning of class. Late homeworks will not
be accepted unless you have made a special arrangement will me in advance.
While two-homeworks per-week might sound like a lot of work -- and some do require
a lot of work -- this policy is for your benefit.
These assignments force you to keep up with the important underlying details that
accompany each lecture, which facilitates a much more engaged and rewarding experience.
Given this strategy, I will try to return your graded homeworks to you within one week of their
due date.
Should you have an issue with the quality of a particular grade, please
come talk to me, so that I can use your feedback will help improve the grading process.
Worksheets
In almost every class, you will be asked to solve a problem on a worksheet.
These worksheets will be turned in at the end of class.
If you turn in a worksheet which exhibits effort, you will receive full credit
for it. Worksheets will not be returned but you can assume that you have
received full credit unless I inform you otherwise.
Exams
There will be 3 exams in this course: two exams during the
semester and a comprehensive final exam. Dates and details of the exams will be
announced in class.
Grades
The components of the course are worth the following:
Homework: 40 course points
Worksheets: 10 course points
Two "Midterm" Exams: 25 course points
Final Exam: 25 course points
Note: You must turn in all worksheets in order to receive the 10
points for this component (unless you miss class due to illness or a special circumstance).
Since attendance is required, I expect that all students will receive their 10 worksheet points.
Collaboration Policy
Collaboration on homeworks is encouraged.
This means that you may discuss approaches to solving a problem with
anyone in the class. On each submitted homework, please indicate the names of
all people with whom you discussed your solutions. Copying written solutions
from any source (such as person, a text book, or a web page) is not allowed. There should
be no collaboration on any exam. All parties, including off-campus students,
are expected to follow the Harvney Mudd Honor code.
Section 2
If you are in my class, i.e., CS 140 Section 2, your attendance to my lectures is required.
Similarly, you are to use my Office Hours. Finally, homework collaboration should be limited
to your Section 2 classmates.
This caveat is mentioned because Professor Hadas is
teaching Section 1 and we have both agreed on this policy.
Aside: I am a great fan of Professor Hadas' class and would like to share this experience with
you. Thus, my lectures will closely follow his. I am very grateful to him for the generous
use of his slides. The contents of this document was also borrowed from him.
List of Topics
- Fundamentals of Algorithm Design and Analysis
- Worst-case analysis of algorithms.
- Asymptotics and nonlinear recurrence relations.
- Sorting algorithms.
- Order statistics.
- Divide-and-Conquer paradigm.
- Dynamic programming paradigm.
- Greed paradigm.
- Amortized analysis.
- Fundamental Data Structures
- Union-Find structures.
- Red-Black trees.
- B-Trees.
- Graph Algorithms
- Data structures for graphs.
- Depth-first search and breadth-first search.
- Minimum spanning tree algorithms.
- Shortest path algorithms.
- Network flow algorithms.
- Linear Programming and the Simplex Algorithm
- NP-Completeness and Approximation Algorithms
- Polynomial-time reductions.
- Karp's NP-Complete problems and others.
- Approximation algorithms.
- Advanced Topics