| 1 | What you're going to get from this course | 03:28 |
| 2 | START HERE | 02:55 |
| 3 | Downloadable Resources and Tips for Taking the Course | 04:23 |
| 4 | Day 1 Goals: what we will make by the end of the day | 02:31 |
| 5 | Printing to the Console in Python | 09:30 |
| 6 | [Interactive Coding Exercise] Printing | 12:25 |
| 7 | String Manipulation and Code Intelligence | 09:47 |
| 8 | [Interactive Coding Exercise] Debugging Practice | 06:09 |
| 9 | The Python Input Function | 08:50 |
| 10 | [Interactive Coding Exercise] Input Function | 07:03 |
| 11 | Python Variables | 06:44 |
| 12 | [Interactive Coding Exercise] Variables | 04:01 |
| 13 | Variable Naming | 03:59 |
| 14 | Day 1 Project: Band Name Generator | 05:50 |
| 15 | Congratulations! Well done! | 00:53 |
| 16 | Day 2 Goals: what we will make by the end of the day | 01:47 |
| 17 | Python Primitive Data Types | 07:59 |
| 18 | Type Error, Type Checking and Type Conversion | 07:20 |
| 19 | [Interactive Coding Exercise] Data Types | 06:05 |
| 20 | Mathematical Operations in Python | 08:28 |
| 21 | [Interactive Coding Exercise] BMI Calculator | 07:11 |
| 22 | Number Manipulation and F Strings in Python | 08:11 |
| 23 | [Interactive Coding Exercise] Life in Weeks | 06:25 |
| 24 | Day 2 Project: Tip Calculator | 18:27 |
| 25 | You are already in the top 50% | 00:30 |
| 26 | Day 3 Goals: what we will make by the end of the day | 01:23 |
| 27 | Control Flow with if / else and Conditional Operators | 10:25 |
| 28 | [Interactive Coding Exercise] Odd or Even? Introducing the Modulo | 04:57 |
| 29 | Nested if statements and elif statements | 06:29 |
| 30 | [Interactive Coding Exercise] BMI 2.0 | 07:19 |
| 31 | [Interactive Coding Exercise] Leap Year | 10:35 |
| 32 | Multiple If Statements in Succession | 09:30 |
| 33 | [Interactive Coding Exercise] Pizza Order Practice | 06:17 |
| 34 | Logical Operators | 05:59 |
| 35 | [Interactive Coding Exercise] Love Calculator | 14:09 |
| 36 | Day 3 Project: Treasure Island | 18:13 |
| 37 | Share and Show off your Project! | 00:44 |
| 38 | Day 4 Goals: what we will make by the end of the day | 01:32 |
| 39 | Random Module | 13:46 |
| 40 | [Interactive Coding Exercise] Heads or Tails | 02:17 |
| 41 | Understanding the Offset and Appending Items to Lists | 13:15 |
| 42 | [Interactive Coding Exercise] Banker Roulette - Who will pay the bill? | 10:23 |
| 43 | IndexErrors and Working with Nested Lists | 05:26 |
| 44 | [Interactive Coding Exercise] Treasure Map | 11:37 |
| 45 | Day 4 Project: Rock Paper Scissors | 21:28 |
| 46 | Programming is like going to the Gym | 01:05 |
| 47 | Day 5 Goals: what we will make by the end of the day | 03:14 |
| 48 | Using the for loop with Python Lists | 07:33 |
| 49 | [Interactive Coding Exercise] Average Height | 08:41 |
| 50 | [Interactive Coding Exercise] High Score | 07:09 |
| 51 | for loops and the range() function | 05:22 |
| 52 | [Interactive Coding Exercise] Adding Even Numbers | 04:36 |
| 53 | [Interactive Coding Exercise] The FizzBuzz Job Interview Question | 05:23 |
| 54 | Day 5 Project: Create a Password Generator | 16:11 |
| 55 | Hard Work and Perseverance beats Raw Talent Every Time | 01:09 |
| 56 | Day 6 Goals: what we will make by the end of the day | 01:02 |
| 57 | Defining and Calling Python Functions | 15:51 |
| 58 | The Hurdles Loop Challenge | 10:39 |
| 59 | Indentation in Python | 09:15 |
| 60 | While Loops | 12:43 |
| 61 | Hurdles Challenge using While Loops | 06:58 |
| 62 | Jumping over Hurdles with Variable Heights | 08:13 |
| 63 | Final Project: Escaping the Maze | 16:42 |
| 64 | Why is this *so* Hard?! Can I really do this? | 01:26 |
| 65 | Day 7 Goals: what we will make by the end of the day | 02:00 |
| 66 | How to break a Complex Problem down into a Flow Chart | 05:14 |
| 67 | Challenge 1 - Picking a Random Words and Checking Answers | 02:06 |
| 68 | Challenge 1 Solution - How to Check the User's Answer | 06:46 |
| 69 | Challenge 2 - Replacing Blanks with Guesses | 02:56 |
| 70 | Challenge 2 Solution - How to Replace the Blanks | 10:48 |
| 71 | Challenge 3 - Checking if the Player has Won | 03:26 |
| 72 | Challenge 3 Solution - How to Check if the Player Won | 03:52 |
| 73 | Challenge 4 - Keeping Track of the Player's Lives | 02:17 |
| 74 | Challenge 4 Solution - How to Keep Track of the Player's Lives | 05:48 |
| 75 | Challenge 5 - Improving the User Experience | 04:24 |
| 76 | Challenge 5 Solution - How to Add ASCII Art and Improve the UI | 06:34 |
| 77 | The Benefits of Daily Practice | 01:13 |
| 78 | Day 8 Goals: what we will make by the end of the day | 02:16 |
| 79 | Functions with Inputs | 09:33 |
| 80 | Positional vs. Keyword Arguments | 08:52 |
| 81 | [Interactive Coding Exercise] Paint Area Calculator | 07:49 |
| 82 | [Interactive Coding Exercise] Prime Number Checker | 08:55 |
| 83 | Caesar Cipher Part 1 - Encryption | 14:42 |
| 84 | Caesar Cipher Part 2 - Decryption | 06:30 |
| 85 | Caesar Cipher Part 3 - Reorganising our Code | 10:37 |
| 86 | Caesar Cipher Part 4 - User Experience Improvements & Final Touches | 13:24 |
| 87 | How You Can *Stay* Motivated | 01:07 |
| 88 | Day 9 Goals: what we will make by the end of the day | 02:30 |
| 89 | The Python Dictionary: Deep Dive | 14:14 |
| 90 | [Interactive Coding Exercise] Grading Program | 06:01 |
| 91 | Nesting Lists and Dictionaries | 09:56 |
| 92 | [Interactive Coding Exercise] Dictionary in List | 05:36 |
| 93 | The Secret Auction Program Instructions and Flow Chart | 04:30 |
| 94 | Solution and Complete Code for the Secret Auction Program | 18:14 |
| 95 | Motivation and the Accountability Trick | 01:03 |
| 96 | Day 10 Goals: what we will make by the end of the day | 01:35 |
| 97 | Functions with Outputs | 12:58 |
| 98 | Multiple return values | 03:32 |
| 99 | [Interactive Coding Exercise] Days in Month | 06:45 |
| 100 | Docstrings | 03:43 |
| 101 | Calculator Part 1: Combining Dictionaries and Functions | 08:44 |
| 102 | Print vs. Return | 04:38 |
| 103 | While Loops, Flags and Recursion | 07:50 |
| 104 | Calculator Finishing Touches and Bug Fixes | 03:48 |
| 105 | How to Get a Good Night's Sleep | 01:33 |
| 106 | Day 11 Goals: what we will make by the end of the day | 02:16 |
| 107 | Blackjack Program Requirements and Game Rules | 08:35 |
| 108 | Hint 4 & 5 Solution Walkthrough | 06:50 |
| 109 | Hint 6-8 Solution Walkthrough | 05:07 |
| 110 | Hint 9 Solution Walkthrough: Refactoring and calling calculate_score() | 05:09 |
| 111 | Hint 10-12 Solution Walkthrough | 05:25 |
| 112 | Hint 13 Solution Walkthrough | 08:44 |
| 113 | A Solid Foundation goes a Long Way | 01:39 |
| 114 | Namespaces: Local vs. Global Scope | 07:52 |
| 115 | Does Python Have Block Scope? | 02:51 |
| 116 | How to Modify a Global Variable | 04:44 |
| 117 | Python Constants and Global Scope | 01:47 |
| 118 | Introducing the Final Project: The Number Guessing Game | 04:59 |
| 119 | Solution & Walkthrough to the Number Guessing Game | 23:42 |
| 120 | Don't be too hard on yourself | 00:45 |
| 121 | Describe the Problem | 04:52 |
| 122 | Reproduce the Bug | 03:35 |
| 123 | Play Computer and Evaluate Each Line | 03:52 |
| 124 | Fixing Errors and Watching for Red Underlines | 03:30 |
| 125 | Squash bugs with a print() Statement | 04:40 |
| 126 | Bringing out the BIG Gun: Using a Debugger | 05:53 |
| 127 | Final Debugging Tips | 05:10 |
| 128 | [Interactive Coding Exercise] Debugging Odd or Even | 02:46 |
| 129 | [Interactive Coding Exercise] Debugging Leap Year | 03:02 |
| 130 | [Interactive Coding Exercise] Debugging FizzBuzz | 07:35 |
| 131 | Building Confidence | 01:02 |
| 132 | Introduction & Program Requirements for the Higher Lower Game | 07:38 |
| 133 | Solution & Walkthrough of the Higher Lower Game | 30:32 |
| 134 | Study Tip: Set Reminders in Your Calendar to Review | 01:09 |
| 135 | Installing Python Locally on Your Computer | 04:39 |
| 136 | Download PyCharm for Windows or Mac | 02:00 |
| 137 | PyCharm's Charming Features (while you wait for the download to finish) | 13:05 |
| 138 | How to Install PyCharm on Windows | 02:39 |
| 139 | Installing PyCharm on Mac | 02:54 |
| 140 | Introduction & Requirements for the Coffee Machine Project | 10:36 |
| 141 | Solution & Walkthrough for the Coffee Machine Code | 28:59 |
| 142 | Location, Location, Location - Pavlov's Coding Corner | 01:09 |
| 143 | Why do we need OOP and how does it work? | 07:22 |
| 144 | How to use OOP: Classes and Objects | 04:10 |
| 145 | Constructing Objects and Accessing their Attributes and Methods | 15:57 |
| 146 | How to Add Python Packages and use PyPi | 05:57 |
| 147 | Practice Modifying Object Attributes and Calling Methods | 08:30 |
| 148 | Building the Coffee Machine in OOP | 07:12 |
| 149 | Walkthrough and Solution for the OOP Coffee Machine | 15:22 |
| 150 | Don't forget to review occasionally | 00:57 |
| 151 | Day 17 Goals: what we will make by the end of the day | 01:09 |
| 152 | How to create your own Class in Python | 04:45 |
| 153 | Working with Attributes, Class Constructors and the __init__() Function | 11:10 |
| 154 | Adding Methods to a Class | 04:27 |
| 155 | Quiz Project Part 1: Creating the Question Class | 05:48 |
| 156 | Quiz Project Part 2: Creating the List of Question Objects from the Data | 07:50 |
| 157 | Quiz Project Part 3: The QuizBrain and the next_question() Method | 07:52 |
| 158 | Quiz Project Part 4: How to continue showing new Questions | 04:47 |
| 159 | Quiz Project Part 5: Checking Answers and Keeping Score | 08:09 |
| 160 | The Benefits of OOP: Use Open Trivia DB to Get New Questions | 05:36 |
| 161 | Run for that Bus! | 01:20 |
| 162 | Day 18 Goals: what we will make by the end of the day | 01:04 |
| 163 | Understanding Turtle Graphics and How to use the Documentation | 09:57 |
| 164 | Turtle Challenge 1 - Draw a Square | 02:29 |
| 165 | Importing Modules, Installing Packages, and Working with Aliases | 08:10 |
| 166 | Turtle Challenge 2 - Draw a Dashed Line | 03:01 |
| 167 | Turtle Challenge 3 - Drawing Different Shapes | 06:44 |
| 168 | Turtle Challenge 4 - Generate a Random Walk | 07:22 |
| 169 | Python Tuples and How to Generate Random RGB Colours | 07:43 |
| 170 | Turtle Challenge 5 - Draw a Spirograph | 09:27 |
| 171 | The Hirst Painting Project Part 1 - How to Extract RGB Values from Images | 13:51 |
| 172 | The Hirst Painting Project Part 2 - Drawing the Dots | 12:25 |
| 173 | Space out your study sessions and stay consistent | 01:37 |
| 174 | Day 19 Goals: what we will make by the end of the day | 01:49 |
| 175 | Python Higher Order Functions & Event Listeners | 07:14 |
| 176 | Challenge: Make an Etch-A-Sketch App | 07:28 |
| 177 | Object State and Instances | 03:26 |
| 178 | Understanding the Turtle Coordinate System | 13:15 |
| 179 | Aaaand, we're off to the races! | 10:03 |
| 180 | Expand on the Solutions | 01:48 |
| 181 | Day 20 Goals: what we will make by the end of the day | 04:40 |
| 182 | Screen Setup and Creating a Snake Body | 08:00 |
| 183 | Animating the Snake Segments on Screen | 17:20 |
| 184 | Create a Snake Class & Move to OOP | 07:27 |
| 185 | How to Control the Snake with a Keypress | 10:55 |
| 186 | Programming is not Memorising | 02:15 |
| 187 | Day 21 Goals: what we will make by the end of the day | 01:07 |
| 188 | Class Inheritance | 06:48 |
| 189 | Detect Collisions with Food | 11:49 |
| 190 | Create a Scoreboard and Keep Score | 10:22 |
| 191 | Detect Collisions with the Wall | 03:53 |
| 192 | Detect Collisions with your own Tail | 06:20 |
| 193 | How to Slice Lists & Tuples in Python | 07:41 |
| 194 | Stay motivated by remembering the reason you signed up | 01:44 |
| 195 | Day 22 Goals: what you will make by the end of the day | 03:46 |
| 196 | Set up the Main Screen | 01:44 |
| 197 | Create a Paddle that responds to Key Presses | 06:22 |
| 198 | Write the Paddle Class and Create the Second Paddle | 07:38 |
| 199 | Write the Ball Class and Make the Ball Move | 04:45 |
| 200 | Add the Ball Bouncing Logic | 07:02 |
| 201 | How to Detect Collisions with the Paddle | 06:17 |
| 202 | How to Detect when the Ball goes Out of Bounds | 04:03 |
| 203 | Score Keeping and Changing the Ball Speed | 09:26 |
| 204 | Picturing fears: even the worst-case scenario is not so scary | 01:42 |
| 205 | Day 23 Goals: what you will make by the end of the day | 01:28 |
| 206 | How to use the Starter Code | 03:30 |
| 207 | Solution to Step 3 - Create the Player Behaviour | 04:44 |
| 208 | Solution to Step 4 - Create the Car Behaviour | 09:14 |
| 209 | Solution to Step 5 - Detect when the Turtle collides with a Car *squish* | 02:30 |
| 210 | Solution to Step 6 - Detect when the Player has reached the other side | 04:29 |
| 211 | Solution to Step 7 - Add the Scoreboard and Game Over sequence | 07:53 |
| 212 | This course is not about typing out code | 01:45 |
| 213 | Day 24 Goals: what you will make by the end of the day | 02:09 |
| 214 | Add a High Score to the Snake Game | 10:46 |
| 215 | How to Open, Read, and Write to Files using the "with" Keyword | 09:33 |
| 216 | Challenge: Read and Write the High Score to a File in Snake | 06:03 |
| 217 | Understand Relative and Absolute File Paths | 15:27 |
| 218 | Introducing the Mail Merge Challenge | 04:46 |
| 219 | Solution & Walkthrough for the Mail Merge Project | 11:29 |
| 220 | What's the correct solution? What's the best answer? What's the right way? | 02:59 |
| 221 | Day 25 Goals: what we will make by the end of the day | 01:52 |
| 222 | Reading CSV Data in Python | 13:21 |
| 223 | DataFrames & Series: Working with Rows & Columns | 17:26 |
| 224 | The Great Squirrel Census Data Analysis (with Pandas!) | 09:53 |
| 225 | U.S. States Game Part 1: Setup | 10:19 |
| 226 | U.S. States Game Part 2: Challenge with .csv | 16:05 |
| 227 | U.S. States Game Part 3: Saving Data to .csv | 05:27 |
| 228 | Day 26 Goals: what you will make by the end of the day | 01:25 |
| 229 | How to Create Lists using List Comprehension | 15:50 |
| 230 | [Interactive Coding Exercise] Squaring Numbers | 02:04 |
| 231 | [Interactive Coding Exercise] Filtering Even Numbers | 02:39 |
| 232 | [Interactive Coding Exercise] Data Overlap | 04:55 |
| 233 | Apply List Comprehension to the U.S. States Game | 02:43 |
| 234 | How to use Dictionary Comprehension | 08:56 |
| 235 | [Interactive Coding Exercise] Dictionary Comprehension 1 | 04:06 |
| 236 | [Interactive Coding Exercise] Dictionary Comprehension 2 | 03:20 |
| 237 | How to Iterate over a Pandas DataFrame | 04:57 |
| 238 | Introducing the NATO Alphabet Project | 05:30 |
| 239 | Solution & Walkthrough for the NATO Alphabet Project | 05:54 |
| 240 | Day 27 Goals: what we will make by the end of the day | 02:05 |
| 241 | History of GUI and Introduction to Tkinter | 05:23 |
| 242 | Creating Windows and Labels with Tkinter | 09:35 |
| 243 | Setting Default Values for Optional Arguments inside a Function Header | 05:44 |
| 244 | *args: Many Positional Arguments | 05:59 |
| 245 | **kwargs: Many Keyword Arguments | 09:51 |
| 246 | Buttons, Entry, and Setting Component Options | 09:49 |
| 247 | Other Tkinter Widgets: Radiobuttons, Scales, Checkbuttons and more | 07:20 |
| 248 | Tkinter Layout Managers: pack(), place() and grid() | 11:05 |
| 249 | Mile to Kilometers Converter Project | 11:11 |
| 250 | Day 28 Goals: what we will make by the end of the day | 02:42 |
| 251 | How to work with the Canvas Widget and Add Images to Tkinter | 15:11 |
| 252 | Challenge - Complete the Application's User Interface (UI) | 08:46 |
| 253 | Add a Count Down Mechanism | 17:47 |
| 254 | Dynamic Typing Explained | 06:59 |
| 255 | Setting Different Timer Sessions and Values | 08:01 |
| 256 | Adding Checkmarks and Resetting the Application | 09:51 |
| 257 | Day 29 Goals: what we will make by the end of the day | 03:33 |
| 258 | Challenge 1 - Working with Images and Setting up the Canvas | 05:04 |
| 259 | Challenge 2 - Use grid() and columnspan to Complete the User Interface | 04:55 |
| 260 | Solution to the Creating the Grid Layout | 06:37 |
| 261 | Challenge 3 - Saving Data to File | 13:26 |
| 262 | Dialog Boxes and Pop-Ups in Tkinter | 09:10 |
| 263 | Generate a Password & Copy it to the Clipboard | 12:48 |
| 264 | Day 30 Goals: what you will make by the end of the day | 01:42 |
| 265 | Catching Exceptions: The try catch except finally Pattern | 15:33 |
| 266 | Raising your own Exceptions | 04:15 |
| 267 | [Interactive Coding Exercise] IndexError Handling | 02:48 |
| 268 | [Interactive Coding Exercise] KeyError Handling | 03:30 |
| 269 | Code Exercise: Exception Handling in the NATO Phonetic Alphabet Project | 06:32 |
| 270 | Write, read and update JSON data in the Password Manager | 13:21 |
| 271 | Challenge 1 - Handling Exceptions in the Password Manager | 06:20 |
| 272 | Challenge 2 - Search for a Website in the Password Manager | 17:57 |
| 273 | Day 31 Goals: what you will make by the end of the day | 10:07 |
| 274 | Solution & Walkthrough for Creating the UI | 11:49 |
| 275 | Solution & Walkthrough for Creating New Flash Cards | 08:08 |
| 276 | Solution & Walkthrough for Flipping Cards | 08:55 |
| 277 | Solution & Walkthrough for Saving Progress | 09:32 |
| 278 | Day 32 Goals: what we will make by the end of the day | 02:32 |
| 279 | How to Send Emails with Python using SMTP | 14:29 |
| 280 | Working with the datetime Module | 06:13 |
| 281 | Challenge 1 - Send Motivational Quotes on Mondays via Email | 08:38 |
| 282 | Automated Birthday Wisher Project Challenge | 05:41 |
| 283 | Solution & Walkthrough for the Automated Birthday Wisher | 17:29 |
| 284 | Run Your Python Code in the Cloud! | 06:11 |
| 285 | Day 33 Goals: what you will make by the end of the day | 01:06 |
| 286 | What are Application Programming Interfaces (APIs)? | 04:08 |
| 287 | API Endpoints and Making API Calls | 07:44 |
| 288 | Working with Responses: HTTP Codes, Exceptions & JSON Data | 08:57 |
| 289 | Challenge - Build a Kanye Quotes App using the Kanye Rest API | 04:41 |
| 290 | Understand API Parameters: Match Sunset Times with the Current Time | 15:09 |
| 291 | ISS Overhead Notifier Project - Challenge & Solution | 10:07 |
| 292 | Day 34 Goals: what you will make by the end of the day | 02:20 |
| 293 | Trivia Question API Challenge | 05:49 |
| 294 | Solution & Walkthrough for getting Trivia Questions | 03:34 |
| 295 | Unescaping HTML Entities | 04:03 |
| 296 | Class based Tkinter UI | 14:29 |
| 297 | Python Typing & Showing the Next Question in the GUI | 06:57 |
| 298 | Python Typing: Type Hints and Arrows -> | 05:14 |
| 299 | Check the Answer | 03:35 |
| 300 | Give Feedback to the Player, Keep Score and Fix the Bugs =) | 08:39 |
| 301 | Day 35 Goals: what you will make by the end of the day | 01:36 |
| 302 | What is API Authentication and Why Do We Need to Authenticate Ourselves? | 04:29 |
| 303 | Using API Keys to Authenticate and Get the Weather from OpenWeatherMap | 13:06 |
| 304 | Challenge - Check if it Will Rain in the Next 12 Hours | 18:59 |
| 305 | Sending SMS via the Twilio API | 09:12 |
| 306 | Use PythonAnywhere to Automate the Python Script | 07:37 |
| 307 | Understanding Environment Variables and Hiding API Keys | 10:14 |
| 308 | Day 36 Goals: what you will make by the end of the day | 09:31 |
| 309 | Solution & Walkthrough for Step 1 - Check for Stock Price Movements | 15:16 |
| 310 | Solution & Walkthrough for Step 2 - Get the News Articles | 06:49 |
| 311 | Solution & Walkthrough for Step 3 - Send the SMS Messages | 08:18 |
| 312 | Day 37 Goals: what you will make by the end of the day | 02:46 |
| 313 | HTTP Post Requests | 08:22 |
| 314 | Advanced Authentication using an HTTP Header | 10:53 |
| 315 | Challenge: Add a Pixel to the Habit Tracker using a Post Request | 05:56 |
| 316 | Autofilling today's date using strftime | 04:19 |
| 317 | How to use HTTP Put and Delete Requests | 06:35 |
| 318 | Day 38 Goals: what you will make by the end of the day | 03:38 |
| 319 | Day 39 Goals: what you will make by the end of the day | 04:38 |
| 320 | Day 40 Goals: what you will make by the end of the day | 02:54 |
| 321 | Day 41 Goals: what you will make by the end of the day | 04:02 |
| 322 | How Does the Internet Actually Work? | 05:43 |
| 323 | How Do Websites Actually Work? | 06:21 |
| 324 | Introduction to HTML | 10:53 |
| 325 | The Anatomy of an HTML Tag | 10:56 |
| 326 | What we're building - HTML Personal Site | 02:53 |
| 327 | What is The HTML Boilerplate? | 17:02 |
| 328 | How to Structure Text in HTML | 11:01 |
| 329 | HTML Lists | 05:25 |
| 330 | HTML Image Elements | 07:33 |
| 331 | HTML Links and Anchor Tags | 11:56 |
| 332 | Day 42 Goals: what you will make by the end of the day | 01:01 |
| 333 | HTML Tables | 11:58 |
| 334 | Using HTML Tables for Layout | 02:18 |
| 335 | HTML Tables Code Challenge | 01:45 |
| 336 | HTML Tables Solution Walkthrough | 06:43 |
| 337 | HTML Forms | 09:10 |
| 338 | Forms in Practice - Create a Contact Me Form | 10:22 |
| 339 | Publish Your Website! | 10:14 |
| 340 | Day 43 Goals: what you will make by the end of the day | 00:46 |
| 341 | Introduction to CSS | 03:05 |
| 342 | Inline CSS | 10:36 |
| 343 | Internal CSS | 21:38 |
| 344 | External CSS | 08:30 |
| 345 | How to Debug CSS Code | 15:12 |
| 346 | The Anatomy of CSS Syntax | 13:39 |
| 347 | CSS Selectors | 06:24 |
| 348 | Classes vs. Ids | 11:45 |
| 349 | Day 44 Goals: what you will make by the end of the day | 00:50 |
| 350 | What We'll Make - Stylised Personal Site | 04:58 |
| 351 | What Are Favicons? | 04:10 |
| 352 | HTML Divs | 13:32 |
| 353 | The Box Model of Website Styling | 19:41 |
| 354 | CSS Display Property | 15:12 |
| 355 | CSS Static and Relative Positioning | 14:37 |
| 356 | Absolute positioning | 12:13 |
| 357 | The Dark Art of Centering Elements with CSS | 09:04 |
| 358 | Font Styling in Our Personal Site | 14:18 |
| 359 | Adding Content to Our Website | 06:54 |
| 360 | CSS Sizing | 15:55 |
| 361 | CSS Font Property Challenge Solutions | 03:58 |
| 362 | CSS Float and Clear | 16:45 |
| 363 | Stylised Personal Site Solution Walkthrough | 21:23 |
| 364 | Day 45 Goals: what you will make by the end of the day | 02:27 |
| 365 | Parsing HTML and Making Soup | 10:04 |
| 366 | Finding and Selecting Particular Elements with BeautifulSoup | 11:52 |
| 367 | Scraping a Live Website | 17:11 |
| 368 | Is Web Scraping Legal? | 11:26 |
| 369 | 100 Movies that You Must Watch | 11:07 |
| 370 | Day 46 Goals: what you will make by the end of the day | 04:12 |
| 371 | Day 47 Goals: what you will make by the end of the day | 05:32 |
| 372 | Day 48 Goals: what you will make by the end of the day | 02:51 |
| 373 | How to Install & Set Up Selenium | 11:56 |
| 374 | How to Find and Select Elements on a Website with Selenium | 11:44 |
| 375 | Challenge: Use Selenium to Scrape Website Data | 08:12 |
| 376 | Challenge: Use Selenium in a Blank Project & Scrape a Different Piece of Data | 04:31 |
| 377 | How to Automate Filling Out Forms and Clicking Buttons with Selenium | 10:43 |
| 378 | The Cookie Clicker Project | 03:39 |
| 379 | Day 49 Goals: what you will make by the end of the day | 03:13 |
| 380 | Day 50 Goals: what you will make by the end of the day | 06:44 |
| 381 | Day 51 Goals: what you will make by the end of the day | 05:40 |
| 382 | Day 52 Goals: what you will make by the end of the day | 03:28 |
| 383 | Day 53 Goals: what you will make by the end of the day | 06:42 |
| 384 | Understanding Backend Web Development with Python | 07:57 |
| 385 | Create your First Web Server with Flask | 12:32 |
| 386 | Understand the Command Line on Windows and Mac | 13:11 |
| 387 | __name__ and __main__ : Special Attributes built into Python | 03:59 |
| 388 | Python Functions as First Class Objects: Passing & Nesting Functions | 09:57 |
| 389 | Understanding Python Decorator Functions and the @ Syntax | 09:08 |
| 390 | Day 55 Goals: what you will make by the end of the day | 01:33 |
| 391 | Working Flask URL Paths and the Flask Debugger | 13:20 |
| 392 | Rendering HTML Elements with Flask | 06:57 |
| 393 | Challenge: Use Python Decorators to Style HTML Tags | 03:00 |
| 394 | Advanced Decorators with *args and **kwargs | 07:13 |
| 395 | Day 56 Goals: what you will make by the end of the day | 01:20 |
| 396 | Rendering HTML Files with Flask | 09:07 |
| 397 | Serving Static Files using Flask | 08:58 |
| 398 | How to Use Website Templates to Speed Up Web Development | 12:45 |
| 399 | Solution and Walkthrough for the Name Card Final Project | 07:36 |
| 400 | Day 57 Goals: what you will make by the end of the day | 01:49 |
| 401 | Using Jinja to Produce Dynamic HTML Pages | 11:32 |
| 402 | Challenge: Combining Jinja Templating with APIs | 11:54 |
| 403 | Multiline Statements with Jinja | 07:23 |
| 404 | URL Building with Flask | 04:39 |
| 405 | What is Bootstrap? | 14:37 |
| 406 | Installing Bootstrap | 07:56 |
| 407 | Web Design 101 - Wireframing | 11:39 |
| 408 | The Bootstrap Navigation Bar | 20:41 |
| 409 | What We'll Make - Tindog | 00:57 |
| 410 | Setting Up Our New Project | 07:42 |
| 411 | The Bootstrap Grid Layout System | 20:18 |
| 412 | Adding Grid Layouts to Our Website | 09:40 |
| 413 | Bootstrap Containers | 05:55 |
| 414 | Bootstrap Buttons and Font Awesome | 11:31 |
| 415 | Styling Our Website Challenges and Solutions | 20:21 |
| 416 | Solution to Bootstrap Challenge 1 | 17:02 |
| 417 | The Bootstrap Carousel Part 1 | 09:40 |
| 418 | The Bootstrap Carousel Part 2 | 17:21 |
| 419 | Bootstrap Cards | 16:33 |
| 420 | CSS Z-index and Stacking Order | 21:29 |
| 421 | Advanced CSS - Media Query Breakpoints | 22:04 |
| 422 | Solution to Bootstrap Challenge 2 | 11:47 |
| 423 | Code Refactoring | 07:49 |
| 424 | Refactor Our Website Part 1 | 19:21 |
| 425 | Advanced CSS - Combining Selectors | 11:44 |
| 426 | Refactoring Our Website Part 2 | 05:22 |
| 427 | Advanced CSS - Selector Priority | 05:52 |
| 428 | Completing the Website | 02:35 |
| 429 | Introduction to Web Design | 03:56 |
| 430 | Understanding Color Theory | 09:05 |
| 431 | Understanding Typography and How to Choose Fonts | 10:29 |
| 432 | Manage ATTENTION with effective User Interface (UI) Design | 10:28 |
| 433 | User Experience (UX) Design | 13:40 |
| 434 | Web Design in Practice - Let's apply what we've learnt! | 18:21 |
| 435 | What is REST? | 13:23 |
| 436 | HTTP PUT vs. PATCH | 01:45 |
| 437 | What is Authentication? | 03:39 |
| 438 | Encryption and Hashing | 15:20 |
| 439 | How to Hack Passwords 101 | 12:29 |
| 440 | Salting Passwords | 07:11 |
| 441 | Day 70 Goals - Learn to Deploy Your Website | 01:33 |
| 442 | Version Control and Git | 18:49 |
| 443 | What is GitHub? | 09:45 |
| 444 | Where are the Videos and the Solution Code? | 02:45 |
| 445 | Recording of our Live AMA (aka AAA - Ask Angela Anything) | 59:53 |