CS 330 – Programming Languages
Course Information Syllabus Enrollment: 24 Lecture Homework Exams
CS 330 Final
See the PDF.
CS 330 Lecture 40 – Exit
Agenda what ?s review time Haiku
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 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 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 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 […]