Announcements • Nate's office hours: • Card key issues?

advertisement
Announcements
• Nate's office hours:
– Monday, 12-2
– 329 Soda
• Card key issues?
(I've been told that any requests made before
September 1st didn't work. So, request if you
did it early)
Slide 1
More Announcements
• Next Lab (Tue/Wed) is “Catch Up”
– Go back over the last two weeks and fill in
places you missed
• You NEED to come to labs
– We are going to start taking attendance in
labs
• You need to make an effort to keep up with
lab work
Slide 2
Schedule
Sep 5-9
Conditionals
Sep 12-16 Catch up; work with case study
Working further with the case study
Sep 19-23
(miniproject)
Sep 26-30 Beginning Recursion
Oct 3-7
MIDTERM #1
More recursion in lab
Slide 3
How is it going?
(are you behind yet?)
(working at home?)
Slide 4
Review
• What is Scheme?
– (interpreter, editor)
• Functions
• Words and Sentences
Slide 5
Some programming
• “first-two”
– takes a word, returns the first two letters (as a
word)
• “two-first”
– takes two words, returns the first letter of each
(as a two-letter word)
Slide 6
Some nice comments
• "In English, when something is in quotes
we think about it differently. Same in
scheme"
• "In order to remember how to parenthesize
a cond statement... think of each
statement as an if without the 'if' "
Slide 7
Some review
• Quoting something means treating it literally:
– you are interested in the thing follows, rather than
what is named
– Quoting is a shortcut to putting literal things right in
your code. As your programs get bigger, you will do
this less and less.
• Testing is an art
– Programs get complicated very quickly; thinking up
good tests is hard.
– And yet it is crucial!
Slide 8
(define (walk light city cops-present)
(cond ((equal? city 'berkeley) 'strut)
((equal? light 'green) 'go)
((equal? light 'not-working)
'go-if-clear)
((and (equal? light 'flashing-red)
cops-present)
'wait)
((equal? light 'flashing-red)
'hurry)
(else 'just-stand-there)))
Slide 9
You are writing big programs now.
But, what can’t you do yet?
Slide 10
A video resource
• http://wla.berkeley.edu
Weiner lecture archives
• The "course" is an earlier CS3
– Different emphasis; early lectures may work
better than later ones
– Very different lab experience
– Same book
Slide 11
What does it mean to
“understand a program”
Slide 12
Case Studies
• Reading!?
• A case study:
–
–
–
–
starts with a problem statement
ends with a solution
in between, a …story… (narrative)
How a program comes to be
• You will write “day-span”, which calculates the
number of days between two dates in a year
Slide 13
You need to read this
• The lab will cover the case study through a
variety of activities.
– This will culminate in the first “mini-project”
• We just may base exam questions on it
• It will make you a better programmer!
4 out of 5 educational researchers say so.
Slide 14
Some important points
• There is a large "dead-end" in this text
– Like occur in many programming projects
– Good "style" helps minimize the impacts of
these
• There is (often) a difference between good
algorithms and between human thinking
Slide 15
Download