Algorithms and complexity are at the heart of computer science, shaping how we design solutions and measure efficiency. This course provides a rigorous introduction to both the theory and practice of algorithms. You’ll begin with automata theory, exploring how machines recognise and process languages. You’ll then move into practical algorithmic techniques, including searching and sorting, before learning to design and evaluate recursive and iterative algorithms. Finally, you’ll study complexity theory, developing the ability to classify problems and understand computational limits. By combining abstract models with real-world techniques, this course equips you to design algorithms, assess performance, and reason about scalability. Whether you’re pursuing studies in computer science, preparing for a programming role, or aiming to strengthen your technical foundations, you’ll gain both theoretical insight and practical skills for tackling computing challenges.


Algorithms and Complexity


Algorithms and Complexity
This course is part of Essential Mathematics for Computer Science Specialization

Instructor: Omar Karakchi
Access provided by Veterans Transition Support
Recommended experience
What you'll learn
Design finite automata and explain how deterministic and non-deterministic machines recognise and process formal languages.
Implement, compare, and evaluate searching and sorting algorithms, analysing their performance and correctness in different contexts.
Create recursive and iterative algorithms, identifying scenarios where each approach provides clarity, efficiency, or scalability.
Analyse algorithms with asymptotic notation, explain complexity classes like P and NP, and interpret NP-completeness in computing.
Skills you'll gain
- Computational Thinking
- Performance Testing
- Critical Thinking
- Complex Problem Solving
- Algorithms
- Logical Reasoning
- Programming Principles
- Analysis
- Graph Theory
- Critical Thinking and Problem Solving
- Data Structures
- Game Theory
- Computer Science
- Theoretical Computer Science
- Computational Logic
- Skills section collapsed. Showing 9 of 15 skills.
Details to know

Add to your LinkedIn profile
19 assignments
February 2026
See how employees at top companies are mastering in-demand skills

Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate

There are 4 modules in this course
In this module, we will cover the following key concepts: definitions, letters, strings, finite automata, language, deterministic and non-deterministic finite automata.
What's included
16 videos5 readings2 assignments2 ungraded labs
In this module, we will cover the following key concepts: algorithms, insertion sorts, bubble sorts, representation, binary search and heap sorts.
What's included
10 videos2 readings5 assignments1 discussion prompt1 ungraded lab
In this module, we will cover the following key concepts: recursion, iteration, quick sorts, merging lists, merge sorts, Shapley proofs and stable matching.
What's included
10 videos3 readings6 assignments1 discussion prompt
In this module, we will cover the following key concepts: efficiency, bubble sorts, binary search, asymptotic complexity, Big O notation, recursion complexity, master theorem, quick sorts and merge sorts.
What's included
14 videos2 readings6 assignments1 discussion prompt
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor

Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
Explore more from Computer Science

Northeastern University

Birla Institute of Technology & Science, Pilani

Northeastern University

University of California San Diego



