Schedule
Lecture slides will be posted after class.
Most dates are tentative. The schedule will be updated as the semester progresses.
WEEK | DAY | Slides & Examples | Topic & Reading | Assignments |
Week 1 | Sep 06 | 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, optional Java textbook - a first textbook for students, so it will seem more basic but it covers more topics, more in-depth. Click "Enroll in a course" and enter the course name Towards a Power User - due before class on Monday | |
---|---|---|---|---|
Week 2 | Sep 09 | Toward a Power User Review Terminology and Python review | ||
Sep 11 | Python review; Design discussion | Complete Design discussion | ||
Sep 13 | Introduction to Version Control and GitHub | Complete Git Lab | ||
Week 3 | Sep 16 | Introduction to Java Java fundamentals: printing Read textbook up through 1.4: Let's Look at a Java Program | ||
Sep 18 | Java fundamentals; statically typed variables, arithmetic operators, relational operators Read textbook, 1.5.1 (but not 1.5.1.1 or later). | |||
Sep 20 | Common Java classes: String; getting user input: Scanner Using the Java API Control structures Read textbook up through 1.5.2. | |||
Week 4 | Sep 23 | Control structures, arrays, command-line arguments Read 1.5.3 (although we aren't talking about lists yet), 1.5.4, 1.6, 1.7 | ||
Sep 25 | Standard Streams Creating our own classes Testing classes Read textbook: "Defining Classes in Java" up to but not including Inheritance | Assignment 2 (parts 1 and 2 recommended) | ||
Sep 27 | Overloading; Inheritance, Overriding Continue in Textbook "Defining Classes in Java" | |||
Week 5 | Sep 30 | Static Methods and Fields Formatting Read textbook sections on static member variables and methods | Assignment 2 (complete) | |
Oct 02 | Cloning Passing parameters | |||
Oct 04 | Exam 1 | |||
Week 6 | Oct 07 | Packages Inheritance, Polymorphism, Dynamic Dispatch Continue in textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods" | ||
Oct 09 | Jar Files, Classpath Abstract Classes, Interfaces Generics Collections Continue in textbook "Defining Classes in Java" | |||
Oct 11 | Reading Days | |||
Week 7 | Oct 14 | Collections Finish "Java Data Types" section in textbook | Assignment 3 (complete) | |
Oct 16 | Collections | Set Up Eclipse | ||
Oct 18 | Exceptions | Assignment 4 | ||
Week 8 | Oct 21 | Files | Assignment 4 (continued) | |
Oct 23 | 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 25 | Comparing Java, Python Introduction to Software Development | |||
Week 9 | Oct 28 | 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 | |
Oct 30 | Unit Testing | Testing Project | ||
Nov 01 | Testing Collaboration Coverage, White-box Testing | |||
Week 10 | Nov 04 | Coverage: benefits and limitations Eclipse Plug-in (EclEmma) Why do developers hate code coverage? And why they should not hate it! | More Testing Project | |
Nov 06 | Design in the Small Code Smells, Refactoring for Readability, Maintainability, and Extensibility Readings and Resources:
Liskov Substitution Principle Readings: Design Patterns (Factories, Composite, Strategy, Observer, MVC) | |||
Nov 08 | Exam 2 | |||
Week 11 | Nov 11 | Analysis and Design (Analysis and Design) GUIs Handling events Swing References: | Preparation Analysis: Due Friday, November 15 before class | |
Nov 13 | ||||
Nov 15 | ||||
Week 12 | Nov 18 | Singleton design pattern Prototypes, Review Decorator Design pattern Project Design, Management | Preliminary implementation and demo due Friday, Nov 22 | |
Nov 20 | ||||
Nov 22 | ||||
Week | Nov 25 | Thanksgiving Break | ||
Nov 27 | ||||
Nov 29 | ||||
Week 13 | Dec 02 | Designing APIs, Design Principles Project Design, Management | Intermediate implementation and demo due Friday, Dec 6 | |
Dec 04 | ||||
Dec 06 | ||||
Week | Dec 09 | Final Exam Period | ||
Dec 11 | ||||
Dec 13 |