Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization) 
 
Welcome (Object Oriented Programming in Java Specialization) 
 
Your path through the course 
 
In the Real World: Welcome from Google Engineers 
 
A Customized Welcome to this Course 
 
After completing this course you will be able to... 
 
Is this course right for me? 
 
If you want more practice before you begin... 
 
The structure of this course 
 
Setting up Java and Eclipse 
 
Getting and Working with the Starter Code 
 
Quiz about the Starter Code and Course Structure 
 
Survey: Your goals for the course 
 
Core: Introduction to the Flesch Readability Score 
 
Core: Basics of Strings in Java 
 
Core: Working with Strings in Java 
 
Support: For-Each Loops part 1 of 5 
 
Support: For-Each Loops part 2 of 5 
 
Support: For-Each Loops part 3 of 5 
 
Support: For-Each Loops part 4 of 5 
 
Support: For-Each Loops part 5 of 5 
 
Core: Introduction to Regular Expressions 
 
When I struggled: Regular expressions 
 
Concept Challenge: Regular Expressions 
 
Support: More with Regular Expressions 
 
Project: Programming Assignment Walk Through 
 
A note about week numbers 
 
By the end of this week you will be able to... 
 
Did you have trouble with any question(s) on the practice quiz? 
 
Week 2: Additional Resources 
 
Programming Assignment FAQ 
 
Week 2: Congratulations and quiz answers 
 
Module and Programming Assignment Quiz 
 
Strings and Regular Expressions 
 
How Easy to Read is Your Writing? 
 
What questions do you have about Strings and Regular Expressions? 
 
In the Real World: Efficiency 
 
Core: Our Motivation for Asymptotic Analysis 
 
Core: Counting Operations 
 
Core: Introduction to Asymptotic Analysis Part 1 
 
Core: Introduction to Asymptotic Analysis Part 2 
 
Core: Computing Big O with Consecutive Operations 
 
Core: Computing Big O with Nested Operations 
 
Concept Challenge: Classifying Functions using Big O 
 
Support: Analyzing Selection Sort 
 
Concept Challenge: Estimating Big O from Code 
 
Core: Worst Best and Average Cases 
 
In the Real World: Worst Case Analysis 
 
Core: Analyzing Search Algorithms 
 
Core: Analyzing Sorting Algorithms 
 
When I struggled: Algorithm performance 
 
Core: A Summary of Sorting 
 
Core: Common Pitfalls in Asymptotic Analysis 
 
Core: Introduction to Benchmarking 
 
Concept Challenge: Relating Timing Data to Algorithm Analysis 
 
Project: Week 3 Project Walk Through 
 
By the end of this week you will be able to... 
 
Week 3: Additional Resources 
 
Week 3: Congratulations and quiz answers 
 
Module and After Programming Assignment Quiz 
 
Asymptotic Notation and Analysis 
 
Making Flesch Score Calculation More Efficient 
 
Core: Introduction to Abstraction 
 
In the Real World: Data Abstraction 
 
Core: Linked Lists vs. Arrays 
 
In the Real World: Lists vs. Arrays 
 
Core: Generics and Exceptions 
 
Core: Java Code for a Linked List 
 
Concept Challenge: Implementing linked lists a first attempt 
 
Concept Challenge: Drawing Linked Lists second attempt 
 
Support: Adding to a Linked List 
 
When I struggled: Data structures 
 
Core: Testing and Confidence 
 
In the Real World: How can the compiler help with testing? 
 
In the Real World: How do you test the behavior of code? 
 
Support: JUnit in Eclipse 
 
In the Real World: Unit Testing 
 
Core: Testing Linked List's "Get" Method 
 
Concept Challenge: Which Tests Should You Run? 
 
In the Real World: Test-driven development 
 
Project: Linked List Assignment Walk Through 
 
When I struggled: confidence in code 
 
Core: Markov Text Generation 
 
Core: Implementing Markov Text Generation 
 
Optional Project: Markov Text Generation Walk Through 
 
By the end of this week you will be able to... 
 
Week 4: Additional Resources 
 
Week 4 Reflective Programming Assignment Quiz 
 
(Optional) Markov Text Generation 
 
Implement and Test a Linked List 
 
Core: Pre-Order Traversals 
 
Core: Post-Order In-Order and Level-Order Traversals (Breadth-first search) 
 
When I struggled: Why traverse a tree? 
 
Core: Introduction to Binary Search Trees 
 
Support: Code for BST's "Find" Method 
 
Core: Inserting into a BST 
 
Support: Code for BST's "Insert" Method 
 
Core: Deleting from a BST 
 
Concept Challenge: BST Shape 
 
Core: Performance of BSTs and Balancing Part 1 
 
Core: Performance of BSTs and Balancing Part 2 
 
Core: Introduction to Tries 
 
Core: Performance of Tries 
 
Core: Implementing a Trie 
 
Project: Week 5 Project Walk Through 
 
By the end of this week you will be able to... 
 
Week 5: Additional Resources 
 
Week 5: Congratulations and quiz answers 
 
Week 5 Content and Programming Assignment Quiz 
 
Spell Checking and Autocomplete 
 
Core: Collisions in Hash Tables 
 
When I Struggled: Hash Tables 
 
Core: Applications of Hash Tables 
 
Support: Modular Arithmetic 
 
Concept Challenge: Hash Tables 
 
Project: Spelling Suggestions Walk Through 
 
Project: Word Path Walk Through 
 
By the end of this week you will be able to... 
 
Week 6: Additional Resources 
 
Week 6: Congratulations and quiz answers 
 
Week 6: Programming Assignment and Content Quiz 
 
Word Paths (Optional but Recommended)