\indexentry{book examples download|hyperpage}{2}
\indexentry{examples download|hyperpage}{2}
\indexentry{source download|hyperpage}{2}
\indexentry{book alternate formats|hyperpage}{3}
\indexentry{computer science|hyperpage}{4}
\indexentry{information processing|hyperpage}{4}
\indexentry{algorithms|hyperpage}{4}
\indexentry{data representation|hyperpage}{5}
\indexentry{Jaquard loom|hyperpage}{5}
\indexentry{Pascaline|hyperpage}{5}
\indexentry{bit|hyperpage}{5}
\indexentry{byte|hyperpage}{5}
\indexentry{binary number system|hyperpage}{5}
\indexentry{base 2|hyperpage}{5}
\indexentry{mantissa and exponent|hyperpage}{5}
\indexentry{instruction representation|hyperpage}{6}
\indexentry{machine language|hyperpage}{6}
\indexentry{assembler|hyperpage}{6}
\indexentry{interpreter|hyperpage}{6}
\indexentry{architecture|hyperpage}{6}
\indexentry{program development cycle|hyperpage}{6}
\indexentry{computer science!key concepts|hyperpage}{7}
\indexentry{Denning - Peter|hyperpage}{8}
\indexentry{Miles - Rob|hyperpage}{8}
\indexentry{C\# Yellow Book|hyperpage}{8}
\indexentry{introduction|hyperpage}{9}
\indexentry{comment|hyperpage}{11}
\indexentry{// comment|hyperpage}{11}
\indexentry{whitespace|hyperpage}{12}
\indexentry{Xamarin Studio|hyperpage}{12}
\indexentry{labs!Xamarin Studio|hyperpage}{12}
\indexentry{arithmetic|hyperpage}{20}
\indexentry{csharp|hyperpage}{20}
\indexentry{operator!+ with numbers|hyperpage}{20}
\indexentry{+!with numbers|hyperpage}{20}
\indexentry{operator!-|hyperpage}{20}
\indexentry{-!subtraction|hyperpage}{20}
\indexentry{operator!*|hyperpage}{21}
\indexentry{* multiplication|hyperpage}{21}
\indexentry{( )!grouping|hyperpage}{21}
\indexentry{grouping ( )|hyperpage}{21}
\indexentry{-!negation|hyperpage}{21}
\indexentry{remainder \%|hyperpage}{21}
\indexentry{\% remainder|hyperpage}{21}
\indexentry{operator!/, \%|hyperpage}{21}
\indexentry{division|hyperpage}{21}
\indexentry{/ division|hyperpage}{21}
\indexentry{. !double literal|hyperpage}{21}
\indexentry{double|hyperpage}{21}
\indexentry{int|hyperpage}{21}
\indexentry{type!int|hyperpage}{21}
\indexentry{type!double|hyperpage}{21}
\indexentry{expression|hyperpage}{23}
\indexentry{variable!assignment|hyperpage}{23}
\indexentry{assignment statement|hyperpage}{23}
\indexentry{statement!assignment|hyperpage}{23}
\indexentry{= !assignment|hyperpage}{23}
\indexentry{initializer|hyperpage}{24}
\indexentry{=!initializer|hyperpage}{24}
\indexentry{declaration initializer|hyperpage}{24}
\indexentry{csharp|hyperpage}{24}
\indexentry{csharp!help|hyperpage}{25}
\indexentry{csharp!quit!|hyperpage}{25}
\indexentry{csharp!ShowVars|hyperpage}{25}
\indexentry{literal|hyperpage}{27}
\indexentry{identifier|hyperpage}{27}
\indexentry{keyword|hyperpage}{27}
\indexentry{case sensitive|hyperpage}{27}
\indexentry{identifier!multi-word naming convention|hyperpage}{27}
\indexentry{camel case|hyperpage}{27}
\indexentry{syntax template typography|hyperpage}{28}
\indexentry{typography of syntax templates|hyperpage}{28}
\indexentry{statement!declaration|hyperpage}{28}
\indexentry{declaration statement|hyperpage}{28}
\indexentry{assignment statement|hyperpage}{28}
\indexentry{statement!assignment|hyperpage}{28}
\indexentry{string|hyperpage}{28}
\indexentry{"..." for string literal|hyperpage}{28}
\indexentry{string!concatenation with +|hyperpage}{29}
\indexentry{concatenation|hyperpage}{29}
\indexentry{+!string concatenation|hyperpage}{29}
\indexentry{operator!+ string concatenation|hyperpage}{29}
\indexentry{Console!WriteLine|hyperpage}{30}
\indexentry{WriteLine!Console|hyperpage}{30}
\indexentry{. !class static member|hyperpage}{30}
\indexentry{Console!Write|hyperpage}{30}
\indexentry{program structure|hyperpage}{30}
\indexentry{Xamarin Studio!indentation options setting|hyperpage}{31}
\indexentry{indentation options in Xamarin Studio|hyperpage}{31}
\indexentry{tabs changed to spaces|hyperpage}{31}
\indexentry{compiler error!explanation link|hyperpage}{33}
\indexentry{editor error annotations|hyperpage}{33}
\indexentry{syntax error annotations in editor|hyperpage}{33}
\indexentry{Xamarin Studio!editor error annotations|hyperpage}{33}
\indexentry{sequential execution order|hyperpage}{34}
\indexentry{execution!sequential order|hyperpage}{34}
\indexentry{playing computer|hyperpage}{34}
\indexentry{playing computer!exercise|hyperpage}{35}
\indexentry{exercise!playing computer|hyperpage}{35}
\indexentry{Console!ReadLine|hyperpage}{36}
\indexentry{ReadLine!Console|hyperpage}{36}
\indexentry{Console!ReadKey|hyperpage}{37}
\indexentry{ReadKey|hyperpage}{37}
\indexentry{string!Parse to int or double|hyperpage}{37}
\indexentry{Parse int and double|hyperpage}{37}
\indexentry{int!Parse|hyperpage}{37}
\indexentry{double!Parse|hyperpage}{37}
\indexentry{chunk in source comments|hyperpage}{38}
\indexentry{escape code \textbackslash{}|hyperpage}{40}
\indexentry{\textbackslash{} as character escape code|hyperpage}{40}
\indexentry{character escape code \textbackslash{}|hyperpage}{40}
\indexentry{string!@|hyperpage}{41}
\indexentry{@ string literal|hyperpage}{41}
\indexentry{verbatim string with @|hyperpage}{41}
\indexentry{csharp!verbatim string display|hyperpage}{41}
\indexentry{WriteLine!\{ \} for format|hyperpage}{41}
\indexentry{\{ \} !Format|hyperpage}{41}
\indexentry{format!literal \{\}|hyperpage}{43}
\indexentry{method!overloading|hyperpage}{44}
\indexentry{overloading!methods|hyperpage}{44}
\indexentry{type!value|hyperpage}{44}
\indexentry{value type|hyperpage}{44}
\indexentry{int!value range|hyperpage}{44}
\indexentry{type!int|hyperpage}{44}
\indexentry{overflow|hyperpage}{44}
\indexentry{type!long|hyperpage}{44}
\indexentry{long type|hyperpage}{44}
\indexentry{short type|hyperpage}{44}
\indexentry{byte type|hyperpage}{44}
\indexentry{type!double|hyperpage}{45}
\indexentry{double type|hyperpage}{45}
\indexentry{precision|hyperpage}{45}
\indexentry{float type|hyperpage}{45}
\indexentry{type!float|hyperpage}{45}
\indexentry{numeric type range|hyperpage}{46}
\indexentry{range of numeric types|hyperpage}{46}
\indexentry{byte type|hyperpage}{46}
\indexentry{short type|hyperpage}{46}
\indexentry{type!byte and short|hyperpage}{46}
\indexentry{cast|hyperpage}{46}
\indexentry{truncate in cast|hyperpage}{47}
\indexentry{Round function|hyperpage}{47}
\indexentry{type!char|hyperpage}{48}
\indexentry{char|hyperpage}{48}
\indexentry{Unicode|hyperpage}{48}
\indexentry{type!Boolean or bool|hyperpage}{49}
\indexentry{Boolean or bool|hyperpage}{49}
\indexentry{problem solving!strategy|hyperpage}{49}
\indexentry{labs!division sentences|hyperpage}{51}
\indexentry{comment|hyperpage}{52}
\indexentry{/* ... */ comment|hyperpage}{52}
\indexentry{*/ end /* comment|hyperpage}{52}
\indexentry{// comment|hyperpage}{52}
\indexentry{Xamarin Studio!empty project - no console error|hyperpage}{53}
\indexentry{Xamarin Studio!file not in project error|hyperpage}{53}
\indexentry{function!definition|hyperpage}{57}
\indexentry{function!execution sequence|hyperpage}{58}
\indexentry{execution sequence!function|hyperpage}{58}
\indexentry{compiler error!bad place for heading syntax|hyperpage}{60}
\indexentry{\{ \} !matching|hyperpage}{60}
\indexentry{function!compiler error with heading|hyperpage}{60}
\indexentry{( ) !matching|hyperpage}{60}
\indexentry{{[} {]} !matching|hyperpage}{60}
\indexentry{Xamarin Studio!delimiter matching|hyperpage}{60}
\indexentry{function!parameter|hyperpage}{60}
\indexentry{parameter|hyperpage}{60}
\indexentry{abstraction|hyperpage}{62}
\indexentry{function!parameter|hyperpage}{63}
\indexentry{parameter|hyperpage}{63}
\indexentry{parameter!actual and formal|hyperpage}{63}
\indexentry{actual parameter|hyperpage}{63}
\indexentry{formal parameter|hyperpage}{63}
\indexentry{function!return|hyperpage}{64}
\indexentry{return|hyperpage}{64}
\indexentry{execution sequence for function|hyperpage}{64}
\indexentry{example!addition2.cs|hyperpage}{66}
\indexentry{addition2.cs example|hyperpage}{66}
\indexentry{string!Format|hyperpage}{66}
\indexentry{Format method for string|hyperpage}{66}
\indexentry{function!consumer and writer|hyperpage}{67}
\indexentry{consumer of functions|hyperpage}{67}
\indexentry{writer of functions|hyperpage}{67}
\indexentry{local variables' scope|hyperpage}{68}
\indexentry{scope!local|hyperpage}{68}
\indexentry{constant|hyperpage}{69}
\indexentry{global constant|hyperpage}{69}
\indexentry{scope!class|hyperpage}{69}
\indexentry{class!scope|hyperpage}{69}
\indexentry{function!not use return value|hyperpage}{70}
\indexentry{return!value not used|hyperpage}{70}
\indexentry{library class|hyperpage}{71}
\indexentry{multiple source files using library class|hyperpage}{71}
\indexentry{library!UIF|hyperpage}{71}
\indexentry{namespace|hyperpage}{72}
\indexentry{IntroCS namespace|hyperpage}{72}
\indexentry{public|hyperpage}{72}
\indexentry{documentation of functions|hyperpage}{73}
\indexentry{function!documentation ///|hyperpage}{73}
\indexentry{/// documentation|hyperpage}{73}
\indexentry{function!summary of syntax|hyperpage}{75}
\indexentry{( )!function definition|hyperpage}{75}
\indexentry{( )!function call|hyperpage}{75}
\indexentry{string!index {[} {]}|hyperpage}{79}
\indexentry{{[} {]}!string index|hyperpage}{79}
\indexentry{subscript|hyperpage}{79}
\indexentry{string!method|hyperpage}{80}
\indexentry{. !object field reference|hyperpage}{80}
\indexentry{property|hyperpage}{80}
\indexentry{class!property|hyperpage}{80}
\indexentry{immutable|hyperpage}{82}
\indexentry{string!problem solving|hyperpage}{83}
\indexentry{problem solving|hyperpage}{83}
\indexentry{labs!string manipulations|hyperpage}{85}
\indexentry{statement!if|hyperpage}{86}
\indexentry{if|hyperpage}{86}
\indexentry{compound statement!\{ \}|hyperpage}{88}
\indexentry{\{ \}!compound statement|hyperpage}{88}
\indexentry{statement!compound|hyperpage}{88}
\indexentry{if-else|hyperpage}{89}
\indexentry{scope!compound statement|hyperpage}{89}
\indexentry{compound statement!scope|hyperpage}{89}
\indexentry{\{ \}!scope|hyperpage}{89}
\indexentry{compiler error!uninitialized local variable|hyperpage}{90}
\indexentry{boolean expression|hyperpage}{91}
\indexentry{comparison \textless{} \textgreater{} \textless{}= \textgreater{}= == !=|hyperpage}{91}
\indexentry{\textless{} less than|hyperpage}{91}
\indexentry{\textless{}= less than or equal|hyperpage}{91}
\indexentry{\textgreater{} greater than|hyperpage}{91}
\indexentry{\textgreater{}= greater than or equal|hyperpage}{91}
\indexentry{== equality test|hyperpage}{91}
\indexentry{!= inequality test|hyperpage}{91}
\indexentry{format!digits shown in string|hyperpage}{93}
\indexentry{precision!format with \{:F\#\}|hyperpage}{93}
\indexentry{digits formatted in string|hyperpage}{93}
\indexentry{:!string precision formatting|hyperpage}{93}
\indexentry{if-else-if|hyperpage}{95}
\indexentry{semicolon after condition pitfall|hyperpage}{98}
\indexentry{pitfall!if|hyperpage}{98}
\indexentry{if!pitfall|hyperpage}{98}
\indexentry{pitfall!dangling else!|hyperpage}{98}
\indexentry{dangling else pitfall|hyperpage}{98}
\indexentry{if-else!pitfall|hyperpage}{98}
\indexentry{pitfall!need braces for if|hyperpage}{99}
\indexentry{if!need braces|hyperpage}{99}
\indexentry{braces needed with if|hyperpage}{99}
\indexentry{\&\&!boolean operation AND|hyperpage}{100}
\indexentry{and \&\&|hyperpage}{100}
\indexentry{boolean operation!\&\& AND|hyperpage}{100}
\indexentry{\textbar{}\textbar{}!boolean operation OR|hyperpage}{101}
\indexentry{or \textbar{}\textbar{}|hyperpage}{101}
\indexentry{boolean operation!\textbar{}\textbar{} OR|hyperpage}{101}
\indexentry{! boolean operation NOT|hyperpage}{101}
\indexentry{not !|hyperpage}{101}
\indexentry{boolean operation!! NOT|hyperpage}{101}
\indexentry{implication operator|hyperpage}{102}
\indexentry{if!statements nested|hyperpage}{102}
\indexentry{statement!if nested|hyperpage}{102}
\indexentry{loop!while|hyperpage}{107}
\indexentry{while|hyperpage}{107}
\indexentry{while!statement|hyperpage}{109}
\indexentry{statement!while|hyperpage}{109}
\indexentry{playing computer!loop|hyperpage}{109}
\indexentry{while!execution sequence|hyperpage}{110}
\indexentry{execution sequence!while|hyperpage}{110}
\indexentry{while!rubric|hyperpage}{110}
\indexentry{pattern for a while loop|hyperpage}{110}
\indexentry{while!rubric for planning|hyperpage}{112}
\indexentry{loop!rubric for planning|hyperpage}{112}
\indexentry{concrete example|hyperpage}{113}
\indexentry{testing!edge case|hyperpage}{114}
\indexentry{range testing|hyperpage}{114}
\indexentry{edge case|hyperpage}{114}
\indexentry{big oh!order of n|hyperpage}{115}
\indexentry{order of n|hyperpage}{115}
\indexentry{pitfall!limit on number size|hyperpage}{115}
\indexentry{overflow|hyperpage}{115}
\indexentry{big oh!constant order|hyperpage}{116}
\indexentry{constant order|hyperpage}{116}
\indexentry{pitfall!division|hyperpage}{116}
\indexentry{division!pitfall|hyperpage}{116}
\indexentry{cast|hyperpage}{116}
\indexentry{while!index for sequence|hyperpage}{117}
\indexentry{sequence with while|hyperpage}{117}
\indexentry{example!OneCharPerLine|hyperpage}{117}
\indexentry{OneCharPerLine example|hyperpage}{117}
\indexentry{++ increment|hyperpage}{118}
\indexentry{-- decrement|hyperpage}{118}
\indexentry{operator!++ increment|hyperpage}{118}
\indexentry{operator!-- decrement|hyperpage}{118}
\indexentry{ReversedPrint example|hyperpage}{118}
\indexentry{string!PrintVowels|hyperpage}{118}
\indexentry{PrintVowels example|hyperpage}{118}
\indexentry{string!Contains|hyperpage}{120}
\indexentry{Contains for strings|hyperpage}{120}
\indexentry{example!check\_digits|hyperpage}{120}
\indexentry{IsDigits example function|hyperpage}{120}
\indexentry{return!from inside loop|hyperpage}{122}
\indexentry{playing computer!loop|hyperpage}{123}
\indexentry{loop!playing computer|hyperpage}{123}
\indexentry{interactive while loop|hyperpage}{124}
\indexentry{loop!while|hyperpage}{124}
\indexentry{while!interactive|hyperpage}{124}
\indexentry{concrete example!splitting a loop|hyperpage}{125}
\indexentry{loop!splitting concrete example|hyperpage}{125}
\indexentry{splitting a loop concrete example|hyperpage}{125}
\indexentry{pitfall!repeat interactive input|hyperpage}{126}
\indexentry{interactive while loop!repeat interactive input|hyperpage}{126}
\indexentry{compiler error!declaration repeat|hyperpage}{126}
\indexentry{declaration repeat error|hyperpage}{126}
\indexentry{type!declaration repeat error|hyperpage}{126}
\indexentry{pitfall!infinite loop|hyperpage}{127}
\indexentry{infinite loop|hyperpage}{127}
\indexentry{exercise!Agree|hyperpage}{128}
\indexentry{Agree exercise|hyperpage}{128}
\indexentry{exercise!InputWhole|hyperpage}{128}
\indexentry{InputWhole exercise|hyperpage}{128}
\indexentry{short-circuit \&\& and \textbar{}\textbar{}|hyperpage}{128}
\indexentry{\textbar{}\textbar{}!short-circuit|hyperpage}{128}
\indexentry{\&\&!short-circuit|hyperpage}{128}
\indexentry{bisection method|hyperpage}{130}
\indexentry{exercise!savings|hyperpage}{132}
\indexentry{exercise!strange sequence|hyperpage}{133}
\indexentry{exercise!roundoff II|hyperpage}{133}
\indexentry{string!method|hyperpage}{133}
\indexentry{string!IndexOf|hyperpage}{134}
\indexentry{IndexOf string method|hyperpage}{134}
\indexentry{string!Trim|hyperpage}{134}
\indexentry{Trim string method|hyperpage}{134}
\indexentry{string!Replace|hyperpage}{134}
\indexentry{Replace string method|hyperpage}{134}
\indexentry{string!StartsWith|hyperpage}{134}
\indexentry{StartsWith string method|hyperpage}{134}
\indexentry{string!EndsWith|hyperpage}{134}
\indexentry{EndsWith string method|hyperpage}{134}
\indexentry{exercise!CountRep|hyperpage}{135}
\indexentry{CountRep exercise|hyperpage}{135}
\indexentry{exercise!safe PromptInt and PromptDouble|hyperpage}{135}
\indexentry{safe PromptInt and PromptDouble exercises|hyperpage}{135}
\indexentry{library!UI|hyperpage}{136}
\indexentry{UI library class|hyperpage}{136}
\indexentry{algorithms!greatest common divisor|hyperpage}{137}
\indexentry{Euclid's algorithm|hyperpage}{137}
\indexentry{greatest common divisor algorithm|hyperpage}{137}
\indexentry{greatest common divisor!iterative|hyperpage}{139}
\indexentry{recursion!greatest common divisor|hyperpage}{140}
\indexentry{greatest common divisor!recursion|hyperpage}{140}
\indexentry{statement!do while|hyperpage}{141}
\indexentry{do while|hyperpage}{141}
\indexentry{while vs. do while|hyperpage}{141}
\indexentry{exercise!loan table|hyperpage}{142}
\indexentry{decimal!loan table exercise|hyperpage}{142}
\indexentry{labs!string manipulations|hyperpage}{143}
\indexentry{random number generator|hyperpage}{145}
\indexentry{loop!foreach|hyperpage}{148}
\indexentry{foreach|hyperpage}{148}
\indexentry{statement!foreach|hyperpage}{149}
\indexentry{foreach!syntax|hyperpage}{149}
\indexentry{char!underlying numeric code|hyperpage}{150}
\indexentry{loop!for|hyperpage}{151}
\indexentry{for|hyperpage}{151}
\indexentry{statement!for|hyperpage}{153}
\indexentry{execution sequence!for loop|hyperpage}{154}
\indexentry{statement!break|hyperpage}{154}
\indexentry{statement!continue|hyperpage}{154}
\indexentry{break statement|hyperpage}{154}
\indexentry{continue statement|hyperpage}{154}
\indexentry{operator!+= -= *= /= \%=|hyperpage}{157}
\indexentry{+= operator|hyperpage}{157}
\indexentry{-= operator|hyperpage}{157}
\indexentry{*= operator|hyperpage}{157}
\indexentry{/= operator|hyperpage}{157}
\indexentry{\%= operator|hyperpage}{157}
\indexentry{format!field width and precision|hyperpage}{157}
\indexentry{field width formatting|hyperpage}{157}
\indexentry{precision!format|hyperpage}{157}
\indexentry{table formatting|hyperpage}{157}
\indexentry{example!power\_table.cs|hyperpage}{157}
\indexentry{power\_table.cs example|hyperpage}{157}
\indexentry{right justification|hyperpage}{157}
\indexentry{justification!right|hyperpage}{157}
\indexentry{\{ \}!format field width and precision|hyperpage}{157}
\indexentry{left justification|hyperpage}{159}
\indexentry{format!left justification|hyperpage}{159}
\indexentry{justification!left|hyperpage}{159}
\indexentry{ASCII example|hyperpage}{159}
\indexentry{example!ASCII|hyperpage}{159}
\indexentry{example!mod\_mult\_table.cs|hyperpage}{160}
\indexentry{mod\_mult\_table.cs example|hyperpage}{160}
\indexentry{nested loop!table|hyperpage}{160}
\indexentry{string!reverse|hyperpage}{164}
\indexentry{reverse string example!|hyperpage}{164}
\indexentry{Random!static variable|hyperpage}{166}
\indexentry{Random!heads or tails exercise|hyperpage}{166}
\indexentry{exercise!heads or tails|hyperpage}{166}
\indexentry{heads or tails exercise|hyperpage}{166}
\indexentry{exercise!GroupFlips|hyperpage}{166}
\indexentry{exercise!reverse string foreach|hyperpage}{167}
\indexentry{exercise!only letters|hyperpage}{167}
\indexentry{only letters exercise!|hyperpage}{167}
\indexentry{exercise!palindrome|hyperpage}{167}
\indexentry{palindrome exercise!|hyperpage}{167}
\indexentry{exercise!nested play computer|hyperpage}{167}
\indexentry{exercise!power table|hyperpage}{168}
\indexentry{labs!loops|hyperpage}{168}
\indexentry{PrintReps|hyperpage}{168}
\indexentry{StringOfReps|hyperpage}{169}
\indexentry{Factorial|hyperpage}{169}
\indexentry{PrintRectangle|hyperpage}{169}
\indexentry{file|hyperpage}{171}
\indexentry{file (StreamWriter)!stream abstraction|hyperpage}{173}
\indexentry{stream|hyperpage}{173}
\indexentry{file (StreamWriter)!write and close|hyperpage}{173}
\indexentry{StreamWriter!WriteLine|hyperpage}{173}
\indexentry{WriteLine!StreamWriter|hyperpage}{173}
\indexentry{class!StreamWriter|hyperpage}{173}
\indexentry{close file|hyperpage}{173}
\indexentry{. !part of namespace|hyperpage}{174}
\indexentry{StreamWriter!format string|hyperpage}{174}
\indexentry{StreamWriter!Write|hyperpage}{174}
\indexentry{file (StreamWriter)!read and close|hyperpage}{175}
\indexentry{StreamReader!ReadLine|hyperpage}{175}
\indexentry{close file|hyperpage}{175}
\indexentry{StreamReader!EndOfStream|hyperpage}{175}
\indexentry{EndOfStream|hyperpage}{175}
\indexentry{var|hyperpage}{176}
\indexentry{type!var|hyperpage}{176}
\indexentry{StreamReader!null from ReadLine|hyperpage}{176}
\indexentry{ReadLine!null with StreamReader|hyperpage}{176}
\indexentry{file (StreamWriter)!ReadToEnd|hyperpage}{176}
\indexentry{StreamReader!ReadToEnd|hyperpage}{176}
\indexentry{ReadToEnd|hyperpage}{176}
\indexentry{example!sum\_files.cs|hyperpage}{176}
\indexentry{sum\_files.cs example|hyperpage}{176}
\indexentry{File class!Exists|hyperpage}{177}
\indexentry{Exists - File class method|hyperpage}{177}
\indexentry{exercise!safe sum|hyperpage}{178}
\indexentry{safe sum exercise|hyperpage}{178}
\indexentry{path|hyperpage}{179}
\indexentry{Directory|hyperpage}{180}
\indexentry{File class|hyperpage}{180}
\indexentry{command line!execution|hyperpage}{180}
\indexentry{execution on command line|hyperpage}{180}
\indexentry{mcs|hyperpage}{181}
\indexentry{command line!compile|hyperpage}{181}
\indexentry{compile on command line|hyperpage}{181}
\indexentry{NAnt build tool|hyperpage}{182}
\indexentry{FIO file I/O|hyperpage}{182}
\indexentry{library!FIO|hyperpage}{182}
\indexentry{array|hyperpage}{185}
\indexentry{type!array|hyperpage}{185}
\indexentry{array!one dimensional|hyperpage}{187}
\indexentry{array!{[} {]} declaration|hyperpage}{187}
\indexentry{{[} {]}!array indexing|hyperpage}{188}
\indexentry{array!indexing {[} {]}|hyperpage}{188}
\indexentry{index!array|hyperpage}{188}
\indexentry{array!as parameter|hyperpage}{189}
\indexentry{example!PrintStrings|hyperpage}{189}
\indexentry{function!return array|hyperpage}{190}
\indexentry{array!returned by method|hyperpage}{190}
\indexentry{command line!parameter|hyperpage}{190}
\indexentry{parameter!command line to Main|hyperpage}{190}
\indexentry{Main!parameters|hyperpage}{190}
\indexentry{Xamarin Studio!command line parameters|hyperpage}{191}
\indexentry{command line!parameters in Xamarin Studio|hyperpage}{191}
\indexentry{Xamarin Studio!combined with command line execution|hyperpage}{191}
\indexentry{command line!execution combined with Xamarin Studio editing|hyperpage}{191}
\indexentry{exercise!command line adder|hyperpage}{192}
\indexentry{command line adder exercise|hyperpage}{192}
\indexentry{Main!parameter exercise|hyperpage}{192}
\indexentry{parameter!for Main exercise|hyperpage}{192}
\indexentry{string!Split|hyperpage}{192}
\indexentry{Split method for strings|hyperpage}{192}
\indexentry{IntsFromString1|hyperpage}{192}
\indexentry{index!parallel arrays|hyperpage}{192}
\indexentry{alias|hyperpage}{193}
\indexentry{example!Scale|hyperpage}{194}
\indexentry{Scale example|hyperpage}{194}
\indexentry{array!parameter|hyperpage}{194}
\indexentry{array!anonymous initialization|hyperpage}{195}
\indexentry{OOP!default value|hyperpage}{195}
\indexentry{default value in instance|hyperpage}{195}
\indexentry{index!variable not in loop heading|hyperpage}{196}
\indexentry{example!remove\_zeros.cs|hyperpage}{196}
\indexentry{exercise!ExtractItems|hyperpage}{197}
\indexentry{ExtractItems exercise|hyperpage}{197}
\indexentry{exercise!TrimAll for arrays|hyperpage}{198}
\indexentry{TrimAll exercise|hyperpage}{198}
\indexentry{exercise!Dups|hyperpage}{198}
\indexentry{Dups exercise for arrays|hyperpage}{198}
\indexentry{exercise!Mirror|hyperpage}{198}
\indexentry{Mirror exercise for arrays|hyperpage}{198}
\indexentry{exercise!Reverse for arrays|hyperpage}{199}
\indexentry{Reverse exercise for arrays|hyperpage}{199}
\indexentry{exercise!Histogram|hyperpage}{199}
\indexentry{Histogram exercise|hyperpage}{199}
\indexentry{exercise!power table 2|hyperpage}{200}
\indexentry{algorithms!linear search|hyperpage}{203}
\indexentry{search!linear|hyperpage}{203}
\indexentry{linear search|hyperpage}{203}
\indexentry{PF4|hyperpage}{204}
\indexentry{recursion|hyperpage}{204}
\indexentry{SP1|hyperpage}{204}
\indexentry{history|hyperpage}{204}
\indexentry{sorting|hyperpage}{204}
\indexentry{exchanging array elements|hyperpage}{205}
\indexentry{array!exchange elements|hyperpage}{205}
\indexentry{sorting!bubble sort|hyperpage}{206}
\indexentry{algorithms!bubble sort|hyperpage}{206}
\indexentry{array!nested loop|hyperpage}{206}
\indexentry{bubble sort|hyperpage}{206}
\indexentry{sorting!selection sort|hyperpage}{206}
\indexentry{algorithms!selection sort|hyperpage}{206}
\indexentry{nested loop|hyperpage}{206}
\indexentry{selection sort|hyperpage}{206}
\indexentry{Shuffle exercise|hyperpage}{208}
\indexentry{exercise!Shuffle|hyperpage}{208}
\indexentry{sorting!insertion sort|hyperpage}{208}
\indexentry{algorithms!insertion sort|hyperpage}{208}
\indexentry{nested loop|hyperpage}{208}
\indexentry{insertion sort|hyperpage}{208}
\indexentry{sorting!Shell sort|hyperpage}{210}
\indexentry{nested loop|hyperpage}{210}
\indexentry{Shell sort|hyperpage}{210}
\indexentry{algorithms!Shell sort|hyperpage}{210}
\indexentry{sorting!Quicksort|hyperpage}{212}
\indexentry{algorithms!Quicksort|hyperpage}{212}
\indexentry{recursion!Quicksort|hyperpage}{212}
\indexentry{Quicksort|hyperpage}{212}
\indexentry{loop!invariant|hyperpage}{213}
\indexentry{Random|hyperpage}{213}
\indexentry{seed|hyperpage}{213}
\indexentry{regenerate random numbers|hyperpage}{213}
\indexentry{Stopwatch|hyperpage}{213}
\indexentry{performance - Stopwatch and TimeSpan|hyperpage}{213}
\indexentry{timing|hyperpage}{213}
\indexentry{search!binary|hyperpage}{216}
\indexentry{binary search|hyperpage}{216}
\indexentry{algorithms!binary search|hyperpage}{216}
\indexentry{labs!arrays|hyperpage}{218}
\indexentry{array!two dimensional|hyperpage}{225}
\indexentry{two dimensional array|hyperpage}{225}
\indexentry{exercise!row and column numbering|hyperpage}{228}
\indexentry{row and column numbering exercise|hyperpage}{228}
\indexentry{exercise!varying column width|hyperpage}{229}
\indexentry{varying column width exercise|hyperpage}{229}
\indexentry{array!of arrays|hyperpage}{229}
\indexentry{array!two-dimensional, ragged|hyperpage}{229}
\indexentry{list|hyperpage}{232}
\indexentry{type!List|hyperpage}{232}
\indexentry{list|hyperpage}{233}
\indexentry{generics|hyperpage}{233}
\indexentry{\textless{} \textgreater{} for generics|hyperpage}{233}
\indexentry{List!constructor|hyperpage}{233}
\indexentry{List!Count|hyperpage}{233}
\indexentry{List!Add|hyperpage}{233}
\indexentry{List!Remove|hyperpage}{233}
\indexentry{List!RemoveAt|hyperpage}{233}
\indexentry{List!Contains|hyperpage}{233}
\indexentry{list!index {[} {]}|hyperpage}{234}
\indexentry{{[} {]}!list index|hyperpage}{234}
\indexentry{List!Console.WriteLine useless|hyperpage}{234}
\indexentry{List!constructor with sequence|hyperpage}{235}
\indexentry{side effect|hyperpage}{235}
\indexentry{example!ReadLines|hyperpage}{235}
\indexentry{ReadLines example|hyperpage}{235}
\indexentry{List!ReadLines example|hyperpage}{235}
\indexentry{.net api|hyperpage}{236}
\indexentry{API for .Net|hyperpage}{236}
\indexentry{library!reference for .Net|hyperpage}{236}
\indexentry{URL for .Net library reference|hyperpage}{236}
\indexentry{msdn.microsoft.com|hyperpage}{236}
\indexentry{dictionary|hyperpage}{237}
\indexentry{type!Dictionary|hyperpage}{237}
\indexentry{dictionary!key lookup {[} {]}|hyperpage}{239}
\indexentry{{[} {]}!dictionary key lookup|hyperpage}{239}
\indexentry{dictionary!Keys|hyperpage}{240}
\indexentry{Keys property|hyperpage}{240}
\indexentry{example!ContainsKey|hyperpage}{240}
\indexentry{dictionary!ContainsKey example|hyperpage}{240}
\indexentry{ContainsKey example|hyperpage}{240}
\indexentry{big oh|hyperpage}{240}
\indexentry{dictionary!big oh|hyperpage}{240}
\indexentry{linear order|hyperpage}{240}
\indexentry{constant order|hyperpage}{240}
\indexentry{generics!HashSet|hyperpage}{241}
\indexentry{HashSet|hyperpage}{241}
\indexentry{set|hyperpage}{241}
\indexentry{type!HashSet|hyperpage}{241}
\indexentry{example!Word Count|hyperpage}{241}
\indexentry{Word Count example|hyperpage}{241}
\indexentry{HashSet!example|hyperpage}{241}
\indexentry{List!example|hyperpage}{241}
\indexentry{class|hyperpage}{247}
\indexentry{type!user defined object|hyperpage}{247}
\indexentry{class!Contact|hyperpage}{249}
\indexentry{Contact class|hyperpage}{249}
\indexentry{instance of a class|hyperpage}{249}
\indexentry{OOP!constructor|hyperpage}{249}
\indexentry{constructor|hyperpage}{249}
\indexentry{new as operator|hyperpage}{249}
\indexentry{operator!new|hyperpage}{249}
\indexentry{OOP!instance variable|hyperpage}{251}
\indexentry{instance variable|hyperpage}{251}
\indexentry{variable!instance|hyperpage}{251}
\indexentry{private!instance variable|hyperpage}{251}
\indexentry{lifetime|hyperpage}{251}
\indexentry{OOP!constructor|hyperpage}{251}
\indexentry{constructor|hyperpage}{251}
\indexentry{OOP!instance method|hyperpage}{252}
\indexentry{instance method|hyperpage}{252}
\indexentry{method|hyperpage}{252}
\indexentry{OOP!getter|hyperpage}{252}
\indexentry{getter method|hyperpage}{252}
\indexentry{example!Contact version 2|hyperpage}{253}
\indexentry{OOP!this|hyperpage}{253}
\indexentry{this instance|hyperpage}{253}
\indexentry{ToString|hyperpage}{255}
\indexentry{override|hyperpage}{255}
\indexentry{redeclaring instance variables error|hyperpage}{257}
\indexentry{compiler error!before error in text|hyperpage}{257}
\indexentry{instance variable!redeclaring error|hyperpage}{257}
\indexentry{lifetime!vs. scope|hyperpage}{257}
\indexentry{scope!vs. lifetime|hyperpage}{257}
\indexentry{exercise!getters and setters|hyperpage}{258}
\indexentry{Averager Example|hyperpage}{258}
\indexentry{class!convert static game to instance|hyperpage}{262}
\indexentry{class!user class as instance|hyperpage}{264}
\indexentry{example!clock|hyperpage}{264}
\indexentry{format!0-pad|hyperpage}{266}
\indexentry{zero pad format|hyperpage}{266}
\indexentry{overloading!constructors|hyperpage}{266}
\indexentry{model-view-controller pattern|hyperpage}{267}
\indexentry{class!Rational|hyperpage}{268}
\indexentry{Rational class|hyperpage}{268}
\indexentry{private!helping method|hyperpage}{269}
\indexentry{exercise!ForceMatch|hyperpage}{277}
\indexentry{class!plan classes and methods|hyperpage}{277}
\indexentry{plan problem split into classes|hyperpage}{277}
\indexentry{value type|hyperpage}{279}
\indexentry{reference object|hyperpage}{279}
\indexentry{struct|hyperpage}{279}
\indexentry{operator!overload in user class|hyperpage}{279}
\indexentry{overloading!operators|hyperpage}{279}
\indexentry{precedence!with operator overloading|hyperpage}{280}
\indexentry{operator!precedence with overloading|hyperpage}{280}
\indexentry{operator!casts in user class|hyperpage}{280}
\indexentry{casts in user-defined classes|hyperpage}{280}
\indexentry{implicit casts in user-defined classes|hyperpage}{280}
\indexentry{decimal type|hyperpage}{281}
\indexentry{type!decimal|hyperpage}{281}
\indexentry{explicit casts in user-defined classes|hyperpage}{281}
\indexentry{exercise!overloading operators|hyperpage}{281}
\indexentry{overloading!exercise for operators|hyperpage}{281}
\indexentry{testing|hyperpage}{282}
\indexentry{testing!assertion|hyperpage}{283}
\indexentry{assertion testing|hyperpage}{283}
\indexentry{attribute {[} {]}|hyperpage}{283}
\indexentry{{[} {]}!attribute|hyperpage}{283}
\indexentry{Xamarin Studio!running NUnit tests|hyperpage}{287}
\indexentry{testing!running in Xamarin Studio|hyperpage}{287}
\indexentry{String Replace NUnit Exercise|hyperpage}{289}
\indexentry{exercise!String Replace NUnit|hyperpage}{289}
\indexentry{Grade File NUnit Exercise'|hyperpage}{289}
\indexentry{exercise!Grade File NUnit test|hyperpage}{289}
\indexentry{interface|hyperpage}{289}
\indexentry{IComparable Interface|hyperpage}{291}
\indexentry{interface!IComparable|hyperpage}{291}
\indexentry{:!in class heading|hyperpage}{291}
\indexentry{interface!hides actual underlying type|hyperpage}{292}
\indexentry{cohesion of code units|hyperpage}{295}
\indexentry{coupling of classes|hyperpage}{295}
\indexentry{separation of concerns among classes|hyperpage}{295}
\indexentry{class!choosing what parts fit|hyperpage}{295}
\indexentry{exercise!igame|hyperpage}{296}
\indexentry{interface!igame exercise|hyperpage}{296}
\indexentry{igame exercise|hyperpage}{296}
\indexentry{development tools|hyperpage}{305}
\indexentry{mono installation|hyperpage}{306}
\indexentry{Xamarin Studio!installation|hyperpage}{306}
\indexentry{mono command prompt (Windows)|hyperpage}{307}
\indexentry{csharp!mono command prompt (Windows)|hyperpage}{307}
\indexentry{Xamarin Studio!further tools|hyperpage}{308}
\indexentry{command line|hyperpage}{308}
\indexentry{command line!paths|hyperpage}{309}
\indexentry{paths on command line|hyperpage}{309}
\indexentry{command line!dir and ls|hyperpage}{310}
\indexentry{dir on Windows command line|hyperpage}{310}
\indexentry{ls on Mac command line|hyperpage}{310}
\indexentry{drive change on Windows|hyperpage}{310}
\indexentry{command line!cd|hyperpage}{311}
\indexentry{cd on command line|hyperpage}{311}
\indexentry{change directory on command line|hyperpage}{311}
\indexentry{command line!mkdir|hyperpage}{311}
\indexentry{mkdir on command line|hyperpage}{311}
\indexentry{command line!rmdir|hyperpage}{311}
\indexentry{rmdir on command line|hyperpage}{311}
\indexentry{command line!mcs|hyperpage}{312}
\indexentry{mcs compile on command line|hyperpage}{312}
\indexentry{compile on command line mcs|hyperpage}{312}
\indexentry{command line!display text file|hyperpage}{312}
\indexentry{type on Windows command line|hyperpage}{312}
\indexentry{cat on Mac command line|hyperpage}{312}
\indexentry{command line!copy file|hyperpage}{312}
\indexentry{copy on Windows command line|hyperpage}{312}
\indexentry{cp on Mac command line|hyperpage}{312}
\indexentry{command line!delete a file|hyperpage}{312}
\indexentry{erase on Windows command line|hyperpage}{312}
\indexentry{rm on Mac command line|hyperpage}{312}
\indexentry{command line!help|hyperpage}{312}
\indexentry{help on command line|hyperpage}{312}
\indexentry{man on Mac command line|hyperpage}{312}
\indexentry{command line!script|hyperpage}{312}
\indexentry{script on command line|hyperpage}{312}
\indexentry{command line!copy and paste text|hyperpage}{313}
\indexentry{copy text on command line|hyperpage}{313}
\indexentry{paste text on command line|hyperpage}{313}
\indexentry{command line!shortcuts|hyperpage}{313}
\indexentry{shortcuts on command line|hyperpage}{313}
\indexentry{file completion on command line|hyperpage}{313}
\indexentry{history on command line|hyperpage}{313}
\indexentry{precedence|hyperpage}{313}
\indexentry{operator!precedence|hyperpage}{313}
\indexentry{homework!grade\_calc I|hyperpage}{313}
\indexentry{homework!grade calculation 2|hyperpage}{317}
\indexentry{grade calculation 2 homework|hyperpage}{317}
\indexentry{homework!grade files|hyperpage}{320}
\indexentry{grade files homework|hyperpage}{320}
\indexentry{homework!booklist|hyperpage}{324}
\indexentry{booklist homework|hyperpage}{324}
\indexentry{OOP!homework|hyperpage}{324}
\indexentry{labs!hg and version control|hyperpage}{334}
\indexentry{version control lab|hyperpage}{334}
\indexentry{hg|hyperpage}{334}
\indexentry{bitbucket.org|hyperpage}{335}
\indexentry{Mercurial|hyperpage}{344}
\indexentry{version control|hyperpage}{344}
