CS 125 - Computability and Complexity


I am teaching assistant for CS 125 — Computability and Complexity — fall semester 2019. I took this class in spring of 2015 with Prof Skalka and enjoyed it very much!

Here is a link to Prof Ling’s course page and to Webber’s page for Formal Language.

Office hours for CS 125 are

  • Monday, 8:30 AM - 9:30 AM
  • Tuesday, 10:00 AM - 11:00 AM
  • Wednesday, 11:00 AM - 12:00 noon
  • Wednesday, 2:00 PM - 3:00 PM (Filip Saulean)

or by appointment. My office is E332 Innovation Hall, but office hours will be in E338, the common area immediately outside E332.

Please feel free to email with questions to clayton dot cafiero at (you know the rest)!

Topics - Formal languages and expressiveness. Chomsky hierarchy. Finite automata. Turing completeness and Church’s Thesis. Decidability and tractability. Complexity classes and theory of NP completeness. Prerequisites: CS 064 or MATH 052. Co-requisite: CS 124.

About the image - The image above is a detail from Roman Verostko’s Manchester Illuminated Universal Turing Machine, #23. The work was executed in 1998, and is a 30” by 22” pen-plotted drawing with gold leaf. It resides in the St Vincent Archabbey and College Legacy Collection, in Latrobe, PA. Verostko works in the intersection of visual arts and computer science. For more information, visit his website. Versostko’s work was featured in Art by the Numbers, by Stephen Ornes, Scientific American, August 2018, Vol. 319(2), p. 68(6).

  • Homework #6 Results

    Homework #6 Results and Key

    Mean: 82.4%; standard deviation: 21.9%

    Most did quite well. Scaffolding provided by the textbook was no doubt a factor.

    Many points were lost when folks did not follow instructions. If asked to use the Pumping Lemma, use the Pumping Lemma. If asked to use Theorem 11.1, use Theorem 11.1.

    Please write complete proofs. Convincing your grader that you understand how the Pumping Lemma works is one thing. Convincing your grader that you can write a proof that will convince someone else that the language {} is not regular is quite a different thing. You need to do both.

    A professor once told me: “When you write a proof, you must touch my heart. You must make me believe. You must make me believe in my heart that it is true.” Guess which professor this was. You have one guess.

    Please write legibly or type. If one cannot read your work, you will lose points.

    No more fringe. I will take off points on all future homework if there’s spiral bound fringe attached or if your work is not stapled in the upper left-hand corner.

    Answer key can be downloaded here.

  • Exam #1 Results

    Exam #1 Results and Key

    Mean: 65.6%; standard deviation: 19.8%

    Answer key can be downloaded here.

  • Homework #4 Results

    Homework #4 Results and Key

    Mean: 62.8%; standard deviation: 21.9%

    Answer key can be downloaded here.

    PLEASE, PLEASE, PLEASE write legibly. If one cannot read your work, you will lose points.

    Here are box-and-whiskers plots for the first four homeworks.


  • Homework #2 Results

    Homework #2 Results and Key

    Mean: 76.1%

    Standard deviation: 17.6%

    Answer key can be downloaded here.

  • Automaton HORROR

    The textbook (Webber) makes a grievous error in each and every drawing of a finite automaton. Were I grading this textbook, I’d be inclined to mark every such diagram as wrong! Arrows indicating transitions should touch states at both ends. They should leave a state and enter a state. The casual graphic treatment given in the textbook is just plain wrong. Some of you have taken this a step further and you have arrows and states floating in empty space with very little to indicate whence each arrow cometh and where it goeth. No, no, a thousand times NO!