CS 330 Lecture 39 – Metaprogramming
Agenda what ?s JSON to Object memoize @Override writing a test runner Intentions I am familiar with the practice of metaprogramming, in which a program can inspect and act on itself—i.e., the program becomes another piece of data than can be inspected and manipulated. I am aware of several possible benefits of metaprogramming, including dynamic generation of […]
CS 330 Midterm
See the PDF.
CS 330 Lecture 38 – Promises
Agenda what ?s the event loop chaining asynchronous events callback hell parallelizing asynchronous events 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 […]
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 Homework 4 – Madeup
See the PDF.
Madeup Briefing
Introduction Madeup is a language for making things up–literally. It is a platform for thinking about shapes in an imperative, algorithmic way. Its speakers trace out an object’s skeleton or cross section and then use a Madeup command to generate a solid 3D model that can be printed on a 3D printer. Here we briefly describe the language […]
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 […]