Advanced Data Structures in Java (Coursera)

Advanced Data Structures in Java (Coursera)

How does Google Maps plan the best route for getting around town given current traffic conditions? How does an internet router forward packets of network traffic to minimize delay? How does an aid group allocate resources to its affiliated local partners? To solve such problems, we first represent the key pieces of data in a complex data structure. In this course, you’ll learn about data structures, like graphs, that are fundamental for working with structured real world data.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

You will develop, implement, and analyze algorithms for working with this data to solve real world problems. In addition, as your programs you develop in this course become more complex, we’ll examine what makes for good code and class hierarchy design so that you can not only write correct code, but also share it with other people and maintain it in the future.
The backbone project in this course will be a route planning application. You will apply the concepts from each Module directly to building an application that allows an autonomous agent (or a human driver!) to navigate its environment. And as usual we have our different video series to help tie the content back to its importance in the real world and to provide tiered levels of support to meet your personal needs.
Course 3 of 5 in the Object Oriented Java Programming: Data Structures and Beyond Specialization.

Syllabus

WEEK 1
Introduction to the 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!

WEEK 2
Introduction to Graphs
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.

WEEK 3
Class design and simple graph search
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!

WEEK 4
Finding shortest paths in weighted graphs
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.

WEEK 5
Route planning and NP-hard graph problems
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!

WEEK 6
End of Course Project Extension
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.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Remote Sensing Image Acquisition, Analysis and Applications (Coursera) Coursera
UNSW Sydney - University of New South Wales

Remote Sensing Image Acquisition, Analysis and Applications (Coursera)

Welcome to Remote Sensing Image Acquisition, Analysis and Applications, in which we explore the nature of imaging the earth's surface from space or from airborne vehicles. This course covers the fundamental nature of remote sensing and the platforms and sensor types used. It also provides an in-depth treatment of the computational algorithms employed in image understanding, ranging from the earliest historically important techniques to more recent approaches based on deep learning.

Aug 17th 2026
13-24 Weeks
Digital Signal Processing 1: Basic Concepts and Algorithms (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Digital Signal Processing 1: Basic Concepts and Algorithms (Coursera)

Digital Signal Processing is the branch of engineering that, in the space of just a few decades, has enabled unprecedented levels of interpersonal communication and of on-demand entertainment. By reworking the principles of electronics, telecommunication and computer science into a unifying paradigm, DSP is a the heart of the digital revolution that brought us CDs, DVDs, MP3 players, mobile phones and countless other devices.

Aug 17th 2026
4 Weeks
Uso de bases de datos con Python (Coursera) Coursera
University of Michigan

Uso de bases de datos con Python (Coursera)

Este curso presentará a los estudiantes los conceptos básicos del lenguaje de consulta estructurado (Structured Query Language, SQL), así como el diseño básico de bases de datos para almacenar datos como parte de una iniciativa de varios pasos para recopilar, analizar y procesar datos. El curso utilizará SQLite3 como base de datos. También crearemos rastreadores web y procesos de visualización y recopilación de datos de varios pasos. Utilizaremos la biblioteca D3.js para realizar la visualización básica de datos.

Aug 17th 2026
5-12 Weeks
COBOL Programming with VSCode (Coursera) Coursera
IBM

COBOL Programming with VSCode (Coursera)

Professor Tak Auyeung of American River College, said it beautifully, “A programming language is not a fashion statement” it is used for a purpose. Whether it is to add new features, modify logic, create APIs to integrate it into other applications, or implement modern development practices, businesses around the world need application developers who know COBOL.

Aug 17th 2026
3 Weeks
Basic Modeling for Discrete Optimization (Coursera) Coursera
University of Melbourne,The Chinese University of Hong Kong

Basic Modeling for Discrete Optimization (Coursera)

Optimization is a common form of decision making, and is ubiquitous in our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions in manpower and material resources management also allow corporations to improve profit by millions of dollars.

Aug 17th 2026
4 Weeks
面向对象技术高级课程 (The Advanced Object-Oriented Technology) (Coursera) Coursera
Peking University

面向对象技术高级课程 (The Advanced Object-Oriented Technology) (Coursera)

如果将软件开发人员看作行走江湖的武侠,那么各种软件开发技术就是武侠赖以傍身的武术秘籍。有的秘籍以易学灵巧见长,练习者很快掌握,并有立竿见影的功效,但失之厚重持久;有的秘籍初学乍练顿显困难,虽冥思苦解仍不得要领,需坚持不断的内功修炼方成正果,却是成为武林大侠必备的至宝。本课程有些类似于后者。

Aug 17th 2026
13-24 Weeks
Practical Steps for Building Fair AI Algorithms (Coursera) Coursera
Fred Hutchinson Cancer Center

Practical Steps for Building Fair AI Algorithms (Coursera)

Algorithms increasingly help make high-stakes decisions in healthcare, criminal justice, hiring, and other important areas. This makes it essential that these algorithms be fair, but recent years have shown the many ways algorithms can have biases by age, gender, nationality, race, and other attributes. This course will teach you ten practical principles for designing fair algorithms. It will emphasize real-world relevance via concrete takeaways from case studies of modern algorithms, including those in criminal justice, healthcare, and large language models like ChatGPT. You will come away with an understanding of the basic rules to follow when trying to design fair algorithms, and assess algorithms for fairness.

Aug 17th 2026
4 Weeks
Persistent Memory Technology - Introduction and Deployment (Coursera) Coursera
EDUCBA

Persistent Memory Technology - Introduction and Deployment (Coursera)

Embark on a dynamic learning journey through this course. In the first module, explore the intricacies of Persistent Memory (PMEM), unraveling its fundamental concepts, characteristics, and operating system support. Transition seamlessly into the second module, mastering transactional concepts, optimizing hardware configurations, and discerning between volatile and persistent libraries. In the final module, dive into advanced programming with libpmemobj, overcoming C++ Standard limitations, and applying insights to real-world scenarios like building a phonebook.

Aug 17th 2026
3 Weeks
Learn JavaScript (Coursera) Coursera
Scrimba

Learn JavaScript (Coursera)

This is perhaps the most interactive JavaScript course ever recorded. It contains 140+ coding challenges, meaning that you will finally build that ever-so-important JavaScript muscle memory. You will solve the challenges directly in the browser thanks to Scrimba's interactive video technology, so there's not setup needed. Say goodbye to "tutorial hell" and get ready to start feeling your JavaScript superpowers grow exponentially.

Aug 17th 2026
4 Weeks