Second Summer 2002


Programming is (essentially) a contact sport.

Dedication
The Carpenter Kushakov, by Daniil Kharms
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/kushakov.html)

Foreword
Blue Notebook No. 10, by Daniil Kharms
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/notebook.html)

Lecture Notes One (Jun 17)
What computers can do and how. Programming languages. Java
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/One.html)

On Solving Problems. The inevitable fun().
A Note. From the Feynman Lectures on Computation.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/RPF.html)

Problems and Pain
Another Note. Adapted from The Road Less Traveled  by Scott Peck.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/roadless.html)

Lab One: Getting Started (Jun 17)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labOne.html)

Lecture Notes Two (Jun 18)
Algorithms. Programs. Mechanics of implementation in Java
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Two.html)

Lecture Notes Three (Jun 19)
Objects and classes, reference types, symbolic names, variables declaration and their initialization through assignment
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Three.html)

Lecture Notes Four (Jun 20)
Numbers. Strings. Reading input with ConsoleReader. ConsoleReader revealed
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Four.html)

Lab Two: Some simple programs, some sample problems (Jun 20)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labTwo.html)

Lab Assignment Two: A Simple Converter (due Jun 24, in lab)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labAssignTwo.html)

Warmups: Chapter Two Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/chapTwoReview.html)


Solutions for Chapter Two Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/chapTwoRevSols.html)


Programming Problems: Chapter Two Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/chapTwoProbs.html)

Solutions for Chapter Two Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/chTwoPSols.html)

Homework Assignment One: A Simple Ballistic Calculator
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwOne.html)

Lecture Notes Five (Jun 24)
Syntax. The structure of main
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Five.html)

Lab Three: Basic programs. Simulating decisions. Working with objects (Jun 24)
Note that it contains Lab Assignment Three, due at the beginning of (or during) the next lab. (http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labThree.html)

Lecture Notes Six (Jun 25)
Boolean values, expressions, and if statements
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Six.html)

An example from Consumer Reports (Feb 2002)
This is a real-life example of decision-making that parallels lecture notes six.
(http://www.cs.indiana.edu/classes/a201-dger/spr2002/one.jpg)

Lecture Notes Seven (Jun 26)
Introduction to user-defined types. Classes
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Seven.html)

Lecture Notes Eight (Jun 27)
Diagrams for object-oriented concepts
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Eight.html)

Lab Four: Classes and objects (Jun 27)
Note that it contains Lab Assignment Four, due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labFour.html)

Warmups: Chapter Three Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w2.html)


Solutions for Chapter Three Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w2Sol.html)


Programming Problems: Chapter Three Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/set2.html)

Modeling with Diagrams.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/rodS.html)

Solutions for Chapter Three Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/set2Sol.html)

Homework Assignment Two: A Simple Robot
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwTwo.html)
Lecture Notes Nine (Jul 1)
Classes, objects, constructors
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Nine.html)

Lab Five: Wrap-up of Classes and Objects material (Jul 1)
Note that it contains Lab Assignment Five which is in two parts (read for details).
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labFive.html)

Lecture Notes Ten (Jul 2)
Branches and paths. If statement exercises. (L)oops
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Ten.html)

Warmups: Chapter Five Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/ifs.html)


Solutions for Chapter Five Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/ifsSol.html)


Programming Problems: Chapter Five Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/pIfs.html)

Solutions for Chapter Five Programming Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/pIfsSol.html)

Lecture Notes Eleven (Jul 3)
Java review by Dilbert
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Eleven.html)

Lecture Notes Twelve (Jul 8)
Loops
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Twelve.html)

Lab Six: Nested loops, other loops, loops and a half, scalable letters (Jul 8)
Note that it contains Lab Assignment Six due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labSix.html)

Homework Assignment Three: Interests
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwThree.html)

Lecture Notes Thirteen (Jul 9)
More practice with loops. Loops, tokenizers, and Monte Carlo problems
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Thirteen.html)

Lecture Notes Fourteen (Jul 10)
Computer Games. (In which Tigger has guests from another tale).
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Fourteen.html)

Lecture Notes Fifteen (Jul 11)
Designing Fractions.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Fifteen.html)

Lab Seven: Loops, Strings, StringTokenizers. (Jul 11)
Note it contains Lab Assignment Seven due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labSeven.html)

Lecture Notes Sixteen (Jul 15)
Milestones.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Sixteen.html)

Warmups: Chapter Six Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w6.html)


Solutions for Chapter Six Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w6Sol.html)


Sample Practical Problems (from Spring 2002)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/sam02.html)


More Practical Problems (from Spring 2001, with Solutions)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/sam01.html)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/sam01sol.html)

Lecture Notes Seventeen (Jul 16)
Java arrays.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Seventeen.html)

Homework Assignment Four: Adding Up Integers
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwFour.html)

Lecture Notes Eighteen (Jul 17)
Partially filled arrays. Array parameters and return values. Simple array algorithms.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Eighteen.html)


Sample Midterm Exam (from Summer 2001, contains solutions).
(http://www.cs.indiana.edu/classes/a201-dger/sum2001/exams/midterm.html)

Lecture Notes Nineteen (Jul 18)
Java Fandango
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Nineteen.html)

Lab Eight: Procedures (Methods) (Jul 18)
Note that it contains Lab Assignment Eight, due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labEight.html)

Warmups: Chapter Seven Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w7.html)


Solutions for Chapter Seven Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w7sol.html)

Warmups: Chapter Eleven Review Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w11.html)


Solutions for Chapter Eleven Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/w11sol.html)

Lecture Notes Twenty (Jul 22)
Help with Homework Four
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Twenty.html)

Lab Nine: Working with Methods and Arrays (Jul 21)
Note that it contains Lab Assignment Nine, due at the beginning of (or during) the next lab. (http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labNine.html)

Lecture Notes Twenty-One (Jul 23)
Parallel arrays. Arrays of object data. Vectors.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyOne.html)

Lecture Notes Twenty-Two (Jul 24)
Inheritance and the class extension mechanism.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyTwo.html)

Lecture Notes Twenty-Three (Jul 25)
Vectors, Hashtables, Leftovers.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyThree.html)

Lab Ten: Overview of applets. (Jul 25)
Note that it contains Lab Assignment Ten, due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/spr2002/labs/Ten.html)


QuizSite Problems (Batch One)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceOne.html)

QuizSite Problems (Batch Two)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceTwo.html)

QuizSite Problems (Batch Three)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceThree.html)

QuizSite Problems (Batch Four)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceFour.html)

QuizSite Problems (Batch Five)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceFive.html)

QuizSite Problems (Batch Six)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceSix.html)

QuizSite Problems (Batch Seven)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceSeven.html)

QuizSite Problems (Batch Eight)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceEight.html)

QuizSite Problems (Batch Nine)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceNine.html)

QuizSite Problems (Batch Ten)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/practiceTen.html)

Homework Assignment Five: Basic Interactive Applets
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwFive.html)

Lecture Notes Twenty-Four (Jul 29)
Applets, events, event handling.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyFour.html)

Lab Eleven: Drawing Rubber Bands (Jul 29)
Note it contains Lab Assignment Eleven due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labEleven.html)

Lecture Notes Twenty-Five (Jul 30)
Applets. Events. Listeners. See also pp. 395-414 in chapter 10.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyFive.html)

Lecture Notes Twenty-Six (Jul 31)
Help with Assignment Five.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentySix.html)

Lecture Notes Twenty-Seven (Aug  1)
Double-buffering and help with Homework Six
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentySeven.html)

Lab Twelve: Help with the last Homework Assignment (Aug  1)
Note it contains Lab Assignment Twelve due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labTwelve.html)

Homework Assignment Six: A Very Basic Interpreter (Evaluator)
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/hwSix.html)

Lecture Notes Twenty-Eight (Aug 6)
Inheritance and Abstract Classes.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyEight.html)

Lab Thirteen: Applications of Threads (Aug  6)
Note it contains Lab Assignment Thirteen due at the beginning of (or during) the next lab.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labThirteen.html)

Lecture Notes Twenty-Nine (Aug  6)
A summary, then threads.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/TwentyNine.html)

Lecture Notes Thirty (Aug  7)
Exceptions and basic I/O (including serialized objects).
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/Thirty.html)

Lecture Notes Thirty-One (Aug  8)
A Video Game in Java: The Alien Landing Game
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/ThirtyOne.html)

Lab Fourteen: IceBlox (Aug 8)
Note it contains no lab assignment. The labs are essentially over.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/labFourteen.html)


An Older Lab Ten: Classes and objects revisited.
Note it contains no lab assignment. It's meant as a review of Chapter Three concepts.
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/review.html)


Solutions to the Older Lab Ten problems.
Note that the format of the previous lab is preserved, for consistency. (http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/reviewSol.html)

Chapter One Warmups.
You can now appreciate these questions. The answers are provided immediately below. (http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/warmOne.html)


Solutions for Chapter One Warmups
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/warmOneS.html.html)


Older Lecture Notes Sixteen
Prelude to the Fandango Notes, originally intended as a midterm exam review. (http://www.cs.indiana.edu/classes/a201-dger/sum2000/lectures/Sixteen.html)


Spring 2001 Final Exam (contains solutions).
(http://www.cs.indiana.edu/classes/a201-dger/spr2001/finSol.html)

A Story
Petrakov, by Daniil Kharms
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/petrakov.html)


Summer 2001 Final Exam (contains solutions).
(http://www.cs.indiana.edu/classes/a201-dger/sum2001/scame.html)

Spring 2002 Final Exam (contains solutions).
(http://www.cs.indiana.edu/classes/a201-dger/spr2002/exams/One.html)

Epilogue
A Young Man Who Astonished a Watchman, by Daniil Kharms (http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/youngman.html)


Appendix A: Miscellaneous Exercises
(http://www.cs.indiana.edu/classes/a201-dger/sum2002/notes/misc.html)


Last updated: Jul 27, 2002 by Adrian German for A201