teaching machines

Bathroom Angles

Our bathroom gave me a math problem, and I failed. Herein I document my failure and visualize the answer I should have provided. When we bought our home, the bathroom had carpet but no baseboard. This combination makes painting the walls difficult. As we are preparing to paint, I decided to install some baseboard. Measuring, […]

CS1: Final

See the questions and answer sheet.


Something came in the mail this week from the University of Canterbury in New Zealand. The Department of Computer Science and Software Engineering (who use COSC as a prefix for their computer science courses) just held their end-of-year awards ceremony, the COSCARs. I was honored with this Most Wholesome Lecturer award: How exactly I was […]

Cutting Corners

I learned recently of Chaikin’s Algorithm, a method for rounding off the corners of a polygon. The algorithm works like this: Find the midpoints of each line segment in the polygon’s perimeter. Connect each consecutive pair of midpoints using a quadratic Bezier curve. The midpoints are the curve’s endpoints. The vertex between them is the […]

CS1: Lecture 38 – Slideshow

Dear students, A primary benefit of object-oriented design is that it helps us organize our programs coherently. We can put code and the data that it regularly processes together into the same chunk. Objects allow for the separation of concerns. Class A can focus on its task, and be very good at it. It can […]

Circle Dance

At one time, people believed that the Earth was the center of the universe, and that the planets and the sun orbited around it. Copernicus came along and challenged this idea, suggesting that the sun was the center. These are the only two sides of the debate that we ever hear about. Heliocentrism vs. geocentrism […]

Background Check

There’s somebody on Twitter named Dave who makes animations that break your mind. I fell in love with a simple rotating one a couple of weeks ago and recreated it in Twoville: Several others have recreated it too, but they appear to have fallen for the same trap that I initially fell for. They enumerated […]

CS1: Lecture 37 – Chat Continued

Dear students, Today we extend the networked chat application that we started writing last week. Beyond getting it functional, we’ll also give the client a graphical user interface (GUI). Java is one of the few languages that ships with a builtin windowing library. Dialogs If your program only prompts the user for simple input, like […]

CS1: Lecture 36 – Chatting with Sockets and Threads

Dear students, At the end of the semester, we have an opportunity to explore some new, crazy ideas. Next week we’ll have a look at graphical user interfaces. Today we’ll look at sockets and threads as we make a chat client. Sockets Computers got especially interesting when they gained the ability to talk to each […]

CS 148 Lab 12 – SplatBot

Welcome to lab 12! 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. In this lab you will create a robot […]

1 2 3 173