Course: Data Structures and Performance
Modules:
Course Title, Welcome (Object Oriented Java Programming: Data Structures and Beyond Specialization), Welcome (Object Oriented Programming in Java Specialization), Your path through the course, Concept Challenges, In the Real World: Welcome from Google Engineers, Project Prototype
Introduction, Project Overview, 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
Introduction, Project Overview, 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: Merge Sort, Core: A Summary of Sorting, Core: Common Pitfalls in Asymptotic Analysis, Core: Introduction to Benchmarking, Core: Using Java Time, Core: Analyzing Timings, Concept Challenge: Relating Timing Data to Algorithm Analysis, Project: Week 3 Project Walk Through
Introduction, Project Overview, 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?, Core: Testing Practices, 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
Introduction, Project Overview, Core: Trees, In the Real World: Trees, Core: Defining Trees, Core: Binary Trees, 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, Core: Searching in a BST, 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
Introduction, Project Overview, Core: Hash Tables, Core: Collisions in Hash Tables, When I Struggled: Hash Tables, Core: Applications of Hash Tables, Support: Modular Arithmetic, Concept Challenge: Hash Tables, Core: Overview, Core: Algorithm, Core: Edit Distance, Project: Spelling Suggestions Walk Through, Project: Word Path Walk Through, Core: Congratulations!