Computer Science 142: Object-Oriented Programming

Fall 2024

Administrivia

  • Instructor: Phillip Kirlin
  • Office hours: Mon 1-2:30, Tue 12:30-2, Wed 2-3, Thu 2-3:30. Also available by appointment.
  • Canvas page: Use for grades, online assignment submissions, and assignment solutions.
  • Syllabus and additional policies.
  • Tutoring hours: Sunday through Thursday evenings, 5-10pm, Briggs 001
  • Final Exam Times:

    You may take the final at any of the following dates/times. You do not need to tell me in advance which one you are coming to; just show up. The location for all three times is the Spence Wilson Room in Briggs.

    • Friday, December 13, 1 PM
    • Monday, December 16, 8:30 AM
    • Tuesday, December 17, 1 PM

Resources

Course Calendar
Aug 28Introduction, syllabus, begin Java
Reading: Liang chapter 2 (basics)
Handouts: Skeleton programJava basicsJava data types and variables
SlidesCode
Aug 30Continue Java: if statements, loops
Reading: Liang chapter 3 (if statements), chapter 5 (loops)
Handouts: while loops
Code
Sep 4Lab 1
Reading: Liang chapter 5 (loops)
Handouts: for loops
 
Sep 6

Functions

Reading: Liang chapter 6 (functions)

Handouts: Functions handout

Project 1 assigned: Project 1, due Sep 16

10am code11am code
Sep 9

Functions

Handouts: Function practice

10am code11am code
Sep 11Lab 2 
Sep 13

OOP 1

Handouts: SimpleCanvasOOP defs

HW 1 assigned: Homework 1, due Sep 20

10am code11am code
Sep 16

OOP 2

Handouts: Color API

10am code11am code
Sep 18Lab 3 
Sep 20

OOP “Gotchas”

Handouts: Reference problems

Project 2 assigned: Project 2, due Oct 1

10am code11am code
Sep 23

Creating Classes I

Learning how to design simple classes.

Reading: Liang chapter 9.1-9.3, 9.5 (creating classes)

Handouts: Creating classes

10am code11am code
Sep 25Lab 4 
Sep 27

Creating Classes II

public and private

Reading: Liang 9.8 (public/private)

10am code11am code
Sep 30

Creating Classes III

Constructors

Reading: Liang 9.4 (constructors)

10am code11am code
Oct 2

Lab 5

HW 2 assigned: Homework 2, due Oct 7

 
Oct 4

OO Design Practices

Designing a Fraction class

Handouts: Fraction instructions

10am code11am code
Oct 7

Review for Midterm I

Handouts: In-class practiceAfter-class practice

10am code11am code
Oct 9Midterm I 
Oct 11

OO Design Practices

More practice with the Fraction class

10am code11am code
Oct 14

ArrayLists, Strings, File Reading

Project 3 assigned: Project 3, due Oct 28

10am code11am code
Oct 16Lab 6 
Oct 18

ArrayLists, Strings, File Reading, Part II

Handouts: ArrayListsStringsFile readingPractice

Reading: Liang 11.11 (ArrayLists), 4.4 and 10.10 (strings).

10am code11am code
Oct 21Fall break 
Oct 23Lab 7 
Oct 25

Recursion I

Handouts: Recursion handout

Reading: Liang 18.1-18.2 (recursion intro).

Slides10am code11am code
Oct 28

Recursion II

Reading: Liang 18.3 (recursion continued). Pay special attention to Figures 18.2 and 18.3 on page 722; these are important to understand.

10am code11am code
Oct 30Lab 8 
Nov 1

Recursion III

Recursive functions with arrays

Handouts: Recursion with arrays handout

Project 4 assigned: Project 4, due Nov 12

Slides10am code11am code
Nov 4

Recursion IV

Binary search algorithm

Handouts: Binary search

Slides10am code11am code
Nov 6Lab 9 
Nov 8

Inheritance I

Handouts: Inheritance handout

Reading: Liang 11.1-11.2 (inheritance)

HW 3 assigned: Homework 3, due Nov 15

Slides10am code11am code
Nov 11Inheritance II 
Nov 13

Lab 10

Project 5 assigned: Project 5, due Nov 23

 
Nov 15

Polymorphism

Handouts: Polymorphism

Reading: Liang 11.7-11.9 (polymorphism)

Slides10am code11am code
Nov 18Review for midterm 
Nov 20Midterm II 
Nov 22

Abstract classes

Handouts: Abstract classes

10am code11am code
Nov 25

Interfaces

Handouts: Interfaces

Project 6 assigned: Project 6, due Dec 11

10am code11am code
Nov 27Thanksgiving break 
Nov 29Thanksgiving break 
Dec 2

Running time of algorithms

Handouts: Running time

 
Dec 4Lab 11 
Dec 6

Running time of algorithms

Handouts: Big-O notation and problems

 
Dec 9

Semester wrapup, review

Handouts: Final practice problems

 
Dec 11Project work time