-
Introduction to the Course
- Course overview
- Setting expectations
-
Variables and Printing
- Basics of variables
- Printing in Python
- Calculating the remainder of a division
- Exercise: Variables and numbers
- Solution: Variables and numbers
-
Python Strings and Formatting
- Working with strings
- String formatting
- Getting user input
- Exercise: Communicating with users
- Solution: Communicating with users
-
Booleans and Comparisons
- Understanding booleans
- Logical operators (
and
andor
) - Comparisons in Python
- Exercise: Nearby friends
- Solution: Nearby friends
-
Lists, Tuples, and Sets
- Introduction to lists
- Tuples and sets in Python
- Advanced set operations
- Exercise: Working with dictionaries
- Solution: Working with dictionaries
-
Python Dictionaries
- Overview of dictionaries
- Length and sum operations
- Exercise: Dictionaries
- Solution: Dictionaries
- Joining a list
- Conclusion and Python Fundamentals Cheatsheet
-
If Statements in Python
- Introduction to conditional statements
- Handling multiple conditions
- Exercise: Simple text menu
- Solution: Simple text menu
-
Loops in Python
- While loops
- For loops
- Break and continue statements
- List slicing and comprehension
- Exercise: FizzBuzz
- Solution: FizzBuzz
-
Advanced Loop Concepts
- The
else
keyword with loops - Finding prime numbers with loops
- List comprehension and slicing
- Functions in Python
- Introduction to arguments and parameters
- Return values and default parameters
- Lambda functions and first-class functions
- Advanced functions in Python
- The
-
Setting Up Python Environment
- Installing Python
- Setting up PyCharm
- Creating a PyCharm project
-
Introduction to OOP with Python
- Basics of OOP
- Exercise: Your first Python class
- Solution: Your first Python class
-
Advanced OOP Concepts
- More about classes and objects
- Inheritance and decorators
- Magic methods in Python
- Exercise: Magic methods in Python
- Solution: Magic methods in Python
- @classmethod and @staticmethod
- More examples of @classmethod and @staticmethod
-
Intro to Errors in Python
- Understanding errors
- Built-in errors in Python
- Raising and handling errors
- Exercise: Raising an error
- Solution: Raising an error
-
Dealing with Python Errors
- Creating custom errors
- Handling errors with try-except-finally
- Debugging with PyCharm
- Advanced error handling in Python
-
File Operations in Python
- Working with files
- Copying files and building a quiz system
- CSV files and using the csv module
- JSON files and a CSV to JSON converter
- Using the
with
syntax in Python - Importing modules and relative imports
- Exercise: Importing modules
- Solution: Importing modules
-
Milestone Project 1
- Overview and implementation
- Introduction to databases with SQLite
- Creating a table and inserting data
- SELECT, UPDATE, DELETE operations
- Filtering data with WHERE clause
- Finishing the Milestone Project
-
Typing in Python
- Understanding type hints
- Using type hints in Python
-
Generators in Python
- Introduction to generators
- Exercise: Prime number generator
- Solution: Prime number generator
- Generator classes and iterators
- Coding a generator class
- Iterables and functions like
filter
andmap
- Section review and further exploration
-
Mutability in Python
- Understanding mutability
- Argument mutability
- Default values and argument unpacking
- Queues and interesting Python collections
- Exercise: Python collections
- Solution: Python collections
-
Dates, Times, and Regular Expressions
- Working with timezones
- Dates and time in Python
- Timing code execution
- Introduction to regular expressions
- Examples and usage of regex in Python
- Exercise: Secure file names using regex
- Solution: Secure file names using regex
- Introduction to logging in Python
- Higher-order functions and itertools module
-
HTML Parsing with BeautifulSoup
- Understanding HTML structure
- Parsing HTML with BeautifulSoup
- Structuring parsing programs
- Scraping a website with Python
-
Milestone Project 2
- Overview and implementation
- Storing data in files
- Using JSON for data storage
- Extracting data from websites
- Exercise: Web scraping project
- Solution: Web scraping project
-
Introduction to APIs and REST
- Overview of APIs
- Working with REST APIs
- Making API requests with requests module
- Exercise: Working with APIs
- Solution: Working with APIs
- Introduction to Web Development with Flask
- Setting up Flask and creating a basic route
-
Flask Basics and Templates
- Introduction to Flask
- Setting up a basic Flask app
- Flask templates and template inheritance
- Exercise: Flask templates
- Solution: Flask templates
- Flask routing and redirecting
- Serving static files and creating links
- Using Bootstrap for styling
-
Database Setup and Flask-SQLAlchemy
- Introduction to databases in web development
- Setting up Flask-SQLAlchemy
- Creating models and tables
- Database relationships
- Adding records and querying the database
-
Flask Web Forms and User Authentication
- Introduction to web forms
- Setting up Flask-WTF
- Flask form handling and CSRF protection
- User authentication with Flask-Login
- Adding user authentication to the Flask app
- Role-based access control (RBAC)
- Customizing Flask-Login
- Logging out and restricting views
-
Adding AJAX to Flask Application
- Overview of AJAX
- Adding AJAX to a Flask application
- Handling JSON data in Flask
- Incorporating AJAX into Flask web forms
- Dynamic content loading with AJAX
- Exercise: Flask web forms with AJAX
- Solution: Flask web forms with AJAX
-
Deploying Flask Applications
- Deployment options for Flask
- Deploying a Flask app on Heroku
- Containerizing a Flask app with Docker
- Running Flask app in a container
- Exercise: Flask app deployment
- Solution: Flask app deployment
-
Advanced Flask Topics
- Flask extensions for different functionalities
- Blueprinting and structuring larger applications
- Testing Flask applications
- Test-driven development (TDD)
- Continuous Integration (CI) with GitHub Actions
- Setting up Tkinter
- Installing and configuring Tkinter
- Creating a basic Tkinter application
- Using labels, fields, and frames
- Starting a text editor project
- Adding menus, saving, and opening files
-
Introduction to Software Testing
- Basics of testing functions and classes
- Testing for errors and multiplication functions
- Writing tests for classes and external libraries
-
Algorithms and Big-O Notation
- Overview of algorithms and complexity
- Binary search and binary trees
- Traversal and insertion in binary trees
- Deleting nodes and testing the binary tree
- Overview of Python Libraries
- Introduction to popular Python libraries
- Using pylint and yapf for code formatting
- Sending emails with smtplib and Mailgun
- Creating reusable Mailgun library
- Overview of IDE setup
- Recap and Thank You
- Summary of the course
- Thank you for taking the course
- Further reading and resources