Welcome to Programming Practicum
You aren’t here
writing clinic reports
clinic liaison phone call
coding chunky strings
rebooting knuth (or turing or…)
installing Debian 3.1
the dumpster
University of St. Petersburg
On the 405, in traffic, being chased by police (and TV) helicopters.
Mailing something at the Claremont Post Office
Waiting for the snow enveloping you on Route 5 N to melt
Krispy Kreme’s drive-through
Teaching Honors English for Janice Barbee at Pomona
High School
Worldcom Headquarters
Leading a Gray Davis / Gary Coleman / Arnold “T-800” Schwarzenegger gubernatorial fundraiser
exploring martian soil
Being dragged off-course 18 miles into a marathon race by a crazed spectator
Massey University Palmerston North, NZ
Pittsburgh
Driving N on the Dalton Highway… (though it feels like it!)
Victorville, for DARPA's Urban Granc Challenge
Waiting in line to vote in the Florida primaries…
Denver, CO or Minneapolis, MN
DC for the inauguration
On fire just W of here!!
Harbin (dream)!
Harbin (reality)!
in Sharm-el-Sheikh, Egypt!
Not waiting in line in a FL themepark...
Moscow (Idaho)
Introductions!
Zach Dodds
Office Olin 1255
fan of low-tech gamesfan of low-level AI
two things I didn't create...
compiling C programs in a browser!
but I was a "historical consultant" for this stop-motion video
What is this course about?
Most semesters, CS 189 is a classthat asks you to solve small algorithmic challenges efficiently both code-wise
and coding-wise.
Or, rather, what it's not about:
motivated, in part, by the ACM programming contest...
Why change? Alums: What do you feel you didn't get @ HMC CS?
Paul Scott
Josh Klontz
Josh Ehrlich Moira Tagle
Karen GraggWill Scott
Why change? Alums: What do you feel you didn't get @ HMC CS?
Paul Scott
Josh Klontz
Josh Ehrlich Moira Tagle
Karen GraggWill Scott
web technologies (just
for terminology...)
cmake and build systems
the code check-in process
web things
parallelizing/distributing
large computations
web frameworks
don't try to teach web stuff
This term in CS 189
• different sort of programming practicum course...
• asks you to take on choosing and learning about a technology, domain, library, or project
that might be one of your answers to the question, What do you feel you didn't learn @ HMC?
This term in CS 189
• different sort of programming practicum course...
• asks you to take on choosing and learning about a technology, domain, library, or project
(0) get your technology, etc. working
(1) decide on a reasonable application
(2) research as the application demands...
(3) repeat (2 smaller projects or 1 larger one)
Plan:
that might be one of your answers to the question, What do you feel you didn't learn @ HMC?
This term in CS 189
• different sort of programming practicum course...
• asks you to take on choosing and learning about a technology, domain, library, or project
OpenCVQt
other UI librarygame dev. library
console library(Zvi Effron!)
hardware project requiring programming
something you've wanted to do but you wouldn't
otherwise get to
(Chet Corcos)
web technologies
Minecraft technologies!
framework, e.g., web
framework (Django et al.)
en.wikipedia.org/wiki/ Comparison_of_web_
application_frameworks
that might be one of your answers to the question, What do you feel you didn't learn @ HMC?
Drawbacks?
• specific technologies should be avoided in the CS curriculum
I agree. Yet, this one-unit course shouldn't be enough
to shift the balance...
Benefits?
• there's not enough support to make it work
It's true – I'm not an expert at whatever you're likely working on, but here it's not expertise at issue,
but the "working on" ...
• too much time will be required!
3-4 good-faith hours per week should result in at least a B in CS 189
• it never hurts to have an on-line portfolio of one or more of your projects...
• helps the limitations of DWIC letters, because it's unique + personalized
(edge-aware video smoothing)
• curricular support vs. expertise support
• sometimes the benefits don't outweigh the drawbacks
one unit!
Class Organizationalternating format
discussion sessions lab sessions• snacks (a CS189 tradition...)
• 30-40 minutes on various topics: perhaps using guest speakers...
• certainly demonstrations and insights from projects so far
• also, time to work on projects (& jotto!)
• also snacks...
• work on that week's project and/or deliverable and/or write-up
• convenient time to work in teams...
• I'd strongly encourage you to work in teams of 2-3• but, larger teams should divide into teams of 2-3
• Teams have to work physically together at least ½ of the time• but team members must share the project's work equally.
Course Deliverablesand schedule
Jan. 17
Jan. 24
Jan. 31
Feb. 7
Feb. 14
Feb. 21
Feb. 28
Mar. 6
Mar. 13
Mar. 20
Mar. 27end of term
today!
lab session... wiki page + Project#1 plan due
discussion/demo session
lab session... demo 1 + progress report due
discussion/demo session...
lab session... demo 2 + progress report due
discussion/demo session...
lab session... Project#1 demo 3 and final write-up due
spring break
discussion/demo session... + Project#2 plan due
Mar. 27
end of term... Project#2 demo and write-up due
These have shifted
forward by a week ...
First deliverable:Jan. 24 lab session... wiki page + Project#1 plan due
By 11:59pm on the 24th, you should
• create a wiki or web page where you'll update your project• link from the ACM spring 2012 wiki page... See www.cs.hmc.edu/ACM
• have chosen a technology/library/domain/project• describe the application you'd like to work towards by 3/6• describe what you'd like to demo by 2/7 and 2/21• gotten something to work -- this is important!
If your library or framework is too stubborn to install or work at all after the first week,
it's not a good choice for CS 189!
Grading:
5 points for each project plan (are they done?)
10 points for each project update?• 5 points for 3-4 hours/week of progress and a working demo• 3 points for its write-up with all of the components (≤1 hr.)• 2 points for unusual effort, features, documentation, etc. (0+ hrs.)
30 points for project #2's final demo and write-up• same ratios as above
(and time concerns...)
• 90-100+% A range• 75-89% B range• 60-74% C range (nothing below this, let's hope!)
goal
: 3-
4 ho
urs/
wee
k
Fairly traditional final scale:
No ideas? Default projects...
goal: to get familiar with a variety of web technologies
Project #1: build a web jotto-player and advisor
demo 1: use HTML, CSS, and CGI forms with Python to choose a random hidden word and score guesses against that hidden word
demo 2: use an SQL database to help analyze the comparative effectiveness of guessing a particular word next, without scoring them all
final demo: use javascript and AJAX (and/or HTML 5 canvas) features to make the interface more slick, as befits the noble game of Jotto!
See https://www.cs.hmc.edu/twiki/bin/view/CS5/WebCS5DevelopmentPagefor some (rough) guidance and sample applications on HMC's webserver...
No ideas? Default projects...
goal: to get familiar with a variety of web technologies
Project #1: build a web jotto-player and advisor
demo 1: use HTML, CSS, and CGI forms with Python to choose a random hidden word and score guesses against that hidden word
demo 2: use an SQL database to help analyze the comparative effectiveness of guessing a particular word next, without scoring them all
final demo: use javascript and AJAX (and/or HTML 5 canvas) features to make the interface more slick, as befits the noble game of Jotto!
Project #2: build a web-based Python autograder
alternative final demo: allow a user to submit a program and get "immediate" feedback as to whether it passed a series of tests or not (time out as necessary to avoid uncomputability...)
impossible final demo: show off your Hyper-Turing quantum computer, since, after all, the autograder problem is uncomputable
http://www.amirrorclear.net/academic/papers/many-forms.pdf http://www.cs.virginia.edu/~robins/The_Limits_of_Quantum_Computers.pdf
HyperTuring computation is easy – just add coffee to your TM!
Hyper-Turing? Quantum computers are not considered likely to extend what's computable – only
how efficiently computations can be done.
Survey
JRs SRs Elderly
a word-guessing game similar to mastermind…
diner ?
This term's first class to guess another's word earns 1 point...
diner ? diner ?
This term's last class to have its word guessed earns 1 point...
Sophs
diner ?
Pomona?
diner ?
Other points may be possible...
Get together with same-year classmates...
(1) Choose a jotto word with/for your class
... and jotto, part 1
(2) Have you built software on your own with technologies not typically part of Mudd's curriculum? If not, no problem! If so, great! - please mention a detail or two:
(3) Do you already have a plan (or an idea) for a CS189 project you might want to pursue? If so, what are you considering?
(0) Name: ____________________________