Algebra & Algorithms (Coursera)

Algebra & Algorithms (Coursera)

Algebra is one of the definitive and oldest branches of mathematics, and design of computer algorithms is one of the youngest. Despite this generation gap, the two disciplines beautifully interweave. Firstly, modern computers would be somewhat useless if they were not able to carry out arithmetic and algebraic computations efficiently, so we need to think on dedicated, sometimes rather sophisticated algorithms for these operations. Secondly, algebraic structures and theorems can help develop algorithms for things having [at first glance] nothing to do with algebra, e.g. graph algorithms.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

One of the main goals of the offered course is thus providing the learners with the examples of the above mentioned situations. We believe the course to contain much material of interest to both CS and Math oriented students. The course is supported by programming assignments.

What You Will Learn

  • Efficiently doing arithmetics on binary numbers as well as algebraic operations like polynomial multiplication, matrix multiplication and inversion.
  • Design efficient algorithms problems in graph theory related to distances and matchings based on fast matrix computations and randomization.

Syllabus

WEEK 1
Arithmetics in the Realm of Circuits
In this module we will study a mathematical model of hardware: the Boolean circuits. They provide the birds eye view of how one builds a complex logical circuit from elementary building blocks by linking them with wires. We will learn efficient ways to construct circuits for all four arithmetic operations on integers represented in binary form. Among other things we will see how to efficiently calculate all carries while adding two numbers (much faster than just computing these carries sequentially) and how Newton’s approximation method for solving equations helps with implementing integer division.

WEEK 2
Boolean Circuits for Arbitrary Functions
In this second and last module devoted to Boolean circuits we move from arithmetics to the problem of constructing efficient circuits for arbitrary Boolean functions. On the way, among other things, we will see how to estimate the number of trees via DFS traversals and how to construct efficiently a circuit that computes all functions of given small number of variables.

WEEK 3
More on Multiplication of Integers and Polynomials
Multiplication of integers is among the first things people learn to do with integers at school, later moving on to higher spheres: multiplying matrices, polynomials, permutations etc. Multiplication is one of the central things in algebra. This week we focus on classical algorithms for efficient integer multiplication first, and then move on to matrix and polynomial multiplication. On the way we will see how closely integer and polynomial multiplication are really intertwined and what polynomial interpolation has to do with multiplication.

WEEK 4
Graph Reachability and Distances via Matrix Multiplication
This module is the first one to feature application pf efficient algorithms for algebraic operations to something outside algebra. Currently we turn to distances in graphs. We also study a non-typical way of multiplying matrices motivated by applications to graph reachibiilty, namely, Boolean matrix multiplication, and consider a corresponding rather general speedup technique.

WEEK 5
More on Matrix Computations
This week we first learn how to compute determinant and invert a matrix on a parallel computer, and how working with seemingly “computationally inconvenient” infinite series helps deriving quite a efficient formulas for the determinant. The second part of this module is devoted to a more common single-threaded computational model and there we prove that essentially the complexity of inverting a matrix is the same as that of matrix multiplication.

WEEK 6
Matchings in Graphs via Matrix Determinants
In the last module of the course we learn some tools for efficient use of randomization and algebra in algorithm design and use our knowledge about the existence of fast algorithms for parallel determinant computation to find perfect matchings in bipartite graphs unbelievably quickly on parallel computers.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Conceptos y Herramientas para la Física Universitaria (Coursera) Coursera
Tecnológico de Monterrey

Conceptos y Herramientas para la Física Universitaria (Coursera)

Este curso provee al estudiante con conceptos y herramientas matemáticas para modelar problemas en física, que al aplicar podrá enfrentar con éxito los cursos de física universitarios. Así pues, la filosofía de este curso consiste en cubrir temas conceptuales relativos a la Física y desarrollar tu capacidad de aprender y aplicarlos en tu vida profesional.

Jun 22nd 2026
5-12 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 22nd 2026
4 Weeks
Parallel programming (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm.

Jun 22nd 2026
4 Weeks
Data Structures (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Data Structures (Coursera)

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, 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.

Jun 22nd 2026
5-12 Weeks
Discrete Mathematics (Coursera) Coursera
Shanghai Jiao Tong University

Discrete Mathematics (Coursera)

Discrete mathematics forms the mathematical foundation of computer and information science. It is also a fascinating subject in itself. Learners will become familiar with a broad range of mathematical objects like sets, functions, relations, graphs, that are omnipresent in computer science. Perhaps more importantly, they will reach a certain level of mathematical maturity - being able to understand formal statements and their proofs; coming up with rigorous proofs themselves; and coming up with interesting results.

Jun 22nd 2026
5-12 Weeks
Data Structures and Performance (Coursera) Coursera
University of California, San Diego

Data Structures and Performance (Coursera)

How do Java programs deal with vast quantities of data? Many of the data structures and algorithms that work with introductory toy examples break when applications process real, large data sets. Efficiency is critical, but how do we achieve it, and how do we even measure it? This is an intermediate Java course. We recommend this course to learners who have previous experience in software development or a background in computer science, and in particular, we recommend that you have taken the first course in this specialization (which also requires some previous experience with Java).

Jun 22nd 2026
5-12 Weeks
Introduction to Google SEO (Coursera) Coursera
University of California, Davis

Introduction to Google SEO (Coursera)

Ever wonder how major search engines such as Google, Bing and Yahoo rank your website within their searches? Or how content such as videos or local listings are shown and ranked based on what the search engine considers most relevant to users? Welcome to the world of Search Engine Optimization (SEO). This course is the first within the SEO Specialization and it is intended to give you a taste of SEO with some fun practices to get seen in Google.

Jun 22nd 2026
4 Weeks
Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Jun 22nd 2026
4 Weeks
Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 22nd 2026
5-12 Weeks
Approximation Algorithms (Coursera) Coursera
EIT Digital

Approximation Algorithms (Coursera)

Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example because the problems are NP-hard. The goal of this 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.

Jun 26th 2026
4 Weeks