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) |
This course provides an introduction to the theory of computation through exploration of language theory and computability. It is concerned with the following:
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.)
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.
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
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.
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.
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 |
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%
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.
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.
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.
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.
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:
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.
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 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.
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:
Official policies applicable to all courses may be accessed at https://msudenver.edu/cs/policies
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