Week 3

Week 3: Circuits and Sugar

The main goals for Week 3 are to:

  • Show how simple models of computing can result in complex behavior.
  • Begin building a bridge from theoretical models of computing (like straightline programs and boolean circuits) to practical implementations of computing (like Python and integrated circuits).
  • Explore the powers and limitations of a model of computing, including being able to understand the details of how to use that model, and why it is defined in the way chosen.

Schedule

Day “Monday” Cohort “Tuesday” Cohort “Wednesday” Cohort “Thursday” Cohort “Friday” Cohort
Wed 8 Sept Preparation (Week 2) (Week 2) (Week 2) (Week 2)
Thurs 9 Sept Preparation Preparation (Week 2) (Week 2) (Week 2)
Fri 10 Sept Preparation Preparation Preparation (Week 2) (Week 2)
Sat 11 Sept Prep Cohort Meeting Preparation Preparation Preparation (Week 2)
Sun 12 Sept Revision Prep Cohort Meeting Preparation Preparation Preparation
Mon 13 Sept Assessed Meeting Revision Prep Cohort Meeting Preparation Preparation
Tues 14 Sept Writeup Due Assessed Meeting Revision Prep Cohort Meeting Preparation
Wed 15 Sept (Week 4) Writeup Due Assessed Meeting Revision Prep Cohort Meeting
Thurs 16 Sept (Week 4) (Week 4) Writeup Due Assessed Meeting Revision
Fri 17 Sept (Week 4) (Week 4) (Week 4) Writeup Due Assessed Meeting
Sat 18 Sept (Week 4) (Week 4) (Week 4) (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): adders.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.

Monday Class

In class on Monday September 13 we discussed motivations for syntactic sugar and together worked on a problem similar to lookup (from the videos) and Add (from the problem set). You can find the slides here and you can find a recording of the lecture on collab.

Write-up Problem

After the Assessed Cohort Meeting, your Cohort Leader will select one problem that your cohort needs to write-up and submit. The write-up is due by 11:59pm on the day after your assessed cohort meeting (see the schedule above).

Download the Problem Set 3 Template [zip] and upload to overleaf. From there, add your solution to the appropriate .tex file for the problem assigned. Modify week3.tex to comment out \usepackage{toc} and instead be \usepackage[response#]{toc} where # refers to the number of the problem assigned.

Reading

Material in this week’s lectures parallels with:

Videos

You can play all the videos using this playlist, but don’t forget to take breaks:Week 3 Playlist

The Story So Far (02:54)

This video introduces graphs, including their definition, notation, and vocabulary. If you feel comfortable with graphs already, I encourage you to skip this video.

Introduction to Graphs (15:43)

Components of a Computing Model (1:58)

Representing Circuits (14:42)

Circuit Execution (12:41)

Syntactic Sugar (9:13)

De-Sugaring (11:40)

Constructing Conditionals (10:37)

Lengthening Lookup (12:14)

Cost of LOOKUP (3:33)