Classes I taught most recently:
- Mozilla Persona A/B Test -- A neat little example of an A/B UI test
- How a Hard Drive Works -- video showing a taken-apart hard drive working. Did you ever wonder what those sounds were when you hit the Save menu?
- Mr. Histogram free program to make histograms (of interest to teachers)
- Radiation and Geiger Counter Experiments
Radiation and Geiger Counters in the home
MrGeiger software and USB connection
- IntroComputing.org -- draft of CS101 materials for re-use by teachers at large. Used for cs4hs 2012 at Stanford. This includes text and exercises, not the videos.
- LEDs Without a Resistor Experiment -- a world gone mad!
- cs101-class.org -- I've re-worked my Stanford CS101 live class into an online form with videos and live exercises and everything on Coursera. This is an introductory CS course intended for people with zero prior compuer experience.
- New class at Stanford: CS101 -- CS101 teaches the essential ideas of Computer Science for a zero-prior-experience audience. CS101 has a "lab" feel, using small live coding exercises every day in class to teach the material. All of the CS101 materials are web-enabled, and the hope is to scale it up to use in other environments. CS101 is pilot for the national Computing Principles research program, experimenting with ways to reach a larger audience for computer science fundamentals.
- Android Programming Class -- quick introduction to the basics of android programming
- Python and programming-langauge materials for CS107:
- I'm very pleased to announce
Google's Python Class by myself, produced courtesy of Google. This is a complete online class
on basic Python
with about 8 hours of lecture paired up with 5 real programming assignments complete with data files, solutions,
and written support materials, and it's all free and Creative Commons licensed. Check it out!
- codingbat.com is my main part-time
project these days -- an online code-practice tool, where you can play
with little sections of code in the browser, now in both Java and Python
(used to be known as JavaBat).
Ok smarties, see if you can solve the
Java makeBricks() problem in 1
try (not counting compile errors of course)
(or python make_bricks).
The xyzMiddle problem is kind
of fun. There's tons of problems there, spanning a huge range in difficulty.
- Other projects:
- The World's Most Geeky Geocache (and video) --
a ridiculous hardware hacking project using the arduino microcontroller to make a geocache. You
can go visit this project on campus.
Local Devices -- program to hunt your local network for devices with
web interfaces like routers, web cameras, and tivos. I just banged out this code in a
day to solve a problem I had, but it works great.
- To help waste time playing the greatest board game ever invented, Settlers of Catan,
here's a free settlers dice application that rolls the dice for you and graphs it all
- An analysis of the dice odds in Settlers, for those who are truly addicted to the game
- Here's the Mortgage Maker Mac app
I wrote years ago that does the math for mortgage
- CS108 "Object Oriented
Systems" which is all about
applying Java and OOP to large projects
"Internet Technologies" which is a
programmer's tour of the combination of tcp/ip,
sockets, HTTP, HTML, CGI -- hasn't been taught for a few years.
- The Nifty Assignments
archive. Run as part of the ACM CSE, this is a neat library
of great assignments gathered from instructors all over.
Each year, there's a Nifty Assignments session I run at
the SIGCSE conference. Applications etc. are done in the Summer.
- Theora Soccer codec comparision --
concrete comparison of the open theora video codec vs. mpeg-4.
Also a chance to play with Html-5 video tag.
- The Greatest
Pointer Recursion Problem of All Time
- The CS Library project
which edits together CS education materials. There are some
extremely popular documents here on linked lists, binary trees, etc..
- The Binky Pointer Video
the infamous Claymation animated short about pointers.
- JavaDoc Fast
are you tired of hunting through Java Docs the lame old way? Try my super