Learning JavaScript Data Structures and Algorithms

Find out how data structures and algorithms can be used to solve programming problems using JavaScript
3.6 (42 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
315 students enrolled
$19
$75
75% off
Take This Course
  • Lectures 15
  • Length 1.5 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course Description

As businesses collect increasing amounts of vital data, the need to structure software components increases every day. Using appropriate data structures and having a good understanding of algorithm analysis is key to writing maintainable and extensible quality software, thus solving the crisis.

Learning JavaScript Data Structures and Algorithms will show you how to organize your code with the most appropriate data structures available to get the job done fast, and in a logical way that is easy to maintain, refactor, and test. By using effective data structures, you can take advantage of advanced algorithms, thus making your web applications more powerful and scalable. You will learn about common software engineering data structures, such as linked-lists, trees, and graphs, and get to know how to implement them in JavaScript. You’ll also master ways to use them in various types of algorithms.

You will begin by finding out how to build on native JavaScript constructs, and create collections such as maps, queues, stacks, sets, graphs, and other data structures. You will then discover how to develop, analyze, and improve algorithms to search deep trees, lists, and other complex collections, as well as sorting containers of data.

This practical course will guide you through a web application development cycle using a structured and disciplined approach, focusing on accuracy and efficiency as you build quality software.

About The Author

Rodrigo Formigone Silveira is a software engineer at Deseret Digital Media. There, he divides his time developing in PHP, JavaScript, and Java for Android. Some of his hobbies outside of work include blogging and recording educational videos about software development, learning about new technologies, and finding ways to push the web forward.

Rodrigo received his Bachelor's of Science in Computer Science from Brigham Young University, Idaho, as well as an Associate's Degree in Business Management from LDS Business College in Salt Lake City, Utah.

His fascination for game development began in his early teenage years, and his skills grew as he discovered the power of a library subscription. He has a curious and willing mind, with understanding and supporting parents and friends.

Today, Rodrigo balances his time between the three great passions of his life—his family, software development, and video games (with the last two usually being mingled together).

What are the requirements?

  • The course does not talk about graph theory, set theory, and other advanced mathematical concepts, so no prior knowledge of advanced mathematical concept is necessary.

What am I going to get from this course?

  • Master existing JavaScript collections such as arrays, sets, and maps
  • Develop abstract data types to extend JavaScript into a more flexible and powerful programming language
  • Grasp the basics of software engineering to differentiate yourself from undisciplined coders
  • Conjure powerful algorithms to traverse dense graphs and trees in the least possible steps
  • Devour the science of comparing different algorithms to choose the best one for the respective task
  • Search and sort native and custom data types through collection iterator methods
  • Create complex abstract data types by reusing existing classes

What is the target audience?

  • If you are a web developer with a good grasp of the fundamentals of JavaScript, and you are confident with the essentials but want to delve deeper and understand data structures and algorithms, then this course is for you.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction to Data Structures and Algorithms
02:05

Who am I, and what is this course about.

02:35

It is difficult to write complex software systems that run correctly. Most importantly, these systems must be easy to maintain and extend. Building software systems in a structured and efficient way helps to manage all three of the aforementioned problems.

02:19

JavaScript is used in large applications running in a browser and in Node.js. Without proper data structures, large code bases can be difficult to build accurately maintain.

02:33

Each data structure is explained in this manner: what it does, what it's used for, and what its supported operations are.

Section 2: Arrays, Linked Lists, and Sets
05:27

JavaScript allows us to work with simple native types, as well as complex custom objects. Arrays allow us to group related data as a single collection of elements.

10:18

Arrays are great for constant time indexing and data locality. However, some operations can be very slow, such as inserting an item in the middle of a list. Linked lists offer many advantages over arrays in some cases.

06:09

Neither lists nor arrays enforce any rules regarding duplicate items being stored in them. A set is a collection of unique objects.

Section 3: Queues and Stacks
04:38

Queues are lists that preserve the insertion order of its elements, such that the first element added is the next first to be removed (FIFO). A common use case for a queue is a task queue. Tasks to be performed are added to a queue, and then they're processed in the order they were added to the queue.

04:19

Stacks are lists that preserve the insertion order of their elements, such that the last element added is the next first to be removed (LIFO). A common use case for a stack is performing nested operations such as recursion.

Section 4: Trees and Graphs
05:11

Binary trees are special types of trees that are most commonly used to search over a data space very quickly. Binary trees are also very fast to insert and delete, much like linked lists, but finding operations are much faster.

07:42

A graph is a complex data structure that is made up of a connection of vertices connected by edges.

Section 5: Algorithms and Complexity Analysis
06:57

An algorithm is a set of steps taken in order to solve a specific problem. One way to compare different algorithms in order to determine the best one needed, is to describe its complexity using Big-O.

06:39

There are two general approaches to traversing graphs, which is one powerful way to represent a map. These two approaches are depth-first and breadth-first searches.

Section 6: Peeking into Algorithms to Sort and Search
09:12

This class of algorithms will describe three of the most popular sorting algorithms, namely, bubble sort, merge sort, and quicksort.

07:02

This class of algorithms will describe two of the most popular searching algorithms, namely, linear search and binary search.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

Over the past ten years Packt Publishing has developed an extensive catalogue of over 2000 books, e-books and video courses aimed at keeping IT professionals ahead of the technology curve. From new takes on established technologies through to the latest guides on emerging platforms, topics and trends – Packt's focus has always been on giving our customers the working knowledge they need to get the job done. Our Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.

Ready to start learning?
Take This Course