1) Getting Started Lesson

About Data Structures & Algorithms Course

8 min to complete · By Jon Fincher

The CodingNomads Data Structures and Algorithms course will introduce you to fundamental data structures and algorithms used in programming in Java, Python, and other languages. These computer science concepts are often used when coding, and knowing the structure and key algorithms they enable will make you a better and more marketable programmer.

Data Structure and Algorithms Course Outline

This course covers Java data structures, Python data structure, and algorithms the following topics -- data structures are presented along with key, important, and other associated algorithms:

  • Big O Notation
  • Static and Abstract Data Structures
  • Arrays
  • Linked Lists
  • Trees
  • Stacks and Queues
  • Maps and Hash Tables
  • Sets
  • Graphs
  • Sorting Data
  • Pattern Matching

Throughout the course, you are presented with labs and exercises designed to increase your confidence and knowledge using these data structures and familiarize yourself with key algorithms used in programs every day.

It's time to get going!

What is a Data Structure?

In computer science, a data structure is any way to collect, store, and organize data in your program. The overall goal of using a data structure is to make data access more efficient. Your choice of which data structure to use is defined by which tasks your program needs to accomplish.

When you talk about data structures, there are two broad categories you focus on static and abstract (or dynamic) data structures.

Static Data Structures

Static data structures are defined by the arrangement of data in the structure. Consider a Java array, which has a fixed size and keeps all its data in a single contiguous memory block. For this reason, arrays are considered static data structures -- the physical representation of the data is what defines an array, and that structure doesn't change.

Abstract Data Structures

In contrast, abstract data structures (also called dynamic data structures) are defined by the behavior of the structure. As you will see later, a linked list can store the same types and amounts of data as an array but has different behavior. Adding, deleting, and retrieving data from a linked list is done differently than with an array. How the data is stored in a linked list is less important to you as a programmer than how you access, update, and delete data in the list.

This distinction will be important as you explore more abstract data structures. It will be important to remember that how the structure is implemented can vary as long as the behavior conforms to what is expected.

Data Structures Unit Outline

As you talk about different data structures, each unit will follow a similar outline:

  • What is this Data Structure?
  • Why use this Data Structure?
  • Benefits of using this Data Structure
  • Examples of this Data Structure in Java
  • Examples of this Data Structure in Python
  • Use Cases of this Data Structure
  • Summary

Since data structures are used for storing data in an efficient manner, you will specifically cover:

  • Adding and removing data from the structure
  • Updating data in the structure
  • Searching for and retrieving data from the structure
  • Efficiency analysis for all operations

Look for these topics in each chapter moving forward.

What is an Algorithm

In computer science, an algorithm is a set of instructions or operations designed to solve a specific problem or a class of problems. Consider the following problem: You have the high temperatures for each day of the previous month. How can you figure out which day was the warmest? One way to solve this would be the following:

  • Write down the first day's temperature as the highest.
  • Look at the next day's temperature.
  • Is it higher than the current highest temperature? If so, make this the new highest temperature.
  • Stop when there are no more days to look at.

This may seem simple, but this is an algorithm for finding the maximum number in a list of numbers. It will work no matter how many numbers you have to look at, although it may take longer to run on 10,000 numbers than on 30.

In general, algorithms are not specific to any given language. A Python algorithm can be translated into Java, and Java algorithms can be made to run on Python.

Algorithms Outline

Many algorithms are designed to work with specific data structures. In these cases, the algorithms will be shown with the Use Cases for the data structure to which they apply.

However, many algorithms can be applied to more than one data structure. Sorting algorithms work equally well with arrays as well as linked lists. Pattern-matching algorithms can be used to find patterns in string data and arrays. These algorithms will be discussed in their own units.

Summary: Data Structures and Algorithms

This course will cover a core set of data structures and algorithms and is designed to introduce you to these fundamental computer science concepts. When done, you can use and apply these ideas in your works and recognize them when seen in other programs.