Skip to content

Repository files navigation

Python Essentials - Interactive Curriculum

Enhanced curriculum for the Returned Citizen community by StrayDog Syndications LLC

License: MIT Python 3.8+ Live Deployment PRs Welcome


Table of Contents


Overview

The Python Essentials curriculum is an enhanced, production-ready educational platform that takes students from Python fundamentals through advanced data engineering, web development, and machine learning concepts. This comprehensive program was enhanced and deployed by StrayDog Syndications LLC specifically for the Returned Citizen community.

Mission

Our mission is to bridge the "Digital Cliff" for justice-impacted learners through accessible, career-aligned education that empowers the next generation of Python programmers.

Like-Minded Affiliates

We're proud to collaborate with organizations that share our commitment to creating second-chance opportunities through technology:

Together, we're building a future where everyone has access to opportunity.

Key Principles

  • Progressive Learning: Step-by-step skill building with clear learning objectives
  • Real-World Applications: Practical examples from industry use cases
  • Interactive Experience: Premium HTML lessons with progress tracking and modern design
  • Best Practices: Pythonic code patterns and professional development workflows
  • Inclusive Design: Accessible materials for learners from diverse backgrounds
  • Community Focus: Built with care for those re-entering the workforce

Course Structure

11-Week Intensive Program

Week Topic Focus Areas Key Technologies
1 Introduction to Python Environment setup, variables, control flow, functions, debugging Python, VS Code, Git
2 Data Structures & File Handling Lists, dictionaries, tuples, sets, CSV/text files, modules Python stdlib, csv, pathlib
3 Advanced Python Skills OOP, decorators, comprehensions, closures Classes, @decorators
4 Data Engineering Fundamentals Pandas basics, Series, DataFrames, ETL patterns pandas, numpy
5 Data Visualization Matplotlib, Seaborn, interactive plots matplotlib, seaborn
6 SQL & Databases SQL syntax, queries, database integration SQLite, sqlite3
7 APIs & Web Scraping REST APIs, HTTP requests, HTML parsing requests, BeautifulSoup
8 Advanced Pandas Merging, groupby, pivot tables, time series pandas (advanced)
9 Introduction to Machine Learning Supervised learning, model evaluation, scikit-learn scikit-learn, ML basics
10 Flask Web Development Routes, templates, forms, sessions Flask, Jinja2, web fundamentals
11 Deployment & DevOps Environment variables, Docker, production servers Docker, gunicorn, CI/CD

Interactive Lesson Plans

NEW: Premium HTML Lesson Experience

Each week features a beautifully designed, interactive HTML lesson with:

  • Retro Gaming Aesthetic - Dark theme with cyberpunk-inspired design
  • Glassmorphic Navbar - Sticky navigation with frosted glass effect and dropdown menus
  • Live Progress Tracking - Visual XP bar and topic completion markers
  • Syntax-Highlighted Code - Color-coded examples with skill level badges
  • Progressive Examples - From bad practice β†’ novice β†’ intermediate β†’ best practice
  • Responsive Design - Works seamlessly on desktop, tablet, and mobile
  • Smart Navigation - Global navbar + sidebar with instant topic jumping
  • Educational Boxes - Tips, warnings, explanations, and best practices

Access Lessons: Open any .html file in the lesson-plans/ directory in your web browser.

# Example: Open Week 2 lesson
open lesson-plans/lesson_week2_data_structures.html  # macOS
start lesson-plans\lesson_week2_data_structures.html  # Windows
xdg-open lesson-plans/lesson_week2_data_structures.html  # Linux

Key Features

For Students

  • Self-Paced Learning: Progress at your own speed with clear milestones
  • Hands-On Practice: Jupyter notebooks with executable code cells
  • Real Code Examples: Industry-standard patterns and anti-patterns
  • Immediate Feedback: Interactive exercises with solution examples
  • Career-Ready Skills: Technologies used in professional development

For Educators

  • Instructor Guides: Detailed teaching notes and answer keys
  • Flexible Curriculum: Modular lessons adaptable to different schedules
  • Assessment Materials: Weekly assignments with automated test suites
  • Group Activities: Collaborative exercises designed for pair programming
  • Mentorship Resources: Guidelines for 1:1 student support

Technical Highlights

  • Version Controlled: Full Git integration for collaborative development
  • Test-Driven Development: PyTest-based assignment validation
  • Modern Tooling: VS Code, virtual environments, pip package management
  • Cloud-Ready: Docker containerization and deployment strategies
  • Industry Standards: PEP 8 style guide, type hints, documentation

Prerequisites

Required Skills

  • Basic computer literacy (file management, web browsing)
  • Willingness to learn and problem-solve
  • No prior programming experience needed!

Technical Requirements

  • Operating System: Windows 10+, macOS 10.14+, or Linux (Ubuntu 20.04+)
  • Python: Version 3.8 or higher
  • Code Editor: VS Code (recommended) or any text editor
  • Web Browser: Modern browser (Chrome, Firefox, Safari, Edge)
  • Internet: For package installation and resource access

Getting Started

1. Clone the Repository

git clone https://github.com/StrayDogSyn/Python-Essentials-Code-The-Dream.git
cd Python-Essentials-Code-The-Dream

2. Set Up Python Environment

# Create virtual environment
python -m venv venv

# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# Install dependencies
pip install -r python-essentials-v2/requirements.txt

3. Verify Installation

python --version  # Should be 3.8+
jupyter --version  # Verify Jupyter is installed

4. Launch Your First Lesson

Option A: Interactive HTML Lesson

# Open in browser
open lesson-plans/lesson_week1_intro_python.html

Option B: Jupyter Notebook

# Start Jupyter
jupyter notebook

# Navigate to:
# python-essentials-v2/sessions/week1/session1_intro_to_python.ipynb

πŸ“ Repository Structure

Python-Essentials-Code-The-Dream/
β”œβ”€β”€ index.html                       # Main curriculum hub with progress tracking
β”‚
β”œβ”€β”€ lesson-plans/                    # Interactive HTML lessons
β”‚   β”œβ”€β”€ lesson_week1_intro_python.html
β”‚   β”œβ”€β”€ lesson_week2_data_structures.html
β”‚   β”œβ”€β”€ lesson_week3_python_skills.html
β”‚   β”œβ”€β”€ lesson_week4_data_engineering.html
β”‚   β”œβ”€β”€ lesson_week5_data_wrangling.html
β”‚   β”œβ”€β”€ lesson_week6_data_cleaning.html
β”‚   β”œβ”€β”€ lesson_week7_advanced_cleaning.html
β”‚   β”œβ”€β”€ lesson_week8_databases_sql.html
β”‚   β”œβ”€β”€ lesson_week9_intro_ml.html
β”‚   β”œβ”€β”€ lesson_week10_flask_web.html
β”‚   β”œβ”€β”€ lesson_week11_deployment.html
β”‚   └── supplemental_*.html          # 4 supplemental topic lessons
β”‚
β”œβ”€β”€ notebook-sessions/               # Jupyter notebooks organized by week
β”‚   β”œβ”€β”€ week1/ ... week11/           # Session notebooks + group exercises
β”‚   └── week*/week*_data/            # Supporting data files
β”‚
β”œβ”€β”€ python-essentials-v2/            # Core curriculum materials
β”‚   β”œβ”€β”€ lessons/                     # Markdown lesson content (11 weeks)
β”‚   β”œβ”€β”€ assignments/                 # Weekly homework with test suites
β”‚   β”œβ”€β”€ instructor_guides/           # Detailed facilitation notes
β”‚   β”œβ”€β”€ instructor-materials/        # Teaching guides and solutions
β”‚   β”œβ”€β”€ mentor-guidebook/            # 1:1 mentorship resources
β”‚   └── learning-objectives/         # Weekly learning goals
β”‚
β”œβ”€β”€ assets/                          # Shared styles, scripts, and branding
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”œβ”€β”€ curriculum.css           # Base theme and components
β”‚   β”‚   β”œβ”€β”€ branding.css             # StrayDog branding styles
β”‚   β”‚   └── navbar.css               # Glassmorphic sticky navbar
β”‚   β”œβ”€β”€ js/
β”‚   β”‚   β”œβ”€β”€ navigation.js            # Section navigation
β”‚   β”‚   β”œβ”€β”€ progress.js              # Reading progress indicator
β”‚   β”‚   β”œβ”€β”€ code-runner.js           # Interactive code examples
β”‚   β”‚   β”œβ”€β”€ branding.js              # Branding module
β”‚   β”‚   └── navbar.js                # Global navigation component
β”‚   └── brands/                      # StrayDog logos and favicon
β”‚
β”œβ”€β”€ scripts/                         # Maintenance and automation scripts
β”‚   β”œβ”€β”€ fix_notebooks.py             # Notebook maintenance utility
β”‚   β”œβ”€β”€ validate_notebooks.py        # Notebook validation
β”‚   └── apply_branding_to_lessons.py # Branding automation
β”‚
β”œβ”€β”€ docs/                            # Project documentation
β”‚   β”œβ”€β”€ START_HERE.md                # Quick start guide
β”‚   β”œβ”€β”€ AGENTS_SYSTEM_GUIDE.md       # AI agent workflow guide
β”‚   └── *.md                         # Additional guides and summaries
β”‚
β”œβ”€β”€ CONTRIBUTING.md                  # Contribution guidelines
β”œβ”€β”€ LICENSE                          # MIT License
└── README.md                        # This file

For Educators

Teaching Workflow

  1. Pre-Session Prep

    • Review instructor_guides/weekN_instructor_guide.md
    • Test code examples in session notebooks
    • Prepare supplementary materials or real-world examples
  2. Live Session

    • Use sessions/weekN/session1_*.ipynb for demonstration
    • Facilitate group work with session2_*_group.ipynb
    • Reference HTML lesson for visual aids and progressive examples
  3. Assignment Review

    • Students complete assignments from assignments/
    • Automated tests validate core functionality
    • Review code quality and provide personalized feedback
  4. Mentorship

    • Use mentor-guidebook/ resources for 1:1 support
    • Track student progress through assignment completion
    • Address individual learning gaps

Customization Tips

  • Adjust Pacing: Lessons are modularβ€”extend or compress as needed
  • Add Examples: Incorporate industry examples relevant to your students
  • Modify Assignments: Adapt difficulty based on cohort skill level
  • Create Branches: Use Git branches for cohort-specific modifications

For Students

Weekly Learning Cycle

Monday-Tuesday: Learn

  • Read lesson materials (lessons/ directory)
  • Complete interactive HTML lesson (lesson-plans/)
  • Practice with Jupyter notebooks (sessions/)

Wednesday-Thursday: Practice

  • Work through weekly assignment (assignments/)
  • Run automated tests: pytest -v
  • Debug and refine your code

Friday: Collaborate

  • Attend group session
  • Pair program with peers
  • Ask questions and share insights

πŸ”„ Weekend: Review

  • Revisit challenging concepts
  • Explore additional resources
  • Prepare for next week

Getting Help

  1. Self-Service

    • Review HTML lesson's "Explanation Boxes" and "Common Pitfalls"
    • Check mentor-guidebook/assignment-solution-examples/
    • Search error messages in lesson cheat sheets
  2. Peer Support

    • Slack discussion channels
    • Study groups and pair programming
    • Code review exchanges
  3. Mentorship

    • Schedule 1:1 mentor sessions
    • Office hours with instructors
    • Detailed code feedback on assignments

Contributing

We welcome contributions from educators, students, and the developer community!

Quick Start for Contributors

  1. Read the Guidelines: Check CONTRIBUTING.md for detailed instructions
  2. Fork the Repository: Create your own copy to work on
  3. Make Your Changes: Follow our style guides and best practices
  4. Submit a Pull Request: We'll review and provide feedback

See our comprehensive Contributing Guide for:

  • Code of conduct
  • Development workflow
  • Style guides (Python, Markdown, HTML)
  • Review process
  • Recognition and community

How to Contribute

  1. Fork the Repository

    # Click "Fork" on GitHub, then clone your fork
    git clone https://github.com/YOUR_USERNAME/CTD.git
  2. Create a Feature Branch

    git checkout -b feature/improved-week5-examples
  3. Make Your Changes

    • Add new examples or exercises
    • Fix typos or clarify explanations
    • Update outdated package versions
    • Improve HTML lesson design
  4. Test Your Changes

    # Validate notebooks
    python validate_notebooks.py
    
    # Test example code
    python -m pytest
  5. Submit a Pull Request

    • Write clear commit messages
    • Describe your changes in PR description
    • Link related issues

Contribution Guidelines

  • Code Style: Follow PEP 8 for Python code
  • Documentation: Update README/guides when changing structure
  • Examples: Ensure all code examples are tested and executable
  • Accessibility: Maintain inclusive language and design
  • Licenses: Only contribute content you have rights to share

Areas for Contribution

  • πŸ› Bug fixes in code examples
  • πŸ“ Additional practice problems
  • 🌐 Translations to other languages
  • 🎨 UI/UX improvements for HTML lessons
  • Data visualization examples
  • πŸ§ͺ Additional test cases
  • πŸ“š Supplementary learning resources

Live Deployment

Access the interactive curriculum online:

Live Site: https://straydogsyn.github.io/Python-Essentials-Code-The-Dream/

The complete Python Essentials curriculum is live on GitHub Pages! Access all 11 weeks of interactive lessons, progress tracking, and hands-on exercises from any device, anywhere. No installation requiredβ€”just click and start learning!


πŸ”„ Continuous Integration

This repository uses GitHub Actions for automated quality assurance:

  • Python Tests: Automated testing across Python 3.8-3.11
  • πŸ“ Code Linting: Style validation with flake8 and black
  • πŸ““ Notebook Validation: Jupyter notebook integrity checks
  • πŸš€ Auto-Deployment: GitHub Pages updates on every push

View build status and test results in the Actions tab.


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

What this means:

  • Free to use for educational purposes
  • Modify and adapt for your classroom
  • Share with students and colleagues
  • Attribution appreciated but not required
  • No warranty provided

πŸ™ Acknowledgments


Branding Module

Files: assets/css/branding.css, assets/js/branding.js

  • Footer credits: β€œCreated with care by StrayDog” (link to StrayDog site)
  • Corner logos with alt text from assets/brands/
  • GitHub links: https://github.com/StrayDogSyn, https://github.com/miasmith81
  • Favicon injection: assets/brands/favicon-straydog.png
  • Discreet watermark on select pages (index.html, community-partners.html)
  • Supported badge on homepage

Usage: include CSS + JS on pages. JS automatically injects favicon and branded footer without altering existing layouts.

A/B Testing

  • Variant assignment: random A/B or via ?variant=A|B
  • Metrics (localStorage): clicks on start lesson, notebook, complete buttons; max scroll depth
  • Keys: sd-ab-variant, sd-ab-metrics
  • Variant B sets data-branding="minimal" on <html> for future conditional styling

Community Partners Page

  • community-partners.html highlights Returned Citizen community and Code the Dream students
  • Uses existing lesson styles and the watermark effect

Accessibility & Performance

  • Alt text on all logos/icons
  • Responsive across device sizes
  • Minimal footprint: small PNGs, lightweight CSS/JS

Enhanced and Deployed By

StrayDog Syndications LLC

This enhanced curriculum features:

  • Premium interactive HTML lesson platform with modern design
  • Integrated progress tracking and achievement system
  • Responsive, accessible interface optimized for all learners
  • Professional branding and deployment architecture
  • Comprehensive automation scripts for maintenance

For the Community

Specially enhanced for the Returned Citizen community and Code the Dream students. Code the Dream is a nonprofit organization providing free, high-quality technical training to people from diverse backgrounds who aspire to become professional programmers.

Contributors

  • Original Curriculum: Code the Dream educators and lesson authors
  • Enhancement Team: StrayDog Syndications LLC
  • Technical Reviewers: Industry professionals providing feedback

Contact & Support


Enhanced curriculum for the Returned Citizen community by StrayDog Syndications LLC

Bridging the Digital Cliff through accessible, career-aligned education

In collaboration with like-minded affiliates

⬆ Back to Top

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages