Week 4

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

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

  1. Universality (covered in Spring 2020 on Feb 6): Video and Slides

  2. 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)