CS46: Theory of Computation

Spring 2018

Course Promises / Learning Objectives

By the end of the course, you will have developed the following knowledge and skills:

Above all, the goal of this course is to instill a deep understanding of the limits of computation, and how to think about these in a thorough and systemic way.

Student Responsibilities

CS46 is different from most other computer science courses, in that the course focuses on abstract thinking about problems, and does not ask you to implement many solutions in code. To succeed in this course, you should consistently do the following:

Academic Integrity

In this course, limited collaboration in planning and thinking through solutions to problems is allowed and encouraged, but no collaboration is allowed in writing up solutions. Your submitted write-up is your own. Please list your discussion partners and the extent of your discussions at the beginning of your write-up.

Note: in the following paragraphs, "code" refers to all homework solutions, including written programs but also proofs, analysis, written reports, etc.

Academic honesty is required in all your work. Under no circumstances may you hand in work done with (or by) someone else under your own name. Your code should never be shared with anyone; you may not examine or use code belonging to someone else, nor may you let anyone else look at or make a copy of your code. This includes, but is not limited to, obtaining solutions from students who previously took the course or code that can be found online. You may not share solutions after the due date of the assignment.

Discussing ideas and approaches to problems with others on a general level is fine (in fact, we encourage you to discuss general strategies with each other), but you should never read anyone else's code or let anyone else read your code. All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with an assigned partner. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.

Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook: "Because plagiarism is considered to be so serious a transgression, it is the opinion of the faculty that for the first offense, failure in the course and, as appropriate, suspension for a semester or deprivation of the degree in that year is suitable; for a second offense, the penalty should normally be expulsion."

We will routinely run plagiarism detection software on your lab assignment submissions.

The spirit of this policy applies to all course work, including code, homework solutions (e.g., proofs, analysis, written reports), and exams. Please contact me if you have any questions about what is permissible in this course.