Data Structures Fundamentals

Daniel Kane, Alexander S. Kulikov, Michael Levin, Neil Rhodes, UCSanDiegoX

Learn about data structures that are used in computational thinking – both basic and advanced.

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, part of the Algorithms and Data Structures MicroMasters program, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments. This will help you to understand what is going on inside a particular built-in implementation of a data structure and what to expect from it. You will also learn typical use cases for these data structures.

A few examples of questions that we are going to cover in this course are:

  1. What is a good strategy of resizing a dynamic array?
  2. How priority queues are implemented in C++, Java, and Python?
  3. How to implement a hash table so that the amortized running time of all operations is O(1) on average?
  4. What are good strategies to keep a binary tree balanced?

We look forward to seeing you in this course! We know it will make you a better programmer.

What will you learn

  • Basics of data structures including their fundamental building blocks: arrays and linked lists
  • How to use Dynamic arrays
  • A very powerful and widely used technique called hashing and its applications
  • How to use priority queues to efficiently schedule jobs, in the context of a computer operating system or real life
  • Basic structure of binary search trees - AVL trees and Splay trees
  • Applications of data structures

Dates:
  • 15 April 2019
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

More on this topic:
Download?download_frd=1&verifier=4c7cq9ud7iey9ctinuggoaklbsviq1psvgm3ugim Fundamentals of Structured Writing for Technical Documentation
The field of technical writing has come a long way from writing clearly and...
Small-icon.hover Algorithms: Design and Analysis, Part 1
In this course you will learn several fundamental principles of algorithm design...
Small-icon.hover Algorithms: Design and Analysis, Part 2
In this course you will learn several fundamental principles of advanced algorithm...
Small-icon.hover Algorithms, Part I
This course covers the essential information that every serious programmer needs...
Slide1 Programming Mobile Applications for Android Handheld Systems
Introduction to the design and implementation of applications for handheld systems...
More from 'Computer Science':
D2868c46-5a91-4766-a2a4-891bcc5af93b-ada68a2be755.small Building a Cybersecurity Toolkit
Develop a set of skills and characteristics that expand beyond technical proficiency...
21be6203-b140-422c-9233-a1dc278d7266-1cbbdfc6b0f4.small Big Data Analytics Using Spark
Learn how to analyze large datasets using Jupyter notebooks, MapReduce and Spark...
D56e7ceb-e866-4007-b915-dcc34c7ef8ee-ecf353296d1d.small Enterprise Data Management
Understand structured transactional data and known questions along with unknown...
6d40d803-76af-452b-8609-0dbadbe37fee-f15aea6c23c4.small HTML5 Apps and Games
Today, developers are increasingly moving from native to HTML5-based apps. Increase...
8cb36526-6532-4b87-89b1-5dfee8ffd43e-daf15f6c0a0a.small Programming Reactive Systems
Principles of Reactive Programming in Scala. Reactive programming is a set of...
More from 'edX':
D2868c46-5a91-4766-a2a4-891bcc5af93b-ada68a2be755.small Building a Cybersecurity Toolkit
Develop a set of skills and characteristics that expand beyond technical proficiency...
3549b0ac-892b-47a5-90fc-fa44b43f79b9-4331f8104748.small Storytelling in the Workplace
Learn how to craft messages and narratives that will resonate with your target...
Ab312b37-f7b7-4d6c-8a79-5b945e1f0f8e-b61136860777.small Capstone Assessment: Leadership in Global Development
Demonstrate the knowledge and skills acquired in the Leadership in Global Development...
Fd75b745-3d53-46c9-bd48-285cf079fc2a-5b5524dcf602.small States and Markets in the Global Economy
Learn to predict financial crises, handle unfair trade practices and minimize...
21be6203-b140-422c-9233-a1dc278d7266-1cbbdfc6b0f4.small Big Data Analytics Using Spark
Learn how to analyze large datasets using Jupyter notebooks, MapReduce and Spark...

© 2013-2017