Course Schedule Autumn 2018


Week Date Lecture Readings
Week 1 Oct 7 Introduction
Install course software and set up your dev environment
Clone lab and project repos
Tutorial on IntelliJ
Overview of Java Language
First Java Program
Java primitive (native) datatypes
Quick overview of fundamental programming structures
Pseudocode
Strings
Arrays
Type conversions (Integer.parseInt, etc.)
Keyboard Input, etc.
Random numbers
Intro to objects and classes -- some basics
Big Java, ch. 1-4
Week 2 Oct 14 Object Basics
Basic Objects, cont.
Constructors
Methods -- static vs. non-static, calling semantics
Object Composition
Packages
Big Java, ch. 5-7
Week 3 Oct 21 Interfaces and abstract classes
Rules for interfaces and abstract classes
Upcasting/downcasting
Polymorphism
Techniques for writing generic code
Big Java, Ch. 8
Week 4 Oct 28 More complex Object relationships
Implementation inheritance
Simple design patterns
More on abstract classes
Object composition
Big Java, Ch. 9
Week 4 Nov 3 Exceptions, Inner Classes, and the Java Event Model
Origins of OOP and OOAD, waterfall vs agile.
Exceptions
Debugging
Anonymous Innner Classes
Java Event Model
Reflection
Big Java, Ch. 10-11

Optional Reading
Discussion of access privileges: public, private, protected
Oracle's good Java io tutorial
Some examples of formatted output
Week 6 Nov 11 Object-Oriented Analysis and Design, Swing, and JavaFX
Review for Midterm exam
Midterm exam -- will cover Big Java chapters 1-9, 13, 19.
OOAD
Swing
JavaFX
Serialization
Recursion
Java 8 Streams and Behavior Parameterization
Big Java, Ch. 13, and Ch. 19
Week 7 Nov 18 More Java 8
More Lamdas
More Behavior Parameterization
More Streams
Collecting data with streams
Review for MT exam
No Reading
Week 8 Nov 25 Generics and Java Design Patterns
Game base introduction and features
Build BlackJack console app in class - if we have time.
Big Java, Ch. 18
Week 9 Dec 2 Algorithms and Data Structures Searching and Sorting
Collections API
Data structures
Algorithms and Order-of-growth
Threads Advanced Topics
Collections and Threads Threads
Thread-safe collections
Multithreading
Socket programming
Big Java, Big Java, Ch. 15-17
Week 10 Dec 9 Student Presentations & Awards Ceremony
Finalist student presentations
None