teaching machines

Git Commit Logs

This semester I managed homework differently. On Bitbucket, I created a repository containing the homework specifications and some autograders. Each student made a private fork of my repository, inheriting permissions so that I could access the fork when a homework was submitted. When students commit a changeset, they include a brief description of the changes […]

CS 245 Wrapup

CS 245 has officially closed. I offer some reflection. Bitbucket We used Bitbucket for the first time ever to distribute and submit homework assignments. I wish I could say I learned how to overcome problems that my students ran into, but I can’t. Mostly issues seemed to stem from failing to follow the pull-code-commit-push workflow. […]

CS 330 Lecture 40 – Review

Agenda what ?s review wrap up Topics object-oriented programming inheritance polymorphism (subtype) polymorphism (parametric/generics/templates) dynamic dispatch, virtual functions garbage collection grammars, lexing, parsing, interpretation higher-order functions lambdas/anonymous functions filter/map/fold immutability lazy evaluation memoization reflection dynamic and duck typing Haiku

CS 245 Lecture 28 – Review

Agenda what ?s review Topics hashing maps linked structures vs. array structures trees binary search trees heaps and priority queues stacks queues When Will I Use This Stuff? All the time, none of the time, or some of the time. Check out http://programmers.stackexchange.com/questions/102041/why-are-data-structures-so-important-in-interviews. Donald Knuth, in Structured Programming with Goto Statements: Programmers waste enormous amounts of time […]

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