Semester.ly

Johns Hopkins University | EN.600.471

Theory of Computation

3.0

credits

Average Course Rating

(3.91)

This is a graduate-level course studying the theoretical foundations of computer science. Topics covered will be models of computation from automata to Turing machines, computability, complexity theory, randomized algorithms, inapproximability, interactive proof systems and probabilistically checkable proofs. Students may not take both EN.600.271 and EN.600.471, unless one is for an undergrad degree and the other for grad. [Analysis]Recommended Course Background: EN.550.171 or istructor permission.

Fall 2012

(4.0)

Fall 2014

(3.82)

Fall 2012

Professor: Vinodchandran Variyam

(4.0)

Students mentioned that the lectures were engaging, interesting, and helpful in making sure they understood the material thoroughly. The downside was that lectures were hard to follow, especially for students who were new to the topic. Some students also thought some assignments were poorly written or unclear. Students suggested having more practical examples or hands-on activities, as well as better feedback on homework. Students considering this course should have some probability and linear algebra background. They are advised to start assignments early, as the course is a lot of work and it’s easy to get behind.

Fall 2014

Professor: Xin Li

(3.82)

Students appreciated that this course taught core theoretical concepts they believed were particularly important to understanding computer science. Students thought the biggest weakness of the class was the textbook for the course, which they found was not as useful as it could have been. Students also believed that lectures were hard to fol ow at times. Students felt that the course could benefit from the instructor using PowerPoint slides during lectures. They thought it was important for people considering taking this class to know that the course emphasized theoretical aspects of computer science.