Schedule
Lecture slides will be posted after class.
Most dates are tentative. The schedule will be updated as the semester progresses...
WEEK | DAY | Lectures & Examples | Topic & Reading | Assignments |
Week 1 | Sep 10 | Introduction to Course, Version Control, and GitHub | Complete Git Lab - due Monday at 11:59 p.m. Register for the interactive textbook by going to the textbook site and then register, creating a username/password for the course. Use the code Another Java textbook - a first textbook for students, so it will seem more basic but it covers more topics, more in-depth Review Unix commands | |
Week 2 | Sep 13 | Introduction to Java Start reading textbook through "Let's Look at a Java Program" | ||
Sep 15 | Drop/Add ends | Statically typed variables Java API Read textbook, "Java Data Types", up to but not including List. | ||
Sep 17 | Control structures, command-line arguments Read textbook up through Loops and Iteration | Assignment 2 | ||
Week 3 | Sep 20 | Control structures Read textbook up through Loops and Iteration | Assignment 3 | |
Sep 22 | Creating classes Read textbook: "Defining Classes in Java" up to but not including Inheritance | Assignment 4 | ||
Sep 24 | Creating classes, cont'd; Continue in Textbook "Defining Classes in Java" up to but not including "Inheritance" | |||
Week 4 | Sep 27 | Cloning Passing parameters | ||
Sep 29 | Inheritance Continue in Textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods" | Assignment 5 | ||
Oct 01 | Polymorphism Dynamic Dispatch Abstract Classes, Interfaces Continue in Textbook "Defining Classes in Java" | |||
Week 5 | Oct 04 | Interfaces Collections, Generics Wrapper Classes | ||
Oct 06 | Collections Packaging Finish "Java Data Types" section in textbook | |||
Oct 08 | Exam 1 | |||
Week 6 | Oct 11 | Files | Assignment 6 | |
Oct 13 | ||||
Oct 15 | Reading Days | |||
Week 7 | Oct 18 | Streams Standard Error Java wrapup:
2020 ACM Breakthrough Award Winner: Michael Franz, for the development of just-in-time compilation techniques that enable fast and feature-rich web services on the internet. | ||
Oct 20 | Introduction to Software Development
Testing, JUnit | Read this overview of testing, unit testing, and JUnit and complete the reading quiz in Canvas. | ||
Oct 22 | ||||
Week 8 | Oct 25 | Testing, JUnit Collaboration Coverage, White-box Testing Eclipse Plug-in (EclEmma) | Testing Project (due Tuesday at 11:59 p.m.) | |
Oct 27 | ||||
Oct 29 | ||||
Week 9 | Nov 01 | Design in the Small - Open-Closed Principle, Code Smells, Refactoring for Readability, Maintainability, and Extensibility Readings and Resources:
Liskov Substitution Principle Readings: | ||
Nov 03 | Assignment 7: Roulette - Refactoring for Extensibility, Maintenance, and Readability | |||
Nov 05 | ||||
Week 10 | Nov 08 | Design Patterns (Factories, Composite, Strategy, Observer, MVC) Head First Design Patterns Dependency Inversion Principle Animation Lab: Screensavers - for Wednesday's class | ||
Nov 10 | ||||
Nov 12 | Exam 2 | |||
Week 11 | Nov 15 | Analysis and Design (Analysis and Design) GUIs Handling events Swing References: | Preparation Analysis: Due Friday, November 19 before class | |
Nov 17 | ||||
Nov 19 | ||||
Week | Nov 22 | Thanksgiving Break | ||
Nov 24 | ||||
Nov 26 | ||||
Week 12 | Nov 29 | Singleton design pattern Prototypes, Review Decorator Design pattern Project Design, Management | Preliminary implementation and demo due Friday, Dec 3 | |
Dec 01 | ||||
Dec 03 | ||||
Week 13 | Dec 06 | Designing APIs, Design Principles Project Design, Management | Intermediate implementation and demo due Friday, Dec 10 | |
Dec 08 | ||||
Dec 10 | ||||
Week | Dec 13 | Final Exam Period | ||
Dec 15 | ||||
Dec 17 |