Skip to main content
CF

Algorithms and Data Structures

26h 32m 19s
English
Paid

Studying algorithms and data structures can be a particularly useful field, as it touches on the very essence of programming: solving complex problems.

In this course, you will learn many important data structures and algorithms that will undoubtedly be useful throughout your career. Equally important, you will improve your skills in understanding, breaking down, and solving new problems, whether it is creating your own methods or using those you master in this course.

The course consists of a series of tasks for each topic. You should strive to solve each task, using ready-made solutions and additional explanations if necessary.

The course also includes seminars recorded with the participation of CS Primer students, which you can also watch, stopping and asking yourself the same questions that we discuss together. These seminars were usually recorded after students solved 1-2 tasks in the module, and their goal is to strengthen fundamental concepts and prepare you for more complex tasks.

About the Author: Oz Nova (CS Primer)

Oz Nova (CS Primer) thumbnail

Oz Nova is the founder of CS Primer (csprimer.com) and a co-founder of Bradfield School of Computer Science — an unusually rigorous CS-fundamentals education brand aimed at self-taught engineers filling in the formal computer-science foundations they didn't get from a four-year degree. The CS Primer course catalog goes deeper into the fundamentals than essentially any other paid online platform.

The course catalog covers compilers and language design, computer networks (from sockets through application protocols), distributed systems, computer architecture, operating systems, databases at the storage-engine level, and the algorithms / data-structures material taught at the level of a serious CS undergraduate course rather than an interview-prep cheat sheet.

The CourseFlix listing under this source carries 7 CS Primer courses spanning that range. Material is paid; CS Primer runs on per-course or membership pricing on the original platform. Courses are aimed at working software engineers ready to fill the foundational CS gaps that compound across a career.

Watch Online 41 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 41 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 001 Staircase ascent
All Course Lessons (41)
#Lesson TitleDurationAccess
1
001 Staircase ascent Demo
31:07
2
002 Convert to Roman
18:20
3
003 Correct binary search
18:42
4
004 Splitting a chocolate bar
01:01:40
5
005 What a programmer can learn from Polya
14:06
6
006 Finding duplicates
34:24
7
007 Fizzbuzz sum
23:45
8
008 Just iterate
22:54
9
009 Analysis practice
01:25:55
10
010 The enormous difference between polynomial and exponential
07:50
11
011 Building an intuition for common running times
24:20
12
012 Best worst and average case
06:39
13
013 The benefits and pitfalls of asymptotic analysis
11:45
14
014 Big O big omega and big theta
07:13
15
015 Parenthesis match
39:51
16
016 Doubly linked list
49:35
17
017 Basic calculator
40:47
18
018 Practice using stacks
54:40
19
019 Hazards of using linkedlists
08:17
20
020 What is an abstract data type
06:16
21
021 Motivating stacks and queues and an intuition for when to use them
09:23
22
022 Motivating linked lists
04:15
23
023 Merge sort
01:15:56
24
024 Fast exponentiation
23:04
25
025 Quicksort
39:16
26
026 Divide and conquer intuition and convex hull problem
01:36:28
27
027 Process tree
01:08:54
28
028 Word ladder
01:27:36
29
029 Jug pouring
50:23
30
030 Knights tour
53:20
31
031 Maze solver
55:56
32
032 Trees graphs and flipping pancakes
01:25:31
33
033 Dijkstras algorithm and A search
37:18
34
034 Depth-first and breadth-first search
20:08
35
035 Helping Michael with Word Ladder analysis
25:18
36
036 House robber
47:19
37
037 Perfect squares
32:43
38
038 Minimal grid path
54:01
39
039 Edit distance
54:09
40
040 Introduction to dynamic programming
01:03:17
41
041 QA problem solving technique and wrapup
39:58
Unlock unlimited learning

Get instant access to all 40 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites should I have before enrolling in this course?
Before enrolling in the Algorithms and Data Structures course, you should have a basic understanding of programming fundamentals. Familiarity with a programming language and basic problem-solving skills will be beneficial as the course involves tasks such as implementing data structures and solving algorithmic problems. No specific prior courses are listed as prerequisites, but comfort with coding and mathematical reasoning will help you tackle exercises like those on binary search and linked lists.
What kinds of projects or tasks will I work on during the course?
The course includes various tasks designed to reinforce learning, such as solving algorithmic problems and implementing data structures. Examples of tasks include designing a basic calculator, solving the 'knight's tour' problem, and implementing algorithms like quicksort and merge sort. These practical exercises aim to enhance your problem-solving skills and understanding of data structures and algorithms.
Who is the target audience for this course?
This course is aimed at individuals who want to deepen their understanding of algorithms and data structures, key components in computer science. It is suitable for students, software developers, and IT professionals looking to enhance their problem-solving skills and apply algorithmic thinking in practical scenarios. The material is designed to help learners at various stages of their careers, particularly those interested in programming and computer science fundamentals.
How does this course compare in depth and scope to similar courses?
The course offers a comprehensive exploration of algorithms and data structures, with 41 lessons covering topics such as dynamic programming, sorting algorithms, and searching techniques. Unlike some introductory courses, it includes advanced concepts like the convex hull problem and dynamic programming, making it suitable for learners seeking a thorough understanding of the subject. The inclusion of seminars further enriches the learning experience, providing deeper insights into problem-solving techniques.
What specific tools or platforms will be used in the course?
The course does not specify the use of particular software tools or platforms. Instead, it focuses on fundamental concepts and problem-solving techniques that are applicable across various programming environments. The tasks can be completed using any standard programming language and development environment that the student is comfortable with.
What topics are not covered in this course?
While the course offers a broad look into algorithms and data structures, it does not cover every possible related topic. For example, it does not delve into machine learning algorithms or data science applications. The primary focus is on classic algorithms, data structures, and problem-solving techniques foundational to computer science.
What is the expected time commitment for completing this course?
The course is self-paced, allowing students to work through the 41 lessons at their own speed. The time commitment will vary depending on your prior knowledge and the time you can dedicate each week. On average, students might spend several weeks to a few months completing the course, particularly if they engage thoroughly with the tasks and seminars designed to reinforce learning.