Homepage for CSCE 355
Foundations of Computation
Spring 2021

This site is subject to update through the term. This page was last modified Friday April 9, 2021 at 14:41:49 EDT.

Time: MW 2:20pm - 3:35pm
Place: Virtually via Blackboard Collaborate (go to Blackboard and click on the Courses link)

The Current Syllabus

This syllabus has basic course information, objectives, contacts, schedules, policies, etc.

Course Notes

I will do my best to keep my COURSE NOTES current for the lectures. The date of the last update appears below my name on the title of the first page.

Course Lecture Scrolls

You can find the hand-written notes I write with each lecture (starting with January 20, 2021) HERE. (Please pardon the not-very-smart formatting. I blame MS OneNote.)


I will post announcements here from time to time in reverse chronological order (most recent appearing first).

(4/9/21) Here is a link to the programming project homepage. It currently only contains the links given in the previous announcement but will eventually include the test script and test file(s).

(4/8/21) Here is the handout for the programming project. I recommend reading it entirely before starting the project. Here are the project-supporting utilities mentioned in the handout. The test script and test files will be posted here when they are ready. The due date is April 22 (two weeks from today) at 11:59pm EDT via CSE Dropbox. Late submissions up to 24 hours late will be accepted with a 20% late penalty. No submissions will be accepted after that.

(3/24/21) Here is calc.c, the program I described on Monday 3/22.

(3/8/21) Here is ASSIGNMENT 3. Hand it in by March 16 to ensure feedback. Same mode of submission as ASSIGNMENTS 1 and 2, except that team submissions are now encouraged (see the intro to the assignment).

(2/17/21) Here is the statement of Test Rules that you must agree to for taking the exam remotely. If you cannot print it to sign it, you can instead include the statement, "I agree to abide by the Test Rules" along with your answers.

(2/4/21) Here is the answer key for most of the problems in Homework 2.

(2/6/21) Tutoring is available for this course through the College of Engineering and Computing. This Word document contains a QR code to get more information and make appointments. Ruth Patterson, Assistant Dean for Student Services in CEC, writes, "Students should use the attached QR code to access the list of available times and delivery options for each specific course. Note that Swearingen in-person tutoring is by appointment only, accessed through the QR code also."

(2/4/21) Here is ASSIGNMENT 2. Hand it in by February 10 to ensure feedback. Same mode of submission as ASSIGNMENT 1.

(2/4/21) Here is the answer key for Homework 1.

(1/22/21) The TA, Yang Ren, will be available during his office hours (MW 12:30pm - 2:20pm) in the usual course room on Blackboard Collaborate Ultra (the same course room you go to to see the lectures).

(1/20/21) Here is ASSIGNMENT 1. It is "due" February 1, submitted through CSE Dropbox. Generally, homework is not graded, but if you hand it in by the due date, you can get more timely feedback. Since the first midterm is around February 15 and is based on this and the next homework, I will post an answer key on the due date. You are welcome to hand this homework in earlier for earlier feedback.

Other Supporting Materials

There are a number of good alternate textbooks for this material. The one I use for the graduate-level version of this course (CSCE 551) is Michael Sipser, Introduction to the Theory of Computation (Third Edition). Cengage Learning, 2013. There is a great deal of overlap between the two classes, and Sipser's book gives a fresh, concise take on the subject. I like this text the best.

For a gentle introduction to proof techniques, I recommend the free, online book Book of Proof by Richard Hammack (2009). Much of what we do in the first couple of weeks is done in more depth in this book.

JFLAP is a free Java-based program for simulating and manipulating automata and Turing machines. Go to http://www.jflap.org, where you'll have the opportunity to download the software (JFLAP.jar, requiring Java 1.4 or later).

This page last modified Friday April 9, 2021 at 14:41:49 EDT.