lesson=Introduction to livetexts directory=IN file=IN1 page=Introduction to livetexts expo=Exploring this book of Lessons of this Lesson Book INPage.exp file=IN2 page=Activities expo=Using Controls in Activities INActiv.exp quiz=Introduction to exercises INexer.fil file=IN3 page=The Lesson Book Page expo=Changing Text INTogl.exp expo=Setting Preferences INPREFs.exp file=IN4 page=Global Features expo=Using the Table of Contents INCont.exp expo=Introduction to the Glossary INGlos.exp expo=Introduction to the Index INdex.exp expo=Introduction to Bookmarks INmark.exp file=IN5 page=Page Controls expo=Laboratory INLab.exp expo=Homework INHomew.exp expo=Projects INProj.exp expo=Web INWeb.exp expo=Help Guide INGuide.exp file=IN6 page=Dealing with Java Programs file=IN7 page=Learning Effectively lesson=Introduction to Java directory=JA file=JA1 page=Hardware and software expo=Hardware versus software JAintro.exp expo=Computer memory JAmemory.exp file=JA2 page=Some simple Java programs expo=A do-nothing Java program JAprog0.exp expo=A program that prints JAprogpr.exp toy=A program that creates a window JAprogem.scr toy=A program that draws JAproggr.scr quiz=Simple Java program exercises. JAovrvw.fil file=JA3 page=Components of a Java program expo=Comments and whitespace JAcommen.exp quiz=Exercises on comments and whitespace JAwhitsp.fil expo=Keywords and identifiers JAkeys.exp quiz=Exercises on keywords and identifiers JAkeywds.fil expo=Variables and types JAvars.exp expo=Expressions JAexps.exp quiz=Exercises on variables and expressions. JAvarexp.fil file=JA4 page=Three statements: assignment, conditional, and block expo=The assignment statement JAassign.exp expo=Swapping two variables JAswap.exp expo=Conditional statements: if JAif.exp expo=Conditional statements: if-else JAifelse.exp expo=Boolean expressions JAbool.exp expo=Blocks JAblock.exp quiz=Exercises on assignment, conditional and block statements. JA3state.fil file=JA5 page=Input/Output expo=Using the Java Console for output JAconsoo.exp expo=Using the Java Console for input JAconsoi.exp toy=A GUI: JLiveWindow JAActGUI.scr quiz=Exercises on the java console and GUIs JAjcgui.fil expo=Graphics windows JAgraph1.exp toy=Using a graphics window JAgraph2.scr quiz=Exercises on graphics windows JAgrfwin.fil file=JA6 page=Assertions in programs expo=Relations about variables and values JAasser1.exp expo=Simplifying a particular kind of relation JAasser2.exp expo=Assertions JAasser3.exp file=JA7 page=Additional statements and expressions lesson=Methods and method calls directory=ME file=ME1 page=Methods expo=Methods are recipes MErecipe.exp expo=The black-box view of a method MEmeth1.exp quiz=Check your understanding of terminology MEmetha.fil expo=Understanding procedure calls MEcall1.exp expo=The general form of a procedure call. MEcallfo.exp file=ME2 page=Method bodies and method calls expo=The method body MEbody1.exp expo=Example of method-call execution MEpaint2.exp expo=Executing inner calls MEinner.exp quiz=Review of methods MEmeths.fil expo=Writing procedure calls MEcallwr.exp file=ME3 page=Two components of method bodies expo=Local variables MElocal1.exp expo=Combining declaration and initialization MElocal2.exp quiz=Check your understanding of local variables MElocal3.fil expo=The return statement MEreturn.exp file=ME4 page=Functions expo=Form of a function MEfunc.exp expo=The function call MEfuncca.exp expo=Executing a function call MEfunccb.exp quiz=Check your understanding of functions MEfunccc.fil file=ME5 page=Top-down programming expo=Top-down design MEtopd.exp expo=Edgar Allen Poe used top-down design MEpoe.exp expo=Anglicizing integers --functionally MEtopd2.exp expo=Anglicizing integers --using assignments MEtopd3.exp lesson=Primitive types directory=PR file=PR1 page=Primitive types file=PR2 page=The integer types expo=Integral constants (literals) PRintlit.exp expo=Operations on type int PRintexp.exp expo=Promoting integer values to a wider type PRintpro.exp expo=Casting integer values PRintcas.exp quiz=Review of integer types PRints.fil file=PR3 page=A minimalist view of floating-point expo=Literals of type double PRfloli1.exp expo=Values of type double and operations on them PRflolit.exp file=PR4 page=Remarks about floating point file=PR5 page=Type char expo=Literals of type char PRchalit.exp expo=Char as an integral type PRchaint.exp expo=A loop to sequence through characters PRchaloo.exp expo=Execution of the loop PRchalo2.exp file=PR6 page=Type boolean expo=The literals and operations of type boolean PRbool.exp expo=Short-circuit evaluation PRbool1.exp expo=Properties of boolean operators PRbool2.exp quiz=Exercises on type boolean PRboolqz.fil expo=The mark of a boolean tyro PRbool3.exp lesson=Programming style directory=ST file=ST1 page=Good Programming Practices file=ST2 page=Naming conventions toy=Conventions for naming parameters STnamepa.scr toy=Conventions for naming local variables STnamelo.scr toy=Conventions for naming instance variables and class variables STnamefi.scr expo=Conventions for naming constants STnameco.exp quiz=Review of conventions for variable names STvarnam.fil expo=Conventions for naming methods STnameme.exp expo=Conventions for naming classes STnamecl.exp file=ST3 page=Conventions for indentation expo=Why indent? STindent.exp expo=Points to watch out for when indenting STinden1.exp file=ST4 page=Guidelines for writing methods expo=The specification as a logical firewall STfirewa.exp expo=Consistency of method body and method specification STconsis.exp expo=The statement-comment STstacom.exp expo=Discussion of the statement-comment STstaco1.exp expo=Why indent? STstaco2.exp file=ST5 page=Describing variables expo=Describing instance variables a declarations of instance variables and class variables. STdeccla.exp expo=The placement of local-variable declarations STdecloc.exp lesson=Classes directory=CL file=CL1 page=Classes expo=The class as a file drawer of methods CLstatme.exp expo=Referencing static methods CLstaref.exp toy=Temperature conversion CLtemper.scr expo=Overloading method names CLoverl.exp file=CL2 page=Class Math expo=The static methods in class Math CLclmath.exp expo=The static fields of class Math CLstafie.exp quiz=Exercises on static methods and variables CLstatmv.fil expo=Trigonometric functions CLtrig.exp file=CL3 page=Classes and objects expo=Using an object to aggregate information CLaggreg.exp expo=Referencing an object and its fields CLfieref.exp expo=Definition of a class CLdefini.exp toy=A Class as a type CLastype.scr file=CL4 page=Creating and initializing objects toy=Creating objects CLnewexp.scr expo=Creating String objects CLstring.exp toy=Using field declarations to initialize fields CLfieldi.scr file=CL5 page=Scope boxes and constructors expo=The scope box of a frame CLscopeb.exp toy=The constructor CLconstr.scr toy=Calling a constructor from a constructor CLconstq.scr file=CL6 page=Non-static methods toy=Non-static methods CLmeth1.scr toy=Creating an instance of Circle CLmethC1.scr toy=Using instance methods of class Circle CLmethC2.scr toy=Hiding instance variables CLmethC3.scr toy=Reasons for using modifier private CLmethC4.scr quiz=Exercises on non-static methods CLnonsta.fil file=CL7 page=Consequences of using objects expo=The scope box for a call of an instance method CLscopec.exp toy=Method toString CLtostri.scr expo=Evaluating a call on method toString CLtoeval.exp toy=Further examples of method toString CLtostra.scr quiz=Exercises on objects CLobject.fil file=CL8 page=Object-oriented design expo=Designing the classes of a program CLdesgn1.exp expo=Problem statement: reading a clock CLdesgn2.exp expo=Identifying the classes CLdesgn3.exp expo=Designing classes Clock and Time CLdesgn4.exp expo=Implementing Clock, Time, and GUI CLdesgn5.exp expo=Designing the player and the game CLdesgn6.exp expo=Implementing the player and the game CLdesgn7.exp expo=Putting it all together CLdesgn8.exp lesson=Subclasses and inheritance directory=SB file=SB1 page=Subclasses toy=The need for better structuring mechanisms SBintro.scr toy=The subclass SBsubc1.scr expo=The subclass (continued) SBsubc3.exp file=SB2 page=Constructors and inherited methods toy=Writing a constructor for a subclass SBsubc2.scr toy=Overriding an inherited method SBsubc4.scr toy=Calling an overridden method of the superclass SBsubc5.scr expo=Use of keywords this and super SBsubc6.exp quiz=Exercises on subclasses SBsubqz1.fil toy=Access modifier protected SBsubc7.scr expo=The class hierarchy SBhier.exp file=SB3 page=Casting and a new model of execution of method calls expo=Widening SBwiden.exp expo=Narrowing SBnarrow.exp expo=Execution of a method call SBmodel.exp expo=Referencing an item within a method body SBmodel2.exp toy=A final look at class Employee SBlookat.scr file=SB4 page=Object-oriented design expo=Object-oriented design with subclasses SBdesgn.exp toy=Classes Shape and Parallelogram SBshape1.scr toy=Sublasses Rhombus and Square SBshape2.scr toy=Using the shape classes SBshape3.scr file=SB5 page=Abstract classes toy=Abstract classes SBabstr.scr lesson=Some useful classes directory=IC file=IC1 page=Numerical wrapper classes expo=Wrapper class Integer ICInteg.exp expo=Instance methods of class Integer ICInteg1.exp expo=Static constants and methods of wrapper class Integer ICInteg2.exp file=IC2 page=Non-numerical wrapper classes file=IC3 page=Strings expo=String literals ICStrin1.exp expo=Variables of type String ICStrin4.exp expo=Operation catenation ICStrin2.exp expo=More on catenation ICStrin3.exp expo=Referencing the characters of a String ICStrin5.exp expo=Equality of Strings ICStrin6.exp quiz=Review of string concepts ICstring.fil file=IC4 page=Class StringBuffer file=IC5 page=Class Vector expo=Adding objects to a Vector ICVector.exp expo=Referencing and changing objects in a Vector ICVectos.exp expo=Other Vector methods ICVectot.exp file=IC6 page=Class Date lesson=Packages directory=PA file=PA1 page=Packages expo=The package and import statements PApack1.exp expo=Package names PApack3.exp expo=The class path PApack2.exp lesson=Loops directory=LO file=LO1 page=Iteration expo=Introduction to the while loop LObullsi.exp expo=The invariant for the while loop LObullsj.exp expo=Understanding a loop in terms of its invariant LObullj1.exp expo=Development of a second while loop LObullsk.exp expo=Execution of the second while loop LObullsl.exp expo=Reading the loop with the aid of its invarian.t LObullsm.exp expo=A variation of the while loop LObllsk.exp quiz=Exercises on loops LOopquiz.fil file=LO2 page=Several examples of loops expo=Thoughts on developing an invariant LOinvdev.exp expo=The roach explosion LOroach.exp expo=Exponentiation LOexpo.exp toy=The spiral LOspiral.scr file=LO3 page=Loop schemata expo=A schema for processing natural numbers LOpatw.exp expo=A loop to count the w's LOcntw.exp expo=Testing primality LOprime.exp expo=A loop schema for reading and processing nonzero integers LOpatr.exp expo=Printing the sum of nonzero input integers LOsum.exp file=LO4 page=The for loop expo=Transforming a while into a for loop LOfor1.exp expo=Syntax and semantics of the for loop LOfor2.exp expo=Developing a for loop LOfor3.exp quiz=Exercises on for loops LOforqz.fil file=LO5 page=Making progress and stopping expo=The bound function LObnd.exp expo=Using loop condition k != n LOstop.exp expo=Using loop condition k < n LOstop1.exp expo=Off-by-one errors LOoffone.exp file=LO6 page=Miscellaneous points about loops expo=Counting primes LOnest.exp expo=No nested loops. LOnest1.exp expo=How not to design loops LOdesign.exp lesson=Arrays directory=RA file=RA1 page=Introduction to arrays expo=Introduction to arrays RAintro.exp expo=The length of an array RAlength.exp expo=Referencing array elements RArefer.exp expo=Array initializers RAinits.exp expo=Where can array initializers be used? RAinitt.exp quiz=Exercises on arrays RAquiz1.fil file=RA2 page=Talking about array segments expo=The notation b[i..j] RAsegme.exp expo=Picturing array segments RAsegme1.exp expo=Using pictures to present relations about arrays RAsegme2.exp file=RA3 page=Some programs that use arrays expo=A schema for processing array segments RApat2.exp expo=A schema for processing array segments in reverse order RApat1.exp toy=Printing input values in reverse order RAprrev.scr expo=Finding the number of smaller elements RAarnum.exp toy=Testing method numberLess RAtestno.scr expo=Checking for equality of arrays RAeqTest.exp expo=Returning an array RAcopy.exp file=RA4 page=Arrays and classes expo=Printing a student report RAstud1.exp toy=Printing a student report (continued) RAstud2.scr toy=Printing a student report (continued) RAstud3.scr expo=Private leaks RAstud4.exp expo=Dynamic arrays RAdynar1.exp toy=Dynamic arrays (continued) RAdynar2.scr quiz=Exercises on class DynamicArray RAdynarq.fil file=RA5 page=Some basic array algorithms expo=Linear search RAlinser.exp expo=Another version of linear search RAlinse1.exp expo=Finding the position of the minimum value RAminser.exp expo=Inserting into a sorted array segment RAins1.exp expo=Partitioning an array segment RApart1.exp expo=Median of three RAmedia3.exp expo=Merging two sorted array segments RAmerge.exp expo=Binary search RAbinser.exp file=RA6 page=Selection sort and Insertion sort expo=Selection sort RAselsor.exp expo=Selection sort revisited RAselsos.exp expo=InsertionSort RAinssor.exp lesson=Multi-dimensional arrays directory=MA file=MA1 page=Multidimensional arrays expo=Declaring and creating two-dimensional arrays MAintro.exp expo=Referencing elements of a two-dimensional array MAref.exp expo=Referencing the number of rows and columns MAsize.exp quiz=Exercises on two-dimensional arrays MAquiz1.fil expo=A non-Java notation for a subarray MAsubarr.exp expo=Two-dimensional array initializers MAinits.exp file=MA2 page=Some programs that use two-dimensional arrays expo=Printing a table of values MAshow.exp expo=A schema for processing a two-dimensional array MAloop.exp toy=An interest(ing) table MAintrst.scr expo=Row-major search MAsear1.exp expo=Saddleback search MAsear2.exp file=MA3 page=The Java concept of a multi-dimensional array expo=The Java concept of a two-dimensional array MAmultia.exp expo=The lengths of rows and columns MAmultib.exp expo=Ragged arrays MAmultic.exp quiz=Exercises on Java multi-dimensional arrays MAquiz2.fil file=MA4 page=Programs that use ragged arrays expo=Pascal's triangle MAPascal.exp expo=Implementing Pascal's triangle MAPasca2.exp expo=Printing Pascal's triangle MAPasca3.exp lesson=Recursion directory=RE file=RE1 page=Recursion expo=Recursive definitions REcur1.exp expo=First recursive method REcur2.exp expo=Second recursive method REcur3.exp expo=Third recursive method REcur4.exp expo=The recursive pattern REcur5.exp quiz=Exercises on recursion REcura.fil file=RE2 page=Execution of calls on recursive methods expo=Execution of a call on a recursive method REexec1.exp expo=Tail recursion for procedures REexec3.exp expo=Explicit implementation of tail recursion for procedures REexec4.exp file=RE3 page=Some interesting recursive methods expo=Tiling a kitchen REtile1.exp expo=Computing x to the y. REexp1.exp expo=Mergesort. REmerge.exp file=RE4 page=Quicksort expo=Basic quicksort REquick1.exp expo=Quicksort at its best REquick2.exp expo=Quicksort at its worst REquicka.exp expo=Solving the quicksort space ineffificencies REquick3.exp lesson=Testing and debugging directory=DE file=DE1 page=Introduction to testing and debugging expo=Good programming practices DEprac.exp file=DE2 page=Testing strategies expo=Using GUI JLiveWindow as a test driver DEdrive2.exp toy=Another test driver for a method DEdrive1.scr expo=The test driver for a class DEclass1.exp expo=Assertions in testing DEassert.exp file=DE3 page=Selecting test cases and checking them expo=Structural testing DEwhite.exp expo=Checking test cases automatically DEtestau.exp expo=Partial checking done automatically DEtestav.exp file=DE4 page=Debugging expo=Tracking down a bug DEbug1.exp expo=Tracking down another bug DEbug2.exp lesson=Interfaces directory=IT file=IT1 page=Interfaces expo=The interface ITinter1.exp expo=Implementing an interface ITinter2.exp expo=The real use of interface ActionListener ITinter3.exp file=IT2 page=The interface as a type expo=The interface ITintcla.exp expo=Implementing more than one interface ITintcl2.exp expo=Extending an interface ITintcl3.exp quiz=Exercises on interfaces ITquiz.fil file=IT3 page=Interface Comparable expo=Interface comparable ITcomp1.exp expo=Implementing class Comparable ITcomp2.exp expo=Casting between Pixel and Comparable ITcomp3.exp file=IT4 page=Interface Enumeration expo=Interface Enumeration ITenum1.exp expo=A neat use of Enumeration ITenum2.exp lesson=GUIs and event-driven programming directory=GU file=GU1 page=GUIs and event-driven programming file=GU2 page=Components and containers file=GU3 page=Layout managers file=GU4 page=Listening to a GUI lesson=Exception handling directory=EX file=EX1 page=Output of thrown Exceptions and Errors expo=Throwing-an-Exception output EXintro.exp file=EX2 page=The concept of a throwable object toy=Throwable objects EXthrow.scr file=EX3 page=Catching a thrown exception expo=The try statement EXtry.exp expo=Using the try-statement in JLiveWindow EXtry2.exp expo=Using the try-statement in JLiveRead EXtry1.exp expo=Propagation of a thrown object EXpropa.exp quiz=Exercises on exceptions EXquiz1.fil file=EX4 page=The throw-statement expo=The throw-statement EXthros.exp expo=Catching and throwing an Exception further EXcathro.exp file=EX5 page=Checked exceptions and the throws clause expo=The throws clause EXthrows.exp file=EX6 page=Hints on using exceptions lesson=Applets directory=AP file=AP1 page=Applets expo=Using applications and applets APapple0.exp expo=A first applet APapple1.exp expo=The structure of an applet APapple2.exp file=AP2 page=HTML and applet commands expo=An overview of HTML APHTML0.exp expo=The applet command APHTML1.exp file=AP3 page=Example of applets toy=Applet: Drawing a clock APclock.scr toy=Applet: Summing two double values APsum.scr lesson=The IDE Visual Cafe directory=VC file=VC1 page=The IDE Visual Cafe file=VC2 page=The components of the Visual Cafe window expo=Overview of the Visual Cafe window VCwinov.exp expo=Toolbars VCtoolba.exp expo=The Project window VCwin1.exp expo=The Source window VCwin2.exp expo=Field Events/Methods VCwin4.exp expo=The Status bar and Workbook tabs VCwin3.exp file=VC3 page=Opening and creating projects expo=Opening an existing project VCopenpr.exp expo=Creating a new project from a template VCcreat1.exp expo=Creating a new project from given Java files VCcreat2.exp expo=Inserting files into a project VCinspro.exp expo=Deleting files from a project VCdelpro.exp file=VC4 page=Executing an application expo=Executing an application VCexec1.exp expo=Stopping execution of an application VCexec2.exp expo=Specifying the class with method main VCmainme.exp file=VC5 page=Dealing with syntax errors file=VC6 page=Miscellaneous points about Visual Cafe expo=Docking and undocking a toolbar VCdock.exp expo=Docking and undocking a window VCdock2.exp expo=Accessing the API specs VCAPI.exp lesson=The CodeWarrior IDE for Java directory=CW file=CW1 page=CodeWarrior for Java expo=Files and projects CWproj.exp expo=Packages CWpack.exp file=CW2 page=Components of the Java CodeWarrior window expo=Overview of the CodeWarrior window CWwinov.exp expo=Toolbars CWtoolba.exp expo=Manipulating Project and Source windows CWmanip.exp expo=The Project window CWwin1.exp expo=The Source window CWwin2.exp expo=The Source-window toolbar CWwin2T.exp file=CW3 page=Opening and creating Java projects expo=Opening an existing project CWopenpr.exp expo=Creating a new project from stationery CWcreat1.exp expo=Inserting files into a project CWinspro.exp expo=Deleting files from a project CWdelpro.exp expo=Creating a new project from given Java files CWcreat2.exp file=CW4 page=Executing a Java application expo=Executing an application CWexec1.exp expo=Specifying the class with method main CWmainme.exp expo=Inserting Swing into a project CWswing.exp expo=Creating stationery CWstat.exp file=CW5 page=Dealing with Java syntax errors file=CW6 page=The CodeWarrior Java Debugger expo=Enabling the debugger CWdebug1.exp expo=The Debug window CWdebug2.exp expo=Controlling execution using Step over CWdebug3.exp expo=Using Step into and Step out CWdebug4.exp expo=Looking at objects CWobj.exp file=CW7 page=Breakpoints and expressions in the Java IDE expo=Setting, using, and removing breakpoints CWbreak1.exp expo=Learn about the Breakpoints Window CWbreak2.exp expo=The Expressions Window CWexp1.exp lesson=The CodeWarrior IDE for C and C++ directory=CC file=CC1 page=CodeWarrior for C and C++ expo=Files and projects CCproj.exp file=CC2 page=Components of the CodeWarrior C/C++ window expo=Overview of the CodeWarrior window CCwinov.exp expo=Toolbars CCtoolba.exp expo=Manipulating Project and Source windows CCmanip.exp expo=The Project window CCwin1.exp expo=The Source-window toolbar CCwin2T.exp file=CC3 page=Opening and creating C/C++ projects expo=Opening an existing project CCopenpr.exp expo=Creating a new project from stationery CCcreat1.exp expo=Inserting files into a project CCinspro.exp expo=Deleting files from a project CCdelpro.exp file=CC4 page=Executing C/C++ applications expo=Executing an application CCexec1.exp expo=Creating stationery CCstat.exp file=CC5 page=Dealing with C/C++ syntax errors file=CC6 page=The CodeWarrior C/C++ Debugger expo=Enabling the debugger CCdebug1.exp expo=The Debug window CCdebug2.exp expo=Controlling execution using Step over CCdebug3.exp expo=Using Step into and Step out CCdebug4.exp expo=Looking at structs or objects CCobj.exp file=CC7 page=Breakpoints and expressions in the C/C++ IDE expo=Setting, using, and removing breakpoints CCbreak1.exp expo=Learn about the Breakpoints Window CCbreak2.exp