University of London
Goldsmiths, University of London

Algorithms and Complexity

Omar Karakchi

Instructor: Omar Karakchi

Access provided by Saudi Energy Efficiency Center

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

2 weeks to complete
at 10 hours a week
Flexible schedule
Learn at your own pace

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.

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

19 assignments

Taught in English
Recently updated!

February 2026

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

Build your subject-matter expertise

This course is part of the Essential Mathematics for Computer Science Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • 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

Omar Karakchi
University of London
7 Courses 46,636 learners

Offered by

Why people choose Coursera for their career

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Explore more from Computer Science