ICSI201 UAlbany Honors Introduction to Computer Science
Materials-Textbook Local Copy Links
  1. Downey's Think Java, How to Think Like a Computer Scientist
  2. Dr. Java Download Web Site
  3. Sun's Java Development Kit (for Windows or Linux) which you will need for Dr. Java. (It's 70MB or so, so use a wired connection or patience.)
  4. Dr. Java is installed in UA Info. Commons computers, so problems with using it are not acceptable excuses for homework delays.
  5. Python-2.6.2.msi for quick download to UAlbany PCs
  6. Kumar's Learning Computing with Robotics
  7. Downey's Think Python, How to Think Like a Computer Scientist
Links to Course Materials listed by class date
Lab 12 Dec 7 (M) PIZZA!
Workshop on matcher activation trees
Help for finishing project
Final review Q/A
Class 38 Dec 7 (M) Final Exam Syllabus
Computer Scientist's Guide to Creating a Simple Web Site
Class 37 Dec 4 (F) TTTLesson.java Indiv/Team Quiz in class, use for reference in project.
Lecture Notes updated with team question to finish, indiviual question, and notes for completing part 1 of the TTT project.
Class 36 Dec 2 (W) A Game Tree for a Tic-Tac-Toe Board.
Lecture notes on AI, Games and the TTT project. (READ THIS ... DON'T PANIC
Final Project Tic-Tac-Toe Assignment
Directory with .java files to start with. Individual links below.
TTTFramework.java   TTTFramework.java   TTTFramework.java
Class 35 Nov 30 (M) Final 3 Homework assignments.
Matcher.java for Miniproject Due Wednesday.
Handwritten class notes
Lab 11 Nov 23 (M) Download this Python program and build your robot player from it
Class 34 Nov 23 (M) (BETTER COMMENTED VERSION!) In-class exercise: (1) Compile and Run. (2) Trace matching and non-matching examples with 3 characters in the pattern and target. (3) Complete code to handle * (wildcard matching) (4) Test and trace matching and non-matching examples, including a non-matching with 2 stars. Trace means DRAW the ACTIVATION TREE
LAB QUIZ will be to redo Problem 5
LAB: Seek pink balls, bump or stay near them, and avoid walls. Team competition. Supplemental Reading:
Rodney Brooks "Elephants Don't Play Chess"
Rodney Brooks "The Relationship between Matter and Life"
FINAL HOMEWORK PROJECT: Computer vs. Person Tic-Tac-Toe. Read about it in Kumar. Kumars code expressed in Java is here:
TTTSimulator.java,   Board.java,   BadMoveException.java,  
Class 33 Nov 19 (W) Programming Project Plans, what's good about arrays, help for one dim. checkers project
Plan for a framework or multiple method refactoring of the One Dim Checkers project
Recursive pattern matcher handed out.
Kernighan's Regular Expression Matcher article from "Beautiful Code", O'Reilly Media. (Handed out.)
Lab 10 Nov 17 (M) Page referencing the Random Tree applet
Random Tree .java file. Download me!
Class 32 Nov 17 (M) Collatz Conjecture Wikipedia site: Note the statement of the problem, graph of total stopping times for numbers 2-9999, and the image of the Collatz fractal.
From problem to a first algorithm, a better algorithm and then a program (for Collatz sequence calculation.)
Class 31 Nov 13 (F) Supplement:
Neat little Java Virtual Machine simulation applet
Class 31 Nov 13(F) Fibonacci Java Program
Fibber class file disassembled.
JVM Code Study Combined (magnify to study)
JVM Code Study Image 1 (magnify to study)
JVM Code Study Image 2
JVM Code Study Image 3
JVM Code Study Image 4
HOMEWORK PROJECT DUE Fri. Nov. 20
Putting up a UAlbany Web site with your applets.
Class 30 Nov 11(W) Iterative and Recursive Sequence Printing Quiz
Sierpinsky drawing explained with an activation tree
Lab Nov 9(M) Sierpinsky Drawing Applet Source
Sierpinsky Applet Page
Teddy Applet Source
Teddy Page
Graphics2D Class reference
Use recursive Java methods to draw fractal-like graphics. Preparation: Interpret programs with methods calling methods with the help of GRAY STACK FRAMES explained in the ThinkCS books. (Quiz as usual!)
Class 29 Nov 9(M) Investigate the Sierpinski triangle and other graphics defined by L-systems (Wikipedia). Observe how a method to draw a Sierpinsky triangle might call a method to draw smaller Sierpinsky triangles three times. (Subject of lab this afternoon)
Function Story annotated
Function Story(.pdf), parameters and argument.
(Supplemental) Formal Grammar
Development of algorithms for histograms and medians.
Class 28 Nov 6(F) Synonyms: function, method, procedure, subroutine, sometimes macro (in MS Word, Excel, and others)
QuizResults.java Dissection
For Mon. Lab, pay close attention to the GRAY STACK FRAMES here and in the ThinkCS books
Class 27 Nov 4(W) Problems posed for algorithms. Histogram and median, arrays in Java.
For next class: download and open in Dr. Java the QuizResults.java and ProfessorsHelper.java files; try to implement the median finder.
Lab 8 Nov. 2(M)
Detailed Instructions and Java Documentation for the classes you will use
Make a fresh directory for the lab work.
Page with Simple applet. First click here to try it in the browser.
Next, DOWNLOAD the html file

Simple.java DOWNLOAD to lab work dir.
Compile Simple.java with Dr. Java.
Try applet with appletviewer page.html
Class 26 Nov 2(M) Python vs. Java(.pdf)
ProfessorsHelper.java file
QuizResults.java file
Page with Sample Applet
Sample.java file
Class 25 Oct 30(F) 2nd Midterm
Class 24 Oct 28(W) Nested List demo.
Lecture on Types Continued
Slides on Pseudo-code and Incremental Development
Midterm 2 (next class) study guide and reading assignment for starting Java.
In-class Response Sheet
Lab 7 Oct 26(M) See Image Lab Prep.
Class 23 Oct 26(M) Bug explained by types(.pdf)
In-class Response Sheet
Lecture on Types
Class 22 Oct 23(F) Quiz-based Assignment REQUIRED if you didn't get a STAR on Wed's quiz--Due Monday!
Image processing project:
Due date extended to Wed, Oct. 28.
Discussed: makePicture(W,H) workaround.
Aspects negative and positive 8-bit numbers: (Binary 10000000 equals 128, but when it is interpreted as a 2s-complement signed 8-bit number it is -128. Similarly, 11111111 unsigned is 255 but signed it is -1. But this does not account for the problem one student described.)
Meaning of graphs and particularly histograms.
Prep assignment for Monday's lab QUIZ and exercise.
Class 21 Oct 21(W) Doubly Nested Loop Quiz(.pdf)
Doubly Nested Loop Code(.py)
Continue Image homework start.
Details: Steps to start project, pixel color intensity calculations, checking formula for making negatives, list and counting for histograms. An extension will be granted if email questions and/or meetings with Perry show that you are working steadily and need an extension!.
Lab 6 Oct 19(M) Prep. Assignment
My Quiz Demo Program(.py)
Lab exercise--make robot sensors animate a graphic (under construction>.
Grading for returned Menu Seek Avoid Homework(.pdf)
Class 20 Oct 19(M) See previous class for LAB PREP and Image Homework assignments
2nd Midterm, Image Processing Basics, Doubly Nested Loops
Original Slides.
Class 19 Oct 16(F) Image Homework Due: 10/23
Prep. Assignment for Lab 6, Monday
Handwritten notes, revised
Remarks from Survey
Attempted demo for starting image homework, finished later (download .py)
Class 18 Oct 14(W) Midterm Course Evaluation Survey
Midterm exam returned
Questions on current project.
Lab 5 Oct 12(M) Images and Blobs in Myro analyzed with GIMP
Class 17 Oct 12(M) Quiz and Discussion
Analyze a Myro picture with Photoshop
Class 16 Oct 9(F) 1st Midterm Exam (Answers and Grading Notes)
Class 15 Oct 7(W) Quiz: Trace while,if,if.. versus while,if,elif,elif.. program: What do main1() and main2() print?
Quiz program's flowcharts
Study Guide: Log of course activities plus plans
Think Python: Read Chapters 1-10 for review.
Lab 4 Oct 5(M) SEE todays and previous slides/In-class exercises
Class 14 Oct 5(M) Slides/In-class exercises
Class 13 Oct 2(F) Slides/In-class indiv exercise
Behavior Slides based on Kumar
Class 12 Sept 30(W) Slides with new 1-3 person project.
IPRE Slides of Ch. 7, behavior
Quizzes Returned.. there will be a homework assg. on them
NO CLASSES Sept 28(M)
Class 11 Sept 25(F) Spreadsheet of 12 and 120 month loans
Spreadsheet of fixed rate 360 month loan
Spreadsheet of growing rate 360 month loans.
The growing rate model has unrealistic behavior!

Slides with Homework due Fri, Oct. 2
Class 10 Sept 23(W) Slides
dblloop.py for Debugger Practice
pace survey:
slow slow/know Excel OK fast
5 2 9 2
Lab 3 Sept 21(M) Make robot seek light
Class 9 Sept 21(M) Survey and Quiz
slides w/ team exercise revised
Class 8 Sept 18(F)
  1. Progr. from scratch
  2. Function params. and args.
  3. Discussion: Orthogonality in prog. langs.
Class 7 Sept 16(W) Slides/notes for ASCII Art team exercise
Individual HW assignment due Class 10, Sept 23
Lab 2 Sept 14(M) Lab exercise 2: Draw something interesting with 2 parameters and loops
Class 6 Sept 14(M) Complete the Loan Calculation.
Class 5 Sept 11(F) Slides with Team Exercise involving loans.
Homework Quiz plus interpolation plus loan table.
Class 4 Sept 9(W)
under construction..
Class 3 Sept 4 Slides with class ideas summarized
HOMEWORK DUE Wed. 9/9
Class 2 Sept 2 Discussion: Octal and other bases. Digital restoration mentioned.
Programs from the 4 teams.
Dir. of their .py programs for download
Lab 1 Aug. 31 Lab 1 assignment
Efficient Edit/Run/Debug/Rerun Cycle in IDLE(.pdf)
(.odt source for sharing)
Using Python on UA Info. Commons and Classroom PCs
Lecture Slides
Experience Questionnaire--first Python Program
Preference form for tutorial/office hour scheduling
Homework 1 Due Sept 2 Homework 1
Class 1 Aug 31 Prospectus with Syllabus