Schedule for 04:547:201

Class Topics / Activities Resources
(Readings before class)
Students' responsibilities
(During and/or after class)
* 0 *
Wed Sep 4,
CIL 119
Introduction to the course;
Photo-taking, students' introduction;
listserv, webboard;
Accounts, file space organization;
Discussion: computers (hardware and software), Little Man Computer model, programming languages;
A first Java program: Greetings.java; compiling and running a Java program.
  Send an e-mail to muresan@scils.rutgers.edu using your preferred mailtool.
Log into the webboard, create an account, and introduce yourself to the rest of the class.
Read the Preface and the Welcome to Bailey's book.
* 1 *
Mon Sep 9,
CIL 119

Slides in HTML and PDF

Thinking algorithmically;
Introduction to Java – simple examples;
Basic concepts;
More greetings: Greetings.java.
Preface and the Welcome to Bailey's book. Write a Java program that writes your name with stars (*).
* 2 *
Wed Sep 11,
CIL 119

Slides in HTML and PDF

Learning by example;
Integrated Development Environments;
More Java examples: Name.java, Name1.java, NamesInLoop.java, NameInMethod.java, NamesInMethod.java.
Welcome (ch. 0) to Bailey's book. Become familiar with Forte; use tutorial in Help;
Introduce various errors in the programs discussed and see what happens.
* 3 *
Mon Sep 16,
CIL 119

Slides in HTML and PDF

Values, variables and expressions; Integer types.
ComputeSum.java, ComputeSumWithIdioms.java, IntegerOperations.java; IntegerRanges.java, ComputeSum1.java, ComputeSumWithIdioms1.java.
Bailey's ch. 1. Homework given in class;
Go through all the programs discussed so far and try to understand them.
* 4 *
Wed Sep 18,
CIL 119

Slides in HTML and PDF

Values and variables - concept re-inforcement;
other Java types: float, double, boolean, char, String.
Millis.java, Operations.java, Trig.java, Chars.java.
Bailey's ch. 1. Bailey problems 1.4 (p.34) and 1.13 (p.35);
Optional: Bailey problem 1.4 (p.35);
Optional: write a Java program which checks whether a given number is prime.
* 5 *
Mon Sep 23,
HH A5

Slides in HTML and PDF

Review of Java concepts learnt so far.
Other Java types.
Factorial.java, Two.java.
Review ch. 1 and all the previous lectures. Homework given in class.
* 6 *
Wed Sep 25,
CIL 119

Slides in HTML and PDF

Intro to classes and objects.
Examples of classes: String, Person, Random.
Person.java, RandomSample.java.
Bailey's ch. 2, first part. Homework given in class.
* 7 *
Mon Sep 30,
HH A5

Java quiz (40 min).
Quiz solution.

More on classes and objects;
Examples: System, Math, Random;
Intro to libraries and packages;
java.lang, java.util, element;
The ConsoleWindow class, input and output.
Swim.java.

Review again lecture notes 1-5, finish all homeworks;
Review Bailey ch.1.
The Birthday Paradox assignment for people who miss the quiz (because of car breakdown or other reasons).
Deadline Tue, Oct 1, 6pm - e-mail to muresan@scils.rutgers.edu.
A possible solution is in Birthdays.java and the output in Birthdays.pdf. For those more advanced in Java, who tried to check the paradox within the program, a possible solution is BirthdaysCheck.java.
An explanation of the birthday paradox is here.

Homework given in class.

* 8 *
Wed Oct 2,
HH A5

Slides in HTML and PDF

Conditions and loops; if, if-else, while, do-while.
Game.java.
Bailey - first part of ch.3.

Assignment 1 handed out.

A solution to assignment 1.

Grades.

 

* 9 *
Mon Oct 7,
CIL 119

Slides in HTML and PDF

More conditions and loops. Conditional statement, for, switch;
CommonErrors.java, Syracuse.java, Average.java, Break.java, Continue.java, Switch.java, BadMonth.java, Reverse.java.
Bailey - the rest of ch.3. Homework given in class.
* 10 *
Wed Oct 9,
CIL 119

Slides in HTML and PDF

The DrawingWindow;
XMarks.java, MouseLine.java, MouseTime.java, DrawLine.java, MouseLines.java, MoreLines.java, RectInfo.java, LoopTheMouse.java.
  Due: Assignment 1. Deadline: today, Wed Oct 9, 6pm.

Homework given in class.

* 11 *
Mon Oct 14,
CIL 119

Loops and drawings.
  Homework given in class.
* 12 *
Wed Oct 16,
CIL 119

Drawing with color.  

Test - loops and drawings.

Solutions: Checkers1.java, Checkers2.java, Checkers3.java.

* 13 *
Mon Oct 21,
CIL 119

Slides in HTML and PDF

Methods.

Timer.java, SumUp.java, Functions.java, Predicates.java, Converter.java.

Bailey ch.4. Bailey pr 4.1- 4.6 (p.123).
* 14 *
Wed Oct 23,
CIL 119

Slides in HTML and PDF

More on methods.

Tricky issues: scope of variables, values vs. references, passing of parameters.

Scope.java, ValRef.java, PassParam.java, SumUp.java, Hash.java, Origin.java.

  Review Bailey ch4.
* 15 *
Mon Oct 28,
CIL 119

Slides in HTML and PDF

Classes.

Number.java, FavorInt.java, Swapper.java.

  Go through Bailey sections 8.1 – 8.3.

Problems 8.1 – 8.4 (p. 234)

* 16 *
Wed Oct 30,
CIL 119

Slides in HTML and PDF

Elements of Object-Oriented Design and Programming

Number.java, Swapper.java, Watch.java

  Go through Bailey sections 8.1 – 8.3.
* 17 *
Mon Nov 4,
CIL 119

Slides in HTML and PDF

Factoring as an OO Design technique.

PlayingGames1.java, PlayingGames2.java, PlayingGames3.java, PlayingGames4.java, TvShow0.java, TvShow1.java, TvShow2.java , TvShow3.java, TvShow4.java, StopWatch20.java, Die1.java, Die2.java, Die3.java.

(Note. The (Stop)Watch and Die code is explained in detail in Bailey's book.)

   
* 18 *
Wed Nov 6,
CIL 119

Slides in HTML and PDF

Die.java, StopWatch.java

Interfaces; Game5.java, TvShow5.java, OlympicGame5.java, PlayingGames5.java; DrawObjects.java

Inheritance; Game6.java, TvShow6.java, OlympicGame6.java, PlayingGames6.java.

   

* 19 *
Mon Nov 11,
CIL 119

Slides in HTML and PDF

More OOP&D.

Square.java, BeatTheSquares.java;

DLRect.java, MouseDLRect.java, DrawDLRect.java

   

* 20 *
Wed Nov 13,
HH A5

Slides in HTML and PDF

Strings.    
* 21 *
Mon Nov 18,
CIL 119

Slides in HTML and PDF

More Strings.

PassParams.java, Access.java, Lookup.java, Substring.java, StringOps.java, MillionChars.java.

 

Assignment 2 handed out. Here's the grading scheme. Use the CodeWizard.

Grades.

* 22 *
Wed Nov 20,
HH A5
Recitations: Strings, methods.    

* 23 *
Mon Nov 25,
CIL 119

Slides in HTML and PDF

Issues on assignment 2.

BadAccess.java, ChangeString.java.

   
* 24 *
Wed Nov 27,
CIL 119

Thanksgiving.

   

* 25 *
Mon Dec 2,
HH A5

Slides in HTML

Recursion.   Assignment 2 due at 6:10pm.

* 26 *
Wed Dec 4,
CIL 119

Slides in HTML and PDF

Discussion of the assignment 2 and related issues. Version 1 (Harry.java), version 2 (Potter.java, Encoder.java), version 3 (HarryPotter.java, StateEncoder.java).

Introduction to arrays; MonthTable.java, MonthTable2.java, Prime.java.

Bailey's ch. 7.  

* 27 *
Mon Dec 9,
CIL 119

Slides in HTML and PDF

Arrays.

Month.java, Months.java, TestArrays.java, Input.java, Sieve.java.

   

* 28 *
Wed Dec 11,
CIL 119

Slides in HTML and PDF

Multi-dimensional arrays. Dealing with unknown number of items.

Vectors and other data structures.

Multi.java, DynIntArray.java, DynDouble.java, DynArray.java, UseVector.java, VectorDemo.java, VectorPoetry.java.