Announcements

2 August
The final project files have been posted to CMS.
22 July
The solutions for Homework #4 are posted here exercises, required chess. Two student solutions to the extra credit parts of chess will be posted here soon (soln1, soln2), pending their approval.
July
The last regular assignment has been posted to CMS. I strongly suggest you try to complete the assignment before the prelim, since the prelim will ask very similar questions.
17 July
As with the two previous assignments, students ARE allowed to work with one other partner for assignment #4. This means groups will consist of 1 or 2 people, including yourself.
16 July
The entirety of assignment four has been posted to CMS, along with the source files you will need..
12 July
Prelim1 statistics are available. Grades are available in CMS.
9 July
A page about Prelim I has been posted.
9 July
The third assignment has been posted to CMS, along with the Java sources you will need. Regrade requests for previous assignments should be submitted on the regular paper "regrade request form", available at the CS undergraduate office in Upson 311. Submit requests to any of the course staff.
7 July
Assignment01 has been graded (solutions, sources). Assignment02 solutions have been posted to CMS and here.
4 July
There will be office hours held Monday July 5th. See the revised schedule for times.
30 June
The second assignment has been posted to CMS, along with the Java sources you will need.
28 June
The first assignment has been posted to CMS.
28 June
You are not supposed to use the CSUGLAB on the third floor of Upson for this class. Instead, you are supposed to use the CIT public labs. You can get the Summer Session hours of operation. Note that there may be some problems using the Upson B7 Lab since the hours are terrible and another class has reserved much of what is left. Depending on your habits, we may decide to move some consulting hours to some other CIT lab.
18 June
Please read the information about academic integrity. The course staff will take these matters very seriously, and it is your responsibility to become familiar with the policies.


 Calendar
Friday 6 August
Final Project due

Tues 3 August
Project Milestone due

Wed 28 July
Fifth assignment due

Tues 27 July
Prelim II - in class - covers weeks 1-4 material

Tues 20 July
Fourth assignment due

Thur 15 July
Third assignment due

Mon 12 July
Prelim I - in class - covers weeks 1 & 2 material

Tues 6 July
Second assignment due

Thur 1 July
First assignment due

Wed 30 June
Java Bootcamp, 1-2pm, Upson-211

Mon 28 June
classes begin

  Slides *
01 Intro to Java [pdf|ppt]
02 Induction [pdf|ppt] (exercises)
03 Recursion [pdf|ppt]
04 Parsing & Grammars [pdf|ppt]
05 OOP: References [pdf|ppt]
06 OOP: Philosophy [pdf|ppt]
07 Objects and Classes [pdf|ppt]
08 Linked Lists [pdf|ppt] (sources)
09 Trees [pdf|ppt] (sources)
10 Interfaces & Sub-types [pdf|ppt] (exercises)
11 Inheritance [pdf|ppt]
12 Exceptions [pdf|ppt]
13 Array Search [pdf-1up|pdf-6up]
14 Generic Programming [pdf-1up|pdf-6up]
15 Array Sort [pdf-1up]
16 Complexity [pdf-1up] (logarithms)
17 Data Structures [pdf-1up]
18 Sequences [pdf-1up] (sources)
19 Priority Queues & Heaps [pdf-1up|pdf-6up]
20 Binary Search Trees [pdf-1up]
 + More Trees [pdf|ppt]
21 Hash Tables [ppt|pdf]
22 Graphs & Dijkstra's SSSP [pdf-1up|pdf-4up]
23 Threads & GUIs [ppt|pdf]
 + More GUI Statics [pdf]
 + More GUI Dynamics [pdf]
24 Minimum Spanning Trees [ppt|pdf]
25 More Graph Algorithms [ppt|pdf]
26 Graph Search [ppt|pdf]
27 Discrete Event Simulation [ppt|pdf]

* These slides are taken (in whole or in part) from materials by Keshav Pingali and David Schwartz. Only pdf format will be available for much of this material.

  Examples
Arguments.java command-line arguments, try-catch, String conversions
Files.java reading files, random numbers
Doctor.java interactive input, try-catch-finally
LearnExceptions.java more details about try-catch-finally
Confused.java Static vs. instance field inheritance
StaticMethodOverriding.java static method inheritance
iterators.zip iterators using nested/inner/local/anon classes
(More to come)