CS 352 Lecture 14 – Program Counter
Dear students, The next homework is due in a few days, and I want to revisit some HDL concepts in hopes to roust up any questions you have. In particular, the advanced chips can benefit from array slicing, which we haven’t talked about yet. We’ll start today with an example of a hardware component that […]
CS 145 Lecture 13 – Relational Operators
Dear students, Based on your quarter sheets on the frankenstring problem, I think we need to take a moment to recommend a thinking strategy when someone asks you to write a method. Here’s how to tackle such a problem: Listen to problem description just enough to determine what kind of data your method is supposed […]
CS 491 Meeting 5
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 12 – Test-driven Development
Dear students, Last lecture I said we’d have one more day of focus on methods, but then we spent the entire time talking about casting. Today we’ll start the fill-in-the-blank exercises to exercise our method brain. Your task is to jot what goes in each blank of the following code snippets. One of the blanks […]
CS 352 Lecture 12 – ALU
Dear students, Now that we have hardware components that can perform boolean logic and arithmetic, let’s package them all together into a one-stop shop called the arithmetic-logic unit (ALU). This component will perform exactly one of many possible operations. Which operation it performs will be determined by 6 control pins, and it will also accept […]
CS 145 Lecture 11 – Methods x4
Dear students, Let’s do one more of the exercises from last time! Middle public class Middle { public static void main(String[] args) { char a = ‘a’; char e = ‘e’; char middle = average(a, e); System.out.println(middle); } public static char average(char c1, char c2) { return (c1 + c2) / 2; } } This […]
CS 352 Lecture 11 – Subtracting
Dear students, We have built a large chunk of the core arithmetic and logic hardware inside a computer. We have built AND, OR, NOT, and other boolean gates. We have built an adder. We’ve also designed some components for selecting out bytes from RAM. Things are coming together! One thing that we are not able […]
CS 145 Lecture 10 – Methods and Memory
Dear students, Whoever you are, you need practice with methods. They are a concept that you probably didn’t encounter in your high school math classes, and you have no prior knowledge on which to build here. So, don’t be too hard on yourself if they don’t click immediately. Today, then, we devote our entire time […]
CS 352 Lecture 10 – Adders
Dear students, Learning is a cycle of exposing your inadequate understanding and then shoring it up. So, we start with a task to help you expose any misunderstandings: Write the truth table for a demultiplexer, which has two inputs (in and sel) and two outputs (a and b). (So there should be how many columns?) […]
CS 491 Meeting 4 – Let’s Play
Dear students, Today let’s do a Let’s Play. I’ve selected out a few computer science education games: The Foos Modulo Challenge Gidget Human Resource Machine Let’s play them together and discuss what they do well and what could be improved. Here’s your TODO list for next time: Continue creating your game. Next time we meet, […]