welcome to programming practicum you aren’t here writing clinic reports clinic liaison phone call...

23
Welcome to Programming Practicum You aren’t here writing clinic reports clinic liaison phone call codin g chunk y strin gs rebooti ng knuth (or turing or…) installi ng Debian 3.1 the dumpster Universit y of St. Petersbur g 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 Headquart ers 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)

Upload: sharyl-mosley

Post on 25-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

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

[email protected]

Office Olin 1255

Email

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?Or, rather, what it's not about:

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 not?

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.

Hyper-turing computation?

HyperTuring computation is easy – just add coffee to your TM!

Hyper-turing computation?

HyperTuring computation is easy – just add coffee to your TM!

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: ____________________________