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 Final
See the PDF.
CS 330 Lecture 41 – Multiple Inheritance and Polymorphism
Agenda what ?s mixins in Ruby polymorphism dynamic dispatch TODO The final exam will be posted either late today or early tomorrow morning. I’ll send an email when it is. It will probably be hosted on Google Docs. Note Last time we saw that multiple inheritance would be nice, but many languages don’t support it. […]
CS 330 Lecture 40 – Multiple Inheritance
Agenda what ?s design this multiple inheritance TODO The Wasd utilities.rb was treating a Vector2 instance immutably, which violated the spec. It was been updated. You’ll need to pull down the revised file. (Thanks, Paul!) Note We start today with this task: Design a reusable piece of Java code that allows a class to “listen” […]
CS 330 Lecture 39 – Inheritance
Agenda what ?s why inheritance? how is inheritance done? inheritance gotchas virtual override is-a vs. has-a TODO I’ve added a Wasd grader and fixed some omissions in the specification. Make you pull these down. One more 2-participation point extra credit opportunity for those of you who couldn’t make the evening talks: make two models in […]
CS 330 Lecture 38 – Dealing with Temporaries
Agenda what ?s fixing output issues read constructor splitting images with | move semantics TODO One more 2-participation point extra credit opportunity for those of you who couldn’t make the evening talks: make two models in Madeup. The objects must be reasonably interesting and not just random globs of triangles. At least one must be […]
CS 330 Lecture 37 – Object-oriented Programming
Agenda what ?s C++ I/O open classes overloading builtin operators move semantics Note Today we continue our discussion of object-oriented programming through the lens of C++. Many of C++’s design decisions are what they are because of Stroustrup’s ideals, including RAII and type parity. We’ll look at why Stroustrup felt C’s I/O system needed revamping. […]
CS 330 Lecture 36 – Object-oriented Programming
Agenda what ?s the pillars of OOP hello, C++ member initialization lists RAII overloading builtin operators << vs. printf TODO Investigate object-oriented criticism by searching the internet. On a 1/4 sheet, identify at least three objections that people raise against it. Do you agree or disagree? (Remember, this is the internet, where thinking before typing […]
CS 330 Lecture 35 – Call by Name, Call by Need Cont’d
Agenda what ?s debug macro until loop in Scala lazy data structures Note Last time we looked at pass-by-name, which eschews the eager evaluation that we run into in many languages and instead delays evaluation to the point of reference. Sometimes pass-by-name is really useful. Suppose we wanted to write a debugging function that printed […]
CS 330 Lecture 34 – Call by Value, Name, and Need
Agenda what ?s C preprocessor pass by name pass by need lazy evaluation TODO Regex talk tonight! Register here. Note We begin with an exercise that will help us understand the C preprocessor a little better. For each of the following code snippets, write down what you expect the result to be. We’ll go through […]