{\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\fprq2\fcharset0 Times New Roman;}{\f3\fmodern\fprq1\fcharset0 Courier New{\*\falt Cumberland};}{\f4\fnil\fprq2\fcharset0 HG Mincho Light J;}{\f5\fnil\fprq2\fcharset0 Arial Unicode MS;}}
{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
{\stylesheet{\s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\snext1 Default;}
{\s2\cf1{\*\tlswg8236}\tqc\tx4320{\*\tlswg8236}\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\sbasedon1\snext2 Header;}
{\s3\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af3\afs20\lang255\ltrch\dbch\af3\afs20\langfe255\loch\f3\fs20\lang1033\sbasedon1\snext3 Preformatted Text;}
{\*\cs5\cf1\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\sbasedon7 Page Number;}
{\*\cs6\cf1\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033 Numbering Symbols;}
{\*\cs7\cf1\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033 WW-Default Paragraph Font;}
}
{\info{\author Sharon Tuttle}{\creatim\yr2002\mo9\dy26\hr8\min15}{\operator Sharon Tuttle}{\revtim\yr2003\mo10\dy31\hr13\min33}{\printim\yr2002\mo10\dy31\hr9\min27}{\comment StarWriter}{\vern6410}}\deftab1250
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\headery0{\*\headeryb283\headerxl0\headerxr0\headeryh0}{\header \pard\plain \s2\cf1{\*\tlswg8236}\tqc\tx4320{\*\tlswg8236}\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033{\ltrch\loch\f0{\fs16 CS 131 - Midterm #2 Study Suggestions\tab \tab p. }{\field{\*\fldinst \\page}{\fldrslt 6}}{\*\cs5\cf1\rtlch\ltrch\dbch\loch\f0\fs24\lang1033\fs16 }}
\par \pard\plain \s2\cf1{\*\tlswg8236}\tqc\tx4320{\*\tlswg8236}\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\fs16 {\ltrch\loch\f0 Fall 2003}
\par }
\pgdscnxt0 Default;}}
\paperh15840\paperw12240\margl1800\margr1800\margt1440\margb1440\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn2093\margbsxn1440\headery1440{\header \pard\plain \s2\cf1{\*\tlswg8236}\tqc\tx4320{\*\tlswg8236}\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033{\ltrch\loch\f0{\fs16 CS 131 - Midterm #2 Study Suggestions\tab \tab p. }{\field{\*\fldinst \\page}{\fldrslt 6}}{\*\cs5\cf1\rtlch\ltrch\dbch\loch\f0\fs24\lang1033\fs16 }}
\par \pard\plain \s2\cf1{\*\tlswg8236}\tqc\tx4320{\*\tlswg8236}\tqr\tx8640{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\fs16 {\ltrch\loch\f0 Fall 2003}
\par }
\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\qc\ltrch\loch\f2 {\ltrch\loch\f2 CS 131 - Fall 2003}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\qc\ltrch\loch\f2\b {\ltrch\loch\f2 Midterm #2 Study Suggestions}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\ltrch\loch\f2 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab last modified: 10-31-03, {\b 1:30 pm}}
\par 
\par {\ltrch\loch\f2 *\tab remember: anything covered in assigned course reading, in lecture, or on a homework, is FAIR GAME.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab these are simply suggestions of some especially important concepts, to help you in your studying.}
\par 
\par {\ltrch\loch\f2 *\tab the general style of the test will be similar to Midterm #1; there may be short-answer questions, and you will be both writing and reading functions, programs, and fragments of code. Concepts and terminology may also be involved.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab note, too, that the tests *do* get harder as the semester progresses ---  your maturity as programmers should be increasing.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 
\par {\ltrch\loch\f2 *\tab you are responsible for all course material through and including our coverage of {\b arrays} and {\b HW #8}. (neither pass-by-reference nor file input/output will be included in this midterm --- they will be included on the final, of course.)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab will the test be comprehensive? In some sense, that cannot be avoided --- previous concepts are the foundations for the new concepts, especially in an intro-to-programming course. However, many of the questions will be {\b focused} on new material (starting, 
I believe, with writing your own C++ programs and HW #5), (although there are a few exceptions...)}
\par 
\par {\ltrch\loch\f2 *\tab there could still be questions involving the program design recipe, however, because of its importance, as well as questions involving class style standards and programming style guidelines;}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab you will be both writing and reading C++ functions on this exam, as well as fragments of C++ code (including statements and expressions).}
\par 
\par {\ltrch\loch\f2 *\tab {\b string} data type}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab (this is the "new" C++ {\b string} data type, as opposed to its old style {\b c string}, declared as {\b char[]}.)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab the only aspect of the old style c string data type that will be included on this midterm is that string literals such as {\b "Hi"} are actually values of the old style c string type, not literals of this {\b string} type.}
\par 
\par {\ltrch\loch\f2 *\tab Fortunately, the {\b string} type is set up so that one can assign an old style c string literal to a {\b string} type variable without a problem --- the conversion is accomplished smoothly.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 
\par {\ltrch\loch\f2 *\tab what library do you need to {\b #include} to use this {\b string }data type?}
\par 
\par {\ltrch\loch\f2 *\tab the {\b string }as symbolic data...}
\par 
\par {\ltrch\loch\f2 *\tab how can you declare a {\b string} variable? a {\b string} parameter? how can you assign to it?}
\par 
\par {\ltrch\loch\f2 *\tab how can you {\b compare} two {\b string} instances? can you use this same approach to compare two literals such as {\b "Hi" }and{\b  "HI"}? Why or why not?}
\par 
\par {\ltrch\loch\f2 *\tab what should you keep in mind about {\b cin} with regard to {\b string} variables? If you would really like for interactive input from the user to be a string containing blanks, what function should you use? ({\b getline} --- e.g., {\b getline(cin, stringVar) })}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b C++ programs}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what is a C++ {\b program}? What particular function must be included in a C++ program? What happens, then, when you execute a C++ program?}
\par 
\par {\ltrch\loch\f2 *\tab how do you {\b #include }a "standard" C++ library, given its name? how do you {\b #include} a header file for something in another file that you wish to use somewhere within this file (where all files involved are in the same directory)?}
\par 
\par {\ltrch\loch\f2 *\tab how do you compile --- but not link --- a C++ function using the Gnu C++ compiler that we have been using on {\b cs-server}? What kind of file results? (a {\b .o} or {\b object} file) Can this result be directly executed?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab I could give you an example scenario, and ask you to write a particular compilation statement for that scenario, and ask what file would result, and how it could be used.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 
\par {\ltrch\loch\f2 *\tab how do you compile and link a C++ program using the Gnu C++ compiler that we have been using on {\b cs-server}? What kind of file results? Can this result be directly executed?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what part of this is specifying the name desired for the executable result?}
\par 
\par {\ltrch\loch\f2 *\tab what files do you need to include as part of this statement?}
\par 
\par {\ltrch\loch\f2 *\tab here, too, I could give you an example scenario, and ask you to write a particular compilation statement for that scenario, and ask what file would result, and how it could be used.}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what is the header for a C++ {\b main} function? What statement should be at the end of the C++ {\b main} function body, using standard practice?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b more on C++ functions}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what is the return-type used for a C++ function that is not intended to return anything? What statement, then, would {\b not} be within such a function?}
\par 
\par {\ltrch\loch\f2 *\tab does a C++ function have to have parameters? How do you define/declare such a function? How do you call such a function?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab (remember the {\b exception} in this area, however: calls to {\b constructors} that take no arguments are written differently. Why? and how are they called?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab class style standard to keep in mind: g{\fs24{\i0 iven the kind of parameters that we are using currently (pass-by-value), it is poor style to }{\i change}{\i0  a parameter within a function. }}}
\par 
\par {\ltrch\loch\f2 *\tab how do you call a {\b member function} for an object? (You should be able to read and write statements containing appropriate calls to accessors, mutators, and other member functions for an object.)}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b local variables}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what do we mean by a {\b local variable}? how is it declared? what is its {\b scope}?}
\par 
\par {\ltrch\loch\f2 *\tab class style standard to keep in mind: {\fs24{\i0 Once a local variable has been declared, it must be }{\i set}{\i0  to some value before it is }{\i used}{\i0  within an expression.}}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab (you should {\b not} assume what the value of a variable will be if it has been declared but not yet had anything assigned to it;)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2\b 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b assignment}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what is an {\b assignment statement}? What does it do? How do you write one? When should you use one?}
\par 
\par {\ltrch\loch\f2 *\tab what do we mean by the LHS and RHS of an assignment statement? what can be on the LHS of an assignment? what can be on the RHS of one?}
\par 
\par {\ltrch\loch\f2 *\tab be comfortable reading, writing the {\b ++} and {\b += }operators. (These do not HAVE to be used in assignment statements --- but often are! 8-) )}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2\b 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b simple interactive input/output}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what C++ library should you {\b #include} to use simple interactive stream input/output?}
\par 
\par {\ltrch\loch\f2 *\tab should be quite comfortable with how {\b cin} and {\b cout} work;}
\par 
\par {\ltrch\loch\f2 *\tab basic numeric formatting using {\b cout} (note: I'm likely to include an example that does this. I'm expecting that you can find and modify this example as needed if a test question calls for that...)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab how can you output a number with a certain number of decimal/fractional places?}
\par 
\par {\ltrch\loch\f2 *\tab how can you guarantee that your output will *always* be displayed with a certain amount of decimal/fractional places?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b C++ classes}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what does a class contain? what does it represent? what is an object? what does an object include? (data, and functions for acting on that data!)}
\par 
\par {\ltrch\loch\f2 *\tab in a class involving data, what are the "minimum" member variables and member functions that could be included, according to class style standards?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab class style standard: at least what member functions should be included? How do we name these, according to class style standards?}
\par 
\par {\ltrch\loch\f2 *\tab class style standard: how will member variables be declared?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li840\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab how do you write a header file (.h file) for a class?}
\par {\ltrch\loch\f2 *\tab how do you write an implementation file (.cpp file) for a class?}
\par {\ltrch\loch\f2 *\tab how do you then declare, instantiate, and use instances of that class (objects)?}
\par 
\par {\ltrch\loch\f2 *\tab what is a constructor? a mutator? an accessor? Are these the only kinds of member functions that a class may have?}
\par 
\par {\ltrch\loch\f2 *\tab what is a member variable? What is our class style standard about what "visibility" these should have? Why?}
\par 
\par {\ltrch\loch\f2 *\tab you should be able to write a header file and implementation file for a class; you should be able to write functions that use class instances; you should be able to use class instances within programs.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 
\par {\ltrch\loch\f2 *\tab {\b loops/repetition}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab remember, repetition is one of the four basic structures of programming (sequence, branch, procedure/function, and repetition)}
\par 
\par {\ltrch\loch\f2 *\tab what are two of the statements that C++ provides for implementing the repetition structure? (OK, three if you include do..while...)}
\par 
\par {\ltrch\loch\f2 *\tab what is the syntax of the C++ {\b while} statement? what is its semantics?}
\par {\ltrch\loch\f2 *\tab what is the syntax of the C++ {\b for} statement? what is its semantics?}
\par 
\par {\ltrch\loch\f2 *\tab what do we mean by a loop condition? by a loop body?}
\par 
\par {\ltrch\loch\f2 *\tab you need to be familiar with the two classic "patterns" we discussed in connection with loops: count-controlled, and sentinel-controlled.}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab you should be able to read, write, and correct loops using the classic versions of each of these;}
\par 
\par {\ltrch\loch\f2 *\tab (you should know that these are simply two very common patterns --- they are not your ONLY possibilities! 8-) )}
\par 
\par {\ltrch\loch\f2 *\tab yes, you do have to know how to write/read/correct a classic count-controlled loop that happens to use a while loop;}
\par {\ltrch\loch\f2 *\tab ...even though, usually, what C++ statement will you use instead, for a count-controlled situation?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab be comfortable reading and writing while and for loops;}
\par 
\par {\ltrch\loch\f2 *\tab what is an infinite loop? how can it be avoided?}
\par 
\par {\ltrch\loch\f2 *\tab what is some other classic loop concerns? (does it go one too many, or one too few, times? is it ever entered at all?)}
\par 
\par {\ltrch\loch\f2 *\tab regarding {\b for} loops in particular:}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab for what style of loop is it particularly well-suited? for what situations is it particularly well-suited?}
\par 
\par {\ltrch\loch\f2 *\tab should be comfortable with its syntax and semantics;}
\par 
\par {\ltrch\loch\f2 *\tab if I gave you an appropriate while loop, could you convert it to an equivalent for loop? Vice versa?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1725\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab for every for statement, is there always an equivalent while? for every while statement, is there always an equivalent for?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1275\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab why might this be preferred to a while statement in some situations?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2\b 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li420\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab {\b arrays}}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what is an array?}
\par 
\par {\ltrch\loch\f2 *\tab expect to have to read, write, use arrays; should be comfortable with array-related syntax and semantics, and with common "patterns" for using arrays.}
\par 
\par {\ltrch\loch\f2 *\tab what 3 pieces of information does the compiler need to know to declare an array? how do you declare an array in C++?}
\par 
\par {\ltrch\loch\f2 *\tab how can you initialize an array? (there is more than one way...)}
\par 
\par {\ltrch\loch\f2 *\tab what is an array index? what is the size of an array? if you know an array's size, what are the indices of that array? what is the type of an array? what do we mean by array elements?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab given an array's declaration --- you should be able to tell me its size, type, range of indices, etc.}
\par 
\par {\ltrch\loch\f2 *\tab given the desired size and type, you should be able to write the appropriate corresponding array declaration (as well as code initializing it and using it..)}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li855\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab how do you write an expression representing a single element in an array? how do you write an expression representing the entire array?}
\par 
\par {\ltrch\loch\f2 *\tab how can you do something to every element within an array? how can you use every element within an array? what particular statement is especially useful in doing such actions?}
\par 
\par {\ltrch\loch\f2 *\tab how can you use an array as a function parameter?}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab what should be included along with the array, as an additional parameter?}
\par 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1305\ri0\fi-435\ltrch\loch\f2 {\ltrch\loch\f2 *\tab how do you pass an array as an argument? how do you declare an array as a parameter? (but note the next item!)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 
\par {\ltrch\loch\f2 *\tab can the function change the contents of the passed array? How should the array parameter be declared if its contents are {\b not} to be changed by the function? (It is a class style standard to do this, by the way, if the array is not to be changed by a funct
ion...)}
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li435\ri0\fi-435\ltrch\loch\f2 
\par \pard\plain \s1\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\aspalpha\rtlch\af5\afs24\lang255\ltrch\dbch\af4\afs24\langfe255\loch\f0\fs24\lang1033\li1290\ri0\fi-435\ltrch\loch\f2 
\par }