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 | Introduction, syllabus, begin Java Reading: Liang chapter 2 (basics) Handouts: Skeleton program • Java basics • Java data types and variables | Slides • Code |
Aug 30 | Continue Java: if statements, loops Reading: Liang chapter 3 (if statements), chapter 5 (loops) Handouts: while loops | Code |
Sep 4 | Lab 1 Reading: Liang chapter 5 (loops) Handouts: for loops | |
Sep 6 | Functions Reading: Liang chapter 6 (functions) Handouts: Functions handout Project 1 assigned: Project 1, due Sep 16 | 10am code • 11am code |
Sep 9 | Functions Handouts: Function practice | 10am code • 11am code |
Sep 11 | Lab 2 | |
Sep 13 | OOP 1 Handouts: SimpleCanvas • OOP defs HW 1 assigned: Homework 1, due Sep 20 | 10am code • 11am code |
Sep 16 | OOP 2 Handouts: Color API | 10am code • 11am code |
Sep 18 | Lab 3 | |
Sep 20 | OOP “Gotchas” Handouts: Reference problems Project 2 assigned: Project 2, due Oct 1 | 10am code • 11am code |
Sep 23 | Creating Classes I Learning how to design simple classes. Reading: Liang chapter 9.1-9.3, 9.5 (creating classes) Handouts: Creating classes | 10am code • 11am code |
Sep 25 | Lab 4 | |
Sep 27 | Creating Classes II public and private Reading: Liang 9.8 (public/private) | 10am code • 11am code |
Sep 30 | Creating Classes III Constructors Reading: Liang 9.4 (constructors) | 10am code • 11am code |
Oct 2 | Lab 5 HW 2 assigned: Homework 2, due Oct 7 | |
Oct 4 | OO Design Practices Designing a Fraction class Handouts: Fraction instructions | 10am code • 11am code |
Oct 7 | Review for Midterm I Handouts: In-class practice • After-class practice | 10am code • 11am code |
Oct 9 | Midterm I | |
Oct 11 | OO Design Practices More practice with the Fraction class | 10am code • 11am code |
Oct 14 | ArrayLists, Strings, File Reading Project 3 assigned: Project 3, due Oct 28 | 10am code • 11am code |
Oct 16 | Lab 6 | |
Oct 18 | ArrayLists, Strings, File Reading, Part II Handouts: ArrayLists • Strings • File reading • Practice Reading: Liang 11.11 (ArrayLists), 4.4 and 10.10 (strings). | 10am code • 11am code |
Oct 21 | Fall break | |
Oct 23 | Lab 7 | |
Oct 25 | Recursion I Handouts: Recursion handout Reading: Liang 18.1-18.2 (recursion intro). | Slides • 10am code • 11am code |
Oct 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. | 10am code • 11am code |
Oct 30 | Lab 8 | |
Nov 1 | Recursion III Recursive functions with arrays Handouts: Recursion with arrays handout Project 4 assigned: Project 4, due Nov 12 | Slides • 10am code • 11am code |
Nov 4 | Recursion IV Binary search algorithm Handouts: Binary search | Slides • 10am code • 11am code |
Nov 6 | Lab 9 | |
Nov 8 | Inheritance I Handouts: Inheritance handout Reading: Liang 11.1-11.2 (inheritance) HW 3 assigned: Homework 3, due Nov 15 | Slides • 10am code • 11am code |
Nov 11 | Inheritance II | |
Nov 13 | Lab 10 Project 5 assigned: Project 5, due Nov 23 | |
Nov 15 | Polymorphism Handouts: Polymorphism Reading: Liang 11.7-11.9 (polymorphism) | Slides • 10am code • 11am code |
Nov 18 | Review for midterm | |
Nov 20 | Midterm II | |
Nov 22 | Abstract classes Handouts: Abstract classes | 10am code • 11am code |
Nov 25 | Interfaces Handouts: Interfaces Project 6 assigned: Project 6, due Dec 11 | 10am code • 11am code |
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 |