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