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
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.
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
Show info about module content
16 videos•Total 68 minutes
Introduction to the course•1 minute
Introduction•1 minute
Basic definitions, letters, strings•4 minutes
What is an automaton?•9 minutes
Finite automata – example (part 1)•3 minutes
Finite automata – example (part 2)•8 minutes
Working with Automata Simulator•6 minutes
Language of the automata•4 minutes
Recognise a language•4 minutes
Deterministic finite automata (DFA) vs nondeterministic finite automata (NFA)•4 minutes
DFA example•4 minutes
DFA example in Automata Simulator•4 minutes
Computation by NFA•4 minutes
NFA example•5 minutes
NFA example in Automata Simulator•2 minutes
Conclusion•4 minutes
5 readings•Total 110 minutes
Course structure and navigation•15 minutes
How to learn effectively on this course•15 minutes
Course Syllabus•10 minutes
Exercises with hints and tips•60 minutes
Exercises with hints and tips•10 minutes
2 assignments•Total 50 minutes
Check your understanding: End of module 1•20 minutes
Basics•30 minutes
2 ungraded labs•Total 40 minutes
DFA Simulator•20 minutes
NFA Simulator•20 minutes
Searching and Sorting Algorithms
Module 2•4 hours to complete
Module details
In this module, we will cover the following key concepts: algorithms, insertion sorts, bubble sorts, representation, binary search and heap sorts.
Check your understanding: End of module 2•20 minutes
How else would you sort?•30 minutes
Insertion, bubble and selection sort•25 minutes
Binary and sequential search•12 minutes
Heap sort•20 minutes
1 discussion prompt•Total 20 minutes
Tell us about an algorithm that you use•20 minutes
1 ungraded lab•Total 20 minutes
Sorting algorithms simulator: Bubble Sort and Insertion Sort•20 minutes
Recursive and Iterative Algorithms
Module 3•5 hours to complete
Module details
In this module, we will cover the following key concepts: recursion, iteration, quick sorts, merging lists, merge sorts, Shapley proofs and stable matching.
The Gale-Shapley algorithm – example and pseudocode•6 minutes
Conclusion•3 minutes
3 readings•Total 105 minutes
Partition and quick sort algorithms•85 minutes
Lesson 1 exercises with hints and tips•10 minutes
Exercises with hints and tips•10 minutes
6 assignments•Total 140 minutes
Check your understanding: End of module 3•20 minutes
Recursive and iterative algorithms•25 minutes
Quick sort•20 minutes
How does this magic work?•30 minutes
Keep merging•30 minutes
Stable matching•15 minutes
1 discussion prompt•Total 10 minutes
Name an allocation problem that you know•10 minutes
Complexity Theory
Module 4•5 hours to complete
Module details
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.
The University of London is a federal University which includes 17 world leading Colleges. With extensive experience in distance learning since 1858, University of London has enriched the lives of thousands of students, delivering high quality degrees across the globe. Today, University of London is a global leader in flexible study, offering degree programmes to over 45,000 students in over 190 countries, delivering world-leading research across the world. To find out more about University of London, visit www.london.ac.uk
Championing research-rich degrees that provoke thought, stretch the imagination and tap into tomorrow’s world, at Goldsmiths we’re asking the questions that matter now in subjects as diverse as the arts and humanities, social sciences, cultural studies, computing, and entrepreneurial business and management. We are a community defined by its people: innovative in spirit, analytical in approach and open to all.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.