Advanced Data Structures in Java

Product type

Advanced Data Structures in Java

Coursera (CC)
Logo Coursera (CC)
Provider rating: starstarstarstar_halfstar_border 7.2 Coursera (CC) has an average rating of 7.2 (out of 6 reviews)

Need more information? Get more details on the site of the provider.

Description

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: 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. You will develop, implement, and analyze algorithms for working with this data to solve real world problems. In addition, as the programs you develop in this course become more complex, we’ll ex…

Read the complete description

Frequently asked questions

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.

Didn't find what you were looking for? See also: Java, JavaScript & AJAX, Science, Software / System Engineering, and English (FCE / CAE / CPE).

When you enroll for courses through Coursera you get to choose for a paid plan or for a free plan

  • Free plan: No certicification and/or audit only. You will have access to all course materials except graded items.
  • Paid plan: Commit to earning a Certificate—it's a trusted, shareable way to showcase your new skills.

About this course: 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. You will develop, implement, and analyze algorithms for working with this data to solve real world problems. In addition, as the 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.

Who is this class for: This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science.

Created by:  University of California, San Diego
  • Taught by:  Leo Porter, Assistant Teaching Professor

    Computer Science and Engineering
  • Taught by:  Mia Minnes, Assistant Teaching Professor

    Computer Science and Engineering
  • Taught by:  Christine Alvarado, Associate Teaching Professor

    Computer Science and Engineering
Basic Info Course 3 of 5 in the Object Oriented Java Programming: Data Structures and Beyond Specialization Level Intermediate Commitment 5 weeks of study, 1-3 hours/week Language English How To Pass Pass all graded assignments to complete the course. User Ratings 4.7 stars Average User Rating 4.7See what learners said Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from your peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

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.

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!


4 videos, 10 readings, 2 practice quizzes expand


  1. Video: Welcome
  2. Reading: After completing this course, you will be able to ...
  3. Reading: Is this course right for me?
  4. Practice Quiz: Pre-course quiz
  5. Reading: Up Next: A short survey
  6. Practice Quiz: Survey: Your goals for the course
  7. Reading: If you want more practice before you begin...
  8. Reading: The structure of this course
  9. Video: Your path through this course
  10. Video: Concept challenges
  11. Reading: Welcome from the Google engineers
  12. Discussion Prompt: Introduce Yourself!
  13. Reading: Project Overview
  14. Video: Project Prototype
  15. Reading: Setting up Java and Eclipse
  16. Reading: Getting and Setting up the Starter Code
  17. Reading: Project: Orientation to the Starter Code, Data Files and Front-end

Graded: Course Structure and Starter Code Quiz (make sure you can run the starter code first)

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.


17 videos, 7 readings, 2 practice quizzes expand


  1. Video: Introduction
  2. Reading: A note about week numbers
  3. Reading: By the end of this week, you will be able to...
  4. Video: Project: Introduction to Graphs Project Overview
  5. Video: Core: What's a graph?
  6. Video: Core: Graph definitions
  7. Video: In the real world: Graphs at Google
  8. Video: In the real world: graphs at Google
  9. Practice Quiz: Graphs
  10. Reading: (Read only AFTER finishing Graphs Quiz)
  11. Video: Core: Implementing graphs in Java
  12. Video: Core: Adjacency matrix
  13. Video: Core: Adjacency list
  14. Practice Quiz: Where to next?
  15. Video: Concept Challenge: Comparing implementations of graphs
  16. Video: In the real world: Performance considerations
  17. Video: When I struggled: Analyzing implementations
  18. Video: Core: Neighbors
  19. Video: Support: Coding getNeighbors
  20. Video: Support: Coding 2-Hop Neighbors
  21. Video: Support: Multiplying Adjacency Matrices
  22. Reading: Graph definitions and implementation: a glossary
  23. Reading: Week 2: Additional Resources
  24. Video: Project: Programming Assignment Walkthrough
  25. Reading: Programming Assignment FAQ
  26. Reading: Graph definitions and implementations Quiz Answer explanations (Read ONLY after you pass the quiz)

Graded: Project: Implementing Graphs
Graded: Graph definitions and implementation

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!


20 videos, 3 readings, 1 practice quiz expand


  1. Video: Introduction
  2. Reading: By the end of this week, you will be able to ...
  3. Video: Project: Route Finding Project Overview
  4. Video: Core: Intro to Class Design
  5. Video: When I struggled: Building useful classes
  6. Video: In the Real World: Design patterns
  7. Video: Core: DFS, Part 1
  8. Video: Core: DFS, Part 2
  9. Video: Core: BFS
  10. Video: Support: Developing Small Examples to Test Your Code
  11. Practice Quiz: Where to next?
  12. Video: When I struggled: Data structures jargon
  13. Video: When I struggled: The right data structure for the job
  14. Video: Concept Challenge: Performance of DFS and BFS
  15. Video: Core: Class Design
  16. Video: When I struggled: If you fail to plan ...
  17. Video: When I struggled: ... but don't forget to start!
  18. Video: In the real world: Planning ahead with design
  19. Video: Core: Refactoring
  20. Video: Support: Where to start the project design?
  21. Video: In the Real World: Why is code refactored?
  22. Reading: Week 3: Additional Resources
  23. Video: Project: Programming Assignment Walk-through
  24. Reading: End of Week Quiz Answers

Graded: Project: Class Design and Graph Search
Graded: Code Design Peer Review
Graded: End of Week Quiz (complete project and peer review first)

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.


10 videos, 4 readings expand


  1. Video: Introduction
  2. Reading: By the end of this week, you will be able to ...
  3. Video: Project: Shortest Path Overview
  4. Video: Core: Shortest Path with BFS
  5. Video: Core: Geographic Maps
  6. Video: Core: Dijkstra's Algorithm
  7. Video: Concept Challenge: Performance of Dijkstra's Algorithm
  8. Video: Core: A* Search Algorithm
  9. Video: When I struggled: Tackling large programming projects
  10. Video: When I Struggled: Remembering classical algorithms
  11. Reading: Week 4: Additional Resources
  12. Video: Project: Shortest Path Programming Assignment Walkthrough
  13. Reading: Test cases and debugging guide for the quiz
  14. Reading: End of Week Quiz Answers

Graded: Project: Shortest Path
Graded: End of Week Quiz (very short, do programming assignment first)

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!


11 videos, 3 readings expand


  1. Video: Introduction
  2. Reading: By the end of this week, you will be able to ...
  3. Video: Core: Traveling Salesperson Problem (TSP)
  4. Video: Concept Challenge: An algorithm for TSP
  5. Video: Core: TSP Brute-Force Algorithm
  6. Video: Core: TSP Algorithm Running Time
  7. Video: Core: NP Hard
  8. Video: Core: Approximations and Heuristics
  9. Video: Core: Hamiltonian Graphs
  10. Video: Core: Eulerian graphs
  11. Video: Core: Eulerian graphs, an algorithm
  12. Video: Core: An application in bioinformatics
  13. Reading: Week 5: Additional Resources
  14. Reading: End of Week Quiz Answers

Graded: End of Week Quiz

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.


1 video, 2 readings expand


  1. Reading: Week 6 Introduction
  2. Reading: Project: Week 6 Description -- REQUIRED EXTENSION
  3. Peer Review: Project Extension Feedback
  4. Video: End of course message

Graded: Week 6 Project Quiz (Complete your project extension first)
There are no reviews yet.
  • View related products with reviews: Java.
Share your review
Do you have experience with this course? Submit your review and help other people make the right choice. As a thank you for your effort we will donate $1.- to Stichting Edukans.

There are no frequently asked questions yet. If you have any more questions or need help, contact our customer service.