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 05 | Introduction to Course | 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: CS Awesome - a first textbook for students, so it will seem more basic but it covers more topics, more in-depth. Towards a Power User - due before class on Monday | |
---|---|---|---|---|
Week 2 | Sep 08 | Toward a Power User Review Terminology and Python review | ||
Sep 10 | Terminology and Python review | Complete Design discussion | ||
Sep 12 | Introduction to Version Control and GitHub | Complete Git Lab | ||
Week 3 | Sep 15 | Introduction to Java Java fundamentals: printing Read textbook up through 2.2: Let's Look at a Java Program | (cont'd) Complete Git Lab | |
Sep 17 | Java fundamentals; statically typed variables, arithmetic operators, relational operators Read textbook, 3.1-3.3 | |||
Sep 19 | Common Java classes: String; getting user input: Scanner Using the Java API Control structures Read textbook, 3.3, Chapter 4. | |||
Week 4 | Sep 22 | Control structures, arrays, command-line arguments Read Chapter 3.4 (although we aren't talking about lists yet), Chapter 5 | ||
Sep 24 | Standard Streams Creating our own classes Testing classes Read textbook: "Defining Classes in Java" (6.1-6.3) | |||
Sep 26 | Overloading; Inheritance, Overriding Continue in Textbook "Defining Classes in Java" (6.4) | |||
Week 5 | Sep 29 | Static Methods and Fields Formatting Read textbook sections on static member variables and methods | ||
Oct 01 | Cloning Passing parameters | |||
Oct 03 | Exam 1 | |||
Week 6 | Oct 06 | Packages Inheritance, Polymorphism, Dynamic Dispatch Continue in textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods" | ||
Oct 08 | Jar Files, Classpath Abstract Classes, Interfaces Generics Collections Continue in textbook "Defining Classes in Java" | |||
Oct 10 | Reading Days | |||
Week 7 | Oct 13 | Collections Finish "Java Data Types" chapter in textbook | ||
Oct 15 | Collections | |||
Oct 17 | Exceptions | |||
Week 8 | Oct 20 | Files | ||
Oct 22 | 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 24 | Comparing Java, Python Introduction to Software Development | |||
Week 9 | Oct 27 | Software Development Testing | ||
Oct 29 | Unit Testing | |||
Oct 31 | Testing Collaboration Coverage, White-box Testing | |||
Week 10 | Nov 03 | Coverage: benefits and limitations Eclipse Plug-in (EclEmma) Why do developers hate code coverage? And why they should not hate it! | ||
Nov 05 | 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 07 | Exam 2 | |||
Week 11 | Nov 10 | Analysis and Design (Analysis and Design) GUIs Handling events Swing References: | ||
Nov 12 | ||||
Nov 14 | ||||
Week 12 | Nov 17 | Singleton design pattern Prototypes, Review Decorator Design pattern Project Design, Management | ||
Nov 19 | ||||
Nov 21 | ||||
Week | Nov 24 | Thanksgiving Break | ||
Nov 26 | ||||
Nov 28 | ||||
Week 13 | Dec 01 | Designing APIs, Design Principles Project Design, Management | ||
Dec 03 | ||||
Dec 05 | ||||
Week | Dec 08 | Final Exam Period | ||
Dec 10 | ||||
Dec 12 |