teaching machines

CS1: Lecture 12 – Method Mechanics

Dear students, Just as writers write paragraphs, programmers write methods. Like a good paragraph, a method has a clear and narrow purpose. Just as paragraphs decompose a grand thesis into digestable points, methods decompose a large problem into manageable subproblems. Since so much of our time will be spent writing methods, it is paramount that […]

CS 145 Lab 4 – More Methods

Welcome to lab 4! If you have checkpoints from the last lab to show your instructor or TA, do so immediately. No credit will be given if you have not already completed the work, nor will credit be given after the first 10 minutes of this lab. Checkpoint 1 Person A types. You’ve seen Practice-It!, […]

CS1: Lecture 11 – More Methods

Dear students, We’ll spend today continuing our discussion of methods—because we need practice. Java is a language, one invented by someone else, and we need to both speak it and hear it regularly in order to acquire it. Let’s start with an exercise in hearing Java, but with some parts inaudible. Fill in the Blanks […]

CS 148 Lab 4 – Methods

Welcome to lab 4! If you have checkpoints from the last lab to show your instructor or TA, do so immediately. No credit will be given if you have not already completed the work, nor will credit be given after the first 10 minutes of this lab. Work with a partner that you have not […]

CS1: Lecture 10 – Abstraction

Dear students, When we discuss methods, there are really two areas of concern: the interface and the implementation. The interface is the method’s “shape,” detailing the method’s name, it number and type of parameters, and its return type. The implementation is the actual instruction that make the method fulfill its purpose. As consumers or callers […]

CS1: Lecture 9 – Methods with Return Values

Dear students, Today we dive deeper into our discussion of writing our own methods. We’ve actually been using methods all semester long; it’s just that now we’re starting to write our own. Before we dive in, let’s revisit our friend String. Stringo With Strings at our disposal, our programs start to feel human. We can […]

CS 145 Lab 3 – Methods

Welcome to lab 3! If you have checkpoints from the last lab to show your instructor or TA, do so immediately. No credit will be given if you have not already completed the work, nor will credit be given after the first 10 minutes of this lab. Work with a partner that you have not […]

CS1: Lecture 8 – Methods

Dear students, Last time we distinguished between syntax (the grammatical rules) and semantics (the meanings) that guide our programs. When we invoke a method on an object—as in object.method()—we must know or learn the semantics of method if we want our program to do the right thing. With semantics in mind, let’s look at one […]

CS1: Lecture 7 – What’s Wrong With These?

Dear students, Today’s a bit of a clean-up day. There are some ideas that didn’t quite fit into our previous discussions, and I’ve also had the chance to see your code a few times now and want to address some concerns. Let’s have a day of miscellany. What’s Wrong With This? There are two dimensions […]

VOICES 2019: Learning Music Theory through Code with Deltaphone

Follow is a draft of my talk for VOICES 2019, a virtual conference on the use of music in STEM learning. This is the first virtual conference I have attended. No flight, no badge, no bag of unwanted promotional materials. Just people talking about music and learning from the comfort of their homes and offices. […]

1 2 3