Nick Parlante

I'm a lecturer in the Stanford CS department. Currently I'm teaching Stanford CS106A Fall and Winter this year, where I'm working on teaching Python, using online code-practice tools. Previously I worked on which is a free code-practice resource. My next goal is making the material and technology in CS106A work as a free code-learning resource for everyone.

Here is Nick's Python Reference we're using for CS106A.

Curent research: extend online code practice technology to build a CS106A with code exercises woven throughout lecture. The online-code-practice format extends nicely to let people outside Stanford use the materials. Also working on CS101 at Stanford, and in MOOC form: CS101 Online Class.

The Unofficial U2F FAQ - for fun I've written an FAQ about U2F security log-in tokens which are a neat little technology.

  • 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
  • -- 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!
  • -- 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!
  • 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.
  • Find 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 qualifications.
Classes I taught most recently:
  • CS108 "Object Oriented Systems" which is all about applying Java and OOP to large projects
  • CS193i "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 wizz-o way that uses Javascript to actually do something useful.

Stanford Phone: (650) 725-4727
Office: Gates 190 -- first floor in the South facing "B" wing.

Back in the day, I lived in the Big Happy Home in Menlo Park, and now all that is left is ... party fliers!
Spring Fling - Dairy King - Booted


I've put in some more 108 type quotes now that I'm teaching it for the umpteenth time.

"Committees can criticize, but they cannot create." (Ogilvy on Advertising)

"Sleep optional but not recommended." -CS107 student

"Logic is a system whereby one may go wrong with confidence." -Charles Kettering

"We don't have time to stop for gas-- we're already late." -Old software project planning proverb via Mike Cleron

"Experience is what you get when you didn't get what you wanted." -Unknown

"Plan to throw one away." - Fred Brooks

"The two most important tools an architect has are the eraser in the drawing room and the sledge hammer on the construction site." - Frank Lloyd Wright

"Hardware is just software that's hard to edit." - Unknown

"This time for sure." - Common phrase among computer programmers and used-car salespeople.