CPSCI 330: Algorithms

Section 01

Spring 2007

1:00–2:15 p.m. T/R (Science 1004)

Dr. Brian Rosmaita

Office: 01.011 Ferry Building

Office Hours: See the class homepage.

Computer Science and Engineering is a field that attracts a different kind of thinker. I believe that one who is a natural computer scientist thinks algorithmically. Such people are especially good at dealing with situations where different rules apply in different cases; they are individuals who can rapidly change levels of abstraction, simultaneously seeing things “in the large” and “in the small.”

Donald Knuth

(quoted in Juris Hartmanis’s 1993 Turing Award Lecture)


Contents


Course Description

This course is a discussion of the canon of “standard” algorithms, including the major categories such as divide-and-conquer and dynamic programming, and evaluation of the efficiency of algorithms in terms of their use of two scarce resources, space and time.


Text

Introduction to the Design & Analysis of Algorithms, 2ed.
Anany Levitin.
Addison-Wesley, 2007.

You are expected to bring your text, notebook, a writing implement, and a backup writing implement to every class meeting.

[ Back to the Table of Contents ]


Requirements

In brief, the graded components of this course are two take-home exams, a take-home final exam, homework (more or less weekly), and a research project. Of course, you are also expected to attend each class, keep up with the reading (see the course schedule), and attend office hours or make an appointment to see me if you are having difficulty understanding the material.

grading

component weight when
1.Examinations
one15%due February 13 at 1:00 p.m.
two15%due March 8 at 3:30 p.m.
final22%due May 11 at 2:00 p.m.
2.Homework35%throughout the semester
3.Research Project 13%May 11

Each component of your grade will be assigned a number between 0 and 100, inclusive. Your final grade in the course will be a weighted sum Σ of all components, where the weights are given above. Σ will be converted into a letter grade according to the following scale:

numeric rangeletter grade
99–100A+
93–98.9A
90–92.9A-
numeric rangeletter grade
87–89.9B+
83–86.9B
80–82.9B-
numeric rangeletter grade
77–79.9C+
73–76.9C
70–72.9C-
numeric rangeletter grade
67–69.9D+
63–66.9D
60–62.9D-
numeric rangeletter grade

0–59.9
 
F

The weighted sum Σ indicates your minimum grade for the course. Significant and constant improvement throughout the semester may be taken into account in determining the final grade.

“Bailey clause”

Professor Mark Bailey of the computer science department has a grading policy that I will also adopt this semester. The policy is as follows:

Earning a failing grade in any of the three components of your final grade is a sufficient condition for failing the course.

In other words, in order to pass this course, you must earn a passing grade in each of the three components of your final course grade. This doesn't mean that you can't fail a homework assignment and still pass the course—it means that you cannot earn a failing grade on all of component 2 (homework) and still pass the course.

If you have any questions on how the Bailey clause applies to your work in this class, feel free to ask me at any time during the semester.

[ Back to the Table of Contents ]


About the Requirements

about the exams

The two take-home exams are closed-book and closed-notes. They will be designed to take 50 minutes to complete, though you will be allowed 75 minutes to complete the exam. You will be given each exam in a sealed envelope on the date we review the material for that exam. Each exam is due in my office on the date indicated above. The first two exams will each cover four weeks of coursework.

The final exam will cover the remainder of the semester. It will have a small cumulative component, the exact nature of which will be specified on the last day of class. It will be designed to take 90 minutes to complete, though you will be allowed two hours. The final exam is closed-book and closed-notes, and will be handed to you in a sealed envelope on the last day of class. It will be due on the date the registrar assigns for the final exam in this class.

about homework

Homework will be assigned throughout the semester; there will be on the order of 11 homework assignments. Late homework will not be accepted.

about the research project

In the latter part of the semester, each student will conduct a small research project on an interesting algorithm not discussed in the text. Your research will culminate in a written report and a presentation to the class. The presentation will take place in the time slot the registrar assigns for our final exam. Attendance at this presentation is mandatory. Keep this in mind as you formulate your post-semester travel plans.

Although the assignment sheet for the research project will contain a list of suggestions, you are encouraged to develop your own topic. The assignment will be available around the time of spring break.

The written report will take the form of a web page (or pages). If you are not familiar with HTML, I can give you a 50 minute crash course covering everything you'll need to know to produce a successful research report for this class. You can let me know if you'll need such a tutorial when I hand out the assignment.

about scheduling conflicts

If you believe that you have a valid scheduling conflict with a graded component of this course (e.g., observation of a religious holiday), you must see me before the graded component is scheduled. I will decide whether the conflict is a valid one, and if so, how your graded event will be rescheduled. Note that taking a non-classwork-related trip will not count as a valid conflict. The dates of all exams are clearly indicated on this syllabus, so look them over carefully and mark the dates on your calendar.

[ Back to the Table of Contents ]


Academic Conduct

You are expected to be familiar with the Hamilton College Honor Code. In short, any work you do for a graded component of this course must be your own.

Your academic conduct in this class is largely a matter of common sense. You are encouraged to discuss computer science topics covered in class with your fellow students. You are not encouraged to steal their work or to do their work for them.

[ Back to the Table of Contents ]


Making an Appointment

I encourage you to drop by during my office hours to discuss any aspects of the course or anything else you want to talk about. If you can't make my office hours, feel free to make an appointment. The best way to make an appointment is to talk to me after class. The next best option is to contact me by email. You can also call my office (the extension is 4816), but unless you call during office hours, I probably won't answer, and I'm not very reliable about checking my voice mail.

[ Back to the Table of Contents ]


Computing Equipment

The Department of Computer Science provides laboratory space, computer equipment, and software for your use in this course. You may only use the hardware and software that you have been authorized to use. We expect you to treat all equipment with the utmost respect and care. Modifying the configuration of any equipment without authorization is prohibited. Please report problems with labs or equipment to our department director of laboratories, Nick Brockner. His extension is 4289.

[ Back to the Table of Contents ]


Students with Disabilities

If you have a documented disability and require accommodations to obtain equal access in this course, please contact me at the beginning of the semester and when given any assignment for which accommodation is required. Students with disabilities must verify their eligibility by contacting the Associate Dean of Students for Diversity and Accessibility, Allen Harrison (K-J 104; telephone extension 4021).

[ Back to the Table of Contents ]


[ Return to the CPSCI 330 homepage ]

Brian J. Rosmaita <contact me>
This page was last modified Thursday, 18 January 2007 at 01:52 UTC.
Valid XHTML 1.0 ! Valid Cascading Style Sheets! This page is in AAA Conformance with the Web Content Accessibility Guidelines