Week 4: Universal gates and Evaluation
The main goals for Week 4 are to:
- Implement and use the EVAL function. This is our first exposure to a modul of computing which is able to simulate an instance of itself. This idea is fundamental to the practice of computer science, as it enables us to have arbitrarily reprogrammable machines which run with fixed hardware.
- Begin classifying functions by complexity (i.e. resources required to implement them).
- Reason about how theory and practice might differ from one another, and why that might be a good thing.
Peer Evaluation
Your first peer evalution is due with your week 4 writeup. Please complete it following these instructions: Peer Eval.
Schedule
Day | “Monday” Cohort | “Tuesday” Cohort | “Wednesday” Cohort | “Thursday” Cohort | “Friday” Cohort |
---|---|---|---|---|---|
Wed 15 Sept | Preparation | (Week 3) | (Week 3) | (Week 3) | (Week 3) |
Thurs 16 Sept | Preparation | Preparation | (Week 3) | (Week 3) | (Week 3) |
Fri 17 Sept | Preparation | Preparation | Preparation | (Week 3) | (Week 3) |
Sat 18 Sept | Prep Cohort Meeting | Preparation | Preparation | Preparation | (Week 3) |
Sun 19 Sept | Revision | Prep Cohort Meeting | Preparation | Preparation | Preparation |
Mon 20 Sept | Assessed Meeting | Revision | Prep Cohort Meeting | Preparation | Preparation |
Tues 21 Sept | Writeup Due | Assessed Meeting | Revision | Prep Cohort Meeting | Preparation |
Wed 22 Sept | (Week 5) | Writeup Due | Assessed Meeting | Revision | Prep Cohort Meeting |
Thurs 23 Sept | (Week 5) | (Week 5) | Writeup Due | Assessed Meeting | Revision |
Fri 24 Sept | (Week 5) | (Week 5) | (Week 5) | Writeup Due | Assessed Meeting |
Sat 25 Sept | (Week 5) | (Week 5) | (Week 5) | (Week 3) | Writeup Due |
Cohort Problems
These are the problems you should discuss in your Cohort Meeting, and everyone in your cohort should be prepared to present and discuss solutions to at the Assessed Cohort Meeting:
The problems are posted here and we think its a good idea to look at them early, but you’re not expected to be able to solve them until after doing the readings and watching the videos below.
The above problems include completing the function implementations in this python file (the comments in the file itself will guide you, please read everything linearly): eval.py.
If you already have python3 on your machine, you should be good to go for the programming problems. If you don’t, please follow these directions to setup Python.
Reading
- Ch. 4, Syntactic sugar and computing every function from the TOC textbook. In particular, we cover sections 4.4, 4.5, and 4.6 this week.
- Ch. 5, Code as data, data as code from the TOC textbook. In particular, we cover sections 5.1 through 5.5. We are skipping the optional section 5.2.1.
You can play all the videos using this playlist, but don’t forget to take breaks: Week 4 Playlist
These videos are edited from these cs3102 classes (we don’t generally recommend watching the unedited versions, but they are available if you want to):
-
Universality (covered in Spring 2020 on Feb 6): Video and Slides
-
Evalution (covered in Spring 2020 on Feb 11): Video and Slides
Week 4 Intro
Computing Any Finite Function
Making Zero and One
How Many Gates?
Introducing EVAL
Representing Programs
Defining EVAL
Bonus Video
The 10,000 Domino Computer (from Stand-up Maths)