teaching machines

CS 1 – Introduction to Programming

Course Information Syllabus Enrollment: CS 145: ~90 CS 148: ~30 Lectures Labs for CS 145 Labs for CS 148 Homework Exams

Half-homework 1 – Maintenance

Your objective in this homework is to acquaint yourself with the world of mathematical calculation using a programming language. Math in code is a little different than the calculator math you are used to in the following ways: Programmers make considerable use of variables, whose names tend to be longer and more meaningful. Numbers are […]

Homework 0 – Goodbye, Pluto

Your task in this homework—which is worth no Blugolds—is to set up your repository and IntelliJ IDEA project and to acclimate yourself to the SpecChecker grading tools. GitLab You are probably used to two kinds of systems for editing and managing files. Some tools are installed on your local machine and edit files stored on […]

CS 1: Final Exam

See the PDF.

CS 1: Lecture 38 – Binary Search

Dear students, We close our semester today with a discussion of finding things quickly with the binary search. We will illustrate the algorithm and implement it in the context of a dictionary/spell-checker. Earlier in the semester we discussed the linear search. Let’s revisit that algorithm first by locating a spice in our spice rack. What […]

CS 1: Lecture 37 – Lights Out

Dear students, It’s the last week! Given that we’re all stressed and ready to be done, let’s play a game today. Just kidding, let’s make one instead. We’re going to implement Lights Out, which started off as a handheld game from Tiger Electronics: The game is played on a 5×5 grid of lights, some of […]

CS 1: Lecture 36 – Unit Testing

Dear students, Today, we examine one of the less glamorous aspects of writing code: testing it. There are three big reasons to write systematic tests of your software: To make sure that your code does what you think it does. To expand your thinking into situations outside your normal parameter ranges and workflow. To ensure […]

CS 1: Lecture 35 – Implementing a Growable Array

Dear students, Today, December 6, is National Growable Array Day. We will celebrate growable arrays everywhere by growing one of our own growable arrays, right here, in our classroom. I hope you wore your festive gear. Behind every growable array is an plain old ungrowable array. When that ungrowable array gets filled up, a new […]

CS 145: 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 […]

CS 1: Lecture 34 – Volume Slicer

Dear students, When we last met, we made a slideshow application. This was our first graphical application that we wrote from scratch. We organized the code into two camps: model code and view code. This separation made the model code reusable under many different circumstances. Let’s do all that again today, but in a different […]

1 2 3 8