ICSI 201 Spring 2012

Link to current week

Ada Byron, Countess of Lovelace Picture of Babbage's Analytical Engine, Trial Model

Syllabus and course policies.

This is the website for course assignments, notes and other resources. Blackboard is used for submitting homework, conducting discussions and tracking grades.

Disk Drive I use in the Lectures.

BookClasses Java Files: Download individual lost ones from here!!

In the Lab (ITSUNIX), you can copy them from


Week by week plan

What will happen in lectures:

  1. iClicker polls and quizzes on reading and lecture questions, that will count toward your grade!
  2. Live demos of programming in Java! Watch your professor get stuck on syntax errors and bugs!
  3. Hands-on paper problem solving and doing what computers do yourself!
  4. Notes scribbled electronically by professor and presentation materials that you don't have to copy because they will go on the Web!
  5. Sometimes, cool, corny videos from UTube or visits to other cool web sites!
  6. Discussions to clear up confusion before getting frustrated at the computer!

Week 1

GLOBAL GAME JAM...Join the Prof. and others..at Albany's instance of the Jam class!

Day Readings/Assignments/Topics Resources
Labs no labs first week;
C01 Thu Jan 19
  • iClicker policy
  • Computing on paper tickets (Euclid's algorithm using subtraction)
  • The same computation on Java variables in DrJava's interaction window.

Week 2

Readings: GE: Whole preface(!) 2.2 2.3.1 2.3.2 2.4.1 2.4.2 2.4.3 2.5.1 2.5.2 3.4("we" means Guzdial&Ericson in 3.4.1, not you!); after Thursday, 3.5

Day Readings/Assignments/Topics Resources
C02 Tue Jan 24

C03 Thu Jan 26

Week 3

Readings: Finish reading about programming Turtles (3.4) and read about creating (means writing your own) methods(3.5)

Day Readings/Assignments/Topics Resources
  • Read (3.4) BEFORE lab..bring it in, too!
  • Download book-classes into your ITSUNIX home directory (is your UA S: drive)
  • Write comlete programs that make Turtles draw cool simple figures.
  • After lab, find them on your S: drive or ssh access to itsunix.albany.edu and upload a complete Java program to Blackboard for grading and credit.
C04 Tue Jan 31
C05 Thu Feb 2
  • Introduce the Web copy of the USB drive directory in which in-class programs are developed.
  • Demonstrate a run of, then explain line-by-line, the program from Lecture 04
    • Reminder: In Java, = doesn't mean equals, it means copy from the right side into the "ticket" named on the right.
    • Demo of opening and compiling the World.java file in the book-classes directory, when World was announced as an unknown class World symbol.
  • Do NOT go beyond one letter until after you know how to make and use your own methods with parameters effectively: The reading topic of 3.5. Otherwise you will waste your time!
  • Demonstrate a workflow of renaming and saving over and over to capture a history of versions.
  • Changing pen width,
    • how the order of Java program statements matters
    • programming requires good guesses and choices sometimes; precise decisions are needed.
    • Graphics coordinate system
    • moving Turtle to the corner
    • lifting pen before move and lowering it after.
  • Began to develop code to scale a letter--up to scaling only its first stroke.

    Compilation error from passing a double to the Turtle's forward( int ) method detected and fixed with

    mt.forward( (int) (defMoveLen*scale) );

    The multiplication is done with floating point numbers and then the fractional part is thrown away to get an integer number of pixels.

Week 4


Day Readings/Assignments/Topics: Resources
C06 Tue Feb 7

Click here for video

ENIAC from LeAnn Erickson on Vimeo.

G&E Book Classes Documentation (javadoc.)

C07 Thu Feb 9
  • Tutoring available LI-84

    Weds 11:00AM-3:00PM

    Fri 10:30AM-1:30PM

    Tutor has a CodeMate account

    More coodination w/201 TBA.

  • Updated Lecture Slides
Folder with the sequence of versions of the Project 01 application and Turtle.java we began in lectures, and now FINISHED, to be an example to follow in your homework!

Week 5

Readings: 3.6.1, 3.6.2, "Making it work tip: Types in Java, page 64", 3.7.1, 3.7.3, 3.7.4, Chapter 4 (we will announce a reading guide)

Project 01: What and why to use in Proj. 01 ADDED! Take a look.

Day Readings/Assignments/Topics Resources
Labs Lab 04: Pictures and single Pixels
C08 Tue Feb 14 What we did and Pictures.. Live Code from Lecture, plus the motorcycle image you should have seen.
C09 Thu Feb 16 What we did and Pictures..improved motorcycle picture at the end.

Lect 08(tent-from last year, not used.)

Week 6


Day Readings/Assignments/Topics Resources
Labs Lab 05

UnfinishedColorMaker Javadoc

TA instructions

Hundreds of palettes

C10 Tue Feb 21
  1. For-loops
  2. Arc Drawing
C11 Thu Feb 23
  1. Project 02 Assigned:Due March 3.
  2. Arrays
  3. Project 02 readings: read as needed to do the project and to study for exams.

Week 7


Day Readings/Assignments/Topics Resources
Labs Lab 06: Mirror effects and more parameterized method programming. Wikipedia's article on computer threads, (good as of 2/27/2012)
C12 Tue Feb 28
  1. Multiple ways of looping through pictures(Midterm info).

C13 Thu Mar 1
  1. Multiple ways of looping through pictures(Midterm info), concluded.
  2. Tips for the extra credit parts of Proj 2.

Midterm REVIEW QUESTIONS. EMAIL PROF before Tues, 3:00PM to suggest ones to review in class on Tuesday.

Sat Mar 3 Project 02 DUE.

Week 8

Two tutoring resources now available!


Day Readings/Assignments/Topics Resources
Labs Lab 07: Take a greenscreen photo of yourself, discuss chromakey, pages 202-205 of the text, and get set up do program your own greenscreen chomokeyed photo maker.
C14 Tue Mar 6 Midterm review.
C15 Thu Mar 8 MIDTERM EXAM Open Book and Notes.

Week 9


Day Readings/Assignments/Topics Resources
Labs Lab08: Assignment and worksheet

TA Instructions.

C16 Tue Mar 20 If statement syntax and meaning

Application to chromakey and avoiding bad picture x,y indices.

Boolean values and the AND operation

Prof. Chaiken against green screen.



C17 Thu Mar 22 A case study   Directory (to get prototypes too) Includes the animated moving ball program too.
  1. V1 ball method sets just one Pixel red.
  2. V2 " sets a square green.
  3. V3 " sets a disk green (illustrates if statement)
  4. V4 weighted average method (illustrates a method that returns a value; also illustrates a static method); ball color is expressed with integer intensities instead of Color.green
  5. V5 ball method draws a ball where color ranges from white in the center to green on the edges (Fixed right after class by a student!) (illustrates the need to explicitly write cast to throw away the fraction when the double returned by the weAv method is truncated to an int.

Summary slides

Week 10

Readings: CLEAN SWEEP READING: Study in ALL of Chapters 5 and 6 ALL the applications of loops, locating objects like Pixels with x, y locations, copying data like color intensities, parametrized methods (both making and using them), blending with weighted average calculation, Pythagorian theorem for both geometric and color distance, and if statement conditionals applied to aspects of color and location.

Particular lab readings: 5.2.5 (scaling) for Lab 09, first 3 pages of 7.1 for Lab 08, 6.7 for Lab 07.

Day Readings/Assignments/Topics Resources
Labs Lab09:Scaling a Picture, using Scanner input and println output. Based on Section 5.2.5 of the text.
C18 Tue Mar 27 Summary slides

Case Study: checkered pattern maker

  1. Design notebook
  2. Versions (V1 from lecture, V2 completed after lecture)
C19 Thu Mar 29 PROJECT 3 Assigned Due April 14
  1. butterfly1small.jpg
  2. Sample output
  3. P3Tester.java testing progrm

Week 11


Day Readings/Assignments/Topics Resources
Labs Lab10:Counting Republican Votes(how and what instructions)
C20 Tue Apr 3 Slides

Versions V1, V2 and V3 of GradeRecording program (Storing, printing and changing grades done with (1) separate variables and then (2) an array, much better.

C21 Thu Apr 5 Slides: Blurring, Pseudo-code analysis, averaging, static versus instance methods.

Week 12


Day Readings/Assignments/Topics Resources
Labs Lab 11: Continues Lab 10
C22 Tue Apr 10 Material from last lecture, info for Project 3 concluded.
C23 Thu Apr 12 Orthogonality (more info for Labs 10-11)

Explanations/Questions about Project 3

Week 13

Readings: Chapter 11.

Day Readings/Assignments/Topics Resources
Labs Lab12: Continues Lab 11 and introduces making your own class.
C24 Tue Apr 17 Orthogonality (more info for Labs 10-11)

Where a variable can be: 4 choices!

Patterns for Lab 11

  1. Original Version
  2. Add names of courses.
  3. Search an array for something.

    How to use a Scanner? Search for "Java API Scanner" and select Oracle's Java API documentation.

  4. Search an array for a maximum.
  5. Insertion sort (not done yet.)

Mad PhD Makes Objects.
C25 Thu Apr 19 C25 slides--variables reviewed, introduce fields as variables that are located inside objects or instances of classes.

Making your own House class (after the Mad Ph.D.).

Starting insertion sort(NOT FINISHED).

Week 14

Readings: Chapter 11

Day Readings/Assignments/Topics Resources
Labs Lab 13: Adding a Library to the MadPhDs Houses Directory with the 2 lab classes

Project 4 Assigned

Lecture with Doc Cam sketches about purpose and technology of Java constructors.

Project 4 Java Support files:
C27 Thu Apr 26 CodeMate Bonus Policy

Project 4 How to do it version history

Project4 Link to directory of versions.

Make your V0 be exactly the original downloaded from the Web! Make sure it compiles and learn how it runs.

Week 15


Day Readings/Assignments/Topics Resources
Labs Last Lab is for previous lab review and Project 4 Album(int width, int length) part support--TA instructions here.
C28 Tue May 1 Project 04 non-penalty due date extended to Sat, May. 5.

Class Q/A re. Project 4, different use-cases are set up by the 2 different constructors.

Looked at some Project4 directories of versions again.

Live code discussion of accumulating data in a object (a shopping Bill).


  1. Kitware Flyer 1    Kitware Flyer 2      Wed., May 2 CCI-Women In Tech Meeting 4:00PM
C29 Thu May 3 Use case and sequence diagrams to clarify WHAT YOUR PROJECT 4 PROGRAMS MUST DO.


  1. Use case 1: Album(int,int) specify result dimensions but not the number of pictures.

    Use case diagram

    Sequence Diagram

  2. Use case 2: Album(int) specify the number of pictures but make the computer compute the result dimensions.

    Use case diagram

    Sequence Diagram

Live coded Bill.java class with min and max price finders, recording the item with the highest price (comments added and code TESTED added after lecture!)

Flowcharts (Activity Diagrams) for the two separate use cases of Project 4.

Microsoft Visio 2010 (.vsd) source file

UMLet software for drawing diagrams like this.

Web site about UML:

Link from OMG: The standards boss for UML

(At UA, we teach that in CSI418/518)

Week 16

Current Mark

Readings: See Review Lecture Notes topics to look up and read if necessary.

Day Readings/Assignments/Topics Resources
C30 Tue May 8 Summary and Review Lecture, study guide.

Bill.java with sort( ) method implemented.

Spring 2011UA Final Annotated to help study for the final. YOUR FINAL WILL BE CLOSED BOOK!!!
Wed May 9 Review session w/ TAs: 3:00PM-5:00PM, HU-123 (Not the Lab!)
Final Exam May 10 10:30AM-12:30 in LC-18 (Closed Book, one 8 1/2 x 11 paper sheet of notes.)

General Resources