Readings are to be completed before the class session.
Electronically submitted homework and programs due at 8:05 AM unless otherwise noted.
Written homework submitted on paper is due at the beginning of class.
Week |
Session |
Reading |
HW Due |
Topics |
Resources |
Programs |
1 |
1
Tue Mar 4
Details
|
|
|
- Brief Course Introduction
- Introduction to "static" Java including program structure, main, import, integer types, constants, user input, exceptions, formatted output
|
|
Small Java Programs
|
1 |
2
Thu Mar 6
Details
|
- Weiss Ch. 1, 2.1 - 2.2, 2.5
|
|
- Course and Instructor intro
- Factorial example continued (recursion, arrays for caching, static class fields and methods)
- File IO
- Unit Tests
|
|
Small Java Programs
|
1 |
3
Fri Mar 7
Details
|
- Finish Weiss Ch. 2
- Weiss 3.1 - 3.2
|
|
- Strings
- Dynamically allocating arrays
- Two-dimensional arrays and ragged arrays in Java
|
|
Small Java Programs
|
2 |
4
Tue Mar 11
Details
|
- 3.3-3.7
- 4.1
- First two pages of this intro to UML Class Diagrams
|
|
- Basics of Java classes: constructors, mutators and accessors, equals, toString, static fields and methods, this, constructors, calling constructors from within a class
- Javadoc comments and document generation
- instanceof, class casts
- Annotations (Override, SuppressWarnings)
|
|
Small Java Programs
|
2 |
5
Thu Mar 13
Details
|
|
|
- Basics of inheritance: type compatibility, visibility, super
- IS-A vs. HAS-A
- Overriding and overloading
|
|
BigRational
|
2 |
6
Fri Mar 14
Details
|
|
|
- Inheritance recap
- Abstract Classes and Methods
- Interfaces
- Shape hierarchy and Polymorphism
|
|
BigRational
|
3 |
7
Tue Mar 18
Details
|
|
|
|
|
Swing Warmup
|
3 |
8
Thu Mar 20
Details
|
|
|
|
|
Swing Warmup
|
3 |
9
Fri Mar 21
Details
|
|
|
- Communities of interacting objects
- UML diagrams
- Intro to BallWorlds
|
|
BallWorlds
|
4 |
10
Tue Mar 25
Details
|
|
|
- TextFields, Labels, LayoutManagers
- BallWorlds
|
|
BallWorlds
|
4 |
11
Thu Mar 27
Details
|
|
|
- Generics via Polymorphism, wrappers, auto-boxing
- Generics via parameterized types
- Intro to algorithm analysis.
|
|
Paint
|
4 |
12
Fri Mar 28
Details
|
|
- BallWorlds is due at 5 PM on Friday.
- Paint IEP also due Friday at 5:00.
|
|
|
Paint
|
5 |
13
Tue Apr 8
Details
|
|
- HW 11
- Ballworlds and Paint Planning were due before the break.
|
- Function Objects
- Comparable vs. Comparator
|
|
Paint
|
5 |
14
Thu Apr 10
Details
|
|
|
- Efficient programming and big-Oh
- Asymptotic Analysis, Big-oh and its cousins
- Limits and Asymptotic Analysis
|
|
Paint
|
5 |
15
Fri Apr 11
Details
|
- Review Sections 1.1-4.7.1 for the Key concepts quiz.
|
|
- Key Concepts Quiz (on ANGEL)
- Recap: Big-oh and limits
- Recap: Function objects
|
|
Paint
|
6 |
16
Tue Apr 15
Details
|
|
- HW 15
- Paint due at 8:05 AM.
|
- Generic methods
- Static search (sequential, binary, interpolation)
- Abstract Data Types and Data Structures
|
|
Hardy's Taxi
|
6 |
17
Thu Apr 17
Details
|
|
|
- [85 min class due to convocation schedule]
- BinaryInteger exercise
- More low-level Data Structures
- Data Structures Grand Tour begins
|
|
Hardy's Taxi
|
6 |
18
Fri Apr 18
Details
|
|
|
- Data Structures Grand Tour continues
- Work on Hardy's Taxi
|
|
Hardy's Taxi
|
7 |
19
Tue Apr 22
Details
|
|
|
- Data Structures Grand Tour Wrap-up
- Markov Introduction
- FixedLengthQueue -- with your Markov partner
|
|
Markov Part 1
|
7 |
20
Thu Apr 24
Details
|
|
|
- Java Collections classes, iterators.
|
|
Markov Part 1
|
7 |
21
Fri Apr 25
Details
|
|
|
- Linked List implementation
|
|
Markov Part 1 / Markov Part 2
|
8 |
22
Tue Apr 29
Details
|
|
|
- Linked-List inplementation: Header nodes
- Mini-project intro
- Recursion
|
|
Markov Part 2
|
8 |
23
Thu May 1
Details
|
|
- HW 22 Includes:
- Mini-project partner survey: Due at 4:00 on Day 22
|
- Exam review
- Hardy discussion
- Doubly-linked lists
|
|
Markov Part 2 Mini-project
|
8 |
24
Fri May 2
Details
|
|
- Markov Milestone 2 due Friday 5:00pm (Moved back to Saturday 5:00pm).
|
- Exam 2
- If you wish, you may do the non-computer part 7:15-7:45 AM. Then you will have the full two class periods for the computer part.
|
|
Mini-project
|
9 |
25
Tue May 6
Details
|
|
|
- Exam retrospective
- Begin Elementary sorting methods: selection
- Begin project work
|
|
Mini-project
|
9 |
26
Thu May 8
Details
|
|
|
- Bubble and insertion sorts
- Project work
|
|
Mini-project
|
9 |
27
Fri May 9
Details
|
|
|
|
|
Mini-project
|
10 |
28
Tue May 13
Details
|
- Articles on Serialization:
- Chapter 13 intro and Section 13.1 of Learning Java, 3rd Edition, available through Safari Books Online. See the syllabus for instructions for how to find the Safari books.
|
- HW 27
- Be ready to demo the state of your spell-checker so far.
|
- Non-text I/O, random-access, serialization
- Project work
|
|
Mini-project
|
10 |
29
Thu May 15
Details
|
|
|
- Exam Review
- Course evaluations
- Project work
|
|
Mini-project
|
10 |
30
Fri May 16
Details
|
|
|
- Spell-checker due at beginning of class
- 5-7 minute (including Q&A) mini-project presentation and demo by a randomly-selected member of each team
|
|
Final Exam Monday May 20 6:00 - 10:00 pm in Crapo G310.
|