CS 455 Lecture 24 – Impostors and Geometry Shaders
Agenda what ?s homework 4 framebuffer objects geometry shaders impostors Think About This You are writing a molecular simulation where you need to render 1000s of atoms. What naive solution might you take to render them? How might you accelerate this process? Haiku
CS 330 Lecture 37 – Promises and Futures
Agenda what ?s evaluate this synchronous asynchronicity futures in Scala promises in JavaScript TODO Some folks have asked for a few more opportunities for participation points. I will grant 3 extra credit participation points to any student who gives a semi-lightning talk and demo (5-8 minutes) during lecture next Wednesday on some contained and interesting programming […]
CS 455 Lecture 23 – Water
Agenda what ?s homework 4 water forward differencing TODO As a lab exercise: Sync with the class repository to get the water starter project. Run it to find some very disappointing water. We’re going to do a couple of things to make it look better: 1) add environment mapping to make it reflect the skybox […]
CS 330 Lecture 36 – Lazy Evaluation
Agenda what ?s call-by-name adding until to Scala call-by-need Intentions I can exploit call-by-name semantics to pass around unevaluated blocks of code, which can be used to implement control abstractions. I can exploit call-by-need semantics to implement lazy data structures. Code Until.scala Lazy.rb Haiku
CS 330 Lecture 35 – List Comprehensions and Currying
Agenda what ?s list comprehensions in Haskell and Scala a phobias searcher currying call-by-name adding control abstractions Puzzle On Friday, May 1, the Federal Aviation Administration issued a warning about a bug in Boeing’s 787 Dreamliner aircraft. If all four of the machine’s generator control units run continuously for 248 consecutive days, the electrical system […]
CS 455 Lecture 22 – Applying Noise
Agenda what ?s last homework compute this generating noise wood and marble fog Compute This Suppose you’ve got three numbers. You want to weight and sum them. The 0th should be weighted half as much as the 1st. The 1st should be weighted half as much as the 2nd. What are the weights? Suppose you’ve got […]
CS 330 Lecture 34 – Scala on the JVM, Higher-order Functions, and Parallelism
Agenda what ?s the Uniform Access Principle parallel processing Intentions I understand the Uniform Access Principle and its motivation. I can discover how Scala maps to the JVM. I can use Scala’s parallel collection routines to accelerate computation. Uniform Access Principle Bertrand Meyer said: All services offered by a module should be available through a uniform […]
CS 330 Lecture 33 – OOP and HOF via Scala
Agenda what ?s classes in Scala a sepia generator marching squares Intentions I can create classes and objects in Scala. I can reuse Java classes in Scala. I can write for-comprehensions, which are imperative-styled maps. TODO I recommend you walk through tutorials I and II on Simply Scala. No 1/4 sheet. Code Image.scala Main.scala Haiku
CS 330 Lecture 32 – Filter and Memoization
Agenda what ?s program this type synonyms memoization Intentions I can use the filter pattern with custom predicates to extract a subset of data. I can employ memoization to cache and quickly recall the results of function calls. Program This Write a function maxAll that accepts a list of numbers and yields the maximum. Problems Write […]
CS 455 Lecture 20 – Environment Mapping
Agenda what ?s reflecting a vector environment mapping TODO As a lab exercise: Sync with the class repo to get the environment starter project. Run the project to find a scene with three models hovering over a terrain and nestled in a skybox. Use the cursor keys to rotate the models. We want to these […]