1. Урок 1.00:01:51
    Introduction
  2. Урок 2.00:05:43
    Course structure and content overview
  3. Урок 3.00:05:56
    Section intro and overview
  4. Урок 4.00:06:00
    Download and install Python
  5. Урок 5.00:13:39
    Setup Atom as text editor (setup used in this course)
  6. Урок 6.00:16:59
    Exploring Jupyter Notebooks interface (optional)
  7. Урок 7.00:07:52
    Section intro and overview
  8. Урок 8.00:06:28
    Command line/Terminal basics
  9. Урок 9.00:10:32
    Strings, variables, top down execution flow
  10. Урок 10.00:14:14
    Strings: concatenation, indexing, slicing, python console
  11. Урок 11.00:17:21
    String methods, functions and import statements
  12. Урок 12.00:13:29
    Print formatting and special characters
  13. Урок 13.00:16:48
    Numbers, math, type casting and input
  14. Урок 14.00:12:17
    Introduction to branching (if, elif, else) and conditionals
  15. Урок 15.00:12:55
    Building if, elif, else blocks incrementally
  16. Урок 16.00:11:03
    Lists, dicts, sets and tuples - Intro to compound data types in Python
  17. Урок 17.00:12:07
    Lists - an in-depth look 1
  18. Урок 18.00:11:19
    Lists - an in-depth look 2
  19. Урок 19.00:18:24
    Dictionaries, sets and tuples
  20. Урок 20.00:18:08
    Iterators, for loops, generators, list comprehension
  21. Урок 21.00:12:44
    While loops, enumerate, zip
  22. Урок 22.00:13:02
    Functions - an introductory look
  23. Урок 23.00:14:52
    Functions - implementation step by step
  24. Урок 24.00:14:20
    Functions - execution context, frames, mutable vs. immutable arguments in-depth
  25. Урок 25.00:09:30
    Classes and objects - an introductory look
  26. Урок 26.00:11:59
    Building a custom Student class and intro to special methods
  27. Урок 27.00:06:49
    Add some methods to the class
  28. Урок 28.00:12:34
    Special methods and what they are
  29. Урок 29.00:12:23
    Reading from and writing to files
  30. Урок 30.00:19:47
    Add read functionality and utilize special and static methods
  31. Урок 31.00:14:47
    Inheritance, subclasses and complete example class
  32. Урок 32.00:10:39
    Lambda expressions and map function
  33. Урок 33.00:06:42
    Generators - under the hood
  34. Урок 34.00:10:06
    Build your own generators using yield
  35. Урок 35.00:01:18
    Introduction to section 4 and overview of the material covered in it
  36. Урок 36.00:05:40
    Bubble sort demonstration and complexity analysis
  37. Урок 37.00:16:40
    Bubble sort implementation
  38. Урок 38.00:09:11
    Selection sort demonstration and complexity analysis
  39. Урок 39.00:13:02
    Selection sort implementation
  40. Урок 40.00:05:23
    Insertion sort demonstration and assignment handoff
  41. Урок 41.00:02:21
    Insertion sort programmatic execution step by step
  42. Урок 42.00:10:11
    Performance measures - deep dive with a programmatic view
  43. Урок 43.00:02:08
    O(nlog(n)) performance and algorithm prerequisites
  44. Урок 44.00:11:54
    Analyze log(n), visualize the math behind it and how it relates to algorithms
  45. Урок 45.00:13:36
    Merge sort visualization and complexity analysis
  46. Урок 46.00:06:32
    Implement merge function - part 1
  47. Урок 47.00:06:51
    Implement merge function - part 2
  48. Урок 48.00:05:00
    Implement merge function - part 3
  49. Урок 49.00:05:50
    A look at the recursive divide function
  50. Урок 50.00:11:48
    In-depth look at execution context of recursive divide function
  51. Урок 51.00:05:48
    Recursion mini-project 1 - Countdown timer
  52. Урок 52.00:06:46
    Recursion mini-project 2 - Factorial
  53. Урок 53.00:07:21
    Recursion mini-project 3 - Fibonacci series
  54. Урок 54.00:07:27
    Complete merge sort algorithm and analyze updated execution context
  55. Урок 55.00:05:09
    Quicksort demo
  56. Урок 56.00:07:29
    Quicksort implementation
  57. Урок 57.00:01:08
    Section final project objective and motivation
  58. Урок 58.00:04:16
    Project specs and runtime execution intro
  59. Урок 59.00:06:43
    Project phase 1: Build random int list generator
  60. Урок 60.00:02:50
    Project phase 2: Get input from user for size and range
  61. Урок 61.00:07:36
    Project phase 3: Add functions, calculate and analyze runtime
  62. Урок 62.00:09:49
    Project phase 4: Extract redundancies, create function and cleanup code
  63. Урок 63.00:05:38
    Project phase 5: Add multiple run functionality and perform additional testing
  64. Урок 64.00:01:11
    Introduction to section 5
  65. Урок 65.00:05:57
    Intro to search - Linear, Bisection/Binary search
  66. Урок 66.00:14:28
    Bisection/Binary search - Iterative implementation
  67. Урок 67.00:09:20
    Bisection search - recursive implementation
  68. Урок 68.00:05:21
    Project handoff: Bringing it together
  69. Урок 69.00:06:42
    Project conclusion walkthrough
  70. Урок 70.00:07:59
    Hashmaps and O(1) search complexity
  71. Урок 71.00:06:48
    Hash project 1: Define and set up class blueprint with __init__ and __str__
  72. Урок 72.00:07:57
    Hash project 2: Set up insert and hashing functionality for data structure
  73. Урок 73.00:09:18
    Hash project 3: Add update functionality
  74. Урок 74.00:05:51
    Hash project 4: Build search method
  75. Урок 75.00:06:08
    Project: Use hash structure in a practical exercise - Quote finder
  76. Урок 76.00:08:50
    Project: Complete quote finder using hash table
  77. Урок 77.00:10:40
    Intro to linear data structures - Linked Lists
  78. Урок 78.00:15:51
    Build a custom linked list
  79. Урок 79.00:08:38
    Recursively reverse a linked list
  80. Урок 80.00:11:57
    Visualize Stacks and Queues, and their operations
  81. Урок 81.00:14:07
    Introduction to Trees and Binary Search Trees
  82. Урок 82.00:06:47
    In-order traversal of a Binary Search Tree
  83. Урок 83.00:13:08
    Build a Binary Search Tree from scratch - Insert
  84. Урок 84.00:05:03
    BST from scratch - In-order traversal
  85. Урок 85.00:05:17
    BST from scratch - Search
  86. Урок 86.00:06:59
    BST from scratch - Delete demo
  87. Урок 87.00:13:11
    BST - Deleting leaf nodes
  88. Урок 88.00:08:45
    BST - Deleting nodes with 1 child node
  89. Урок 89.00:12:28
    BST - Deleting nodes with 2 children
  90. Урок 90.00:07:09
    Project: Job Scheduler using Binary Search Trees - Introduction
  91. Урок 91.00:08:58
    Project: Job Scheduler execution flow
  92. Урок 92.00:10:46
    Project: Job Scheduler implementation tips and notes
  93. Урок 93.00:03:04
    Thank you for taking the course and next steps