teaching machines

CS 430: Lecture 10 – Concurrency and Exceptions

Dear students, When you’re converting Celsius to Fahrenheit, a single machine with a single thread of execution can get the job done. However, many of the computational problems that will earn you a living will demand more of you and your computer. Perhaps you will have to enlist many computers to get the job done. […]

CS 430: Lecture 9 – Abstraction and Object-oriented Programming

Dear students, Software developers spend considerable time tinkering under the hood of their systems. Clients, on the other hand, are happy to only have a few buttons to push to make those systems work. A simpler view of a complex system is called an abstraction. When a humane abstraction is available, clients can ignore irrelevant […]

CS 430: Lecture 8 – Activation

Dear students, Today we take a foray into a technical topic: the mechanics of calling functions. We might think this is information that is pretty well hidden from us when we’re writing in a high-level language. But abstractions leak. The way that functions are called bubbles up into the design of our languages. Having some […]

CS 430: Lecture 7 – Subprograms and Parameters

Dear students, Programs are recursive. They are built out of smaller chunks of code that are themselves programs. We call these smaller chunks of code subprograms. These subprograms organize our code into coherent pieces, with each piece solving a small computational task and deferring to other pieces as needed. We expect that we’ll write better […]

CS 430: Lecture 6 – Expressions and Control Structures

Dear students, The programs we write do many things: they facilitate communication, they walk a user through an interaction, they automate drudgery, they control physical artifacts, they store and retrieve data, and so on. Whatever a program’s final goal, many of its intermediate steps are concerned with producing and consuming information. This information is combined […]

CS 488: Meeting 11 – Lighting Lab

Dear students, Today is a lab day. Find the lab specification in How to 3D. Here’s your TODO list: Complete the checkpoints for this lab before next Thursday. Follow a Blender tutorial and model something. Upload your model to SketchFab, and share a link in the #friddday channel before the end of Friday. Read chapter […]

CS 488: Meeting 10 – Lighting

Dear students, Today we’ll write some code together to shade a collection of shiny annuluses. Here’s your TODO list: Complete the checkpoints for the current lab before Thursday. Follow a Blender tutorial and model something. Upload your model to SketchFab, and share a link in the #friddday channel before the end of Friday. Submit the […]

CS 488: Meeting 9 – Graphics Pipeline Lab

Dear students, Today is a lab day. Find the lab specification in How to 3D. Here’s your TODO list: Complete the checkpoints for this lab before next Thursday. Follow a Blender tutorial and model something. Upload your model to SketchFab, and share a link in the #friddday channel before the end of Friday. Read chapter […]

CS 488: Meeting 8 – Graphics Pipeline

Dear students, Today we’ll write some code together using projection transformations. Here’s your TODO list: Complete the checkpoints for the current lab before Thursday. Follow a Blender tutorial and model something. Upload your model to SketchFab, and share a link in the #friddday channel before the end of Friday. Submit the Boxels homework by the […]

CS 430: Lecture 4 – Types

Dear students, You know how in English nouns and verbs are independent? You can pick any noun and mix it with any nearly any verb to form a grammatical sentence. Butter dances. Fish sneeze. We have a similar situation in programming languages. The grammars of our languages allow us to mix data and operations in […]

1 2 3 233