CS 145 Lecture 9 – Blackboxes
Dear students, We have seen methods as a means of capturing a process into a reusable component. Methods have some really nice advantages: They drop us into a smaller world with a smaller problem to solve. Instead of thinking about the grand mission of our program, we think about the baby step of the method. […]
CS 352 Lecture 9 – Muxes, Demuxes, and HDL
Dear students, We introduce today a couple of hardware components that will ultimately help us build memory. They are the multiplexer (or mux) and the demultiplexer (or demux). The mux takes in two inputs and a selector. The selector determines which of the two inputs feeds into the one output: if sel == 0 output […]
CS 145 Lecture 8 – Methods Cont’d
Dear students, Last time we started generating some circle art, but we stopped with only one circle. Once we get that working, let’s add a second random circle. And a third. And a fourth. And so on. We’ll find that the code quickly gets away from us if we simply copy and paste. Instead, we […]
CS 352 Lecture 8 – 7-Segment Logic
Dear students, Today we’re round out our understanding of Karnaugh maps in the ultimate test. We’re going to design the logic to drive a 7-segment display! What is that, you ask? A 7-segment display is one of these: Image courtesy Peter Halasz. It’s called “7-segment” because it’s decomposed into seven independent LEDs, each identified by […]
CS 145 Lecture 7 – String Cont’d and Methods
Dear students, With Strings at our disposal, our programs are going to start to feel human. We can write programs that process and generate words, and that’s pretty amazing! But we need more practice using them before we determine the authenticity of Shakespeare’s works. Let’s play some Stringo! Generate a String of five characters. Use […]
CS 352 Lecture 7 – Karnaugh Maps
Dear students, We start today with a couple more exercises on building circuit diagrams. Let’s do these one a time. Write your diagram down on paper, and then we’ll construct it together up front: Diagram This #1 You will eat a cheap pizza if it has pepperoni without olives, or if it has olives with […]
CS 491 Meeting 3 – Prototypes
Dear students, Today is Paper Prototype Day. There are 8 of you, and we will operate like this: repeat 4 randomly pick a partner partner A shares game for 5 minutes, including discussion partner B shares game for 5 minutes, including discussion end To help us stay on schedule, here’s a little timer! Here’s your […]
CS 145 Lecture 6 – The String Class
Dear students, If this class was a book, the chapter we’re in right now is Computer as Calculator. I’d mentioned that computers got their start in the world of mathematics. Why exactly did computers start with the mathematicians? Lately I’ve been reading some graphic novels related to technology and computer science for a conference I’ll […]
CS 352 Lecture 6 – Transistors and Diagrams
Dear students, Today we close out our discussion of the low-level electronic circuitry and begin our ascent to higher levels of abstraction. We start by replacing relays with transistors. The problem with relays is that they tend to be slower to activate, harder to miniaturize, and have a shorter life span than other electronic switching […]
CS 145 Lecture 5 – Math Cont’d
Dear students, Here’s something that happens. Your professor, who has been writing code for a long time, walks through many coding examples with you in class. He carefully arranges everything to present a coherent and compelling story, intentionally leading you into problems but swooping in with some new idea to save the day. You feel […]