Code in Place_Lesson 1_slides
Code in Place_Lesson 1_slides
• Childhood: Iran
• High School: San Diego
• Stanford University Ph.D. in Machine Learning
(Before Machine Learning was cool)
• Spent a decade in tech industry before coming back as professor
• Love of teaching is why I came back
1/2 of CS106A
As Community Service
Karel
Karel
Data
Graphics
Footer Text 19
4/9/20 Piech and Sahami, Code in Place
Gratitude
This is a collective
community service
project. You are part of
our community.
Good morning
yth on
p
2012
2019
https://stackoverflow.blog/2017/09/06/incredible-growth-python/
Piech and Sahami, Code in Place
Guido van Rossum
“columns” run
Left/Right West East
South
3 + + + + +
Bottom/Top
“rows” run
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
move()
turn_left()
put_beeper()
pick_beeper()
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
3 + + + + +
2 + + + + +
1 + + + + +
1 2 3 4 5
def name():
function statements
a n ew
d d s r e l 's
a a
This nd to K
m a l a ry
com a b u
v oc
Program
def main():
move()
pick_beeper()
move()
turn_left()
main function
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
helper functions
turn_left()
turn_left()
if __name__
start == "__main__":
program
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
Import Packages
def main():
move()
pick_beeper()
move()
turn_left()
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
helper functions
turn_left()
turn_left()
if __name__
start == "__main__":
program
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
Import Packages
def main():
move()
pick_beeper()
move()
turn_left()
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__
start == "__main__":
program
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
Import Packages
def main():
move()
pick_beeper()
move()
turn_left()
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left()
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left()
move()
turn_right()
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left() This piece of the
move() program's source code is
turn_right() called a function.
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left()
move() This line of code gives the
turn_right() name of the function
move() (here, the name is: main)
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left()
move() This line of code gives the name of
turn_right() the function
move() (here, the name is: turn_right)
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left() This is called a code
move() block
turn_right() (Note the indenting)
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left() This is called a code
move() block
turn_right() (Note the indenting)
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place
Anatomy of a Program
from karel.stanfordkarel import *
def main():
move()
pick_beeper()
move()
turn_left() This is called a code
move() block
turn_right() (Note the indenting)
move()
put_beeper()
move()
def turn_right():
turn_left()
turn_left()
turn_left()
if __name__ == "__main__":
run_karel_program()
Piech and Sahami, Code in Place