Curriculum
Overview
A hands-on introductory course to learning all there is to know about the tools, tech stack and language you'll need to build real, working web applications as a developer.
This Python and Web Development Curriculum, is the official curriculum of the Python User Group Ho, spanning over Six-Weeks - is a detailed approach and designed to make it easy to create web applications using Python and Django.
Week 1: Python Basics
Variables, data types, operators
Control flow (if statements, loops)
Functions
Object-oriented programming (OOP) concepts
Resources
Week 2: Git, GitHub, and Intro to Django
Git and GitHub Basics
Version control concepts
Git commands (clone, add, commit, push, pull)
GitHub account setup and repository creation
Resources
Python in Web Development
Introduction to Web Development Concepts
HTML, CSS, JavaScript basics
Enhancing interactivity with HTMX
Using PyScript to run Python in the browser
Intro to Django Web Framework
Installation and setup
Project structure
Models, Views, Templates (MVC)
Basic routing and Views
Project
- Build a basic homepage website using Django Girls tutorial
HTMX
Introduction to HTMX and how it works with HTML
Enhancing user experience with server-driven interactivity
Adding dynamic behavior without JavaScript
PyScript
Overview of PyScript
Writing and embedding Python directly in web pages
Use cases and limitations of PyScript
Resources
Project
- Create an interactive to-do list using Django and HTMX.
- Develop a simple Python-based calculator embedded into a web page using PyScript.
Week 3: API Development and Backend Prototyping
Python in API Development
API concepts (RESTful APIs)
Building APIs in Python (using DRF)
Comparing Flask and Django
Key features and differences
Framework selection considerations
A Look at FastAPI
Introduction to FastAPI
Features and benefits
A Look at Databases
SQL and MySQL basics
MySQL database setup and interaction
Project
- Build a basic API backend application:
- To-do list API (Flask)
- Weather data API (Flask)
Week 4: Testing, Debugging, and Team Collaboration
Testing and Debugging
Writing test cases using `unittest` and `pytest`
Mocking and patching external dependencies with `unittest.mock`
Debugging with Python's built-in `pdb` debugger
Using logging for effective debugging and issue tracking
Automating tests with CI/CD tools like GitHub Actions
Resources
Collaboration and Team Workflow
Using Git branches for feature development
Pull requests for code review and collaboration
Setting up GitHub Projects for task tracking
Agile principles and practices in development
Code review and pair programming best practices
Continuous Integration/Delivery (CI/CD) with GitHub Actions
Resources
Project
- Write unit and integration tests for an existing API or web application.
- Use GitHub Projects to organize a team sprint: create branches for features, submit pull requests, and review code collaboratively.
Week 5: Leadership and Mentorship
Topics Covered
Public speaking tips for tech
How to contribute to open source (Python/Django focus)
Career development advice from industry experts
Activities
Participate in mock speaking sessions
Guided contributions to open-source projects
Week 6: Advanced Projects and Wrap-Up
Advanced Topics
Deploying Python applications to the cloud
CI/CD pipelines with Python and GitHub Actions
Exploring Python in Data Science (Pandas, Matplotlib)
Project
- Full-stack web application with API integration
- Python automation tools for real-world problems
Final Presentations
- Each participant presents their project
- Peer review and feedback session
Notes
- Participants will work on individual or group projects each week.
- Resources and cheat sheets are provided for guided learning.