University of California San Diego

Advanced Data Structures in Java

Leo Porter
Mia Minnes
Christine Alvarado

Instructors: Leo Porter

81,012 already enrolled

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
4.8

(1,239 reviews)

Intermediate level
Some related experience required
Flexible schedule
Approx. 28 hours
Learn at your own pace
97%
Most learners liked this course
Gain insight into a topic and learn the fundamentals.
4.8

(1,239 reviews)

Intermediate level
Some related experience required
Flexible schedule
Approx. 28 hours
Learn at your own pace
97%
Most learners liked this course

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

11 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

Placeholder

Build your subject-matter expertise

This course is part of the Object Oriented Java Programming: Data Structures and Beyond Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Placeholder
Placeholder

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Placeholder

There are 6 modules in this course

Welcome to the first week in the third course of our Intermediate Java Programming Specialization. Once again start with introductions, and in particular introduce the unique structure of this course. Also, if you're not sure if this course is right for you, we've got an optional pre-course quiz coming right up that can help you figure out if you're in the right place. If you decide to stay with us (and we really hope you will!) we've got a great backbone project for you: your very own mapping application, inspired by Google Maps! The core data structure throughout this course is graphs, which may very well be the most fundamental data structure in all of computer science. Ready to begin? So are we!

What's included

4 videos10 readings3 assignments1 discussion prompt

This week we'll start getting technical, introducing you to the central data structure in the course: Graphs. You'll learn the basics and then have a chance to dive in a little deeper into the code, getting ready to start building that Google Maps-like application.

What's included

17 videos7 readings3 assignments1 programming assignment

This week you'll get the backbone of your map search engine up and running. In previous courses, including the previous courses in this specialization, you've probably been given most of the classes you needed to complete the assignments. But learning how to design classes from scratch is a key skill that you will need as you become a more sophisticated Java programmer. This week we'll give you the tools you need to create a robust and elegant class design for your map search engine. We'll introduce a similar problem and show you how it can be represented as a graph. Then we'll introduce two core search algorithms: depth-first search and breadth-first search. Finally, we'll turn our graph problem into a set of Java classes. Your task on the programming assignment this week will be to do the same thing, but in the context on the map search engine!

What's included

20 videos3 readings2 assignments1 programming assignment1 peer review

In the past two weeks, you've developed a strong understanding of how to design classes to represent a graph and how to use a graph to represent a map. In this week, you'll add a key feature of map data to our graph representation -- distances -- by adding weights to your edges to produce a "weighted graph". Although this might seem like a small change, the algorithms that work for unweighted graphs may prove ineffective for weighted graphs. To address this problem, you'll explore more advanced shortest path algorithms. First, you'll see how to find the shortest path on a weighted graph, then you'll see how to find it more quickly. In the project, you'll apply these ideas to create the core of any good mapping application: finding the shortest route from one location to another.

What's included

10 videos4 readings1 assignment1 programming assignment

In this week, we'll go beyond the problem of finding a path between two points, and focus on problems requiring overall path planning. For example, if you wanted to go on errands and visit 6 different locations before returning home, what is the optimal route? This problem is actually a really well known problem in computer science known as the Travelling Salesperson Problem (TSP). Attempting to solve the problem will lead us to explore complexity theory, what it means to be NP-Hard, and how to solve "hard" problems using heuristics and approximation algorithms. We'll end the week by showing how reformulating a problem can have a huge impact: making something which was effectively unsolvable before, now solvable!

What's included

11 videos3 readings1 assignment

You made it to the last week of our course! We're glad you're still with us. As a reward, there's no new content to learn this week. Instead you'll get the opportunity to extend your project in a direction of your own choosing. We hope you've got some neat ideas for personalizing your map application, and we look forward to seeing them in the peer review gallery. Submitting to the peer review gallery is optional (though the extension is required), but we hope you'll choose to participate.

What's included

1 video2 readings1 assignment1 peer review

Instructors

Instructor ratings
4.7 (40 ratings)
Leo Porter
University of California San Diego
5 Courses392,357 learners
Mia Minnes
University of California San Diego
5 Courses392,357 learners
Christine Alvarado
University of California San Diego
5 Courses392,357 learners

Offered by

Recommended if you're interested in Algorithms

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

4.8

1,239 reviews

  • 5 stars

    80.88%

  • 4 stars

    15.48%

  • 3 stars

    2.50%

  • 2 stars

    0.72%

  • 1 star

    0.40%

Showing 3 of 1239

MK
5

Reviewed on Jul 17, 2017

BS
5

Reviewed on Apr 1, 2020

AS
5

Reviewed on Aug 19, 2016

New to Algorithms? Start here.

Placeholder

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions