EECS 110: Lec 2: What is Programming? - PowerPoint PPT Presentation

About This Presentation
Title:

EECS 110: Lec 2: What is Programming?

Description:

Programming as learning a foreign language ... Picobot can only sense things directly to the N, E, W, and S ... Picobot checks its rules from the top each time. ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 30
Provided by: Oli8
Category:
Tags: eecs | lec | programming | study | time

less

Transcript and Presenter's Notes

Title: EECS 110: Lec 2: What is Programming?


1
EECS 110 Lec 2 What is Programming?
  • Aleksandar Kuzmanovic
  • Northwestern University

http//cs.northwestern.edu/akuzma/classes/EECS110
-s09/
2
CS ! programming
What is computer science (CS)? Take EECS 101
3
CS ! programming
What is computer science (CS)? Take EECS 101
"not equal to"
4
CS ! programming
programming CS
machining engineering
grammar literature
Programming
equations mathematics
CS
a vehicle, not a destination
5
CS computing science
Study of complexity (or complex things?)
How can it be done?
How well can it be done?
Can it be done at all?
6
CS computing science
Study of complexity (or complex things?)
How can it be done?
How well can it be done?
Can it be done at all?
"equal to"
7
Information
What information does Google work with? What
technical problems does Google face?
8
Information
What information does Facebook work with? What
technical problems does Facebook face?
9
Information
What information does the iPhone work with? What
technical problems does the iPhone face?
10
Computer Science and Information
  • Information is lifes fundamental building block
  • CS is a set of fundamental techniques for
    understanding and leveraging this information

11
Python and Idle
Editor window code
Shell window running code
Here, you can save and change programs. Hitting
F5 runs your program over in the shell
Here, you can try things out at the command
prompt gtgtgt
12
The foreign language of Python
name raw_input('Hi... what is your name? ')
print prints a blank
line if name 'Ionut' is it Ionut?
print name, '??'
print You must be a TA!' elif name
Aleksandar' is it Aleksandar? print You
must be an instructor!' else
in all other cases... print 'Welcome
to Python,', name, '!'
hw0pr1.py
Homework 0, problem 1
13
What is programming?
Programming as learning a foreign language
1) Expect it to be different!
2) Dont feel you need to memorize it
3) Immersion Experimentation
14
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 'Ionut' is it Ionut?
print name, '??'
print You must be a TA!' elif name
Aleksandar is it Aleksandar?
print You must be an instructor!' else
in all other cases...
print 'Welcome to Python,', name, '!'
15
Flowchart
16
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 'Ionut' is it Ionut?
print name, '??'
print You must be a TA!' elif name
Aleksandar is it Aleksandar?
print You must be an instructor!' else
in all other cases...
print 'Welcome to Python,', name, '!'
17
The foreign language of Python
syntax?
semantics?
intent?
How it looks
What it does
What it should do
  • how punctuation is used
  • the language keywords that are used
  • use of whitespace
  • peculiarities of formatting
  • how behavior is affected

18
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.

It does not have to play fair!
Feel free to add to the dialog, if you wish
  • Submit your hw0pr2.py in the usual way.

Stepping back from Python for a moment
19
Homework problems 3 and 4
walls
Picobot
Picobot
area not covered (yet!)
area already covered
Goal whole-environment coverage with only
local sensing
inspiration?
20
Picobot
walls
Picobot
area not covered (yet!)
area already covered
Goal whole-environment coverage with only
local sensing
iRobot's Roomba vacuum
inspiration!
21
Surroundings
Picobot can only sense things directly to the N,
E, W, and S
N
W
E
S
For example, here its surroundings are
NxWx
Surroundings are always in NEWS order.
N E W S
22
Surroundings
How many distinct surroundings are there?
N
E
W
S
24
16 possible
xxxx
Nxxx
xExx
xxWx
xxxS
NExx
NxWx
NxxS
xEWx
xExS
xxWS
NEWx
NExS
NxWS
xEWS
NEWS
(wont happen)
23
State
I am in state 0. My surroundings are xxWS.
Picobot's memory is a single number, called its
state. State is the internal context of
computation.
Picobot always starts in state 0.
State and surroundings represent everything the
robot knows about the world
24
Rules
I am in state 0. My surroundings are xxWS.
Aha! I should move N. I should enter state 0.
Picobot moves according to a set of rules
state
surroundings
direction
new state
0
xxWS
0
N
If I'm in state 0 seeing xxWS,
Then I move North, and change to state 0.
25
Wildcards
I am in state 0. My surroundings are xxWS.
Aha! This matches x
Asterisks are wild cards. They
match walls or empty space
state
surroundings
direction
new state
0
x
0
N
here, EWS may be wall or empty space
26
What will this set of rules do to Picobot?
state
surroundings
direction
new state
0
x
0
N
-gt
0
N
1
X
-gt
-gt
1
x
1
S
-gt
1
S
0
X
Picobot checks its rules from the top each time.
When it finds a matching rule, that rule runs.
Only one rule is allowed per state and
surroundings.
27
To do
Write rules that will always cover these two
rooms.
(separate sets of rules are encouraged)
hw0, Problem 3
hw0, Problem 4 (Extra)
but your rules should work regardless of
Picobot's starting location
28
Alter these "up down" rules so that Picobot
will traverse the empty room
the empty room
29
Ideas for the maze?
the maze
Write a Comment
User Comments (0)
About PowerShow.com