Sort options

Computer Science: Algorithms, Theory, and Machines (Coursera)

This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be [...]

Python Functions, Files, and Dictionaries (Coursera)

This course introduces the dictionary data structure and user-defined functions. You’ll learn about local and global variables, optional and keyword parameter-passing, named functions and lambda expressions. You’ll also learn about Python’s sorted function and how to control the order in which it sorts by passing in another function as [...]

Algorithmic Toolbox (Coursera)

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem [...]

Algorithms for Searching, Sorting, and Indexing (Coursera)

This course covers basics of algorithm design and analysis, as well as algorithms for sorting arrays, data structures such as priority queues, hash functions, and applications such as Bloom filters. Algorithms for Searching, Sorting, and Indexing can be taken for academic credit as part of CU Boulder’s Master of [...]

Divide and Conquer, Sorting and Searching, and Randomized Algorithms (Coursera)

The primary topics in this part of the specialization are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts).

Introduction to Java Programming: Fundamental Data Structures and Algorithms (edX)

Learn to enhance your code by using fundamental data structures and powerful algorithms in Java. In this introductory course, you will learn programming with Java in an easy and interactive way. You will learn about fundamental data structures, such as lists, stacks, queues and trees, and presents algorithms for [...]

Programming 102: Think Like a Computer Scientist (FutureLearn)

Take your Python skills further in this online course, guided by the Raspberry Pi Foundation and supported by Google. On this course, you’ll explore Python programming at an intermediate level. You’ll discover how to break down problems into smaller parts, and then design and apply algorithms to data. You’ll [...]

Algorithms (edX)

Learn how to structure and use algorithms to solve real life problems. Algorithms power the biggest web companies and the most promising startups. Interviews at tech companies start with questions that probe for good algorithm thinking.

Introduction to Data Structures (edX)

Self Paced
Introduction to Data Structures (edX)
Course Auditing
Learn the advanced programming topics in the C++ programming language, including pointers, dynamic storage, recursion, searching, and sorting. This is the 3rd course in the intermediate, undergraduate-level offering that makes up the larger Programming and Data Structures MicroBachelors program.