Monday 11:50 a.m.–12:15 p.m.

The D is Silent: Challenges in Teaching Django

Caleb Smith

Audience level:



This talk will examine design decisions in Django and their effects on Django instruction. This will include a discussion of the trade-offs of "Explicit is better than implicit" and "Configuration over convention" and a comparison with the design of some other web frameworks. We will conclude by discussing how Django's design pairs well with certain theories of learning.


  1. What are Django's important design decisions?
    • Maximizes for the 90% case, but allows for uncommon cases
    • Batteries included
    • Emphasis on documentation and testing
    • "Configuration over convention" and "Explicit is better than implicit"
  2. What are the benefits of each choice?
    • Good high-level documentation
    • Easy access to quality libraries
    • An invitation to explore.
  3. What challenges are a consequence of these choices.
    • Do I need all of Django?
    • What is Django and what is Python?
    • The mixed bag of "Configuration over convention"
  4. What does Flask do differently?
  5. How does Ruby on Rails differ and which parts are harder or easier to teach.
  6. Common mistakes when teaching Django
  7. How Django lends itself well to a Constructivist teaching approach, especially Jerome Bruner's "Spiral Curriculum".