Computer Science 142: Object-Oriented Programming
Fall 2025
Administrivia
- Instructor: Phillip Kirlin
- Office hours: Mon 12-1:30, Tue 2:30-3:30, Wed 1-2, Thu 3:30-5. Also available by appointment.
- Canvas page: Use for grades, online assignment submissions, and assignment solutions.
- Syllabus and additional policies.
Resources
- Textbooks and tutorials: Introduction to Java by Liang (textbook), Introduction to Programming in Java by Sedgewick and Wayne (textbook), official Java tutorials, Introduction to Programming Using Java (free online textbook)
- Java in the browser: Repl.it, CodeHS, OnlineGDB
Official Java documentation (Java API)
Course Calendar
- Wed, Aug 20
- Reading: Liang chapter 2 (basics)
- Handouts: Skeleton program • Java basics • Programs to write • Java data types and variables
- Reading: Liang chapter 2 (basics)
- Fri, Aug 22
- Continue Java: if statements, loops
- Code
- Reading: Liang chapter 3 (if statements), chapter 5 (loops)
- Handouts: while loops
- Mon, Aug 25
- Miscellaneous math, functions
- Reading: Liang chapter 6 (functions)
- Handouts: Functions handout
- Reading: Liang chapter 6 (functions)
- Wed, Aug 27
- Lab Lab 1
- Fri, Aug 29
- Functions
- Code
- Handouts: Functions practice
- Project Project 1, due Thu, Sep 4
- Mon, Sep 1
- Labor Day (no class)
- Wed, Sep 3
- Lab Lab 2
- Fri, Sep 5
- OOP 1
- Code
- Handouts: SimpleCanvas • OOP defs
- Homework Homework 1, due Mon, Sep 15
- Mon, Sep 8
- OOP 2
- Code
- Handouts: Color API
- Wed, Sep 10
- Lab Lab 3
- Fri, Sep 12
- OOP Gotchas
- Code
- Handouts: Gotchas
- Project Project 2, due Thu, Sep 25
- Mon, Sep 15
- Creating Classes I
- Code
- Handouts: Creating classes
- Wed, Sep 17
- Lab Lab 4
- Fri, Sep 19
- Creating Classes II
- Code
- Mon, Sep 22
- Creating Classes III
- Code
- Wed, Sep 24
- Lab Lab 5
- Homework Homework 2, due Mon, Sep 29
- Fri, Sep 26
- Creating a
FractionClass - Code
- Handouts: Fraction class
- Creating a
- Mon, Sep 29
- Review for midterm
- Code
- Wed, Oct 1
- Exam Midterm I
- Fri, Oct 3
- Creating a
TimeClass - Code
- Creating a
- Mon, Oct 6
- ArrayLists and Strings I
- Code
- Project Project 3, due Thu, Oct 16
- Handouts: ArrayLists • Strings • File reading • Practice
- Wed, Oct 8
- Lab Lab 6
- Fri, Oct 10:
- Fall break
- Mon, Oct 13:
- ArrayLists and Strings II
- Code
- Wed, Oct 15
- Lab Lab 7
- Fri, Oct 17:
- Handouts: Recursion
- Mon, Oct 20:
- Recursion II
- Code
- Reading: Recursion. Pay special attention to Figures 18.2 and 18.3 on page 722; these are important to understand.
- Wed, Oct 22
- Lab Lab 8
- Fri, Oct 24:
- Recursion III: Recursion with arrays
- Code
- Mon, Oct 27:
- Project Project 4, due Thu, Nov 6
- Handout: Binary search
- Project Project 4, due Thu, Nov 6
- Wed, Oct 29
- Lab Lab 9
- Fri, Oct 31:
- Handout: Inheritance handout
- Mon, Nov 3:
- Handout: Overriding handout
- Homework Homework 3, due Mon, Nov 10
- Handout: Overriding handout
- Wed, Nov 5
- Lab Lab 10
- Fri, Nov 7:
- Polymorphism I
- Code
- Handout: Polymorphism handout
- Project Project 5, due Fri, Nov 21
- Mon, Nov 10
- Review for midterm
- Wed, Nov 12
- Exam Midterm II
- Fri, Nov 14:
- Abstract classes
- Code
- Handout: Abstract classes handout
- Mon, Nov 10
- Interfaces
- Code
- Handout: Interfaces handout
- Wed, Nov 12
- Lab Lab 11