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