CS 205 Course Materials, Fall 2021
CS 205 Course Materials
Fall 2021
General
Resources
-
java4python. This is a quick introduction to
Java for those who already know Python.
-
Think Java, 2nd edition, How to Think Like a
Computer Scientist.
-
Java, Java, Java: Object-Oriented Problem
Solving, focusing on object-oriented design principles.
-
Introduction to
Programming Using Java.
This is a free book, covering a lot of Java basics, for anyone wanting a
complete Java textbook. Chapter 6 is a nice treatment of GUI
programming.
-
Java 8 API
Specification
-
Google Java
Style, Google's coding standards for source code in Java.
- JavaDoc
Reference
- Eclipse development environment how-tos:
- Violet UML Editor:
Local
installation instructions,
Downloads,
EXE file for Windows, JAR file for other platforms. Also available on
phoenix.
Lab 1 Pairings
- Ryann and Wade
- John and Nick
- Anna and Xavier
- Ian and Quintin
- Alex, Chadwick, and Romaan
- Evan and Joey
Topics
Unless stated otherwise, readings refer to the Object Oriented Design
and Patterns textbook available in Canvas.
- Lab 0A: Java;
one class day, start Aug. 26, due Sept. 6
Read: Chapter 1. Also
read java4python, skipping the
following: Sections 2.3 and 3.3, all of Chapter 4, and Sections 4, 5,
and 8 of Chapter 5.
Handout: Lab 0A
Notes
Starter code: lab0aStarter.zip
- Lab 1: Object-Oriented Design; two class days, start Aug. 31, due
Sept. 8
Read: Chapter 2
Handout: Lab 1
- Lab 0B: Java --- GUI Programming; one class day, start Sept. 7, due
Sept. 20
Read: Review Chapter 1
Handout: Lab 0B
Starter code: lab0bStarter.zip
- Project: Part 1; three class days, start Sept. 9, due
Sept. 20
Handout: Project Part 1
- Project: Part 2; four class days, start Sept. 21, due
Oct. 4
Handout: Project Part 2.
MUDV1
See the YouTube
how-to above if you don't know how to create a new Java project in
Eclipse, or if you don't know how to create new class files in Eclipse.
Day 4 notes
- Lab 2: Interface Types and Polymorphism; two class days, start
Oct. 5, due Oct. 11
Read: Chapter 4
Handouts: Lab 2,
class diagram
Starter code: lab2Starter.zip
Day 1 notes,
Day 2 notes
Lab 2 pairings: (John, Nick), (Ian, Chadwick), (Wade, Romaan),
(Quintin, Xavier), (Ryann, Evan), (Joey, Alex)
Example of how a PathIterator would be
used
- Lab 3: Patterns and GUI Programming; three class days, start
Oct. 12, due Oct. 25
Read: Chapter 5
Handouts: Lab 3,
Lab 3 Text Example,
Lab 3 Graph Example,
class diagram
Day 1 notes
Lab 3 pairings: (Ian, Quintin), (Xavier, Evan), (Alex, Wade), (Joey,
Nick), (Ryann, Chadwick), (John), (Romaan)
- Project: Part 3; four class days, start Oct. 26, due
Nov. 8
Handout: Project Part 3.
Notes 1.
guiDemo.zip, an Eclipse project archive that
demonstrates several basic GUI elements.
A
Visual Guide to Swing Components. I found this using the Google
search string
java swing tutorial site:edu
I encourage you to use this and other web resources to get ideas and
implementation specifics for your project's GUI.
- Lab 4: Multithreading; two class days, start Nov. 9, due
Nov. 15
Read: Chapter 9
Handout: Lab 4
Starter code: lab4Starter.zip
Lab 4 pairings: (Ian, John), (Alex, Chadwick), (Evan, Wade), (Xavier,
Joey), (Quintin, Ryann), (Romaan, Nick)
- Project: Part 4; three class days, start Nov. 16, due
Nov. 29
Handout: Project Part 4.
Notes
- Project: Part 5; four class days, start Nov. 30, due
Dec. 10
Handout: Project Part 5.
Last updated November 16, 2021.
Send mail to kelliher[at]goucher.edu
Tom Kelliher