KPIX: Berkeley rezoning affects our businesses
# Building Permit Pipeline - Educator's Guide
## Course Overview
**Duration:** 8-12 weeks (1-2 class periods per week)
**Level:** High school (grades 9-12)
**Prerequisites:** Basic computer skills, optional: intro to Python
**Class Size:** Works for 5-30 students
## Learning Objectives
By completing this project, students will:
1. Understand their city's development approval process
2. Collect and analyze real civic data
3. Create public-facing data visualizations
4. Present findings to community stakeholders
## Week-by-Week Plan
### Week 1: Introduction to Civic Data
**Topics:** What are building permits? Why do they matter?
**Activities:**
- Visit city planning website
- Identify local development projects
- Discuss housing issues in your community
**Notebook:** `lesson_01_permits_basics.ipynb`
**Homework:** Find 3 construction projects in your neighborhood
### Week 2: Data Collection
**Topics:** Open data, APIs, CSV files
**Activities:**
- Access city's open data portal
- Download permit data
- Inspect data structure
**Notebook:** `lesson_02_data_import.ipynb`
**Homework:** Document your data source
### Week 3: Data Cleaning
**Topics:** Missing data, inconsistent formats, address standardization
**Activities:**
- Clean address fields
- Handle missing values
- Filter for housing projects
**Notebook:** `lesson_03_cleaning.ipynb`
**Homework:** Write data quality report
### Week 4: Geocoding
**Topics:** Latitude/longitude, mapping, APIs
**Activities:**
- Geocode addresses
- Validate coordinates
- Handle failed matches
**Notebook:** `lesson_04_geocoding.ipynb`
**Homework:** Research geocoding services
### Week 5: Databases
**Topics:** SQLite, database design, queries
**Activities:**
- Create database schema
- Import data
- Write basic queries
**Notebook:** `lesson_05_database.ipynb`
**Homework:** Design 3 SQL queries
### Week 6: Analysis
**Topics:** SQL aggregation, statistics, trends
**Activities:**
- Calculate total units
- Analyze by neighborhood
- Track timeline
**Notebook:** `lesson_06_analysis.ipynb`
**Homework:** Find 3 insights in the data
### Week 7: Visualization
**Topics:** Charts, maps, dashboards
**Activities:**
- Create interactive maps
- Build time-series charts
- Design dashboard layout
**Notebook:** `lesson_07_visualization.ipynb`
**Homework:** Sketch dashboard design
### Week 8: Deployment & Presentation
**Topics:** GitHub Pages, public communication
**Activities:**
- Deploy website
- Create presentation
- Invite community stakeholders
**Notebook:** `lesson_08_website.ipynb`
**Final Project:** Public presentation
## Differentiation Strategies
### For Advanced Students:
- Connect to live APIs for auto-updates
- Build predictive models
- Compare multiple cities
- Create mobile apps
### For Struggling Students:
- Use pre-cleaned sample data
- Focus on visualization over coding
- Pair programming
- Provide more structured templates
## Assessment Rubric
| Criteria | Points | Description |
|----------|--------|-------------|
| Data Collection | 20 | Successfully gathered city permit data |
| Data Quality | 20 | Cleaned and geocoded addresses |
| Analysis | 20 | Generated meaningful insights |
| Visualization | 20 | Created clear, accurate visualizations |
| Communication | 20 | Presented findings effectively |
## Community Partnership Opportunities
1. **City Planning Department**
- Guest speakers
- Data access assistance
- Feedback on findings
2. **Local News Organizations**
- Data journalism mentorship
- Publish student work
- Career connections
3. **Housing Advocacy Groups**
- Context on housing issues
- Use student data for advocacy
- Service learning hours
4. **Tech Companies**
- Mentor volunteers
- Code review
- Internship opportunities
## Common Challenges & Solutions
### Challenge: City data is hard to access
**Solution:** Start with `data_sources_by_state.md`, contact city directly, use FOIA requests
### Challenge: Students have varying Python skills
**Solution:** Use pair programming, provide scaffolded notebooks, offer office hours
### Challenge: Geocoding fails for many addresses
**Solution:** Use address normalization scripts, manual lookup for key projects, accept imperfection
### Challenge: Project feels too big
**Solution:** Start small (just one neighborhood), iterate and expand, celebrate small wins
## Extensions & Next Steps
After completing the basic project:
- **Track progress over time** (monthly updates)
- **Add inspection data** (construction progress)
- **Compare proposals vs completions** (accountability)
- **Build predictive models** (forecast housing production)
- **Analyze demographic impacts** (who benefits?)
- **Create policy recommendations** (present to city council)
## Resources
- [Video Tutorial Series](#)
- [Teacher Discord Community](#)
- [Sample Lesson Plans](#)
- [Grant Opportunities](#)
## Support
Questions? Email: education@buildingpermitpipeline.org
Slack: #educators-channel
Office Hours: Fridays 3-4pm PT
## Week 1: Setup
- [ ] Clone GitHub repository
- [ ] Review all lesson notebooks
- [ ] Test on your computer
- [ ] Identify your city's data source
- [ ] Customize city configuration
## Week 2: Preparation
- [ ] Print STUDENT_GUIDE for class
- [ ] Set up class GitHub organization
- [ ] Contact city planning department
- [ ] Create assessment rubric
- [ ] Recruit guest speakers
## Week 3: Launch
- [ ] Introduce project to students
- [ ] Form teams (optional)
- [ ] Complete Lesson 01 together
- [ ] Assign homework
- [ ] Set up office hours