Sie sind auf Seite 1von 2

Objectives

This course covers the modern theory of algorithms, focusing on the


themes of efficient algorithms and intractable problems. The course
goal is to provide a solid background in algorithms for computer
science students, in preparation either for a job in industry or for
more advanced courses at the graduate level. I strongly encourage
mathematicians, biologists, physicists, and people from other
concentrations to take the course as well.

Besides introducing the basic language and tools for algorithm


analysis, we will also cover several specific problems and general
design paradigms. Toward the end of the quarter, we will also
examine heuristic techniques often used in practice, even though in
many cases formal theoretical results are not known.

We will focus on the theoretical and mathematical aspects in class


and on the homework assignments. But because one gains a deeper
understanding of algorithms from actually implementing them, the
course will include a substantial programming component. More
details will be available when the first programming assignment is
given.

As you can see from the preliminary list of topics (included below),
we will be covering a great deal. I expect the course to be
challenging, both in terms of the workload and the difficulty of the
material. You should be prepared to do a lot of work outside of class.
The payoff will be that you will learn a lot of both useful and
interesting things.

Prerequisites

Students should be able to program in a standard programming


language; C or C++ is preferred (but not mandatory). Some
mathematical maturity also will be expected; students should have
some idea of what constitutes a mathematical proof and how to
write one. Some knowledge of basic probability will also be helpful.

Assessment

Your performance will be measured in four ways. (The percentage


contributions to your grade given below are approximate and
subject to change.)

Problem sets (30%): There will (likely) be five problem sets. [We may
experiment with more, but shorter, problem sets this year.] They will
generally be due one week after they are given out. These sets will
primarily be mathematical and/or theoretical in nature. These
assignments are governed by the collaboration policy, given below.
Programming assignments (20%): There will be 3 programming
assignments. For these assignments you may work with another
student if you choose. You may not work with the same partner on
all 3 assignments. Note that working in pairs is not mandatory.
Generally you will have two weeks for programming assignments.
You must electronically submit your code and your write ups.
Midterm Exam (20%): There will be one exam approximately 1/2 of
the way through the course.
Final Exam (30%): There will be a final exam.
All assignments will be due at the beginning of class on the
appropriate day. Assignments will not be accepted late with the
exception of medical emergencies or similar exceptional
circumstances that must be discussed in advance with the
instructor. Please remember it is better to turn in an incomplete
assignment rather than no assignment. (Some students somehow
would not rather turn in an incomplete assignment, which makes no
actual sense.) All assignments should be turned in electronically, as
pdf or text files. You should have a scanner available, or be familiar
with LaTeX, or otherwise be ready to deal with turning in pdfs of
mathemetical work. (LaTeX is highly, highly recommended)

Das könnte Ihnen auch gefallen