Your browser **doesn't support the features required** by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest **Chrome**, **Safari** or **Firefox** browser.

**CIS 115**

Universal Computers

**Herman Hollerith**

Image Source: Wikipedia

**Punched Cards**

Image Source: Wikipedia

**Hollerith Tabulating Machine**

Image Source: Wikipedia

Image Source: Wikipedia

Image Source: Wikipedia

Image Source: Wikipedia

**IBM Type 285**

Image Source: Wikipedia

**Mark I**

Image Source: Wikipedia

**ENIAC**

Image Source: Wikipedia

**Top Secret Rosies**

Female Computers in WWII

Available for Loan

**What is a Universal Computer?**

**What is a Universal Computer?**

A universal computer can simulate ANY other real-world computer given infinite time and infinite memory

**Alan Turing**

Image Source: Wikipedia

**Turing Machine**

Image Source: Wikipedia

**Turing Machine Instructions**

- Move Left 1
- Move Right 1
- Write 0
- Write 1
- If 0, Go to #
- If 1, Go to #
- Go to #
- Stop

**Turing Machine Example**

Start with 2 items on a tape

- If 1, go to #5
- Move left
- If 0, go to #9
- If 1, go to #6
- Move Left
- Move Left
- Write 1
- Stop
- Move Left
- Write 0
- Stop

∨ Or

**Turing Machine Example**

Start with 2 items on a tape

- If 0, go to #7
- Move left
- If 0, go to #8
- Move Left
- Write 1
- Stop
- Move Left
- Move Left
- Write 0
- Stop

∧ And

**John Von Neumann**

Image Source: Wikipedia

**Von Neumann Architecture**

Image Source: Wikipedia

**Assignments**

- Read and be prepared to discuss:
*Pattern on the Stone*Chapter 5: Algorithms & Heuristics

- Blog 2: Algorithms - Due
*Monday*2/15 10PM - Scratch Project 1 - Due 2/9 10PM

**Blog 2: Algorithms**

There are many important algorithms in Computing Science. In fact, we’re going to learn about many of them later in this class. For now, however, I’d like you to pick an algorithm from Wikipedia’s list of algorithms (https://en.wikipedia.org/wiki/List_of_algorithms) and write about it. Some things you can cover:

- Where did this algorithm come from?
- How does it work?
- What makes it special or unique?
- Are there other algorithms that achieve the same or similar outcome?
- Could you do this algorithm manually? Or does it require a computer?
- How does this algorithm relate to what we’ve already read in the textbook? Did the textbook help you understand how this algorithm works? (textbook references)
- Where can this algorithm be found in the real world? (outside reference)

**Scratch Turing Machine**

- Download the starter file from KSOL
- Build a 3-State, 2-Symbol

Busy Beaver in Scratch - Record the final state and output of the Turing Machine

**Lists in Scratch**

Get an Item |

Set an Item |

**Turing Machine Blocks**

**Turing Machine - Invert Bits**