CS 330 Lecture 39 – Dynamic Typing, Duck Typing, Multiple Inheritance
Agenda what ?s static vs. dynamic vs. duck multiple inheritance traits/mixins Code sum.rkt duck.rb mixin.rb Haiku
CS 245 Lecture 27 – Sockets
Agenda what ?s getting the time of day from a time server get the time of sunset from OpenWeatherMap getting rhymes from RhymeBrain a chat client Code Timestamp.java WhetherWeather.java Rhymer.java MSYahAIM.java Haiku
CS 330 Lecture 38 – Reflection and Metaprogramming
Agenda what ?s a testing framework in Ruby checking for correct overrides in Java handling wild calls in Ruby Code Certain.rb Usurps.java Supertype.java Subtype.java UsurpsCheck.java weather.json ezserial.rb Haiku
CS 330 Lecture 37 – Promises and Futures
Agenda what ?s what does this do? easier concurrency without side effects call by value, name, need the dangers of the C preprocessor delayed/lazy evaluation promises in Ruby futures in Java What Does This Do? Code compromise.rb Thunk.java Future.java Main.java Haiku
CS 245 Lecture 26 – Heaps and Priority Queues
Agenda what ?s think about this priority queues TODO Go visit CERCA today from 2-4 PM on 3rd floor Davies. Talk to some student researchers about their projects. What’s your reaction? Extra credit 1/4 sheet. Think About This Code NumberOfCores.java MaxHeap.java Circle.java Circles.java Haiku
CS 330 Lecture 36 – Memoization
Agenda what ?s program this the benefits of no side-effects memoization in Haskell memoization in Ruby TODO Read about tool selection and the lack of silver bullets: http://blog.awe.sm/2012/12/10/how-to-choose-the-right-tool-for-the-job-awe-sms-language-journey and http://frankchimero.com/blog/no-new-tools. Read on laziness in D: http://dlang.org/lazy-evaluation.html. Go to CERCA (Ojibwe Ballroom, 3rd floor Davies) and talk to some student researchers. Pick one or two or three. 1/4 sheet. Program […]
CS 245 Lecture 25 – Threading for Concurrency
Agenda what ?s threading for parallelism threading for concurrency background tasks animation FYI Check out Android’s statement about responsiveness in mobile apps. Code ImageDownloader.java Bouncing.java slowimage.php Haiku
CS 330 Lecture 35 – Lambdas and Closures Elsewhere
Agenda what ?s blocks in Ruby lambdas and streams in Java lambdas in C++ Code blocks.rb monkey.rb BigButton.java TreeDB.java Haiku
CS 245 Lecture 24 – Trees and Hello, Threads
Agenda what ?s think about this removing from a BST threads TODO Read chapter 14 (Multithreading) through section 14.3 (Thread States). 1/4 sheet. (Probably the last.) Think About This Watch Brian Harvey’s lecture. Write BinarySearchTree.insertKeysBetween: Code BinarySearchTree.java Harvey.java Haiku
CS 330 Lecture 34 – Fold, Tail Recursion, and Lambdas
Agenda what ?s think about this all, any, sum, product, size, join tail recursion fold/reduce/inject lambdas in Java lambdas in Ruby lambdas in C++ Think About This Code april23.hs Haiku