How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it?
von
Über diesen Kurs
Kompetenzen, die Sie erwerben
- Trees (Data Structures)
- Data Structure
- Linked List
- Binary Tree
von

University of California San Diego
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
Lehrplan - Was Sie in diesem Kurs lernen werden
Introduction to the Course
Welcome to the first module in the second course of our Intermediate Java Programming Specialization. We'll start with introductions again: to ourselves, the Google engineers, and the structure of the course. After the introduction we'll have a short warm up to get you comfortable with the code you will be building on to this class. But don't worry--no graded programming assignments yet. This week is all about getting comfortable and excited to learn.
Working with Strings
This week we're going to dive into the course programming project. In the first lesson you'll learn about Strings and Regular Expressions, and in the programming assignment this week you'll apply that knowledge to adding functionality to your text editor so that it can measure the "readability" of text by calculating something called the "Flesch Readability Score". This course is focused on building code that not only does interesting things, but also finishes them quickly. So, let's get started building some code!
Efficiency Analysis and Benchmarking
Welcome to week 3! The text-editor application you worked with last week does something, but it doesn't do it particularly fast. This week we'll start talking about efficiency. We'll introduce the concept of "Big-O" notation, which sounds a little silly, but is really a powerful (and extremely common) way of analyzing a program's efficiency, independent of the system that it's running on and the exact details of how it's implemented. Then we'll go the other direction and dive into the details, talking about how to measure the actual running time of a piece of code to get an idea of how it really performs in practice.
Interfaces, Linked Lists vs. Arrays, and Correctness
This week we'll start talking about some of the basic concepts that one expects to find in a data structures course: the idea of data abstraction, and a data structure called a Linked List. Even though Linked Lists are not very efficient structures (for the most part), they do hit home the idea of "linking" pieces of data together in your computer's memory, rather than storing the data in one contiguous region. This linking idea will be central to many of the more advanced data structures, namely trees and graphs, that are coming up later in this course and in the next course in this specialization. In this module you'll also learn tools and procedures for unit testing your code, which is a way to make sure that what you've written is correct, and a staple practice of any sophisticated software developer.
Bewertungen
- 5 stars82,51 %
- 4 stars14,76 %
- 3 stars1,89 %
- 2 stars0,41 %
- 1 star0,41 %
Top-Bewertungen von DATA STRUCTURES AND PERFORMANCE
Very good and ordered exploration of using a variety of datastructures in the most efficient way possible. Good for anyone who wants to know more about Strings in Java specifically.
Amazing course, I learnt so much about interesting data structures and gained a new understanding of how important it is to choose the right data structure for a specific purpose.
Very solid review of data structures. In fact, I learned a lot of new things along the way like how to benchmark test Java code and how to properly use JUnit and other unit testing frameworks.
This course helped understand the utility of data structures in software and how to benchmark algorithms in order to compare their performance so as to choose the most efficient algorithm
Häufig gestellte Fragen
Wann erhalte ich Zugang zu den Vorträgen und Aufgaben?
Was bekomme ich, wenn ich diese Spezialisierung abonniere?
Ist finanzielle Unterstützung möglich?
Haben Sie weitere Fragen? Besuchen Sie das Learner Help Center.