Course: Object Oriented Programming in Java
Modules:
Course Opening Title, Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization), Welcome (Object Oriented Programming in Java Specialization), Project prototype, Your Path through the Course, Concept Challenges: what and why?, In the Real World: Welcome from Google Engineers, Introduction: Classes and Objects, Core: Defining Classes and Creating Objects, When I Struggled: Objects, Core: Overloading Methods, Core: Public vs. Private, In the Real World: Public vs. Private access
Introduction: Memory Models, Scope, and Project, Project: Module 1 Assignment Overview, Project: Setting up the starter code in Eclipse, Core: Drawing Memory Models with Primitive Data, Support:  Memory Models for Primitive Types, Support: Setting Up and Running Examples in Eclipse, When I Struggled: Compiling and Running Code, Core: Drawing Memory Models with Objects, Concept Challenge: Memory Models 1, Concept Challenge: Memory Models 2, Support: Memory Model Drawing Example, Core: Introduction to Scope, Concept Challenge: Scope, Support: Putting it all Together Part 1, Support: Putting it all Together Part 2, Project: Module 1 Assignment Walkthrough
Module Introduction: Graphical User Interfaces (GUIs), Project: Module 3 Programming Assignment Overview, Core: Graphical User Interfaces, Core: Using PApplet, When I struggled: GUIs, Core: Resizing Images, Core: Colors, When I Struggled: Documentation, Support: Setting up a Canvas, Support: Drawing Happy Face, Support: Loading and Displaying Images, Core: Why Processing?, Support: Using Documentation, In the Real World: Documentation, Core: Setting up map visualization, Core: Adding markers, Core: Using live data, Bonus: Visualizing life expectancy, Bonus: Setting up the map, Bonus: Representing data, Bonus: Coloring markers, Support: ArrayLists and Generics, Project: Module 3 Programming Assignment Walkthrough
Module Introduction: Inheritance and Polymorphism, Project: Module 4 Programming Assignment Overview, Core: Why use Inheritance?, Core: Extends, In the Real World: Inheritance 1, Core: Reference vs. Object Type, When I struggled: the "Is a" relationship, Concept Challenge: References and Objects, Core: Visibility Modifiers, When I Struggled: Inheritance, Core: Object Creation in Java, Core: Compiler Rules for Class Construction, Core: Variable Initialization in a Class Hierarchy, Concept Challenge: Inheritance Constructors 1, Concept Challenge: Inheritance Constructors 2, Core: Method Overriding, Core: Introduction to Polymorphism, When I struggled: Polymorphism, Core: Rules to Follow for Polymorphism, Core: Casting Objects, Concept Challenge: Polymorphism Part 1, Concept Challenge: Polymorphism Part 2, Core: Abstract Classes and Interfaces, In the Real World: Inheritance 2, Project: Module 4 Programming Assignment Walkthrough
Module Introduction: Responding to User Events, Project: Module 5 Programming Assignment Overview, Core: Introduction to Event-Driven Programming, In the Real World: Events, Core: Implementing Events in UnfoldingMaps, Core: Implementing Buttons in UnfoldingMaps, When I Struggled: Buttons and GUIs, Core: Listener Hierarchy, Project: Module 5 Programming Assignment Walkthrough
Module Introduction: Searching and Sorting, Project Overview, In the Real World: Searching and Sorting, Core: Linear Search, Part 1, Core: Linear Search, Part 2, Core: Binary Search, Core: Binary Search Example, When I Struggled: Search, Core: Introduction to Sorting, Core: Selection Sort Algorithm, Core: Selection Sort Implementation, Core: Selection Sort Analysis, Concept Challenge: Selection Sort, Core: Mystery Sort, Core: Java's Built-In Sort, Core: Comparable Interface, Revisited, Concept Challenge: Which Sort?, Project: Module 6 Programming Assignment Walkthrough, End of Course Message