Algorithms and Data Structures
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.
Watch Online Algorithms and Data Structures
# | Title | Duration |
---|---|---|
1 | 001 Staircase ascent | 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 |