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
- 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, OnlineGDB
Official Java documentation (Java API)
Course Calendar
- Aug 28
- Reading: Liang chapter 2 (basics)
- Handouts: Skeleton program • Java basics • Java data types and variables
- Reading: Liang chapter 2 (basics)
- Aug 30
- Continue Java: if statements, loops
- Code
- Reading: Liang chapter 3 (if statements), chapter 5 (loops)
- Handouts: while loops
- Sep 4
- Lab 1
- Reading: Liang chapter 5 (loops)
- Handouts: for loops
- Reading: Liang chapter 5 (loops)
- Sep 6
- Reading: Liang chapter 6 (functions)
- Handouts: Functions handout
- Project 1 assigned: Project 1, due Sep 16
- Reading: Liang chapter 6 (functions)
- Sep 9
- Handouts: Function practice
- Sep 11
- Lab 2
- Sep 13
- Handouts: SimpleCanvas • OOP defs
- HW 1 assigned: Homework 1, due Sep 20
- Handouts: SimpleCanvas • OOP defs
- Sep 16
- Handouts: Color API
- Sep 18
- Lab 3
- Sep 20
- Handouts: Reference problems
- Project 2 assigned: Project 2, due Oct 1
- Handouts: Reference problems
- Sep 23
- Learning how to design simple classes.
- Reading: Liang chapter 9.1-9.3, 9.5 (creating classes)
- Handouts: Creating classes
- Learning how to design simple classes.
- Sep 25
- Lab 4
- Sep 27
public
andprivate
- Reading: Liang 9.8 (public/private)
- Sep 30
- Constructors
- Reading: Liang 9.4 (constructors)
- Constructors
- Oct 2
- Lab 5
- HW 2 assigned: Homework 2, due Oct 7
- Oct 4
- Designing a
Fraction
class- Handouts: Fraction instructions
- Designing a
- Oct 7
- Handouts: In-class practice • After-class practice
- Oct 9
- Midterm I
- Oct 11
- More practice with the
Fraction
class- More practice with the
- Oct 14
- Project 3 assigned: Project 3, due Oct 28
- Oct 16
- Lab 6
- Oct 18
- Handouts: ArrayLists • Strings • File reading • Practice
- Reading: Liang 11.11 (ArrayLists), 4.4 and 10.10 (strings).
- Handouts: ArrayLists • Strings • File reading • Practice
- Oct 21
- Fall break
- Oct 23
- Lab 7
- Oct 25
- Handouts: Recursion handout
- Reading: Liang 18.1-18.2 (recursion intro).
- Handouts: Recursion handout
- Oct 28
- Reading: Liang 18.3 (recursion continued). Pay special attention to Figures 18.2 and 18.3 on page 722; these are important to understand.
- Oct 30
- Lab 8
- Nov 1
- Recursive functions with arrays
- Handouts: Recursion with arrays handout
- Project 4 assigned: Project 4, due Nov 12
- Recursive functions with arrays
- Nov 4
- Binary search algorithm
- Handouts: Binary search
- Binary search algorithm
- Nov 6
- Lab 9
- Nov 8
- Handouts: Inheritance handout
- Reading: Liang 11.1-11.2 (inheritance)
- HW 3 assigned: Homework 3, due Nov 15
- Handouts: Inheritance handout
- Nov 11
- Inheritance II
- Nov 13
- Lab 10
- Project 5 assigned: Project 5, due Nov 23
- Nov 15
- Handouts: Polymorphism
- Reading: Liang 11.7-11.9 (polymorphism)
- Handouts: Polymorphism
- Nov 18
- Review for midterm
- Nov 20
- Midterm II
- Nov 22
- Handouts: Abstract classes
- Nov 25
- Handouts: Interfaces
- Project 6 assigned: Project 6, due Dec 11
- Handouts: Interfaces
- Nov 27
- Thanksgiving break
- Nov 29
- Thanksgiving break
- Dec 2
- Running time of algorithms
- Handouts: Running time
- Dec 4
- Lab 11
- Dec 6
- Running time of algorithms
- Handouts: Big-O notation and problems
- Dec 9
- Semester wrapup, review
- Handouts: Final practice problems
- Dec 11
- Project work time