

Our Courses

Functional Program Design in Scala (Scala 2 version)
In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world.
-
Course by
-
Self Paced
-
34 hours
-
English

Algorithms, Part I
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms. All the features of this course are available for free.
-
Course by
-
Self Paced
-
54 hours
-
English

Data Structures & Algorithms I: ArrayLists, LinkedLists, Stacks and Queues
Work with the principles of data storage in Arrays, ArrayLists & LinkedList nodes. Understand their operations and performance with visualizations. Implement low-level linear, linked data structures with recursive methods, and explore their edge cases. Extend these structures to the Abstract Data Types, Stacks, Queues and Deques.
-
Course by
-
English

Data Structures & Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps
Become familiar with nonlinear and hierarchical data structures. Study various tree structures: Binary Trees, BSTs and Heaps. Understand tree operations and algorithms. Learn and implement HashMaps that utilize key-value pairs to store data. Explore probabilistic data structures like SkipLists. Course tools help visualize the structures and performance.
-
Course by
-
Self Paced
-
English

Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms
Learn more complex tree data structures, AVL and (2-4) trees. Investigate the balancing techniques found in both tree types. Implement these techniques in AVL operations. Explore sorting algorithms with simple iterative sorts, followed by Divide and Conquer algorithms. Use the course visualizations to understand the performance.
-
Course by
-
Self Paced
-
English

Automating your BigQuery Data Pipeline with Cloud Dataprep
This is a self-paced lab that takes place in the Google Cloud console. In this lab, you will examine how Dataprep can be used on complicated data structures in BigQuery.
-
Course by
-
Self Paced
-
1 hour
-
English

How to Code: Complex Data
Learn how to design more complex programs, using new data structures, abstraction, and generative recursion.
-
Course by
-
English

Data Structures Fundamentals
Learn about data structures that are used in computational thinking – both basic and advanced.
-
Course by
-
Self Paced
-
English

Algorithms and Data Structures Capstone
Synthesize your knowledge of algorithms and biology to build your own software for solving a biological challenge.
-
Course by
-
Self Paced
-
English

R Programming Basics for Data Science
This course introduces you to R language fundamentals and covers common data structures, programming techniques, and how to manipulate data all with the help of the R programming language.
-
Course by
-
13
-
English

Introduction to Java and Object-Oriented Programming
This course provides an introduction to the Java language and object-oriented programming, including an overview of Java syntax and how it differs from a language like Python. Students will learn how to write custom Java classes and methods, and how to test their code using unit testing and test-driven development. Topics include basic data structures like Arrays and ArrayLists and overloading methods.
-
Course by
-
Self Paced
-
19 hours
-
English

Process Map Data using C++ Adjacency List Shortest Path
In this project you will use the adjacency list data structure and other data structures to find the shortest distance between a set of towns loaded from a file. The shortest path problem is well known in the field of computer science. An adjacency list is probably the best data structure to represent a set of connected vertices to find the shortest path from one vertex to another. One application for shortest paths is in computer networking routing.
-
Course by
-
Self Paced
-
2 hours
-
English

Dart: Using Functions with Lists and Maps
This is a self-paced lab that takes place in the Google Cloud console. In this lab you will learn how Dart is used with data structures. Understand the utility of Maps and Lists and how these are used to reference infor…
-
Course by
-
Self Paced
-
English

Java Built in Data Structures
In this project you will read weather data from a file and populate a Java ArrayList with the file data. The data is then uniquified in a Set data structure and stored in a HashMap for accessing data by year. Java's collections framework contains data structures that are built for efficiency. They are used to store and retrieve data in various formats. A list such as an ArrayList can be used in place of an array to contain data where the size cannot be determined ahead of time.
-
Course by
-
Self Paced
-
2 hours
-
English

Computing in Python III: Data Structures
Learn more complex ways of handling data, including files, lists, and dictionaries for building complex programs.
-
Course by
-
Self Paced
-
English

Intro to Operating Systems 3: Concurrency
Learn the inner workings of operating systems without installing anything! This course is designed for learners who are looking to maximize performance by understanding how operating systems work at a fundamental level. The modules in this course cover concurrency, threads, locks, locking data structures and multi-CPU scheduling. To allow for a truly hands-on, self-paced learning experience, this course is video-free. Assignments contain short explanations with images and runnable code examples with suggested edits to explore code examples further, building a deeper understanding by doing.
-
Course by
-
Self Paced
-
7 hours
-
English

Approximation Algorithms
Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example, because the problems are NP-hard. The goal of the Approximation Algorithms course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. These techniques apply when we don't require the optimal solution to certain problems, but an approximation that is close to the optimal solution. We will see how to efficiently find such approximations.
-
Course by
-
Self Paced
-
15 hours
-
English

Python for Beginners: Data Structures
This Guided Project "Python for Beginners: Data Structures" is for individuals who are new to programming and want to learn the basics of Python data structures. In this 2-hour long project-based course, you will learn about lists, tuples, sets, and dictionaries and how to use them to solve real-world problems through a student performance analysis short project.
-
Course by
-
Self Paced
-
3 hours
-
English

Getting Started with R
In this 2 hour-long project, you will learn the basics of R programming language. In addition, you will take your first steps in the use of R programming language for Data Analysis. By the end of this 2-hour long project, you will understand how to use the R GUI called R studio. By extension, you will learn the different data types and data structures used in R. Finally, you will learn how to install packages and how to import data sets into the R studio work space. This course is aimed at learners who are looking to get started with the R programming language.
-
Course by
-
Self Paced
-
4 hours
-
English

Dart: Variables, Data Structures, Objects, and Conditionals
This is a self-paced lab that takes place in the Google Cloud console. In this lab you will learn more about the basics of Dart. Build on your knowledge of Dart development…
-
Course by
-
Self Paced
-
English

Data Science with NumPy, Sets, and Dictionaries
Become proficient in NumPy, a fundamental Python package crucial for careers in data science. This comprehensive course is tailored to novice programmers aspiring to become data scientists, software developers, data analysts, machine learning engineers, data engineers, or database administrators. Starting with foundational computer science concepts, such as object-oriented programming and data organization using sets and dictionaries, you'll progress to more intricate data structures like arrays, vectors, and matrices.
-
Course by
-
Self Paced
-
31 hours
-
English

Analytical Solutions to Common Healthcare Problems
In this course, we’re going to go over analytical solutions to common healthcare problems. I will review these business problems and you’ll build out various data structures to organize your data. We’ll then explore ways to group data and categorize medical codes into analytical categories. You will then be able to extract, transform, and load data into data structures required for solving medical problems and be able to also harmonize data from multiple sources. Finally, you will create a data dictionary to communicate the source and value of data.
-
Course by
-
Self Paced
-
11 hours
-
English

Dynamic Programming, Greedy Algorithms
This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems. We will also cover some advanced topics in data structures. This course can be taken for academic credit as part of CU Boulder’s MS in Data Science or MS in Computer Science degrees offered on the Coursera platform.
-
Course by
-
Self Paced
-
38 hours
-
English

Scripting with Python and SQL for Data Engineering
In this third course of the Python, Bash and SQL Essentials for Data Engineering Specialization, you will explore techniques to work effectively with Python and SQL. We will go through useful data structures in Python scripting and connect to databases like MySQL. Additionally, you will learn how to use a modern text editor to connect and run SQL queries against a real database, performing operations to load and extract data. Finally, you will use extracted data from websites using scraping techniques.
-
Course by
-
Self Paced
-
18 hours
-
English

C++ Data Structures in the STL
In this project you will read weather data from a file and populate a C++ Vector with the file data. The data is then uniquified in a Set data structure and stored in a Map for accessing data by year. C++'s standard template library or STL contains data structures or containers that are built for efficiency. They are used to store and retrieve data in various formats. A list such as a Vector can be used in place of an array to contain data where the size cannot be determined ahead of time.
-
Course by
-
Self Paced
-
3 hours
-
English