Enhanced curriculum for the Returned Citizen community by StrayDog Syndications LLC
- Overview
- Course Structure
- Interactive Lesson Plans
- Key Features
- Prerequisites
- Getting Started
- Repository Structure
- For Educators
- For Students
- Contributing
- License
- Acknowledgments
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.
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.
We're proud to collaborate with organizations that share our commitment to creating second-chance opportunities through technology:
- The Last Mile - Technology training and education for incarcerated individuals
- Justice Through Code - Columbia University's coding bootcamp for formerly incarcerated individuals
- Code the Dream - Free software development training for people from diverse low-income backgrounds
- Reentry Campus Program - Affordable pathways to post-secondary education for incarcerated individuals
- The Second Story Initiative - Transforming lives through education and opportunity
Together, we're building a future where everyone has access to opportunity.
- 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
| 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 |
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- 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
- 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
- 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
- Basic computer literacy (file management, web browsing)
- Willingness to learn and problem-solve
- No prior programming experience needed!
- 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
git clone https://github.com/StrayDogSyn/Python-Essentials-Code-The-Dream.git
cd Python-Essentials-Code-The-Dream# 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.txtpython --version # Should be 3.8+
jupyter --version # Verify Jupyter is installedOption A: Interactive HTML Lesson
# Open in browser
open lesson-plans/lesson_week1_intro_python.htmlOption B: Jupyter Notebook
# Start Jupyter
jupyter notebook
# Navigate to:
# python-essentials-v2/sessions/week1/session1_intro_to_python.ipynbPython-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
-
Pre-Session Prep
- Review
instructor_guides/weekN_instructor_guide.md - Test code examples in session notebooks
- Prepare supplementary materials or real-world examples
- Review
-
Live Session
- Use
sessions/weekN/session1_*.ipynbfor demonstration - Facilitate group work with
session2_*_group.ipynb - Reference HTML lesson for visual aids and progressive examples
- Use
-
Assignment Review
- Students complete assignments from
assignments/ - Automated tests validate core functionality
- Review code quality and provide personalized feedback
- Students complete assignments from
-
Mentorship
- Use
mentor-guidebook/resources for 1:1 support - Track student progress through assignment completion
- Address individual learning gaps
- Use
- 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
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
-
Self-Service
- Review HTML lesson's "Explanation Boxes" and "Common Pitfalls"
- Check
mentor-guidebook/assignment-solution-examples/ - Search error messages in lesson cheat sheets
-
Peer Support
- Slack discussion channels
- Study groups and pair programming
- Code review exchanges
-
Mentorship
- Schedule 1:1 mentor sessions
- Office hours with instructors
- Detailed code feedback on assignments
We welcome contributions from educators, students, and the developer community!
- Read the Guidelines: Check CONTRIBUTING.md for detailed instructions
- Fork the Repository: Create your own copy to work on
- Make Your Changes: Follow our style guides and best practices
- 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
-
Fork the Repository
# Click "Fork" on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/CTD.git -
Create a Feature Branch
git checkout -b feature/improved-week5-examples
-
Make Your Changes
- Add new examples or exercises
- Fix typos or clarify explanations
- Update outdated package versions
- Improve HTML lesson design
-
Test Your Changes
# Validate notebooks python validate_notebooks.py # Test example code python -m pytest
-
Submit a Pull Request
- Write clear commit messages
- Describe your changes in PR description
- Link related issues
- 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
- π 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
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!
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.
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
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.
- 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.htmlhighlights Returned Citizen community and Code the Dream students- Uses existing lesson styles and the watermark effect
- Alt text on all logos/icons
- Responsive across device sizes
- Minimal footprint: small PNGs, lightweight CSS/JS
- Eric 'Hunter' Petross - Lead Developer & Curriculum Enhancement
- Mia 'Mausi' Smith-Petross - Co-Developer & Platform Design
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
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.
- Original Curriculum: Code the Dream educators and lesson authors
- Enhancement Team: StrayDog Syndications LLC
- Technical Reviewers: Industry professionals providing feedback
- Repository: Python-Essentials-Code-The-Dream
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- StrayDog Syndications LLC: www.straydog-syndications-llc.com
- The Second Story Initiative: www.straydog-secondstory.org
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