Introduction to the Theory of Computation (CS3240)

Fall 2021 — Safe Return to Campus: https://www.msudenver.edu/safe-return-to-campus/
Fall 2021 — Syllabi Addendum for COVID-19, Fall 2021 Semester: https://www.msudenver.edu/wp-content/uploads/2021/08/Syllabi-Addendum-for-COVID-19-Fall-2021-FINAL.pdf

Course Information

Title: Introduction to the Theory of Computation
Institution: Metropolitan State University of Denver
Course ID: CS 3240, §1 & §2
Semester: Fall 2021
 §1 : August 23 – October 16
 §2 : October 18 – December 18
Meetings: Tuesdays & Thursdays 4:00PM – 5:50PM
Location: AES 285
Credit Hours: 2
Prerequisites: CS 2050 and MTH 3170 with grades of "C−" or better
Policies: http://www.jodypaul.com/cs/theory
Lectures/Handouts: http://www.jodypaul.com/cs/theory/resources
Moodle Site: http://gouda.msudenver.edu/moodle
Instructor: Dr. Jody Paul (schedule & office hours)
E-mail: jody @ computer.org
Office: Virtual (schedule & office hours)
Students are required to attend all sessions during the first week of class. (See https://msudenver.edu/cs/policies)

Course Description

This course provides an introduction to the theory of computation through exploration of language theory and computability. It is concerned with the following:

  • What are the fundamental capabilities and limitations of computers?
  • What makes some problems computationally hard and others easy?

Language theory explorations will include expressions and formal representations of multiple categories of languages: regular, context-free, and recursively enumerable. Basic concepts in computability include: Universal Turing Machines, unsolvable problems, and the tractability of problems (P, NP, NP-Completeness).

Participants are expected to have good working facility with the mathematical concepts and tools addressed in the prerequisite course MTH 3170 and its cascaded prerequisites. This course makes heavy use of formal logic, set theory, and formal proofs for working with functions, relations, graphs, induction, and recursion. Knowledge and skill in computer programming are likewise presumed, commensurate with the concepts and skills from the prerequisite course CS 2050 and its cascaded prerequisites.

Students generally find they need to invest significant additional time and practice outside of class in order to achieve success. (For 7-week sessions, 12 hours outside class each week is typical.)


Textbooks & Software

Required

Cover of Sipser book Introduction to the Theory of Computation (Third Edition)
by Michael Sipser
Cengage Learning (2012); ISBN 113318779X
REQUIRED

Students achieving the greatest success in this course report using this strategy: first, reading the associated textbook chapter; second, viewing/attending the lecture presentations; third, rereading the textbook chapter.

 

Cover of JFLAP book JFLAP: An Interactive Formal Languages and Automata Package
by Susan H. Rodger and Thomas W. Finley
Jones & Bartlett Learning (2006); ISBN 0763738344
Free PDF file
REQUIRED

 

Pushdown Automaton JFLAP (Version 7.1) [OER]
A package of interactive graphical tools that aid in learning the basic concepts of formal languages and automata theory
http://www.jflap.org
Free download
REQUIRED

Note that JFLAP-format files are required for some assignments. In addition, you are expected to use JFLAP to check your understandings as well as to verify the correctness of your work prior to submitting the results.

 

Optional/Recommended

Cover of Critchlow book Foundations of Computing (Second Edition) [OER]
by Carol Critchlow and David Eck
Creative Commons CC BY-NC-SA 4.0 (2011)
Free PDF file
OPTIONAL

This optional book gives an alternative presentation of most, but not all, of the required content of this course.


Course Policies

Grading

The final course grade is determined by combining the scores of assignments (programs and exercises), in-class quizzes, and the final exam. Here are the relative weights of each assessment category.

55% Programs & Exercises
15% In-Class Quizzes
30% Final Exam
Pie chart visualization of score distribution

Letter grades are based on the following conversion from total score as percentage of maximum total score possible.

97%  ≤  A+
92%  ≤  A  <  97%
90%  ≤  A− <  92%
87%  ≤  B+ <  90%
82%  ≤  B  <  87%
80%  ≤  B− <  82%
77%  ≤  C+ <  80%
71%  ≤  C  <  77%
68%  ≤  C− <  71%
60%  ≤  D  <  68%
        F  <  60%

Class Sessions & Websites

You are expected to prepare in advance for class sessions (reading, exercises, practice).

Substantial information is disseminated during class sessions or via the course websites. You are responsible for knowing this information whether or not you attended the sessions or accessed the websites.

Quizzes and the final exam are administered during regularly scheduled, synchronous, sessions.

In addition to important course and domain information, the course support website also provides the vehicle for managing assignments and assessment.

Assignments

Extensive practice has proven necessary to achieve the required knowledge and skills associated with fundamental computer science theory and correlates with successful performance on exams. Assigned exercises target the application of concepts, providing opportunities to increase your understanding and help you to identify questions to raise during class sessions.

You are expected to work through all assigned exercises and are strongly advised to attempt additional exercises to develop facility with the concepts and techniques.

Some assignments also require submission and contribute to the course grade. Details regarding assignments are provided in class or on the course websites. Assignments explicitly state submission requirements, including the use of website submission form fields (e.g., "Online text") and the number, type, and names of any uploaded files.

Online Submission via Website

Assignments must be turned in using the course Moodle website unless explicitly specified otherwise. In particular, email and hardcopy will not be accepted in lieu of website submission.

Due Dates/Times

Assignments may be submitted at any time prior to the published due date/time.

N.B. No assignment submissions will be accepted after the published due date/time.

Because there are so many risks to completion and submission, you are strongly encouraged to target completion and submission of assignments no less than 24 hours prior to the published due date/time. Computer systems and networks commonly experience "down times". Do not depend on systems, including the course support servers, to be consistently available immediately preceding a deadline. In addition, the instructor and learning assistants may not be available to address questions directly referencing a specific assignment in the 24 hours preceding its deadline.

Illness, crises, and emergency situations will be dealt with on a case-by-case basis in accordance with University, School, and Departmental policies.

Requirements-Based Scoring, Deliverable Formats, and File Naming

Assignment descriptions explicitly state necessary submission requirements, both content and structure, including appropriate use of "Online text" and the names and types of any uploaded files.

Here are some general file format specifications that apply unless overridden by an assignment specification:

  • JFLAP program files must use the extension .jff
  • Java program files must use the extension .java
  • Text-only documentation should be plain (unformatted) text using ASCII or UTF-8 encodings and no attachments or embedded files.
  • Files are uploaded individually, not as an archive.
  • Specifically unacceptable file formats include: Microsoft Word, Apple Pages, Microsoft PowerPoint, Apple Keynote, and Rich Text Format.

If you are unsure about the acceptability of a file format or the specification of file name, please check with your instructor well before the submission due date. Submissions are processed using software that depends on exact match of file names and specified formats.

  • A deliverable submitted in an incorrect format is equivalent to no submission.
  • A file submission with an incorrect name is equivalent to no file submission.

If your submission does not follow the requirements specified for the assignment, exactly matching filenames and formats, your score on the assignment will be zero (0). (Submissions are processed using software designed to match the assignment specifications. Submissions that do not match the specifications do not get packaged and presented for review and scoring.)

 

Collaboration & Citation of Sources

Collaboration is encouraged and regarded as an essential aspect of learning Computer Science. Collaboration and discussion with fellow students and instructors concerning course information, materials, assignments, projects, proofreading, and concept exploration is strongly encouraged. You are not expected to learn the course content or work on assignments and projects in isolation on your own.

That said, you must generate your own submissions, reflecting your individual effort, for every assignment you turn in to be assessed, even when the outcome arises from collaborative effort.

You must acknowledge the specific people with whom you collaborated.

If you consult any sources, you must explicitly reference the sources and indicate where and how they apply.

Turning in work that does not credit collaborators, includes quotations without corresponding citations, or does not properly cite sources, must be treated as academic dishonesty. All incidents of suspected dishonesty will be reported to the department and forwarded to the Dean of the college as appropriate. Consequences may include a score of 0 on the assignment, a grade of "F" for the course, academic probation, or dismissal from the institution. This is a very serious matter and should not be taken lightly. If you have any uncertainty or concerns, please discuss them with your instructor or your advisor.

Note that collaboration is not acceptable during any quiz or exam.

Context

In an ideal world, the knowledge and practices of Computer Science would be objective. However, much of knowledge is subjective and representative of a small set of privileged voices. In this class, we will draw on works deriving from a diverse group of scholars and practitioners. Even so, limits will still exist on this diversity. I acknowledge that it is possible that there may be overt and covert biases in material because of the lens through which it was written. Integrating a diverse set of experiences is important for a more comprehensive understanding of Computer Science. I would like to discuss issues of inclusion and diversity in Computer Science as part of the course from time to time.

Please contact me directly or submit anonymous feedback (e.g., via Moodle) if you have any suggestions to improve the quality of the course materials.

Furthermore, I would like to create a learning environment that supports diversity (of thoughts, perspectives, and experiences) and honors your identities (background, gender, class, sexuality, religion, ability, …). To help accomplish this:

  • Please let me know your preferred name and set of pronouns (if any); especially if this differs from what appears in your official MSU Denver records.
  • If you feel like your performance in the class is being affected by your experiences outside of class, please don’t hesitate to talk with me. I want to be a resource for you. Remember that you can also submit anonymous feedback (e.g., via Moodle). If you prefer to speak with someone outside of the course, MSU Denver’s Campus Support Programs webpage is a useful resource.
  • I am continually in the process of learning and discovering diverse perspectives and identities. If I or a classmate says or writes something that makes you feel uncomfortable, please talk to me about it.
  • As a participant in discussions, you also should strive to honor the diversity of your classmates.


Official Information

Official policies applicable to all courses may be accessed at https://msudenver.edu/cs/policies

Students are responsible for full knowledge of the provisions and regulations pertaining to all aspects of their attendance at MSU Denver, and should familiarize themselves with the following policies provided on that website:
  • General University Policies
  • Grades and Notations including WITHDRAWAL FROM A COURSE, ADMINISTRATIVE WITHDRAWAL, and INCOMPLETE POLICIES
    Students should be aware that any kind of withdrawal can have a negative impact on some types of financial aid, including scholarships.
  • Accommodations to Assist Individuals with Disabilities
  • Academic Dishonesty
  • Class Attendance on Religious Holidays
  • Prohibition of Sexual Misconduct
  • Electronic Communication (Student Email) Policy

MSU Denver Academic Calendar: http://www.msudenver.edu/events/academic/
Additional official dates and deadlines, including the last dates to withdraw and holidays

MSU Denver Student Rights and Responsibilities: https://catalog.msudenver.edu/content.php?catoid=35&navoid=2336