EECS2001: Introduction to Theory of Computation

Course Description

CSE 2001 3.00 Introduction to the Theory of Computation The course introduces different theoretical models of computers and studies their capabilities and theoretical limitations. Topics covered typically include the following.

Learning Outcomes

In this course, you will be invited to develop your ability to think clearly and carefully about computing, and to improve your skills in expressing those thoughts about computing in a precise way. By the end of this course, you will be able to do the following things.

How to Learn This Material

Some of the skills that you will develop in this course may be quite new to you, and different from things you have done in previous courses. This is good: it means you're learning new and (I hope) exciting things. However, it means that you will need practice to master them. Just participating in classes isn't enough. There are suggested exercises from the textbook. Web pages for this course in previous terms also include many more problems to work on. Do lots.

You learn by struggling with problems. However, if you get too stuck or don't know how to begin, help is available. Talk to your classmates (however; see the notes below about academic honesty regarding discussing assignment problems with others). Go to office hours; the instructor and TA are there to help you! You also learn by making mistakes and getting feedback about them. Just make sure that you use the feedback to improve your understanding.

Groups of students can learn a lot by explaining their solutions to the suggested exercises from the textbook to one another and critiquing the solutions of others. After all, learning how to explain solutions clearly is one of the learning objectives of this course. Seeing where other students' solutions are unclear to you helps you make your own explanations clearer. Be aware that a problem may have many different correct solutions; just because someone's solution is different from yours doesn't necessarily mean that one of them is wrong.

It takes time to build new skills, so it helps if you work on exercises regularly: don't leave all the work to the days right before a test.

Sometimes students ask for more exercises with worked-out solutions. (The textbook has some, but maybe not enough.) There is a whole shelf of textbooks that cover the material of this course in the library (some are recommended below), and many have more examples or exercises with solutions.

Academic Honesty

It is important that you look at the departmental guidelines on academic honesty.

The solutions you hand in should be the work of you and your partner (if you have one). Thus, if you discuss an assignment problem with anyone other than your partner for that assignment, you may discuss only the general approach to solving the problem, not the details of the solution, and you should not take any written notes away from such a discussion. Also, you must list on the cover page of your solutions any people (besides your partner) with whom you have discussed the problems. While writing your solutions to hand in, you may look at the course textbook and your own lecture notes, but no other outside sources.