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 09 | Introduction to Course, Python Review | 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 | |
---|---|---|---|---|
Week 2 | Sep 12 | Terminology and Python review | Complete Part 2 of Python review lab and the Towards a Power User lab before class on Wednesday. | |
Sep 14 | Python review: Design discussion Toward a Power User Review | |||
Sep 16 | Introduction to Java Introduction to Version Control and GitHub | Complete Git Lab | ||
Week 3 | Sep 19 | Java fundamentals: printing, statically typed variables, arithmetic operators, relational operators Read textbook up through 1.4: Let's Look at a Java Program | ||
Sep 21 | Common Java classes: String; getting user input: Scanner Using the Java API Read textbook, "Java Data Types", up to but not including List. | |||
Sep 23 | Control structures, arrays, command-line arguments Read textbook up through Loops and Iteration | Assignment 2 | ||
Week 4 | Sep 26 | Creating our own classes Read textbook: "Defining Classes in Java" up to but not including Inheritance | Assignment 3 | |
Sep 28 | Creating classes, cont'd; Overloading; Inheritance, Overriding Standard Streams Continue in Textbook "Defining Classes in Java" | |||
Sep 30 | Static Methods and Fields Read textbook sections on static member variables and methods | |||
Week 5 | Oct 03 | Testing Cloning Passing parameters | Assignment 3 (still) | |
Oct 05 | Packages Inheritance | |||
Oct 07 | Exam 1 | |||
Week 6 | Oct 10 | Inheritance continued Polymorphism, Dynamic Dispatch Jar Files, Classpath Abstract Classes, Interfaces Generics Collections Continue in Textbook "Defining Classes in Java" | ||
Oct 12 | ||||
Oct 14 | Reading Days | |||
Week 7 | Oct 17 | Collections Finish "Java Data Types" section in textbook | Assignment 4 (still) | |
Oct 19 | Collections | Set Up Eclipse | ||
Oct 21 | Exceptions | Assignment 5 | ||
Week 8 | Oct 24 | Files | Assignment 5 (continued) | |
Oct 26 | Comparing Java, Python Compiler Optimizations 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 28 | Introduction to Software Development
Testing | Read this overview of testing, unit testing, and JUnit and complete the reading quiz in Canvas. Clone the repository for the In-Class Lab: Catch The Mutants | ||
Week 9 | Oct 31 | Testing Project | ||
Nov 02 | Collaboration Coverage, White-box Testing Eclipse Plug-in (EclEmma) Why do developers hate code coverage? And why they should not hate it! | |||
Nov 04 | Coverage: benefits and limitations Design in the Small | |||
Week 10 | Nov 07 | Code Smells, Refactoring for Readability, Maintainability, and Extensibility Readings and Resources:
Liskov Substitution Principle Readings: Design Patterns (Factories, Composite, Strategy, Observer, MVC) | Testing Project (cont'd) | |
Nov 09 | ||||
Nov 11 | Exam 2 | |||
Week 11 | Nov 14 | Analysis and Design (Analysis and Design) GUIs Handling events Swing References: | Preparation Analysis: Due Friday, November 18 before class | |
Nov 16 | ||||
Nov 18 | ||||
Week | Nov 21 | Thanksgiving Break | ||
Nov 23 | ||||
Nov 25 | ||||
Week 12 | Nov 28 | Singleton design pattern Prototypes, Review Decorator Design pattern Project Design, Management | Preliminary implementation and demo due Friday, Dec 2 | |
Nov 30 | ||||
Dec 02 | ||||
Week 13 | Dec 05 | Designing APIs, Design Principles Project Design, Management | Intermediate implementation and demo due Friday, Dec 9 | |
Dec 07 | ||||
Dec 09 | ||||
Week | Dec 12 | Final Exam Period | ||
Dec 14 | ||||
Dec 16 |