Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:01:52 +08:00
commit 9daed3091f
21 changed files with 2964 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
# Data Science Teaching Principles
General pedagogical principles for teaching data science, machine learning, AI, and MLOps.
## Core Teaching Philosophy
### 1. Hands-On Learning
Data science is learned by doing, not just reading:
- Provide working code examples
- Encourage experimentation and iteration
- Use real or realistic datasets
- Build confidence through successful execution
- Learn from errors and debugging
### 2. Visual Learning
Leverage visualizations to build intuition:
- Plot data before analyzing
- Visualize model behavior
- Show distributions and patterns
- Use interactive plots when possible
- Make abstract concepts concrete through visuals
### 3. Incremental Complexity
Build understanding step by step:
- Start with simple, concrete examples
- Introduce one concept at a time
- Build on previously learned material
- Avoid overwhelming with too many details upfront
- Progress from intuition to theory
### 4. Theory Meets Practice
Balance conceptual understanding with application:
- Explain why, not just how
- Connect math to code implementation
- Show real-world applications
- Validate theoretical concepts through code
- Make abstract concepts tangible
### 5. Active Learning
Engage students in the learning process:
- Include practice problems
- Design checkpoints for self-assessment
- Encourage exploration and "what if" questions
- Provide opportunities for discovery
- Foster experimentation
## Content Structure Guidelines
### For Chapters
1. **Start with motivation** - Why does this topic matter?
2. **Provide intuition** - Concrete examples before formalism
3. **Introduce concepts incrementally** - One idea at a time
4. **Show, don't just tell** - Working examples with code
5. **Practice and validate** - Exercises to reinforce learning
6. **Summarize and connect** - Key takeaways and next steps
### For Assessments
1. **Test understanding, not memorization** - Focus on concepts
2. **Include application problems** - Not just recall
3. **Mix question types** - Theory, code, interpretation
4. **Provide partial credit opportunities** - Show reasoning
5. **Include real-world scenarios** - Make it relevant
### For Notebooks
1. **Clear learning objectives** - What will students learn?
2. **Executable from top to bottom** - No hidden dependencies
3. **Mix explanation and code** - Interleave markdown and code cells
4. **Include validation** - Help students check their work
5. **Encourage exploration** - Provide extension opportunities
### For Slides
1. **One main idea per slide** - Don't overwhelm
2. **Visual over text** - Use diagrams and examples
3. **Live coding when possible** - Show the process
4. **Build complexity gradually** - Layer concepts
5. **Include discussion prompts** - Engage the audience
## Level Differentiation
### Undergraduate Students
- Assume less mathematical background
- Start with concrete before abstract
- Provide more scaffolding and structure
- Focus on intuition and practical application
- Use relatable, accessible examples
- Emphasize building confidence
### Graduate Students
- Can handle more mathematical rigor
- Expect understanding of prerequisites
- Include theoretical foundations
- Balance theory with implementation
- Use research and industry examples
- Encourage independence and depth
## Tool and Library Guidance
### Choosing the Right Tool
- **Beginners**: Start with high-level libraries (pandas, sklearn)
- **Intermediate**: Introduce lower-level concepts (numpy operations)
- **Advanced**: Implement from scratch to understand internals
### Code Quality
- Write clean, readable code
- Include comments explaining non-obvious parts
- Follow conventions (PEP 8 for Python)
- Show both "quick and dirty" and "production-quality" approaches when relevant
- Emphasize reproducibility
## Common Pitfalls to Avoid
1. **Math before intuition** - Build understanding first
2. **Too much at once** - Break down complex topics
3. **Passive learning** - Always include active elements
4. **Disconnected theory** - Link concepts to practice
5. **Ignoring prerequisites** - Know your audience
6. **One-size-fits-all** - Adapt to student level
7. **No real-world context** - Show why it matters