Collaborating with GitHub
Sharing Code and Working with Others
In the previous unit, we learned to track changes locally with Git. Now let's connect to GitHub for backup, sharing, and collaboration.

Sharing Code and Working with Others
In the previous unit, we learned to track changes locally with Git. Now let's connect to GitHub for backup, sharing, and collaboration.

Tracking Changes to Your Code
In the previous unit, we learned to write tests. Now let's learn how to track changes to our code using Git, so we can safely experiment, undo mistakes, and keep a history of our work.

Writing Unit Tests with pytest
In the previous unit, we learned to debug and handle errors. Now let's write tests that verify our code works correctly before problems arise.

Finding Bugs and Handling Exceptions
In the previous unit, we worked with JSON data. Now let's learn how to find and fix bugs, and how to handle errors gracefully when they occur.

Reading and Writing Structured Data
In the previous unit, we learned to fetch data from APIs. Now let's understand JSON, the format that powers most of those API responses.

Fetching Data from Web Services
In the previous unit, we explored Python's standard library. Now let's learn how to fetch data from the web using APIs.

Built-in Modules You Already Have
In the previous unit, we learned how to create packages and install external libraries. Now let's explore modules that come built into Python, ready to use without installing anything.

Organizing Modules and Using External Code
In the previous unit, we learned to create modules. Now let's organize multiple modules into packages and explore how to use libraries from the Python community.

Organizing Code into Reusable Files
In the previous unit, we explored recursion. Now let's learn how to organize code into modules, separate files that you can import and reuse across projects.

Functions That Call Themselves
In the previous unit, we finished our exploration of OOP. Now let's look at recursion, a technique where a function calls itself to solve a problem.
