CS 145 Lecture 17 – Diversions and Bifurcations
Dear students, We’ve seen the computer as a calculator, crunching numbers. We’ve seen the computer as a chef, calling upon recipes of code. We’ve seen the computer as a philosopher, considering truths about our data. Now it’s time to let those truths drive our computer’s actions. We will see the computer as a pilot, navigating […]
CS 352 Lecture 18 – Alumem and Jumping
Dear students, The next homework requires doing some HDL tricks that I don’t think are necessarily intuitive. Rather than continuing to build on a wobbly foundation, let’s sketch out schematics for some of these components. We’ll visit these: DMux4Way, Inc16, LeastByte (which is not part of any homework), ALU, Bit, Register, RAM8, RAM64, and PC. […]
CS 491 Meeting 7
Dear students, We are in the working phase of developing our games, so most of our time will be spent giving weekly progress reports. Here are some questions we will probably ask you: What’s the riskiest part left to investigate in your endeavor? What three or more specific things will you accomplish before we meet […]
CS 145 Lecture 16 – Logic Cont’d Cont’d
Dear students, In the late 1800s, logician John Venn invented a diagram for showing ideas of logic. He writes: I began at once somewhat more steady work on the subjects and books which I should have to lecture on. I now first hit upon the diagrammatical device of representing propositions by inclusive and exclusive circles. […]
CS 352 Lecture 17 – Catchup
Dear students, Last week lots of good misunderstandings of memory came up. When misunderstandings appear, the right things are happening. Conflict surfaces in your brain, which is step 1 of learning. Step 2 is resolving that conflict. Today, then, I want to start by revisiting some ideas of how memory and pointers work in C […]
CS 352 Lecture 16 – Hack Assembly Cont’d
Dear students, Today we continue discuss low-level ideas of assembly language using Hack. We start with a little number I like to call What Does This Do. I will show some code, which you should read any mentally evaluate. After a few moments, we’ll discuss. WDTD #1 @R0 D=M @R1 M=D @R0 D=M @R1 M=D+M […]
CS 145 Lecture 15 – Logic Cont’d
Dear students, We’ve had an exam, which is mostly graded but not quite. I will hand them back in lab next Tuesday so that you have time to ask questions. Instead, we will carry on with our discussion of the logical operators. Let’s start with some Blackboxes: Blackbox #1 Blackbox #2 Blackbox #3 Then, let’s […]
CS 491 Meeting 6
Dear students, We are in the working phase of developing our games, so most of our time will be spent giving weekly progress reports. Here are some questions we will probably ask you: What’s the riskiest part left to investigate in your endeavor? What three or more specific things will you accomplish before we meet […]
CS 352 Lecture 15 – Hack Assembly
Dear students, Now that we have all the fundamental hardware components for our computer, let’s rise another layer of abstraction. We will discuss the machine code and assembly code, which are really just encodings of the inputs that will be fed to our hardware components. The Nand2Tetris computer has the following architecture: It supports three […]
CS 145 Lecture 14 – Logical Operators
Dear students, Our computer can now ponder our data. It can examine order and equality, two operations at the root of all decision making. Before we sign up for something, we ask ourselves if the benefit exceeds the cost. We compare two brands of pasta on price and weight. We scan the details of our […]