Lecture 12: Finale - HMC Computer Science

Download Report

Transcript Lecture 12: Finale - HMC Computer Science

IS313 Finale: projects!
2010 Projects!
VPool (Jonathan)
Picobot! (Michael)
Go (Charles)
Dice (and RegDice!) (James)
PyGame – Snake! (Mohammed Alateeq)
PyGame – Tarot!! (Karen Sun)
PyGame – Collector!!! (Baris A.)
PyGame – Pong!!!! (Sarah A.)
I hope I'm
involved!
PyGame – PicoGirl!!!!! (Maria A.)
Google event tracker (Joe)
SillyLibs! (Amin and Mohammad)
Restaurant rating/Django (Peter)
Tic-tac-toe player (Payal)
Scholarship survey (Zara, Roni, Joanne)
+map-based writing prompt
Kyle (Python + Objective C: Flixy!)
Binary object DB (Jeff w/Twitter + OCR)
Restaurant: business site (M. Alyami & Abdul A.)
2009 Projects:
Role-based access control (James)
PyGame - Snake!
(Ivan, with SQL!)
PyGame - Snake!
(Sucheng, James)
PyGame - Bomberman Jetters!
(Congshan, Bill, Spencer)
TextClouds
(HsingHuei)
TextClouds
(Bridget and Laura)
vPool
(Igho and Yernur)
IT placement app (Phil, Tim, Hamdan)
What happens in Vegas... ?
Perhaps the saying
isn't always true...
reconstructing ice fields
drivers watching out for cars...
... or vice versa!
E-Portfolios !
IS313 Finishing Schedule
Monday, Dec. 6 Today! In-class project presentations
• Tuesday, Dec. 7
Intermediate progress report due
with presentation slides
Monday, Dec. 13 "Office hours" here @ CGU: a chance
to work on/get help with the final proj.
4:00 – 6:30 pm
• Friday, Dec. 17 Final projects due (any time)
For tomorrow…
What does this mean?
(1) Another update of your progress…
with your presentation…!
For next Friday…
A final .zip of your project...
(*) please include screenshots or a video
(if I'll never be able to get it running...!)
Feedback…
Feedback…
No name!
#2
#1a
Mark where you would judge the pace of the class material:
What are one or more things you
would keep about IS313 as it is?
#3
How would you judge this class compared to other CGU classes?
#1b
What are one or more things you would
add/change/delete about IS313?
#4
How much time did this class take, compared to other CGU classes?
Good luck with the project...
... and beyond!
I'll be here next Mon. ...
Limitations of CS!
Many potentially useful problems
are impossible to compute!
• They involve infinity.
• They involve self-reference.
• Or they can be interpreted as such.
Inf checks for
infinite loops.
in finite time
Unsolvable problems
Many potentially useful problems
are impossible to compute!
A string containing a
Python function
• They involve infinity.
• They involve self-reference.
• Or they can be interpreted as such.
Any string
def Inf( fs, inp ):
f = make_func(fs)
if f(inp) runs forever:
return True
else:
return False
Inf checks for
infinite loops.
in finite time
the iPhone's icon for
Google Maps …
make_func ?
These Python strings
look decidedly func-y
Strings and functions
are one and the same…
Python creates Python!
What's this doing?
Python runs Python!
f is the function in fs
Let's test it!
A working Inf
Inf does exist - and does work - if given infinite time…
A string containing a
Python function
Any string
def Inf( fs, inp ):
f = make_func(fs)
if f(inp) or not f(inp):
return False
else:
return True
This Inf checks for
infinite loops.
but can use infinite time!
And, to be fair, it never
really returns True !
Proof strategy
Presume that Inf exists.
A string containing a
Python function
Any string
def Inf( fs, inp ):
f = make_func(fs)
if f(inp) runs forever:
return True
else:
return False
We show that this results
in a contradiction…
Thus, the presumption
"Inf exists" is false.
So, Inf can not exist.
Inf: infinite-loop checker.
Presume:
Inf( fs, inp ) works…
We build a new function, Cant
A string containing a
Python function
def Cant( fs ):
if Inf(fs,fs):
return 42
else:
while True:
print "ha!"
Cant takes only one input, a string
containing a Python function.
This name Cant
be a coincidence!
Cant stubbornly reverses the
predictive power of Inf !
Presume:
Inf( fs, inp ) works…
We build Cant:
A string containing a
Python function
def Cant( fs ):
if Inf(fs,fs):
return 42
else:
while True:
print "ha!"
Consider…
fs2 = """
def Cant( fs ):
if Inf(fs,fs):
return 42
else:
while True:
print "ha!"
"""
>>> Cant( fs2 )
Thus…
can not exist…
Inf( fs, inp )
can not be written…
can not be programmed…
Infinite-loop checking can not be done by computer.
The "Halting problem" is uncomputable.
can it be done biologically?
Turing's proof
Alonzo Church, too
+ 36 more pages
IS313 Finale: projects!
2010 Projects!
VPool (Jonathan)
Picobot! (Michael)
Go (Charles)
Dice (and RegDice!) (James)
PyGame – Snake! (Mohammed Alateeq)
PyGame – Tarot!! (Karen Sun)
PyGame – Collector!!! (Baris A.)
PyGame – Pong!!!! (Sarah A.)
I hope I'm
involved!
PyGame – PicoGirl!!!!! (Maria A.)
Google event tracker (Joe)
SillyLibs! (Amin and Mohammad)
Restaurant rating/Django (Peter)
Tic-tac-toe player (Payal)
Scholarship survey (Zara, Roni, Joanne)
+map-based writing prompt
Kyle (Python + Objective C: Flixy!)
Binary object DB (Jeff w/Twitter + OCR)
Restaurant: business site (M. Alyami & Abdul A.)
2009 Projects:
Role-based access control (James)
PyGame - Snake!
(Ivan, with SQL!)
PyGame - Snake!
(Sucheng, James)
PyGame - Bomberman Jetters!
(Congshan, Bill, Spencer)
TextClouds
(HsingHuei)
TextClouds
(Bridget and Laura)
vPool
(Igho and Yernur)
IT placement app (Phil, Tim, Hamdan)
What happens in Vegas... ?
Perhaps the saying
isn't always true...
reconstructing ice fields
drivers watching out for cars...
... or vice versa!
E-Portfolios !
IS313 Finishing Schedule
Monday, Dec. 6 Today! In-class project presentations
• Tuesday, Dec. 7
Intermediate progress report due
with presentation slides
Monday, Dec. 13 "Office hours" here @ CGU: a chance
to work on/get help with the final proj.
4:00 – 6:30 pm
• Friday, Dec. 17 Final projects due (any time)
For tomorrow…
What does this mean?
(1) Another update of your progress…
with your presentation…!
For next Friday…
A final .zip of your project...
(*) please include screenshots or a video
(if I'll never be able to get it running...!)
Feedback…
Good luck with the project...
... and beyond!
I'll be here next Mon. ...