Skip to the content.

Detailed schedule and resources

Class 28

Required reading: WCBC Ch18

Today’s PowerPoint: 18-conclusion.pptx.

Also today: exam review and independent homework on assignment J.

Class 27

Please complete the official feedback form for this course.

Required reading: WCBC Ch17

Today’s PowerPoint: 17-karps-problems.pptx.

Class 26

Required reading: WCBC Ch16

Today’s PowerPoint: 16-godels-theorem.pptx.

Class 25

Exam 2 – see exams page for details.

Class 24

Exam review for chapters 10-14. No required reading.

Class 23

Required reading: WCBC Chapter 15.

Today’s PowerPoint: 15-original-turing-machine.pptx.

Class 22

Required reading: WCBC Chapter 14, sections 14.6-7. Please also read the excerpt from Lance Fortnow’s book, The Golden Ticket (available on Moodle).

Fortnow discussion questions: fortnow-discussion-questions.docx.

Today’s PowerPoint (same as last time): 14-np-completeness.pptx.

Class 21

Required reading: WCBC Chapter 14, sections 14.1-5.

Today’s PowerPoint: 14-np-completeness.pptx.

Class 20

Required reading: WCBC Chapter 13, sections 13.5-end.

Today’s PowerPoint (same as last time): 13-polyreductions.pptx.

Clarification of what you are expected to understand: the details of the Tseytin transformation will not be tested in homework or exams. All other reductions in this chapter are examinable.

Class 19

Required reading: WCBC Chapter 13, sections 13.1-4.

Today’s PowerPoint: 13-polyreductions.pptx.

Warmup for today: warmup-class19.docx.

Class 18

Required reading: WCBC Chapter 12, sections 12.4-end.

Today’s PowerPoint (same as last time): 12-polycheck-and-npoly.pptx.

Warmup for today: warmup-class18.docx.

Class 17

Required reading: WCBC Chapter 12, sections 12.1-12.3.

Warmup for today: warmup-class17.xlsx.

Today’s PowerPoint: 12-polycheck-and-npoly.pptx.

Class 16

Please complete the mid-semester survey

Required reading: WCBC Chapter 11, sections 11.4-end.

Today’s PowerPoint (same as last time): 11-poly-and-expo.pptx.

Handout comparing the proof that the halting problem is undecidable with the proof that HaltsInExpTime cannot be solved in polynomial time: Proof-that-HET-not-in-poly.pdf. (optional enrichment)

Class 15

Required reading: WCBC Chapter 11, sections 11.1-11.3.

Today’s PowerPoint: 11-poly-and-expo.pptx.

Class 14

Exam 1. Covers WCBC Chapters 1-9.

Class 13

Exam revision – please bring questions to class and we will go over them. We can go over specific examples and/or general areas depending on student demand.

Class 12

Required reading: WCBC Chapter 10.

Today’s PowerPoint: 10-complexity-theory-basics.pptx.

Class 11

Required reading: WCBC Chapter 9, sections 9.5-end.

Today’s PowerPoint (same as last time): 09-finite-automata.pptx.

Optionally, you can gain familiarity with pumping lemma proofs by playing a game within JFLAP. Choose “regular pumping lemma” from the initial JFLAP window. Then choose “computer goes first” (the “you go first” option is also interesting and useful, but we don’t explain it further here). Choose one of the languages. Now your job is to force the computer to violate the pumping lemma. JFLAP’s notation is as follows: m is the pumping cutoff; w is the string in the language that will have some substring pumped; i is the number of times w will have a substring pumped; w gets partitioned as w=XYZ where Y is the substring to be pumped.

Class 10

Required reading: WCBC Chapter 9, sections 9.1-9.4.

Today’s PowerPoint: 09-finite-automata.pptx.

In-class JFLAP activity: activity-class10.docx.

Class 9

Required reading: WCBC Chapter 8.

Today’s warm-up exercise: warmup09.docx

Today’s PowerPoint: 08-nondeterminism.pptx.

Class 8

Required reading: WCBC Chapter 7, sections 7.6-end.

Today’s warm-up exercise: warmup08.docx

Today’s PowerPoint (same as last time, starting on slide 13): 07-reductions.pptx.

Class 7

Required reading: WCBC Chapter 7, sections 7.1-7.5.

Today’s warm-up exercise: warmup07.docx

Today’s PowerPoint: 07-reductions.pptx.

Class 6

Required reading: WCBC Chapter 6.

Today’s PowerPoint: 06-universal-programs.pptx.

Really nice online cellular automaton simulator.

Optional minilab (ungraded, but important and fun):

Class 5

Required reading: WCBC Chapter 5.

To download JFLAP, follow the instructions at (you will be asked to fill out a short form). The best version for this course is JFLAP7.1.jar from Jul 27, 2018.

If the JFLAP website is down you can get JFLAP on Moodle instead

If JFLAP won’t run when you click on it, open a terminal, navigate to the directory where you have saved the file JFLAP7.1.jar, then enter the command

java -jar JFLAP7.1.jar

(Of course, you need to have Java installed on your computer for this to work.)

Minilab (ungraded): using JFLAP,

Today’s PowerPoint: 05-turing-machines.pptx.

Class 4

Required reading: WCBC Chapter 4.

Today’s warm-up exercise: 04-warmup.docx

Today’s PowerPoint: 04-computational-problems.pptx.

Programs for experimenting with ESS and DESS:, (Remember to move these into your wcbc-programs-v1.1 folder.)

Class 3

Required reading: WCBC Chapter 3.

Handout for today: class3-handout.pdf.

Today’s warm-up exercise: 03-warmup.docx

Today’s PowerPoint: 03-impossible-programs.pptx.

Class 2

Required reading: Chapters 1 and 2 of WCBC.

Today’s PowerPoint: 02-computer-programs.pptx.

Class 1

The textbook is called What Can Be Computed?, which we abbreviate as WCBC.

Today we will go through the syllabus and an overview of the course, corresponding to WCBC Chapter 1.

Today’s PowerPoint: 01-intro.pptx.

If there’s time, we will try to run and edit some Python programs using IDLE. Key points:

Another option is to use an online Python environment such as Here is some code to paste in and experiment with:

def containsGAGA(inString): 
    if 'GAGA' in inString: 
        return 'yes' 
        return 'no' 

Here’s another one:

def multiply(inString): 
    (M1, M2) = inString.split()
    product = int(M1) * int(M2) 
    return str(product)

—- Last modified: Thu May 04 00:45:45 UTC 2023 by jmac.