Syllabus
This syllabus is subject to change as the semester progresses.
Introduction
- Welcome
- Expectations
- Sloppy programming
- Interacting community of agents
- Values, Types, and Expressions
- Chapter 1 and
Chapter 3
- Lab 1 (Setup) out
- Download and install NetBeans
- Discussion of sharp objects
- Lab 1 due
Statements and Flow
- Chapter 6
- Assignment
- Conditionals
- Loops
- Scope, local variables and fields
- Threads
- Lab 2 (Etch-a-sketch) out
Interfaces
- Chapter 4
- Specifying behavior
- Contractual obligations
- Software design
- Using statements
- Animation
- Thread behavior
Classes and Objects
- Chapter 7
- Describing behavior
- Encapsulating data
- Implementing interfaces
- Instantiation
- Garbage collection
- Lab 3 (Ball world) out
- Lab 2 (Etch-a-sketch) due
Animate Objects
- Chapter 9
- Threads again
- The Animate interface and AnimatorThread class
- Interacting threads
- Implement interfaces
- Create classes
- Things that go "boom"
Inheritance
- Chapter 11
- Hierarchical behavior
- Reusing code
- Shadowing methods
- Lab 4 (Node Net) out
- Lab 3 (Ball World) due
Debugging and Exceptions
- Chapter 2 and
Chapter 10
- "Returning" an error
- try and catch
- Test early, test often
- Stepping through code
Node Net
- Communication
- Queues
- Interacting communities of threads
Abstraction
- Chapter 13
- Hiding implementation details
- Protecting information
- Future-proofing
- Lab 5 out (Calculator)
- Lab 4 due (Node net)
Dispatch and Events
- Chapter 12
- User interaction
- Event-driven programming
- Lab 6 out (Trailblazing)
SyncrThreadingonization
- Chapter 18
- Critical sections
- Java synchronization
- Wait and Notify
- Synchronized queues
- Lab 5 due (Calculator)
Trailblazing
- Interpreting other people's code
- Improving your own
GUI
- Chapter 16 and the
Swing tutorals
- Swing
- User events
- Intro to Model-Controller-View paradigm
- Lab 7 out (Breakout)
- Lab 6 due (Trailblazing)
Breakout
- Finally, something useful!
Communication Patterns / Synchronization
- Client and Server
- Blocking and non-blocking communication
- Concurrency
- Lab 8 out (Cat and Mouse)
- Lab 7 due (Breakout)
Project Design
- Chapter 2
- Software lifecycle
- Design process
- Final project out
- Lab 8 due (Cat and Mouse)
Communicaton styles, Recursion
- Client/Server, Multicasting, and Peer-to-peer styles
- Recursion (see above)
Idea Fair
- Project idea presentations
- Team forming
- Project ideas due
Version Control
- How to use versioning for code
- Working together on a large code project
Project Work: Interfaces
- Team interviews
- Final project interfaces due
Project Work: Initial Function
Project Work: Status Report
- Final project status report due
TBD
- Final project writeups due