{\rtf1\ansi\deff0\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman{\*\falt Thorndale};}{\f1\froman\fprq2\fcharset0 Times New Roman{\*\falt Thorndale};}{\f2\froman\fprq0\fcharset0 Times New Roman;}{\f3\froman\fprq2\fcharset0 Times New Roman;}{\f4\fnil\fprq2\fcharset0 HG Mincho Light J;}{\f5\fnil\fprq2\fcharset0 Arial Unicode MS;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\snext1 Default;}
{\s2\tqc\tx4320\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\sbasedon1\snext2 Header;}
{\*\cs4\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033 Numbering Symbols;}
}
{\info{\author Sharon Tuttle}{\creatim\yr2002\mo10\dy29\hr8\min50}{\operator Sharon Tuttle}{\revtim\yr2002\mo10\dy29\hr9\min52}{\printim\yr2002\mo10\dy29\hr9\min43}{\comment StarWriter}{\vern6410}}\deftab1250
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\headery0{\*\headeryb283\headerxl0\headerxr0\headeryh0}{\header \pard\plain \s2\tqc\tx4320\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f3\fs16 {\ltrch\loch\f3 CS 131 - Fall 2002\tab \tab p. {\field{\*\fldinst \\page}{\fldrslt 2}}}
\par {\ltrch\loch\f3 10-29-02 - Several Useful Things to Know}
\par }
\pgdscnxt0 Default;}}
\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn2135\margbsxn1440\headery1440{\header \pard\plain \s2\tqc\tx4320\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f3\fs16 {\ltrch\loch\f3 CS 131 - Fall 2002\tab \tab p. {\field{\*\fldinst \\page}{\fldrslt 2}}}
\par {\ltrch\loch\f3 10-29-02 - Several Useful Things to Know}
\par }
\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\qc\ltrch\loch\f3\b {\ltrch\loch\f3 CS 131  - 10-29-02}
\par {\ltrch\loch\f3 Several Useful Things to Know}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-420\ltrch\loch\f3\b {\ltrch\loch\f3 1.\tab {\b0 Scheme has a function, }append{\b0 , that accepts two lists as argument, }list1{\b0  and }list2{\b0 , let's say, and results in a new list with }list's{\b0  elements followed by }list2's{\b0  elements. That is,}}
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-420\ltrch\loch\f3 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-420\ltrch\loch\f3 {\ltrch\loch\f3 (append (list 'a 'b) (list 'c 'd)) results in (list 'a 'b 'c 'd)}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li405\ri0\fi-420\ltrch\loch\f3\b {\ltrch\loch\f3 2.\tab {\b0 The next-section-to-read has been CHANGED. It is }no longer{\b0  sections 14-15 --- now it is }Intermezzo {\fs24 3/Section 18, pp. 259-280: local definitions and lexical scope{\b0 .}}}
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li405\ri0\fi-420\ltrch\loch\f3 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li405\ri0\fi-420\ltrch\loch\f3\b {\ltrch\loch\f3 3.\tab Partial-Homework-Amnesty Experiment}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-420\ltrch\loch\f3 {\ltrch\loch\f3 Quite a few of you did not turn in attempts for all homework problems; I think that doing so would still be useful in terms of studying for Midterm #2 and the Final (not to mention succeeding on the current homeworks, that build on that earlier material).}
\par 
\par {\ltrch\loch\f3 So, I am trying the following {\b experiment}:}
\par {\ltrch\loch\f3 You may turn in revised versions of earlier homework problems{\b  on homeworks #1-#7 only }for up to {\b half} credit, as long as they turned in by the Friday before Thanksgiving break {\b (by 5:00 pm on Friday, November 22nd)}.}
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-420
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-420\ltrch\loch\f3 {\ltrch\loch\f3 (It is up to half credit to be fair to those who did the assignments in a timely manner.)}
\par 
\par {\ltrch\loch\f3 Several pieces of advice: }
\par {\ltrch\loch\f3 *\tab This will {\b NOT}{\b0  apply from HW #8 onward.}}
\par 
\par {\ltrch\loch\f3 *\tab Finish HW #8 BEFORE you start doing problems from earlier homeworks!!!}
\par 
\par {\ltrch\loch\f3 *\tab After HW #8 is in, so that this work "feeds" into studying for Tuesday's Midterm #2, {\b first }redo any "missing" homework problems having to do with structures, lists, and recursion, in particular (my opinion); then what you are doing will likely also impro
ve your understanding of the Midterm #2 test material.}
\par 
\par {\ltrch\loch\f3 *\tab after Midterm #2, do not let the catch-up interfere with getting subsequent homeworks in on-time.}
\par 
\par {\ltrch\loch\f3 * \tab As with ALL programming, start EARLY, and drop me an e-mail question as soon as you get stuck...! (with Subject: line clearly noting that a QUESTION is within)}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-420\ltrch\loch\f3 {\ltrch\loch\f3 (over, please)}
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\rtlch\af2\afs28\ai\ab\ltrch\dbch\af2\afs28\ai\ab\loch\f2{\ltrch\loch\f2{\b 4.}\tab a few more thoughts on {\b composing} a program into {\b functions}... (HtDP, p. 169):}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\rtlch\af2\afs28\ai\ab\ltrch\dbch\af2\afs28\ai\ab\loch\f2 {\ltrch\loch\f2 *\tab If you have "cases" of data --- if this, then that --- use a {\b cond} expression!}
\par 
\par {\ltrch\loch\f2 *\tab "If a computation requires knowledge of a particular domain of application, for example, drawing on (computer) canvases, accounting, music, or science, use an auxiliary function" [to embody that special domain knowledge]}
\par 
\par {\ltrch\loch\f2 *\tab "If a  computation must process a list, a natural number, or some other piece of data of arbitrary size, use an auxiliary function"}
\par 
\par {\ltrch\loch\f2 *\tab "If the natural formulation of the function isn't QUITE what we want, it is most likely a {\b generalization} of our target. In this case, the main function [may be] a short definition that {\b defers} the computation to the generalized auxiliary function."}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li435\ri0\fi-435\rtlch\af2\afs28\ai\ab\ltrch\dbch\af2\afs28\ai\ab\loch\f2{\ltrch\loch\f2{\b 5.}\tab also a GOOD point (HtDP, p. 170):}
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\rtlch\af2\afs28\ai\ab\ltrch\dbch\af2\afs28\ai\ab\loch\f2 {\ltrch\loch\f2 *\tab make a {\b WISH LIST} while working on a program --- "Maintain a list of functions that must be developed to complete a program. Develop each function according to a design recipe."}
\par 
\par \pard\plain \s1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\rtlch\af2\afs28\ai\ab\ltrch\dbch\af2\afs28\ai\ab\loch\f2{\ltrch\loch\f2{\b0 *\tab (which, notice, means you'll be TESTING each as you go --- "greatly reduc[ing] the effort of searching for logical mistakes")}}
\par }