teaching machines

CS 330: Homework 0, Part 3

In part 2, you created your homework repository on Bitbucket, cloned it on your local machine, and pushed local changes back up to Bitbucket. In this installment, you will learn how to pull changes down from Bitbucket to your local mirror. Pulling Suppose your home on for the weekend, and you get the craving to […]

CS 330: Homework 0, Part 2

Follow these steps to create your class homework repository and get homework 0 up and running. 1. Create a Bitbucket account In this class, all your code will be stored with the Bitbucket webservice. Using this third-party service has some nice benefits: they maintain a complete history of your source code using some software called […]

CS 330: Homework 0, Part 1

In this course, you will be completing your homework using the Linux operating system. The Department of Computer Science does provide some Linux servers that you can use, but your instructor asks you to install your own Linux image for a few reasons: You will learn more about a technology whose impact on our field […]

CS 330 – Programmming Languages

Course Information Syllabus Enrollment: ~70 Lectures Homework Exams

CS 330 – Final

See the PDF.

CS 330 Lecture 39 – Exit

Dear students, Today we close out our formal exploration of the stuff of programming languages. This is what we said we’d look into in the syllabus: Recognize and exploit the strengths of three major programming paradigms: imperative, functional, and object-oriented. Reason about the strengths and weaknesses of various type systems. Weigh the costs and benefits […]

CS 330 Lecture 38 – Metaprogramming in Java

Dear students, Last time we saw how we could add a hook in Ruby so that when a non-existent method is called on a object, we can still execute the desired action. method_missing lets us write really virtual methods—ones that don’t even exist. Our code effectively used information about the method that would have been […]

CS 330 Lecture 37 – Metaprogramming in Ruby

Dear students, This last week of the semester we enter the crazy world of metaprogramming. What is metaprogramming? Well, there’s been a recurring them in our discussion this semester. C++ pushed very hard to make our data be treated just like builtin data. The classes we write are allowed to be virtually indistinguishable from the […]

CS 330 Lecture 36 – Guish Interpreter

Dear students, I am gone to learn about the state of computer science in high schools across Wisconsin. However, since at least one of you objected to my being gone a few times this semester, we continue our discussion of writing our interpreter! We pick up where we left off last lecture. We ended with […]

1 2 3 30