Link Search Menu Expand Document (external link)

Computer Science II: Object-Oriented Programming

Fall 2022

Administrivia

  • Instructor: Phillip Kirlin
  • Office hours: Mon 12-1, Tue 9-10:30, Wed 3-4, Thu 10-11:30. Also available by appointment and over Slack.
  • Canvas page: Use for grades, online assignment submissions, and assignment solutions.
  • Syllabus and additional policies.
  • Tutoring hours: Sunday through Thursday evenings, 5-11pm, Briggs 001
  • Final exam times:
    • Friday, December 9, 1-3:30, FJ-B
    • Monday, Dec 12, 8:30-11:00, Spence Wilson Room (in Briggs)

Resources

Calendar

Wed, Aug 24
Introduction, go over syllabus, introduce Java.
Printing, variables, user input, math, if/else, loops.
Handout: Java basics, Programs for today.
Slides Code
Reading Liang chapter 2 (basics), chapter 3 (if statements).
Fri, Aug 26
Continue with Java.
Random number generation, while loops.
while loop handout.
Code
Reading Liang chapter 5 (loops).
Mon, Aug 29
Continue with Java.
For loops and functions.
for loop handout, functions handout, functions practice.
Reading Liang chapter 5 (loops) and chapter 6 (functions).
Wed, Aug 31
Lab Lab 1
Reading Liang 7.0-7.8 (arrays).
Project Project 1 (due Thu, Sep 8)
Fri, Sep 2
Practice with functions.
Handout with practice problems.
Mon, Sep 5
Labor Day
Wed, Sep 7
Lab Lab 2
Homework Homework 1 (due Thu, Sep 15)
Fri, Sep 9
Object-Oriented Programming I
Introduction to OOP concepts and terminology.
OOP definitions
10am code 11am code
Reading Sedgewick & Wayne 3.1, pp. 329-325 (OO concepts).
Mon, Sep 12
Object-Oriented Programming II
Using classes and objects designed by others.
SimpleCanvas and Color APIs
10am code 11am code
Wed, Sep 14
Lab Lab 3
Reading Liang chapter 8 (multidimensional arrays).
Fri, Sep 16
Object-Oriented Programming III
OOP “gotchas” and learning about references.
Gotchas handout
10am code 11am code
Mon, Sep 19
Creating Classes I
Learning how to design simple classes.
Class design handout
Slides 10am code 11am code
Reading Liang 9.1-9.3, 9.5 (creating classes).
Project Project 2 (due Thu, Sep 29)
Wed, Sep 21
Lab Lab 4
Fri, Sep 23
Creating Classes II
public and private.
Reading Liang 9.8 (public/private).
Mon, Sep 26
Creating Classes III
Constructors.
Slides
Reading Liang 9.4 (constructors).
Homework Homework 2 (due Mon, Oct 3)
Wed, Sep 28
Lab Lab 5
Fri, Sep 30
OO Design Practices
Designing a Fraction class.
10am code 11am code
Mon, Oct 3
Review for midterm
10am code 11am code
Wed, Oct 5
Midterm I
Fri, Oct 7
OO Design Practices
More practice with the Fraction class.
10am code 11am code
Mon, Oct 10
ArrayLists, Strings, and File Reading
String handout, ArrayList handout, Practice problems
10am code 11am code
Wed, Oct 12
Lab Lab 6
Project Project 3 (due Wed, Oct 26)
Fri, Oct 14
ArrayLists, Strings, and File Reading
Continue practice from Wednesday.
10am code 11am code
Reading Liang 11.11 (ArrayLists), 4.4 and 10.10 (strings).
Mon, Oct 17
Fall break
Wed, Oct 19
Lab Lab 7
Fri, Oct 21
Recursion I
Recursion handout
Slides 10am code 11am code
Reading Liang 18.1-18.2 (recursion intro).
Mon, Oct 24
Recursion II
10pm code 11am code
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, Oct 26
Lab Lab 8
Fri, Oct 28
Recursion III
Recursive functions with arrays
Recursion with arrays handout
Slides 10am code 11am code
Mon, Oct 31
Recursion IV
Binary search
Binary search handout
Slides 10am code 11am code
Project Project 4 (due Mon, Nov 14)
Wed, Nov 2
Lab Lab 9
Homework Homework 3 (due Thu, Nov 10)
Fri, Nov 4
Inheritance I
Inheritance handout
Slides 10am code 11am code
Reading Liang 11.1-11.2 (inheritance).
Mon, Nov 7
(Class canceled)
Wed, Nov 9
Inheritance II
Lab Lab 10
Fri, Nov 11
Finish lab 10
Mon, Nov 14
Polymorphism I
10am code 11am code
Reading Liang 11.7-11.9 (polymorphism).
Wed, Nov 16
Polymorphism II (abstract classes) and Review
10am code 11am code
Project Project 5 (due Thu, Dec 1)
Fri, Nov 18
Midterm II
Mon, Nov 21
Band in a Box (abstract classes)
10am code 11am code
Wed, Nov 23
No class, Thanksgiving break
Fri, Nov 25
No class, Thanksgiving break
Mon, Nov 28
Interfaces
10am code 11am code
Reading Liang 11.5-11.6 (interfaces).
Wed, Nov 30
Lab Lab 11
Fri, Dec 2
Big Oh
How computer scientists measure how fast algorithms run.
Project Project 6 (due Wed, Dec 14)
Mon, Dec 5
Big Oh, continued
Big Oh handout
Wed, Dec 7
TBA