Automata, computability, and complexity
Bachelor's degree
In Maynard (USA)
Description
-
Type
Bachelor's degree
-
Location
Maynard (USA)
-
Start date
Different dates available
This course provides a challenging introduction to some of the central ideas of theoretical computer science. Beginning in antiquity, the course will progress through finite automata, circuits and decision trees, Turing machines and computability, efficient algorithms and reducibility, the P versus NP problem, NP-completeness, the power of randomness, cryptography and one-way functions, computational learning theory, and quantum computing. It examines the classes of problems that can and cannot be solved by various kinds of machines. It tries to explain the key differences between computational models that affect their power.
Facilities
Location
Start date
Start date
Reviews
Subjects
- Computational
- Algorithms
- Computing
- Credit
Course programme
Lectures: 2 sessions / week, 1.5 hours / session
Recitations: 1 session / week, 1 hour / session
This course provides a challenging introduction to some of the central ideas of theoretical computer science. It attempts to present a vision of "computer science beyond computers": that is, CS as a set of mathematical tools for understanding complex systems such as universes and minds. Beginning in antiquity, with Euclid's algorithm and other ancient examples of computational thinking, the course will progress rapidly through finite automata, Turing machines and computability, decision trees and other concrete computational models, efficient algorithms and reducibility, NP-completeness, the P versus NP problem, the power of randomness, cryptography and one-way functions, computational learning theory, interactive proofs, and quantum computing and the physical limits of computation. Class participation is important, as the class will include discussion and debate about many of these topics.
We assume that you have taken 6.042 Mathematics for Computer Science, or have equivalent mathematical preparation. In particular, we will assume you have basic "mathematical maturity": i.e., that you are comfortable both reading and writing mathematical proofs.
There is no required textbook for the course. However, there are three recommended books:
Moore, Cristopher, and Stephan Mertens. The Nature of Computation. Oxford University Press, 2011. ISBN: 9780199233212.
Sipser, Michael. Introduction to the Theory of Computation. Course Technology, 2005. ISBN: 9780534950972. Covers most material from the first half of the course.
Arora, Sanjeev, and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press, 2009. ISBN: 9780521424264. Covers most material from the second half (as well as more advanced material that won't be covered in this course).
There will be 6-7 problem sets, which will generally be due a week and a half after being assigned. Late problem sets will receive half credit, except in special circumstances such as illness or family emergency.
Problem set problems will often ask you to prove theorems, but we're looking for clarity of understanding rather than "rigor for rigor's sake." So for example, a brief verbal description of an algorithm is better than complicated spaghetti code; and a clear explanation of how you tried to solve a problem and failed will earn partial credit, while obvious nonsense won't!
You are welcome to collaborate on problem sets, provided that (1) you write up your solutions individually, and (2) you list the names of all collaborators.
Students taking 6.045 will be graded on the following basis:
Don't show me this again
This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.
MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.
No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.
Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.
Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)
Learn more at Get Started with MIT OpenCourseWare
Automata, computability, and complexity