Link Search Menu Expand Document (external link)

Computer Science II: Object-Oriented Programming

Spring 2024

Administrivia

  • Instructor: Nate Phillips
  • Office hours: Mon 1-3 PM, Wed 1-3 PM. Also available by appointment and over Slack or Zoom.
  • Section 1 Canvas page and Section 2 Canvas page: Use for grades, online assignment submissions, and assignment solutions. (Canvas pages pending; please pardon my work in progress!)
  • Syllabus and additional policies.
  • Tutoring hours: Sunday through Thursday evenings, 5-11pm, Briggs 001

(Tutoring will be in Slack on 1-24-24 and 1-25-25 from 5-10 PM, at the following link:

https://rhodes-cs.slack.com/archives/C0105S6BHHU

If you want to request tutoring, you should type in “/tutorme [their class name] [their question]” into the slack channel.)

Resources

Calendar

Wed, Jan 10
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 12
Continue with Java.
Printing, variables, user input, math, if/else, loops, random number generation, while/for loops.
Start-up: Accessing in-class code examples Programs for today while loop handout.
Code Source
Reading Liang chapter 5 (loops).
Wed, Jan 17
Snow day!!
Project Project 1 (due Thu, Jan 25)
Fri, Jan 19
Lab Lab 1
Mon, Jan 22
Practice with Java.
for loop handout For Loop Code
Example Code The Problem Code
Functions handout, functions practice.
Reading Liang chapter 5 (loops) and chapter 6 (functions).
Wed, Jan 24
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).
Fri, Jan 26
Lab Lab 2
Mon, Jan 29
Object-Oriented Programming I
Start-up: Accessing in-class code examples
OOP definitions
Reading Sedgewick & Wayne 3.1, pp. 329-335 (OO concepts).
Homework Homework 1 (due Thu, Feb 1)
Wed, Jan 31
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 Thu, Feb 15)
Fri, Feb 2
Lab Lab 3
Mon, Feb 5
Object-Oriented Programming III
OOP “gotchas” and learning about references.
Gotchas handout
Wed, Feb 7
Creating Classes I
Learning how to design simple classes.
Class design handout
Slides
Reading Liang 9.1-9.3, 9.5 (creating classes).
Fri, Feb 9
Lab Lab 4
Mon, Feb 12
Creating Classes II
Constructors and further practice.
Slides
Reading Liang 9.4 (constructors).
Homework Homework 2 (due Mon, Feb 19)
Wed, Feb 14
OO Design Practices
Designing a Fraction class.
Fraction Class Handout
Exam Review (writing code)
Exam Review (interpreting code)
Fri, Feb 16
Lab Lab 5
Mon, Feb 19
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)
Wed, Feb 21
Review for midterm
Extra Exam Practice Problems
Fri, Feb 23
Midterm I
Mon, Feb 26
Recursion I
Recursion handout
Slides Recursion 1
Reading Liang 18.1-18.2 (recursion intro).
Project Project 3 (due Tue, Mar 19)
Wed, Feb 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.
Fri, Mar 1
Lab Lab 6
Mon, Mar 4
Recursion III
Recursive functions with arrays
Recursion with arrays handout
Slides
Wed, Mar 6
Recursion IV
Binary search
Binary search handout
Slides
Fri, Mar 8
Lab Lab 7
Mon, Mar 11
Spring break!
Wed, Mar 13
Spring break!
Fri, Mar 15
Spring break!
Mon, Mar 18
Practice with Recursion
Recursion Problem handout
Homework Homework 3 (due Tue, Apr 2)
Project Project 4 (due Fri, Apr 5)
Wed, Mar 20
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
Fri, Mar 22
Lab Lab 8
Mon, Mar 25
Inheritance I
Inheritance handout
Reading Liang 11.1-11.2 (inheritance).
Wed, Mar 27
Inheritance II
Inheritance II handout
Slides
Fri, Mar 29
Easter break!
Mon, Apr 1
Polymorphism I
Reading Liang 11.7-11.9 (polymorphism).
Wed, Apr 3
Polymorphism Continued
Midterm II Study Guide
Fri, Apr 5
Lab Lab 9
Project Project 5 (due Thu, Apr 18)
Mon, Apr 8
Abstract Classes & Band in a Box
Wed, Apr 10
Review
Midterm II Study Guide Solutions
Fri, Apr 12
Midterm II
Mon, Apr 15
Interfaces
Reading Liang 11.5-11.6 (interfaces).
Wed, Apr 17
Big O How computer scientists measure how fast algorithms run.
Final Study Guide
Big O handout
Project Project 6 (due Sun, Apr 28)
Fri, Apr 19
Lab Lab 10
Mon, Apr 22
Big O, Part 2
Wed, Apr 24
Final Review!!
Final Solutions