teaching machines

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 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 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 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 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

CS 330 Lecture 33 – Map, Fold, Filter, Lambdas

Agenda what ?s program this three patterns for-each combine filter anonymous functions TODO Read chapter 6 in Learn You a Haskell (http://learnyouahaskell.com/higher-order-functions). 1/4 sheet. Program This Code april21.hs Haiku

CS 330 Lecture 32 – Type Inference, Functions, and Lists

Agenda what ?s type interference in other languages type signatures curried functions infinite lists list processing case statements pattern matching map lambda Think About This Code april18.hs Haiku

CS 330 Lecture 31 – On to Haskell

Agenda what ?s concerns about languages: speed of execution ease of development program correctness think about this the functional paradigm Haskell lists and strings ranges head, cons, tail initials sum add1/abs/threshold for-each pattern, map higher order functions TODO Read chapters 1 and 2 of Learn You a Haskell. 1/4 sheet. Think About This Code april16.hs Haiku

CS 330 Lecture 30 – Logo Translation

Agenda what ?s writing a translator for Logo think about this TODO Extra credit 1/4 sheet: Write a Logo program to demo in class. Download the Eclipse project. In Compiler.java, change the file name to point to your file, or use the JFileChooser. To receive credit, post the Logo source in the comments. Think About […]

1 19 20 21 22 23 35