Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong...

124
Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology an advocate of concrete computing - New York Times Review of Courses - US News and Course Report We give this course two thumbs! - Ebert and Roeper

Transcript of Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong...

Page 1: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Welcome to IS 313 !

When the course was over, I knew it was a good thing.

We don't have strong enough words to describe this class.

Information Technology

an advocate of concrete

computing - New York Times Review of Courses

- US News and Course Report

We give this course two thumbs!- Ebert and Roeper

Page 2: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

About myself

Who Zach Dodds

Harvey Mudd CollegeWhere

What Research includes robotics and computer vision

Contact Information

[email protected]

909-607-1813

Office Hours:Friday afternoons, 2-4 pm

or set up a time...

When Mondays 4-7 pm here in ACB 108

HMC Olin 1255

Page 3: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

TMI?

fan of low-tech gamesfan of low-level AI

Page 4: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

“Quiz”

• Name

• Preferred email

• A place you consider home

• Your favorite _____ is _____.

• Your least favorite _____ is _____.

• Are you working at a company now?

• Do you use computer programming?

take a movie of yourself saying

Where?

How/what?

your name & where you're from

Page 5: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

“Quiz”

• Name

• Preferred email

• A place you consider home

• Your favorite _____ is _____.

• Your least favorite _____ is _____.

• Are you working at a company now?

• Do you use computer programming?

Zachary Dodds

[email protected]

Pittsburgh, PA

drama Burn Notice

coffee decaffeinated

Harvey Mudd

java/C++/python

Where?

How/what?

Page 6: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

IS 313

What? Why?

Page 7: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

IS 313

What? Why?CS for IS

all of CS in one

semester!

CS == Computer Science

Page 8: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

IS 313

What? Why?CS for IS IS is about

bridging and

leveraging technologie

s

all of CS in one

semester!

but what is CS ?

CS? Hmmm Let me check Google…

Credit Suisse?

Counter-Strike

C10H5ClN2 : CS gas

CompuServe

Computer Science

Cultural Survival

Page 9: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS != programming

programming : CS ::

Page 10: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS != programming

programming : CS ::

"not equal to"

Page 11: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS != programming

programming : CS ::

bookkeeping : business

unicycling : HMC

grammar : literature

equations : mathematics

a vehicle, not a destination

Programming

CS

Page 12: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS == complexity science

Study of complexity

How can it be done?

How well can it be done?

Can it be done at all?

What's it ?

"is equal to"

Page 13: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS == complexity science

Study of complexity

How can it be done?

How well can it be done?

Can it be done at all?

What's it ?

Information

Page 14: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Information

Study of complexity

How can it be done?

How well can it be done?

Can it be done at all?

"Make3d"

What information is being transformed here?

Andrew Ng ~ Computers and

Thought award, 2009

Page 15: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What Google thinks I look like

First 4 Google Image hits (8/29/10) for a search of

"Zach Dodds HMC"

Page 16: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What Google thinks I look like

First 4 Google Image hits (8/29/10) for a search of

"Zach Dodds HMC"

Page 17: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What Google thinks I look like

"Zach Dodds"

Images are difficult!

First Google Image hit (8/30/09) for a search of

Page 18: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Information

Study of complexity

How can it be done?

How well can it be done?

Can it be done at all?

The N-body problem: lots of interactions!

What information is being tracked here?

Page 19: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Information

Study of complexity

How can it be done?

How well can it be done?

Can it be done at all?

Protein Folding

The 3d structure of a protein is completely determined by its 1d amino acid sequence.

Understanding this sequence-structure relationship has been referred to as the

"second half of the genetic code."

Information:

sequence and pose of amino acids

http://www.youtube.com/watch?v=fvBO3TqJ6FE

Page 20: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS Research ? my own…

Page 21: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Why CS ?

Information is our fundamental building block.

CS is a set of fundamental techniques for understanding and leveraging this information…

Genetic Code: DNA Our senses and experiences

GTAGCACAITTAGC… More coffee required…

us

“constructing with”

Page 22: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS’s motto ?

print 'hv',print 'dcle\naemdoe'print 'ryu',print 'lg!'

print 'whtvo\na',print 'eub\neraeo'print 'yraoo\negdne'

details are temporary… …but CS thinking isn’t !

Page 23: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS vs. IS and IT ?

www.acm.org/education/curric_vols/CC2005_Final_Report2.pdf

greater integration system-wide issues

smaller details machine specifics

Page 24: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS vs. IS and IT ?

Where will IS go?

Page 25: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS vs. IS and IT ?

Page 26: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

IT ?

Where will IT go?

Page 27: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

IT ?

Page 28: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Why IS313 ?

Yes, if you’re retired

No, if you’re not…

without programming or computer science ?

looking to manage, analyze, engineer, lead, innovate at the next Google / Facebook / OnLive …

Intuition about all the details you’ll be organizing, managing, and/or using will make

you more effective at all of the above.

Page 29: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

About IS313 …

Page 30: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Course Details

Web Page:http://www.cs.hmc.edu/~dodds/IS313

Assignments, online text, necessary files, lecture slides are linked

First week’s assignment: Starting with Python and Picobot

Programs: python and IDLE

Textbooks!

http://www.cs.hmc.edu/twiki/bin/view/CS5CS 5 website

How to think like a computer scientistgreenteapress.com/thinkpython/

www.python.org Try installing v2.7 now…!

optional and online

Page 31: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Try it…

http://www.cs.hmc.edu/~dodds/IS313/Go to the course page

Click on the HW page

Install Python 2.7 get & run the file hw0pr1.py

F5 runs!

Page 32: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Homework

Assignments~ 2-5 problems/week ~ 100 points extra credit available

Due Tuesday of the following week (anytime) - or by 11:59 pm.

Assignment 1 due Tuesday, September 14.

1 week + 1 day…

No class next Monday, September 6: Labor Day

Page 33: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Homework

Working on programs: Problems may be done in groups of 2-3.

Divide the work at the keyboard evenly!

Assignments~ 2-5 problems/week ~ 100 points extra credit available

Due Tuesday of the following week (anytime) - or by 11:59 pm.

Assignment 1 due Tuesday, September 14.

Submitting programs: at the submission website

Today's Lab: install software Python & ensure accounts are workingtry out Python - the HW is officially due on 9/14

Page 34: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Grading

Grades

Exams

if score >= 0.95: grade = “A”if score >= 0.90: grade = “A-”if score >= 0.60: grade = “P”

Final Exam/Project at the end of the semester.

• the last 2-3 weeks will work towards a larger, final project (this is the "exam")

• there will be a short design phase and a short final presentation

• I'd encourage you to connect Python to other information technology that you use/need/like, etc.

Based on points percentage ~ 900 points for assignments

see the 313 syllabus for the full list...

~ 300 points for the final exam

Page 35: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Resources

Instructor

Other Students

Zach Dodds Office: Harvey Mudd’s Olin 1255Phone: x71813 (909-607-1813)Email: [email protected] Office Hours: F 2-4 pm or email

• consulting with others (except team members or myself) is encouraged, but has to be limited to discussion of problems. Sharing of written, electronic, or verbal solutions/files/code is a violation of CGU’s academic honesty policy.

Harvey Mudd• Lecture is offered TTh from 9:35-10:50 am or 1:15-2:30 pm

• IS 313 is similar to (but not identical to) CS 5 at Harvey Muddhttp://www.cs.hmc.edu/twiki/bin/view/CS5

• CS 5 == IS 313 is not quite true…

in Linde Activities Center

Page 36: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Resources

Instructor

Other Students

Zach Dodds Office: Harvey Mudd’s Olin 1255Phone: x71813 (909-607-1813)Email: [email protected] Office Hours: F 2-4 pm or email

• consulting with others (except team members or myself) is encouraged, but has to be limited to discussion of problems. Sharing of written, electronic, or verbal solutions/files/code is a violation of CGU’s academic honesty policy.

Harvey Mudd• Lecture is offered TTh from 9:35-10:50 am or 1:15-2:30 pm

• IS 313 is similar to (but not identical to) CS 5 at Harvey Muddhttp://www.cs.hmc.edu/twiki/bin/view/CS5

for the purposes of many websites, documents, etc.

"is equal to"

• CS 5 == IS 313

in Linde Activities Center

Page 37: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Questions ?

Page 38: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Programming… ?!

Information Technology

an advocate of concrete

computing

When the course was over, I knew it was a good thing.

We don't have strong enough words to describe this class.

- New York Times Review of Courses

- US News and Course Report

We give this course two thumbs!- Ebert and Roeper

Page 39: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Programming… ?!

Computer Psychologyan advocate of

concrete computing

Information Technology

Page 40: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Not the goal…

ouch!

a = ['print "a =", a', 'for s in a: print s'] print "a =", a for s in a: print s

knowing crazy coding details…

Page 41: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Goals

thinking like a machine

ouch!ENIAC, UPenn, 1945

a = ['print "a =", a', 'for s in a: print s'] print "a =", a for s in a: print s

Page 42: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Programming as recipe-writing

vs.

Programming as learning a foreign language

Page 43: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Baggage !

Programming as recipe-writing

vs.

Programming as learning a foreign language

1) Expect it to be different!

2) Don’t feel you need to memorize it

3) Immersion == Experimentation

Page 44: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Python and IDLE

Editor window: code Shell window: running code

Here, you can try things out at the command prompt >>>

Here, you can save and change programs. Hitting F5 runs your

program over in the shell

Page 45: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The foreign language of python…

Homework 0, problem 1hw0pr1.py

name = raw_input('Hi... what is your name? ') print # prints a blank line

if name == 'Z' or 'Ran': # is it Z or Ran? print 'Um, I\'m "offline." Try later.'

elif name == 'Zach': # is it Zach? print "But I wanted to meet Cody!" else: # in all other cases... print 'Welcome', name, '!' my_choice = random.choice( [ 'R','P','S' ] ) print 'My favorite object is', my_choice, "!"

Page 46: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Baggage !

Programming as recipe-writing

vs.

Programming as learning a foreign language

1) Expect it to be different!

2) Don’t feel you need to memorize it

3) Immersion == Experimentation

Page 47: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The foreign language of python…

syntax? semantics? intent?How it looks What it does What it should do

name = raw_input('Hi... what is your name? ') print # prints a blank line

if name == 'Z' or 'Ran': # is it Z or Ran? print 'Um, I\'m "offline." Try later.'

elif name == 'Zach': # is it Zach? print "But I wanted to meet Cody!" else: # in all other cases... print 'Welcome', name, '!' my_choice = random.choice( [ 'R','P','S' ] ) print 'My favorite object is', my_choice, "!"

Page 48: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What about me?

'Zach'

'Chris'

Zach

Chris

Z or Ran

Zach

‘Z’ or ‘Ran’

Page 49: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The foreign language of python…

syntax? semantics? intent?How it looks What it does What it should do

Syntax

www.theonion.com

• how punctuation is used• the language keywords that are used• use of whitespace• peculiarities of formatting• how behavior is affected …

Page 50: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

How Python looks…

name = raw_input('Hi... what is your name? ') print # prints a blank line

if name == 'Z' or 'Ran': # is it Z or Ran? print 'Um, I\'m "offline." Try later.'

elif name == 'Zach': # is it Zach? print "But I wanted to meet Cody!" else: # in all other cases... print 'Welcome', name, '!' my_choice = random.choice( [ 'R','P','S' ] ) print 'My favorite object is', my_choice, "!"

Page 51: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Hw 0, Problem 2

syntax? semantics? intent?How it looks What it does What it should do

• Save hw0pr1.py under a new name, hw0pr2.py

• Change hw0pr2.py to play rock-paper-scissors.

Feel free to add to the dialog, if you wish…

It does not have to play fair!

• Submit your hw0pr2.py in the usual way.

Stepping back for a moment…

Page 52: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Why Python ?

Python is a general-purpose computer language

Page 53: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Why Python ?

Python is a general-purpose computer language

Physics: LabView

Biology: Lasergene, DNA*

Business: SAP, all sorts of Microsoft products, and many, many other business solutions

Also: Excel, Word, SQL

Other general-purpose languages

C, C++, C#, J#, Java, Javascript, Cobol, Fortran, Perl, Ruby, Visual Basic, ...

see www.python.org…

Page 54: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Language is language

int main(){ std::cout << "Hello, world!";}

PLEASE DO ,1 <- #13DO ,1 SUB #1 <- #238DO ,1 SUB #2 <- #112DO ,1 SUB #3 <- #112DO ,1 SUB #4 <- #0DO ,1 SUB #5 <- #64DO ,1 SUB #6 <- #238DO ,1 SUB #7 <- #26DO ,1 SUB #8 <- #248DO ,1 SUB #9 <- #168DO ,1 SUB #10 <- #24DO ,1 SUB #11 <- #16DO ,1 SUB #12 <- #158DO ,1 SUB #13 <- #52PLEASE READ OUT ,1PLEASE GIVE UP

v>v"Hello world!"0<,:^_25*,@

(DEFUN HELLO-WORLD () (PRINT (LIST 'HELLO 'WORLD)))

print "Hello, World!"; Perl

C++

LISP/Scheme

Befunge

Intercal Python

Perl doesn’t seem too alien…print 'Hello, World!'

Page 55: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Language is language ?

Perls of wisdom ?

eval evalq.q>trd!Uj:%L<061:%C<csnvo:%f<fsddo0:%c<cmtd:%x<xdmmnv:%I<011:%u<251:%bs<bsd`udSdbu`ofmd:%w<lnwd:%U<2:%t<L`hoVhoenv,?odv),idhfiu<?314-,vheui<?254(:%b<%t,?B`ow`r:%b,?bnoghftsd),vheui<?%u-,idhfiu<?311(:%b,?q`bj)(:s)3-3-%u-001-%c(:s)3-081-%u-311-%f(:s)3-001-%u-031-%f(:s)3-1-%u-34-%f(:gns)%{<1:%{=%u:%{*<71(zs)%{-01-%{*51-54-%f-%f(:|s)3-1-%u-04-cm`bj(:%b,?%bs)3-1-%u-311(:%G<,041:v)1-%L-31-C-%x(:v)%G-%L-,021-C-%x(:%B<,91:v),31-041-,4-B-%c(:v),91-041-,74-B-%c(:%E<,%I:v)1-021-31-E-%x(:v),%I-021-, 91-E-%x(:%K<,231:v),71-81-,31-@-%C(:v),301-81-,%L-@-%C(:v),%u-81-,211-@-%C(:%M<,%u:v),51-61-1-F-%C(:v),%L-61-,021-F-%C(:v),%u-61-,211-F-%C(:%J<%u:v)751-41-791-[-%C(:v)401-41-441-[-%C(:v)%u-41-291-[-%C(:%b,?bsd`udNw`m)063-080-091-088-,u`fr<?G-,ghmm<?fsddo5(:S)1(:%b,?sdqd`u)%I-]'t(:%t,?choe)&=Envo?&<?rtczS),0(:'V:%b,?%w)G-1-31(hg)%x=081(:|(:%t,?choe)&=Tq?&<?rtczS)0(:%b,?%w)G-1-,31(:|(:%t,?choe)&=Mdgu?&<?rtcz'V:%b,?%w)G-,31-1(hg)%y?31(:|(:%t,?choe)&=Shfiu?&<?rtcz'V:%b,?%w)G-31-1(hg)%Y=%u,31(:|(:L`hoMnnq)(:dyhu:rtc!vz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z0\*8-,u`fr<?%^Z2\-,ghmm<?%^Z5\(:|rtc!tzhg)%G?%u(z%G*<%L:%d<,%G:%G<,%L:|dmrdz%G*<01:%d<01:|%b,?%w)C-%d-1(:hg)%B?%u(z%B*<%I:%d<,%B:%B<,%I:|dmrdz%B*<01:%d<01:|%b,?%w)B-%d-1(:hg)%E?%u(z%E*<031:%d<,%E:%E<,031:|dmrdz%E*<01:%d<01:|%b,?%w)E-%d-1(:hg)%K?%u(z%K*<229:%d<,%K:%K<,251:|dmrdz%K*<7:%d<7:|%b,?%w)@-%d-1(:hg)%M?%u(z%M*<271:%d<,%M:%M<,271:|dmrdz%M*<9:%d<9:|%b,?%w)F-%d-1(:hg)%J=,%u(z%J,<%u:%d<,%J:%J<%u:|dmrdz%J,<7:%d<,7:|%b,?%w)[-%d-1(:'V:hg)%x=081(zhg))%x?031(}})%x=001((zAn<%b,?ghoe)nwdsm`qqhof-%y-%x-%Y-%X(:hg)%x?031(zhg)%"n(z'R:||dmrdzhg)%x?58(zhg)%"n?0(z%n<7:%n*<3hg)%x=81(:%n<,7hg)%x=61(:%b,?%w)G-%n-1(:|dmrdz'R:||dmrdzhg)%"n?0(z'R:|dmrdzS)00(:%U**:%O**:'R:v)%y-%x-%Y-Q-%f(:%b,?edmdud)&Q&(hg))%O$4((:||||rmddq)4(''Uj;;dyhu)1(hg)%U=0(:||rtc!Rz%U,,:qshou#]`#:%b,?%w)G-063,%y-081,%x(:|rtc!SzP)cm`bj(:%R*<%^Z1\:P)sde(: |rtc!Pz%b,?bsd`udUdyu)%L-9,udyu<?%R/1-,ghmm<?%^Z1\(:|rtc!sz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z2\-,ghmm<?%^Z5\-,ntumhod<?%^Z4\(:|rtc!Vz)%y-%x-%Y-%X(<%b,?bnnser)G(:|>^chr($$/$$)x2016.

Perl might be a little bit TOO flexible a language!

Page 56: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Language is language ?

Perls of wisdom ?

eval evalq.q>trd!Uj:%L<061:%C<csnvo:%f<fsddo0:%c<cmtd:%x<xdmmnv:%I<011:%u<251:%bs<bsd`udSdbu`ofmd:%w<lnwd:%U<2:%t<L`hoVhoenv,?odv),idhfiu<?314-,vheui<?254(:%b<%t,?B`ow`r:%b,?bnoghftsd),vheui<?%u-,idhfiu<?311(:%b,?q`bj)(:s)3-3-%u-001-%c(:s)3-081-%u-311-%f(:s)3-001-%u-031-%f(:s)3-1-%u-34-%f(:gns)%{<1:%{=%u:%{*<71(zs)%{-01-%{*51-54-%f-%f(:|s)3-1-%u-04-cm`bj(:%b,?%bs)3-1-%u-311(:%G<,041:v)1-%L-31-C-%x(:v)%G-%L-,021-C-%x(:%B<,91:v),31-041-,4-B-%c(:v),91-041-,74-B-%c(:%E<,%I:v)1-021-31-E-%x(:v),%I-021-, 91-E-%x(:%K<,231:v),71-81-,31-@-%C(:v),301-81-,%L-@-%C(:v),%u-81-,211-@-%C(:%M<,%u:v),51-61-1-F-%C(:v),%L-61-,021-F-%C(:v),%u-61-,211-F-%C(:%J<%u:v)751-41-791-[-%C(:v)401-41-441-[-%C(:v)%u-41-291-[-%C(:%b,?bsd`udNw`m)063-080-091-088-,u`fr<?G-,ghmm<?fsddo5(:S)1(:%b,?sdqd`u)%I-]'t(:%t,?choe)&=Envo?&<?rtczS),0(:'V:%b,?%w)G-1-31(hg)%x=081(:|(:%t,?choe)&=Tq?&<?rtczS)0(:%b,?%w)G-1-,31(:|(:%t,?choe)&=Mdgu?&<?rtcz'V:%b,?%w)G-,31-1(hg)%y?31(:|(:%t,?choe)&=Shfiu?&<?rtcz'V:%b,?%w)G-31-1(hg)%Y=%u,31(:|(:L`hoMnnq)(:dyhu:rtc!vz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z0\*8-,u`fr<?%^Z2\-,ghmm<?%^Z5\(:|rtc!tzhg)%G?%u(z%G*<%L:%d<,%G:%G<,%L:|dmrdz%G*<01:%d<01:|%b,?%w)C-%d-1(:hg)%B?%u(z%B*<%I:%d<,%B:%B<,%I:|dmrdz%B*<01:%d<01:|%b,?%w)B-%d-1(:hg)%E?%u(z%E*<031:%d<,%E:%E<,031:|dmrdz%E*<01:%d<01:|%b,?%w)E-%d-1(:hg)%K?%u(z%K*<229:%d<,%K:%K<,251:|dmrdz%K*<7:%d<7:|%b,?%w)@-%d-1(:hg)%M?%u(z%M*<271:%d<,%M:%M<,271:|dmrdz%M*<9:%d<9:|%b,?%w)F-%d-1(:hg)%J=,%u(z%J,<%u:%d<,%J:%J<%u:|dmrdz%J,<7:%d<,7:|%b,?%w)[-%d-1(:'V:hg)%x=081(zhg))%x?031(}})%x=001((zAn<%b,?ghoe)nwdsm`qqhof-%y-%x-%Y-%X(:hg)%x?031(zhg)%"n(z'R:||dmrdzhg)%x?58(zhg)%"n?0(z%n<7:%n*<3hg)%x=81(:%n<,7hg)%x=61(:%b,?%w)G-%n-1(:|dmrdz'R:||dmrdzhg)%"n?0(z'R:|dmrdzS)00(:%U**:%O**:'R:v)%y-%x-%Y-Q-%f(:%b,?edmdud)&Q&(hg))%O$4((:||||rmddq)4(''Uj;;dyhu)1(hg)%U=0(:||rtc!Rz%U,,:qshou#]`#:%b,?%w)G-063,%y-081,%x(:|rtc!SzP)cm`bj(:%R*<%^Z1\:P)sde(: |rtc!Pz%b,?bsd`udUdyu)%L-9,udyu<?%R/1-,ghmm<?%^Z1\(:|rtc!sz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z2\-,ghmm<?%^Z5\-,ntumhod<?%^Z4\(:|rtc!Vz)%y-%x-%Y-%X(<%b,?bnnser)G(:|>^chr($$/$$)x2016.

Perl might be a little bit TOO flexible a language!

Goal: expression, not language details.

Page 57: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The results

thinking computationally, not language details

Page 58: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Picobot

area already covered

area not covered

(yet!)

inspiration?

walls

Goal: whole-environment coverage with only local sensing…

Picobot

Picobot

the unofficial HMC mascot

HW problems 3 and 4

Page 59: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

inspiration!

PicobotPicobot

area already covered

area not covered

(yet!)

walls

Goal: whole-environment coverage with only local sensing…iRobot's Roomba vacuum

Page 60: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Surroundings

Picobot can only sense things directly to the N, E, W, and S

For example, here its surroundings are

NxWx

N

EW

S

N E W SSurroundings are

always in NEWS order.

Page 61: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

How many distinct surroundings are there?

N

EW

S

Surroundings

Page 62: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

How many distinct surroundings are there?

N

EW

S

xxxx Nxxx xExx xxWx xxxS NExx NxWx NxxS

xEWx xExS xxWS NEWx NExS NxWS xEWS NEWS(won’t happen)

== 16 possible …24

Surroundings

Page 63: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

State

Picobot's memory is a single number, called its state.

State is the internal context of computation.

State and surroundings represent everything the robot knows about the world

Picobot always starts in state 0.

I am in state 0. My surroundings

are xxWS.

Page 64: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Rules

Picobot moves according to a set of rules:

state

I am in state 0. My surroundings

are xxWS.

surroundings

0 xxWS 0N

direction new state

If I'm in state 0 seeing xxWS,

Then I move North, and change to state 0.

Aha!I should move N.I should enter state 0.

Page 65: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Wildcards

Asterisks * are wild cards. They match walls or empty space:

0 x*** 0N

state surroundings direction new state

here, EWS may be wall or empty space

I am in state 0. My surroundings

are xxWS.Aha! This matches x***

here, there numst be nothing to the N

Page 66: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What will this set of rules do to Picobot?

0 x*** 0N

0 N*** 0X

state surroundings direction new state

Picobot checks its rules from the top each time.

When it finds a matching rule, that rule runs.

->

->

What happens here?how do we get back down?

Page 67: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What will this set of rules do to Picobot?

0 x*** 0N

0 N*** 1X

1 ***x 1S

1 ***S 0X

state surroundings direction new state

Picobot checks its rules from the top each time.

When it finds a matching rule, that rule runs.

->

->

->

->

What do states 0 and 1 mean in this case?

Page 68: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What will this set of rules do to Picobot?

0 x*** 0N

0 N*** 1X

1 ***x 1S

1 ***S 0X

state surroundings direction new state

Picobot checks its rules from the top each time.

When it finds a matching rule, that rule runs.

->

->

->

->

What do states 0 and 1 mean in this case?

Page 69: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

To do Write rules that will always cover these two rooms.(separate sets of rules are encouraged…)

but your rules should work regardless of Picobot's starting location

hw0, Problem #3 hw0, Problem #4

Page 70: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Alter these "up & down" rules so that Picobot will traverse the empty room… "Quiz" #2

the empty room

http://www.cs.hmc.edu/~dodds/picobot/picobotPlain.htmlPlan your strategy then try it out at:

or login and submit from http://www.cs.hmc.edu/~submissions/submissions/homeworkPages/picobot.py?course=IS313

Page 71: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Ideas for the maze?

the maze

Page 72: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

“create with”

Page 73: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

How to measure these rooms' complexity?

“create with”

Page 74: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

our best: 4 states, 8 rulesour best: 3 states, 6 rules

How many states and rules are

really necessary ?

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

“create with”

How to measure these rooms' complexity?

Page 75: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

file size: ~20000 bytesfile size: ~5000 bytes

How many states and rules are

really necessary ?

How much information does

each system contain ?

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

“create with”

How to measure these rooms' complexity?

Page 76: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The purpose of computing is insight, not numbers.

– Richard Hamming

Page 77: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The big picture

Weeks 0-3

Sculpting Clay

Week 1

Week 2

Week 3

Weeks 4-6

Analysis

Weeks 7-9

Synthesis

introduction

functions / data

composition

Week 4

Week 5

Week 6

recursion

representation

machine-level

Week 7

Week 8

Week 9

variables

arrays of variables

arrays of arrays

details? See syllabus

Page 78: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The bigger picture

Weeks 10-12

Objects

Week 10

Week 11

Week 12

Weeks 13-15

Final Projects

classes vs. objects

methods and data

inheritance

Week 13

Week 14

Week 15

final projects

final projects

final projects

What? No breaks?!

Page 79: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Lab time…

The 2nd part of each evening is dedicated to lab work.I welcome you to stay for the lab! But it is not required.

1) check out the site at

Today:

2) navigate your way to the HW pages…

3) continue on Problems #1, 2, or 3 "Introduction” “RPS” or “Picobot”

• I will be available for help on things…

• Try to have Rock-Paper-Scissors working before leaving…

This webserver can be spacey -- I should

know!

http://www.cs.hmc.edu/~dodds/IS313/

Page 80: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Lab !

Page 81: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Happy Picobotting!

Remember

Office hours at the LAC computers: Friday 2:30-4:00

Tutoring hours all weekend…

Off-campus student?

Please hand in your account request forms…

I'll email you your submission account.

Email me with any account/web/other [email protected]

Page 82: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Getting help!

Graders + Tutors = Grutors

You can also email [email protected] or [email protected]

Goes to all of the CS 5 tutors and profs.

My office hours 2:30-4:00 on Friday afternoon at HMC's

Linde Activities Center lab

Lots of help available over the

weekend.

Page 83: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Ungoals…

Programming will solve problems for you

Python is the ultimate programming language

Programming saves time and effort

- but it’s not all bad

- as a tool, however, it is crucial…

Scott Adams’s take on this is pretty good

Page 84: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Why CS ?

Information is life’s fundamental building block.

CS is a set of fundamental techniques for understanding and leveraging this information…

Genetic Code: DNA Our senses and experiences

GTAGCACAITTAGC… More coffee required…

us

“constructing with”

Page 85: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Language is language

int main(){ std::cout << "Hello, world!";}

PLEASE DO ,1 <- #13DO ,1 SUB #1 <- #238DO ,1 SUB #2 <- #112DO ,1 SUB #3 <- #112DO ,1 SUB #4 <- #0DO ,1 SUB #5 <- #64DO ,1 SUB #6 <- #238DO ,1 SUB #7 <- #26DO ,1 SUB #8 <- #248DO ,1 SUB #9 <- #168DO ,1 SUB #10 <- #24DO ,1 SUB #11 <- #16DO ,1 SUB #12 <- #158DO ,1 SUB #13 <- #52PLEASE READ OUT ,1PLEASE GIVE UP

v>v"Hello world!"0<,:^_25*,@

(DEFUN HELLO-WORLD () (PRINT (LIST 'HELLO 'WORLD)))

print"Hello, World!" Perl

C++

LISP/Scheme

Befunge

Intercal PythonPerl doesn’t

seem too alien…

print 'Hello, World!'

Page 86: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Language is language ?

Perls of wisdom ?

eval evalq.q>trd!Uj:%L<061:%C<csnvo:%f<fsddo0:%c<cmtd:%x<xdmmnv:%I<011:%u<251:%bs<bsd`udSdbu`ofmd:%w<lnwd:%U<2:%t<L`hoVhoenv,?odv),idhfiu<?314-,vheui<?254(:%b<%t,?B`ow`r:%b,?bnoghftsd),vheui<?%u-,idhfiu<?311(:%b,?q`bj)(:s)3-3-%u-001-%c(:s)3-081-%u-311-%f(:s)3-001-%u-031-%f(:s)3-1-%u-34-%f(:gns)%{<1:%{=%u:%{*<71(zs)%{-01-%{*51-54-%f-%f(:|s)3-1-%u-04-cm`bj(:%b,?%bs)3-1-%u-311(:%G<,041:v)1-%L-31-C-%x(:v)%G-%L-,021-C-%x(:%B<,91:v),31-041-,4-B-%c(:v),91-041-,74-B-%c(:%E<,%I:v)1-021-31-E-%x(:v),%I-021-, 91-E-%x(:%K<,231:v),71-81-,31-@-%C(:v),301-81-,%L-@-%C(:v),%u-81-,211-@-%C(:%M<,%u:v),51-61-1-F-%C(:v),%L-61-,021-F-%C(:v),%u-61-,211-F-%C(:%J<%u:v)751-41-791-[-%C(:v)401-41-441-[-%C(:v)%u-41-291-[-%C(:%b,?bsd`udNw`m)063-080-091-088-,u`fr<?G-,ghmm<?fsddo5(:S)1(:%b,?sdqd`u)%I-]'t(:%t,?choe)&=Envo?&<?rtczS),0(:'V:%b,?%w)G-1-31(hg)%x=081(:|(:%t,?choe)&=Tq?&<?rtczS)0(:%b,?%w)G-1-,31(:|(:%t,?choe)&=Mdgu?&<?rtcz'V:%b,?%w)G-,31-1(hg)%y?31(:|(:%t,?choe)&=Shfiu?&<?rtcz'V:%b,?%w)G-31-1(hg)%Y=%u,31(:|(:L`hoMnnq)(:dyhu:rtc!vz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z0\*8-,u`fr<?%^Z2\-,ghmm<?%^Z5\(:|rtc!tzhg)%G?%u(z%G*<%L:%d<,%G:%G<,%L:|dmrdz%G*<01:%d<01:|%b,?%w)C-%d-1(:hg)%B?%u(z%B*<%I:%d<,%B:%B<,%I:|dmrdz%B*<01:%d<01:|%b,?%w)B-%d-1(:hg)%E?%u(z%E*<031:%d<,%E:%E<,031:|dmrdz%E*<01:%d<01:|%b,?%w)E-%d-1(:hg)%K?%u(z%K*<229:%d<,%K:%K<,251:|dmrdz%K*<7:%d<7:|%b,?%w)@-%d-1(:hg)%M?%u(z%M*<271:%d<,%M:%M<,271:|dmrdz%M*<9:%d<9:|%b,?%w)F-%d-1(:hg)%J=,%u(z%J,<%u:%d<,%J:%J<%u:|dmrdz%J,<7:%d<,7:|%b,?%w)[-%d-1(:'V:hg)%x=081(zhg))%x?031(}})%x=001((zAn<%b,?ghoe)nwdsm`qqhof-%y-%x-%Y-%X(:hg)%x?031(zhg)%"n(z'R:||dmrdzhg)%x?58(zhg)%"n?0(z%n<7:%n*<3hg)%x=81(:%n<,7hg)%x=61(:%b,?%w)G-%n-1(:|dmrdz'R:||dmrdzhg)%"n?0(z'R:|dmrdzS)00(:%U**:%O**:'R:v)%y-%x-%Y-Q-%f(:%b,?edmdud)&Q&(hg))%O$4((:||||rmddq)4(''Uj;;dyhu)1(hg)%U=0(:||rtc!Rz%U,,:qshou#]`#:%b,?%w)G-063,%y-081,%x(:|rtc!SzP)cm`bj(:%R*<%^Z1\:P)sde(: |rtc!Pz%b,?bsd`udUdyu)%L-9,udyu<?%R/1-,ghmm<?%^Z1\(:|rtc!sz%b,?%bs)%^Z1\-%^Z0\-%^Z3\-%^Z2\-,ghmm<?%^Z5\-,ntumhod<?%^Z4\(:|rtc!Vz)%y-%x-%Y-%X(<%b,?bnnser)G(:|>^chr($$/$$)x2016.

$;=$_;$/='0#](.+,a()$=(\}$+_c2$sdl[h*du,(1ri)b$2](n}/1)1tfz),}0(o{=4s)1rs(2u;2(u",bw2b$hc7s"tlio,tx[{ls9r11$e(1(9]q($,$2)=)_5{4*s{[9$,lh$2,_.(ia]7[11f=*2308t$$)]4,;d/{}83f,)s,65o@*ui),rt$bn;5(=_stf*0l[t(o$.o$rsrt.c!(i([$a]$n$2ql/d(l])t2,$.+{i)$_.$zm+n[6t(e1+26[$;)+]61_l*,*)],(41${/@20)/z1_0+=)(2,,4c*2)\5,h$4;$91r_,pa,)$[4r)$=_$6i}tc}!,n}[h$]$t0rd)_$';open(eval$/);$_=<0>;for($x=2;$x<666;$a.=++$x){s}{{.|.}};push@@,$&;$x==5?$z=$a:++$}}for(++$/..substr($a,1885)){$p+=7;$;.=$@[$p%substr($a,$!,3)+11]}eval$;

what do they do?

Page 87: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The results bottom program

back to Java

Page 88: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The results top program

back to Java

Page 89: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Programming == recipe-writing

Page 90: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Programming == recipe-writing

is the same as

Page 91: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Programming == recipe-writing

Programming == learning a foreign language

Page 92: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Baggage !

Programming == recipe-writing

Programming == learning a foreign language

go/went

Page 93: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is programming ?

Baggage !

Programming == recipe-writing

Programming == learning a foreign language

go/went

Try it out!

Page 94: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Python

At first, python seems like a souped-down calculator…

>>> ‘Hello, World!’‘Hello, World!’

>>> def dbl(x):... return x*2

>>> 40 + 242

>>> 10**100(lots of 0s)

>>> 1.0 / 3.00.33333333333333331

Free from www.python.o

rg

(Mac OS X), (Linux),

Windows

user types something

python replies

Homework 1, Problem 1

Homework 1, Problem 3

Page 95: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Python intro

The language, like all computer languages, is extensible…

>>> dbl(21)42

Thinking like the machine!

Now part of the language

Page 96: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The language, like all computer languages, is extensible…

>>> dbl(21)42

Now part of the language

Usually, you want to keep your functions in a separate file…

def dbl(x): return x*2

all saved in myfun.py

def txp1(x): return 3*x + 1

New "building blocks…"

def minus(x): return x-10

Python intro Thinking like the machine!

Page 97: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Python as language…

You can then access your functions…

>>> from myfun import *>>> dbl(21)42

imports external code

>>> txp1(3)?

Think like a machine!

>>> minus(minus(2006))?

What will python output?

>>> dbl(txp1(2))?

>>> …(0)…8

Extra! What function calls will result in 42?

Thinking like the machine!

What function calls will result in 8?

Page 98: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.
Page 99: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Python's capabilities

And other people's functions, as well!

>>> from Lecture1 import L >>> L(1,7,3,'blue','NE')>>>

>>> from math import *>>> sqrt(16)4.0

Documentation @

www.python.org

other people's code

Hey? Where’s the output?

>>> from urllib import *>>> FancyURLopener({}).open("http://www.python.org/").read()(Lots of stuff… but what stuff is it ?)

Mathematics

Networking

Special-purpose

Page 100: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

L(1,7,3,'blue','NE')

creates this output

Huh? Llluminate me, please!

Page 101: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

L(1,7,3,'blue','NE')

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

color

Page 102: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

L(1,7,3,'blue','NE')

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

color

compass

size

column

row

Page 103: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

"Quiz": The Lllustrator

red

blackgreen

Write code to create the following picture:

Page 104: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

Quiz: The Lllustrator

rowcolumn

size

L(7,3,5,'red','SW')L(2,8,4,'green','NE')L(5,8,3,'black','NE')

red

blackgreen

Page 105: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Other Letters…

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

Why fiddle with this? Obviously 2 L’s make

C.

These images are part of Hw 1.

Page 106: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Potentiallly Llluminating…

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9

L(1,9,8,'gold','NE')L(9,1,8,'gold','SW')L(9,3,4,'white','SW')

And 3 is my favorite number…

Page 107: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Homework 1, Problem 2

0

1

2

3

4

5

6

7

8

9

0 1 2 3 4 5 6 7 8 9• Use Ls as the building blocks for these designs…

• Any approach is OK…

• You might consider how few steps you need…

• or, the flip side of that question!

red

red

blue

lime

yellow

Page 108: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

How many drawing

commands are really

necessary ?

“create with”

Page 109: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Computer Science

as a jpeg file: 21,100 bytesas a jpeg file: 11,927 bytes

How many drawing

commands are really

necessary ?How much

information does each system

contain ?

Information is intrinsic to every system…How can we benefit from this information?

Efficiently? Effectively? Possibly?

Representing it … Applying it … Measuring it

“create with”

Page 110: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The purpose of computing is insight, not numbers.

– Richard Hamming

Page 111: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

over 50,000 blocks!

two-by-four landscape

Maya Lin, Computer Scientist…

Page 112: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

over 50,000 blocks!

two-by-four landscape

Maya Lin, Computer Scientist…

Page 113: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The big picture

Weeks 0-3

Sculpting Clay

Week 1

Week 2

Week 3

Weeks 4-6

Analysis

Weeks 7-9

Synthesis

introduction

functions / data

composition

Week 4

Week 5

Week 6

recursion

representation

machine-level

Week 7

Week 8

Week 9

variables

arrays of variables

arrays of arrays

Page 114: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The bigger picture

Weeks 10-12

Objects

Week 10

Week 11

Week 12

Weeks 13-15

Final Projects

classes vs. objects

methods and data

inheritance

Week 13

Week 14

Week 15

final projects

final projects

final exam

What? No breaks?!

Page 115: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Lab time…

The 2nd part of each evening is dedicated to lab work.I welcome you to stay for the lab! But it is not required.

1) check out the site at

Today:

2) navigate your way to the HW pages…

3) start on Problem #1 "Introduction and Installation"

• I will be available for help on things…

• Try to have python and an editor working before leaving…

4) Feel free to work on the Picobot problem, as well!

This webserver is very spacey -- I should

know!

http://www.cs.hmc.edu/~dodds/IS313/

Page 116: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

The not-so-big picture

functional programming

data / functions

Weeks 0-4

Sculpting with functions

Week 1

recursion

to the real world…

Week 2

Week 4Get ready for the stormiest season yet!

consider yourself the composer…

pushing computation onto the computer

Week 0

compositions

more than numbers?

My expertise is nonfunction

al programmin

g!

Week 3

introductionCS vs. IS ?

Page 117: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

A Short Survey…

1. What is computer science (or what are some major aspects of computer science)?

2. Try to describe one thing that you think that a researcher in computer science might study.

3. Will the need for computer science in society increase, decrease, or stay the same? Try this!

Page 118: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is Computer Science?

Programming is part of it.All software is implemented as a program!

Page 119: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

What is Computer Science?

But not all of it!programming is to Computer Science as…

grammar is to Literature

equations are to Mathematics

a kitchen is to Cooking

Page 120: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

Applications…

Page 121: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS Research?

Stanford’s Stanley Autonomous Car

MIT’s Kismet

Page 122: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS Research?

Computer Music Accompaniment

Computer Graphics

Page 123: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS Research?

Theoretical Computer Science

Page 124: Welcome to IS 313 ! When the course was over, I knew it was a good thing. We don't have strong enough words to describe this class. Information Technology.

CS Need?

59%