teaching machines

Speed Coding in Madeup: D6 Edition

I have n ideas in my head of things I want to make in Madeup, and they are starting to fight with each other for my attention. I think it’s time to send some of them packing. Here’s one of them: a speed coding of the obligatory six-sided die.

Rule #37 for Teaching Computer Science

Never use placeholders. For example, never tell students to change directories with a command like this: cd /home/USERNAME Students will report back that the directory /home/USERNAME did not exist, and they were therefore not able to do their homework. Do not describe an image file format to students like this: P1 WIDTH HEIGHT … Students […]

CS 145 Final Exam

See the PDF. At the beginning of every semester of our introductory programming course, I ask my students to tell me about their prior programming experiences, if any. I like to cross-reference their self-reported experience levels with their final grades. The first several years I did this, I found that prior experience wasn’t necessarily a […]

Letter of Reference

Dear ██████, I am writing on behalf of ██████, a former student of mine who is ready to strike out on his own after graduating this May. He has applied at your company for a Software Engineer III position and has asked me to provide a letter of reference. I wish to recommend him without […]

CS 145 Midterm 2

See the PDF.

CS 352 Final

See the PDF.

CS 352 Midterm

See the PDF.

CS 145 Lecture 37 – Binary Search

Dear students, We close our semester today with a reading from Jeremy Kubica’s Computational Fairy Tales. It demonstrates an algorithm that I think is beautiful: the binary search. We will illustrate the algorithm and implement it to help code up a dictionary. I think this algorithm demonstrates a significant point. This ultra-fast algorithm wasn’t the […]

CS 352 Lecture 38 – Superion Technology

Dear students, Today we welcome Eau Claire’s very own Superion Technology to our class. They will be offering us a view of computer architecture in industry and through the lens of FPGAs. Here’s your TODO list to complete before next time: There is no next time. I will hand out final exams. Please complete these […]

CS 145 Lecture 36 – Lights Out

Dear students, Today we apply a little bit of everything we’ve learned in a case study of the game Lights Out. We’ll use primitives and objects, ifs and loops, arrays, files, exceptions, graphical user interfaces—the whole shebang! Here’s your TODO to complete before we meet again: Lab tomorrow will be crazy with review sessions, returned […]