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
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 […]