Link Search Menu Expand Document (external link)

Computer Science II: Object-Oriented Programming

Spring 2025

Administrivia

Resources

Calendar

Wed, Jan 15
Introduction, go over syllabus, introduce Java.
Printing, variables, user input, math, if/else, loops.
Java basics.
Slides
Reading Liang chapter 2 (basics), chapter 3 (if statements).
Fri, Jan 17
Continue with Java.
Printing, variables, user input, math, if/else, loops, random number generation, while/for loops.
Start-up: Accessing in-class code examples
while loop handout
for loop handout
Code Source
Reading Liang chapter 5 (loops)
Project Project 1 (due Thu, Feb 1)
Wed, Jan 22
Lab Lab 1 (due Fri, Jan 24 at 5:00 PM)
Fri, Jan 24
Practice with Java.
For Loop Code
Example Code The Problem Code
Functions handout, functions practice
Reading Liang chapter 6 (functions)
Mon, Jan 27
Practice with functions, intro to OOP
-Continue out-of-class work on functions handout.
Functions with arrays.
Starting code.
Reading Liang 7.0-7.8 (arrays).
Wed, Jan 29
Lab Lab 2 (due Fri, Jan 31 at 5:00 PM)
Fri, Jan 31
Object-Oriented Programming I
OOP definitions
Reading Sedgewick & Wayne 3.1, pp. 329-335 (OO concepts).
Homework Homework 1 (due Fri, Feb 7)
Mon, Feb 3
Object-Oriented Programming II
Digging in deeper to OOP concepts and terminology. Using classes and functions designed by others.
SimpleCanvas and Color APIs
Code Source
Reading Liang chapter 8 (multidimensional arrays).
Project Project 2 (due Tue, Feb 17)
Wed, Feb 5
Lab Lab 3 (due Fri, Feb 7 at 5:00 PM)
Fri, Feb 7
Object-Oriented Programming III
OOP “gotchas” and learning about references.
Gotchas handout
Mon, Feb 10
Creating Classes I
Learning how to design simple classes.
Class design handout
Reading Liang 9.1-9.3, 9.5 (creating classes).
Wed, Feb 12
Lab Lab 4 (due Fri, Feb 14 at 5:00 PM)
Fri, Feb 14
Creating Classes II
Constructors and further practice.
Slides
Reading Liang 9.4 (constructors).
Homework Homework 2 (due Fri, Feb 21)
Mon, Feb 17
OO Design Practices
Designing a Fraction class.
Fraction Class Handout
Exam Review (writing code)
Exam Review (interpreting code)
Wed, Feb 19
Bonus Lab Lab 5 (due Mon, Feb 24 at 5:00 PM)
Fri, Feb 21
OO Design Practices
More practice with the Fraction class.

Exam Review Solutions (writing code)

Exam Review Solutions (interpreting code)
Exam Review Solutions (interpreting code, final question)
Mon, Feb 24
Review for midterm
Extra Exam Practice Problems
Wed, Feb 26
Exam I
Fri, Feb 28
Recursion I
Recursion handout
Slides Recursion 1
Reading Liang 18.1-18.2 (recursion intro).
Mon, Mar 3
Recursion II
Project Project 3 (due Fri, Mar 21)
Reading Liang 18.3 (recursion continued). Pay special attention to Figures 18.2 and 18.3 on page 722; these are important to understand.
Wed, Mar 5
Midsemester Evaluation (a bonus opportunity!) (due Fri, Mar 7)
Lab Lab 6 (due Fri, Mar 7 at 5:00 PM)
Fri, Mar 7
Recursion III
Recursive functions with arrays
Recursion with arrays handout
Slides
Mon, Mar 11
Spring break!
Wed, Mar 13
Spring break!
Fri, Mar 15
Spring break!
Mon, Mar 17
A series of lectures to watch followed by in-class work!
Lecture 1 - Debugging with Intellij
Lecture 2 - Design Choices

String handout

ArrayList handout
Practice problems
Wed, Mar 19
Lab Lab 7 (due Fri, Mar 21 at 5:00 PM)
Fri, Mar 21
Recursion IV
Binary search
Binary search handout
Slides
Mon, Mar 24
Binary Search II
Homework Homework 3 (due Tue, Apr 1)
Project Project 4 (due Mon, Apr 7)
Wed, Mar 26
Lab Lab 8 (due Fri, Mar 28 at 5:00 PM)
Fri, Mar 28
Practice with Recursion
Recursion Problem handout
Mon, Mar 31
Inheritance I
Inheritance handout
Reading Liang 11.1-11.2 (inheritance).
Wed, Apr 2
Lab Lab 9 (due Fri, Apr 4 at 5:00 PM)
Fri, Apr 4
Inheritance II
Inheritance II handout
Slides
Mon, Apr 7
Polymorphism I
Reading Liang 11.7-11.9 (polymorphism).
Midterm II Study Guide
Wed, Apr 9
Lab Lab 10 (due Fri, Apr 11 at 5:00 PM)
Project Project 5 (due Mon, Apr 21)
Fri, Apr 11
Polymorphism Continued
Mon, Apr 14
Review
Midterm II Study Guide Solutions
Extra Exam Practice Problems
Wed, Apr 16
Exam II
Fri, Apr 18
Easter break!
Mon, Apr 21
Abstract Classes & Band in a Box
Wed, Apr 23
Lab Lab 11 (due Fri, Apr 23 at 5:00 PM)
Fri, Apr 25
Interfaces
Project Project 6 (due Wed, May 7)
Reading Liang 11.5-11.6 (interfaces).
Mon, Apr 28
Big O How computer scientists measure how fast algorithms run.
Slides
Final Study Guide
Big O handout
Wed, Apr 30
Final Review and Big O, Part 2
Final Solutions