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

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.