Schedule
Lecture slides will be posted after class.
Most dates are tentative. The schedule will be updated as the semester progresses.
Jump to current week.
| Week | Day | Slides & Examples | Topic & Reading | Assignments |
Week 1 | Sep 04 | 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 An 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 07 | Toward a Power User Review Python and Programming Terminology Refresher | ||
Sep 09 | Review Python programming and terminology | Complete Design discussion | ||
Sep 11 | Review Design Discussion Introduction to Version Control and GitHub | Complete Git Lab | ||
Week 3 | Sep 14 | Introduction to Java Java fundamentals: printing Read textbook up through 2.2: Let's Look at a Java Program | ||
Sep 16 | Java fundamentals; statically typed variables, arithmetic operators, relational operators Read textbook, 3.1-3.3 | |||
Sep 18 | Common Java classes: String; getting user input: Scanner Using the Java API Control structures Read textbook, 3.3, Chapter 4. | |||
Week 4 | Sep 21 | Control structures, arrays, command-line arguments Read Chapter 3.4 (although we aren't talking about lists yet), Chapter 5 | ||
Sep 23 | Standard Streams Creating our own classes Testing classes Read textbook: "Defining Classes in Java" (6.1-6.3) | |||
Sep 25 | Overloading; Inheritance, Overriding Continue in Textbook "Defining Classes in Java" (6.4) | |||
Week 5 | Sep 28 | Static Methods and Fields Formatting Read textbook sections on static member variables and methods | ||
Sep 30 | Cloning Passing parameters | |||
Oct 02 | Exam 1 | |||
Week 6 | Oct 05 | Packages Inheritance, Polymorphism, Dynamic Dispatch Continue in textbook "Defining Classes in Java" up to but not including "Abstract Classes and Methods" | ||
Oct 07 | Jar Files, Classpath Abstract Classes, Interfaces Generics Collections Continue in textbook "Defining Classes in Java" | |||
Oct 09 | Reading Days | |||
Week 7 | Oct 12 | Collections Finish "Java Data Types" chapter in textbook | ||
Oct 14 | Collections | |||
Oct 16 | Exceptions | |||
Week 8 | Oct 19 | Files | ||
Oct 21 | 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 23 | Comparing Java, Python Introduction to Software Development
Bonus: Garbage Collection slides, not covered in class | |||
Week 9 | Oct 26 | Software Development Testing | ||
Oct 28 | Unit Testing | |||
Oct 30 | Testing Collaboration Coverage, White-box Testing | |||
Week 10 | Nov 02 | Coverage: benefits and limitations Eclipse Plug-in (EclEmma) Why do developers hate code coverage? And why they should not hate it! | ||
Nov 04 | 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 06 | Exam 2 | |||
Week 11 | Nov 09 | Analysis and Design (Analysis and Design) GUIs Handling events Swing References: | ||
Nov 11 | ||||
Nov 13 | ||||
Week 12 | Nov 16 | Singleton design pattern Prototypes, Review Decorator Design pattern Project Design, Management | ||
Nov 18 | ||||
Nov 20 | ||||
Week | Nov 23 | Thanksgiving Break | ||
Nov 25 | ||||
Nov 27 | ||||
Week 13 | Nov 30 | Designing APIs, Design Principles Project Design, Management | ||
Dec 02 | ||||
Dec 04 | ||||
Week | Dec 07 | Final Exam Period | ||
Dec 09 | ||||
Dec 11 | ||||