University of California, San Diego - Data Structures and Performance
INSTRUCTORS
Instructors: Mia Minnes, Leo Porter and Christine Alvarado
Course Description
In this course, you will use and analyze data structures that are used in industry-level applications, such as linked lists, trees, and hashtables. You will explain how these data structures make programs more efficient and flexible. You will apply asymptotic Big-O analysis to describe the performance of algorithms and evaluate which strategy to use for efficient data retrieval, addition of new data, deletion of elements, and/or memory usage.
The program you will build throughout this course allows its user to manage, manipulate and reason about large sets of textual data. This is an intermediate Java course, and we will build on your prior knowledge. This course is designed around the same video series as in our first course in this specialization, including explanations of core content, learner videos, student and engineer testimonials, and support videos – to better allow you to choose your own path through the course!
Done during the course
Week 1 : Introduction and Working with Strings
document.Document.java document.BasicDocument.java
Week 2 : Efficiency Analysis and Benchmarking
document.EfficientDocument.java
Week 3 : Interfaces, Linked Lists vs. Arrays, and Correctness
textgen.MyLinkedList.java textgen.MarkovTextGenerator.java textgen.MarkovTextGenerator.java
Week 4 : Trees! (including Binary Search Trees and Tries)
spelling.SpellingSuggest.java spelling.AutoComplete.java spelling.Dictionary.java spelling.Dictionary*.java spelling.AutoCompleteDictionaryTrie.java spelling.TrieNode.java
Week 5 : Hash Maps and Edit Distance
spelling.WordPath.java spelling.NearbyWords.java spelling.WPTree.java
Final Project: