Syllabus

Overview

What can a computer do? What problems can be solved and are some more difficult than others? Are there problems that a computer cannot solve?

In this course, you will learn to analyze computational problems within formal mathematical models of computation and begin to understand answers to these questions.

The textbook for this course is Introduction to the Theory of Computation by Michael Sipser -- we will be using the second edition. As in the text, the course will roughly be divided into three parts:

In the first part, "Automata and Languages," you will be exposed to limited formal models of computation. This will allow you to gain experience reasoning within a mathematical model and proving properties about it. During this part, we will be learning about regular languages and context-free languages. How much can be expressed in each type of language?

The second part, "Computability Theory," explores the question of what limitations a computer has when solving problems. Are there problems that a computer provably cannot solve?

Finally, we will look at "Complexity Theory" and begin to reason about a formal notion of "how difficult" a problem is. Are some problems easier than others? Are some of the same "difficulty"?

Approach

The course activities are structured to help you engage with the material:

My goal is to create an inclusive learning environment that provides the structure and support to help you successfully understand models of computation and their limits. It is your responsibility to utilize the offered resources and undertake the work that optimizes your learning experience. By taking ownership, you will leave this course with tools that can assist in your academic and professional pathway. The grade breakdown is intended to strategically guide effective learning.

The instructor and students in CS 311 are expected to be respectful, inclusive of all students, and to not discriminate. Mount Holyoke resources on diversity, equity, and inclusion can be found here. Bias incidents can be reported here. Students are encouraged to bring concerns or feedback to the attention of the instructor.

Course logistics

Grading 

Lateness policy


It's important to keep up with the content and pacing of the course. I recognize that sometimes unpredicted situations arise that may prevent you from submitting an homework. Therefore, your lowest homework grade will be dropped. In addition, you will have 2 additional days (48 hours) to submit without a consequence to your grade. After that, I will calculate your grade according to this chart:

Homework logistics

Computer science is a subject that builds up on itself. To encourage you to continue to deepen your understanding of a topic, you will perform a written reflection on each homework. Solutions will be released on moodle along with the homework; you should not look at the solutions until you have completed the work. It is up to you to decide if you want to review each problem’s solution as you go or wait until you’ve completed the whole homework.

You may revise your work after reviewing the solutions and before submitting your final version. If you do so, you must articulate how you used the solutions to revise your original work as part of your reflection. Failure to do so is a violation of the Honor Code. You may use your revised work for your self-assessment mark.

When you submit the homework, you must include a self-assessment and reflection:

Each problem on the homework will be graded on a 3 point scale, analogous to the self-assessment rubric. The grade for the entire homework will be weighted with 75% calculated from the average of the problems and 25% from the quality of your self-assessment/reflection.

Collaboration

Submission

Feedback and grading

Additional course information

Accommodations

Disability Services is the office on campus that determines academic accommodations for students with disabilities. If you need official accommodations through Disability Services, you have a right to have these met and kept confidential. Please contact Disability Services, located in Mary Lyon Hall 3rd Floor, at 413-538-2634 or disability-services@mtholyoke.edu. If you are eligible for academic accommodations, you will be provided with an accommodation letter. Once you receive your accommodation letter, I would like to meet with you and discuss these approved accommodations and our class. For more information on who might be eligible for accommodations and the application process please see the Disability Services website (https://www.mtholyoke.edu/disability-services).​​​​​

Title IX/Responsible Reporter:

If you or someone you know has been a victim of discrimination, harassment or violence based on sex or gender and you would like to talk to someone about our resources, please contact the Title IX Coordinator, Shannon Da Silva at ​titleixofficer@mtholyoke.edu​. 

As a faculty member, I am a responsible reporter for any information I learn that may be a violation of our Gender-based and Sexual Misconduct Policy. This means that I will need to share this information with our Title IX Coordinator, Shannon Da Silva. This could be anything related to sexual assault, dating violence, stalking or sex or gender-based harassment. If you are experiencing any of these things and you want to talk with someone who is not a responsible reporter, I can help direct you to private and confidential resources on campus (Counseling Service, Health Services, and Alcohol and Drug Awareness Project. These offices have a legal mandate for confidentiality. These offices are not required to turn over identifying information to the Title IX coordinator but may provide anonymous data to the Title IX coordinator for reporting requirements of the Clery Act). 

Academic Integrity & Honor Code

Mount Holyoke College is a community of students, faculty, staff, and administrators committed to free inquiry and the pursuit of knowledge in the tradition of the liberal arts. The decision to join this academic community requires acceptance of special rights and responsibilities that are essential for its effective functioning and the realization of its mission. All members of the community share the responsibility to uphold the highest standards of academic integrity. 

I expect all your work to abide by the MHC Honor Code: “I will honor myself, my fellow students, and Mount Holyoke College by acting responsibly, honestly, and respectfully in both my words and deeds.” Any work that does not will be reported to the Academic Honor Board. For more detail on what constitutes an academic violation of the Honor Code, please see the College ​Academic Rights and Responsibilities webpage

More specifically: 

The Computer Science Department follows the Mount Holyoke College Honor Code. Work submitted for grading must be entirely your own, unless you were instructed to work in groups. The purpose of course assignments is to practice skills, gain a deeper understanding of the course material, and apply that knowledge to new situations. Assignments are designed to challenge you, stimulate critical thinking, and help you understand the concepts related to the course. Your grade is a reflection of your understanding of the material. 

We recognize that collaboration can help you master course material. In fact, there are certain ways in which we will encourage you to collaborate. These include: 

However, you must do all write-ups on your own. Writing solutions on your own will test and demonstrate your mastery of course material. 

Looking at solutions from other students or any other source (including the web), or collaborating to write solutions to individual work, is considered a violation of the honor code. All suspected violations will be referred to the academic honor board. If you are uncertain whether something is allowed, it is your responsibility to ask.

If you have engaged in any of the above acceptable collaboration activities for an assignment, you MUST acknowledge the classmates or TAs with whom you spoke – this should be done as a note when you submit your work.

Note that the Association for Computing Machinery has a strong Code of Ethics and Professional Conduct.  At this site you can read both the current Code from 1992 and the draft of the new 2018 version.

Honor code dos and don'ts

These lists are intended to clarify what types of behaviors are and are not generally permissible. Follow these guidelines unless specifically directed otherwise. (clarify if uncertain)

Do:

Don’t:

Audio/Visual Recording Policy 

To encourage active engagement and academic inquiry in the classroom, as well as to safeguard the privacy of students and faculty, no form of audio or visual recording in the classroom is permitted without explicit permission from the professor/instructor or without a letter from AccessAbility Services, signed by the faculty member, authorizing the recording as an accommodation. Authorized recordings may only be used by a student who has obtained permission and may not be shared or distributed for any reason. Violation of this policy is an infraction of the Mount Holyoke Honor Code and academic regulations and will result in disciplinary action. 

Thanks to Randy Shull for so generously letting me use his notes from his version of this course!