ENGR 131: Elementary Computer Programming

Fall 2006, Prof. Michael Branicky

Case Western Reserve University (Case)


General Information

Information Sheet

Lecture Hours: TR 8:30-9:45am, Millis, Schmidt Lecture Hall

Course Instructor: Michael Branicky, mb [æt] case [daat] edu, Glennan 517B, x6430
Instructor's Office Hours: W 2-5pm

Recitation Instructors [ Day Time (CRN) / Name, Email ]:
T 10:00am (02509) / Alexander Schepelmann, axs287 [æt] case [daat] edu
T 1:15pm (81566)  / Dong "James" Tang, dxt51 [æt] case [daat] edu
T 2:45pm (81511)  / David Allen, dxa59 [æt] case [daat] edu
T 4:30pm (25733)  / Kyle Kaliebe, kdk8 [æt] case [daat] edu
W 9:30am (26588)  / Roman Perkis, rxp61 [æt] case [daat] edu
W 11:30am (20532) / David Resch, dbr9 [æt] case [daat] edu
R 2:45pm (20528)   / Barbarajoy Jones, bej2 [æt] case [daat] edu

Required Text
Detailed Syllabus

Mirror sites

http://dora.case.edu/msb/131
http://vorlon.case.edu/~msb11/131

Announcements

Lectures [and assigned reading]


Recitation: None this week

29 AUG: Lecture #01: Course Mechanics / Topics / Intro [D&D 1.1-3,18]
31 AUG: Lecture #02: Compiling/Running Programs [D&D 1.13-15; 2.1-4]
Programs to check out: HelloWorld.java, helloworld.c (C), helloworld.cc (C++), helloworld.m (Matlab), helloworld.py (Python)

Recitation: Start this week; PA#1 out

05 SEP: Lecture #03: Data Types and Declarations   Handout
Reading: D&D 2.5, 2.6, 3.8 (only through Common Programming Error 3.4), p. 103 (read about Line 23 in the last paragraph), p. 88 (read about Line 19 in the middle of the third paragraph). Also, check out Appendix D.
Programs to check out: DeclareAndPrintDemo.java, FormattedTextDemo.java, ScannerDemo.java

07 SEP: Lecture #04: Expressions and Operators / Math Class   Handout
Reading: D&D 2.7, page 234 (from top of page through the first 3 sentences of "Math Class Constants ..."), Figure 6.2 (page 235), page 239 (from "Asembling Strings ..." to the bottom of the page), 6.7. Also, check out Sun's Math Class documentation.
Programs to check out: Test.java, Test2.java, MathDemo.java

Recitation: PA#1 due; PA#2 out

12 SEP: Lecture #05: Class Methods I
Reading: D&D 6.1-4
Programs to check out: Sphere.java, WindChill.java
14 SEP: Lecture #06: Class Methods II   Handout
Reading: D&D 6.5, eHandout: Procedure Abstraction, eHandout: How rollDie() Works
Programs to check out: MethodsDemo.java, Weather.java, Weather2.java

Recitation: PA#2 due; PA#3 out
19 SEP: Lecture #07: If-Else / Logical Operators eHandout: if-else blocks [from On to Java]
Reading: D&D 2.8, 4.1-6, 5.8
Programs to check out: Weather2.java
Power-of-if Links: Stimulus-Response Agents, iRobot's Roomba, DARPA Urban Challenge
21 SEP: Lecture #08: While / Assignment Operators
Handout: while Programs eHandout: Augmented Assignment Operators [from On to Java]
Reading: D&D 4.7, 8 (up to "Class GradeBook Test", p. 139), 9 (through Common Programming Error 4.7 on p. 146), 10 (through Error-Prevention Tip 4.3 on p. 152), 11, 12
Programs to check out: WhileDemo.java, Thresholds.java, Peculiar.java, Problem7_14.java

Recitation: PA#3 due; PA#4 out
26 SEP: Lecture #09: For Loops
Handout: for LOOPS
Reading: D&D 5.1-4; also check out Figures 4.1 through 4.4 for examples of UML flowcharting
Programs to check out: ForDemo.java, ForDemo2.java
28 SEP: Lecture #10: Loop Analysis / Recursion
Reading: D&D 15.1-3

Recitation: PA#4 due; PA#5 out
03 OCT: Lecture #11: Arrays I
Reading: D&D 7.1-5
Programs to check out: MaxMinAvg.java, DiceStats.java
05 OCT: Lecture #12: Arrays II
Reading: D&D 7.7,9,12
Programs to check out: ArraysDemo.java, Robots.java, TicTacToe.java,

Recitation: PA#5 due; PA#6 out
10 OCT: Lecture #13: Files I
Reading: D&D 14.1-4
12 OCT: Lecture #14: Files II
Reading: Text File I/O in Java
Programs to check out:
ReadDataTrial.java   (to run, also download MadlibDataTrial.txt)
ReadData.java   (to run, also download MadlibData.txt)
WriteData.java
To run any of these, you will also need to download TextFileIO.java
Yet more Programs to check out: PrimeFinder.java, PrimeFinder2.java, GLRatings.java
Finally, here is some extra material (with linked programs) on how to read and write image files in Java: Image File I/O in Java,

Recitation: PA#6 due; PA#7 out (due week of 30 OCT)
17 OCT: Lecture #15: Cleanup / Review for Midterm Exam #1
Selected exercises from Deitel & Deitel for study
Review Problems Handout from Lecture
19 OCT: Lecture #16: Midterm Exam #1 (covers Lectures 1-10; PS 1-5)
Self-Test Questions with Answers for Midterm #1

Recitation: None this week
24 OCT: FALL BREAK (No Class)
26 OCT: Lecture #17: Exam Recap / Iterated Development and PA#7
Reading: Program Development Plan
More Reading: PA#7   PA#7 Option A FAQ   PA#7 Option B FAQ  
Handout: Iterated Development Examples
Programs to check out: OddsEvens.java, HeavyUsers.java, Guess3.java, DukeDoubler.java (output: dukedoubled.jpg)

Recitation: PA#7 due; PA#8 out
31 OCT: Lecture #18: Class String
Selected String Methods eHandout (print and bring to lecture)
Reading: D&D 29.2-3,   Java's Class String
Programs to check out: Palindromes.java
02 NOV: Lecture #19: Class String continued / Intro. to Objects and Classes (PQ#4 due)
Reading: D&D 3.1-4,   Sun's documentation: What Is an Object?, What Is a Class?
Programs to check out: Circle.java, CircleTest.java, Robot.java, RoboWorld.java

Recitation: PA#8 due; PA#9 out
07 NOV: Lecture #20: Classes and Objects I
Reading: D&D 3.5-8
An example class problem and its UML diagram
09 NOV: Lecture #21: Classes and Objects II   Handout
Reading: D&D 8.1-7, 11
Programs to check out: CircleTest2.java, CircleTest3.java, Complex.java, ComplexTest.java, IntegerSet.java, IntegerSetTest.java

Recitation: PA#9 due; PA#10 out (due after Thanskgiving)
14 NOV: Lecture #22: Inheritance / Intro. to GUIs
Reading: D&D 8.8; 9.1, 9.2, 9.4.1-3, 9.5; 11.1
Programs to check out: Parent.java, Movie.java, PayMovie.java, PG13Movie.java

16 NOV: Lecture #23: Cleanup / Review for Midterm Exam #2
Java Reference Sheet eHandout (print and bring to lecture)
Review Problems eHandout (print and bring to lecture)
Pop Quiz #5 (print out, complete, and turn in at the BEGINNING of lecture, Thursday 16 NOV; quizzes turned in on other paper or after we begin our review will not be graded)

*** Next week's schedule is atypical; check it out below ***


Recitation: None this week
20 NOV: Office hours: 2-5pm
21 NOV: Lecture #24: Midterm Exam #2
22 NOV: No office hours (switched to Monday)
23 NOV: THANKSGIVING HOLIDAYS (No Class)

Recitation: PA#10 due; PA#11 out
28 NOV: Lecture #25: GUIs
Reading: D&D 11.1-3; look at and run example programs throughout
Programs to check out: code/guis
eHandout: Swing GUI components
30 NOV: Lecture #26: HTML and Applets
Reading: D&D 20.1-8; Handout: HTML & Applets
Programs to check out: code/applets
Pop Quiz #6 (print out, complete, and turn in at lecture, Thursday 30 NOV)


Recitation: PA#11 due; PA#12 due in recitation
05 DEC: Lecture #27: Other Languages / Recap
Awards for Best of "Programming Assignment #7"
PA#12 Preview;   "Solutions":   MSB   Kyle   Dave R.   Roman   Dave A.   Alex   BarbaraJoy
Java vs. Other Popular Programming Languages
For Recap, we will go over the Final Exam Information Sheet below
06 DEC: Usual Office Hours (2-5pm)
07 DEC: Lecture #28: Review for Final Exam
Review Problems eHandout (print and bring to lecture)

13 DEC: Special Final Office Hours (2:30-6:00pm)
14 DEC: FINAL EXAM (4:00-7:00PM)

Code Repository

Pop Quizzes

Pop Quiz #1   Solutions   Post-Mortem
Pop Quiz #2   Solutions   Post-Mortem
Pop Quiz #3   Solution    Post-Mortem
Pop Quiz #4   Solutions   Post-Mortem
Pop Quiz #5   Solution    Post-Mortem
Pop Quiz #6   Solution    Post-Mortem

Midterms / Final

Midterm Exam #1 (19 OCT, in class):
Information Sheet
Study Materials:
  Java Reference Sheet   Review Problems Handout from Lecture #15
  Sample Exam Problems from Spring 2006 and Solutions
  Selected exercises from Deitel & Deitel for study
  Self-Test Questions with Answers
Some extra programs to check out: SimpleIO.java, SimpleMethods.java, SimpleFlow.java
Solution
Post-Mortem
Midterm Exam #2 (21 NOV, in class):
Information Sheet
Study Materials:
  Java Reference Sheet   Review Problems eHandout from Lecture #23
  Sample Exam A from Spring 2006 and Solutions
  Sample Exam B from Spring 2006 and Solutions
  (Also see: Sample Final Exam A&B, Question 2 for 2-D arrays.)
  Selected exercises from Deitel & Deitel for study
  Self-Test Questions with Answers
  More Review Questions with Answers by Chapter (in left panel)
Some extra programs to check out: ClassInstanceExample.java, GetAndSetExample.java
Solution
Post-Mortem
Final Exam (14 DEC, 4:00-7:00pm)
Note: our final will be longer than each midterm and comprehensive (unlike the Sample Exams provided below)
Information Sheet
Study Materials:
  All the materials for Midterm Exam #1 above
  All the materials for Midterm Exam #2 above
  Java Reference Sheet
  Sample Exam A from Spring 2006 and Solutions
  Sample Exam B from Spring 2006 and Solutions
  Selected exercises from Deitel & Deitel for study
  Self-Test Questions with Answers
  Review Problems eHandout (print and bring to lecture)
Post-Mortem

Useful Links

Companion Website for Java How to Program
BlueJ: Homepage, Download
DrJava development environment
Installing Java on your own machine
Java: The Early Years
Java API documentation
Minesweeper
John Conway's Game of Life
3D Java Molecule Viewer Example Applets
Java 3D enabled CAVE: Goto Visual Genomics, then click on "CAVE demos"
Java in cars and on Mars
Why Java?
Java Wear?
Prof. Branicky's Tower of Babel
Altavista's Babelfish
Wikipedia's collection of hello world programs
An ASCII Chart
Unicode Homepage
Dilbert Mission Statement Generator
Mathworld: Sphere
Wikipedia's Kelvin page
Java 3-d Maze
Sun's Math Class documentation
MP3 Bit Rates
Polar Temp/Pressure Data
Netflix Prize: Home
Page with GroupLens' Movie Rating Data
Loading/Saving Images using Java's Image I/O Library
Graphics file format summary
500 HEX color codes
RGB color codes
Sun's String Class documentation
Unicode Charts,   Basic Latin Chart
Period Table of Elements: Simple, More Complete, Same but Bigger
Sets links: Google Sets, Mathematical Sets (Wikipedia)
HTML tutorial
Applet Demos


Created: 2006-08-25. Last Modified: 2006-12-20. © Michael S. Branicky