# 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):

- Download the Universal Turing machine of Lucas and Jarvis (see also their explanatory webpage if you’re interested).
- Create a LastBtoA machine, similar to LastTtoA from the previous class, but using only the alphabet
`a,b`

(and blanks). If this isn’t clear, you can also use the provided version of LastBtoA. We will use LastBtoA as an input to the Lucas and Jarvis Universal Turing machine. - Encode LastBtoA so that it is suitable for input to the Lucas and Jarvis Universal Turing machine. An explanation of the encoding is provided. Lucas and Jarvis provide another explanation on their website.
- Test your encoding using the Universal Turing machine and an appropriate input string. In JFLAP, the best way to run this test is to first save your input to a text file, then use the “multiple inputs (transducer)” option from the “input” menu.

## Class 5

Required reading: WCBC Chapter 5.

To download JFLAP, follow the instructions at jflap.org (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,

- experiment with binary-incrementer.jff
- Create and test the basic version of LastTtoA (fig 5.3)
- Create and test the abbreviated version of LastTtoA (fig 5.6)
- Create and test a machine that processes genetic strings, changing every “c” to a “g” and every “g” to a “c”
- Optional extras: Create a machine that accepts any string of length 10 or more that also contains an “a”.

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: switchAndConcat.py, switchAndConcat1Param.py. (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:

- Always use Version 3.x of Python for this course
- You can download Python 3 and install it on your own laptop etc.
- Python is also available on all department iMacs in Tome:
- use the search functionality (top right of the desktop) to open IDLE with Version 3.x of Python
- you can ignore any warnings about the version of Tcl/Tk

Another option is to use an online Python environment such as https://repl.it/new/python3. Here is some code to paste in and experiment with:

```
def containsGAGA(inString):
if 'GAGA' in inString:
return 'yes'
else:
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.