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
- 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
- Official Java documentation
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).
- Slides Code
- Fri, Aug 26
- Continue with Java.
Random number generation, while loops.
while loop handout.- Code
- Reading Liang chapter 5 (loops).
- Code
- 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)
- Reading Liang 7.0-7.8 (arrays).
- 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).
- 10am code 11am code
- 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)
- Slides 10am code 11am code
- Wed, Sep 21
- Lab Lab 4
- Fri, Sep 23
- Creating Classes II
public
andprivate
.- 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)
- Slides
- Wed, Sep 28
- Lab Lab 5
- Fri, Sep 30
- OO Design Practices
Designing aFraction
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 theFraction
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).
- 10am code 11am code
- 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).
- Slides 10am code 11am code
- 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.
- 10pm code 11am code
- 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)
- Slides 10am code 11am code
- 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).
- Slides 10am code 11am code
- 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