DEV Community

Teaching Python

Episode 47: Deconstructing the List Lesson

Let’s take a deeper look at how we teach students about one of Python’s most venerable data structures: the list. For many learners, the list is the first data structure that they encounter and it can be tricky to understand at first.

Episode Outline:

  1. Start with clear goals for topic
    1. Why are we teaching this?
    2. Backwards by design process
      1. What do we want the kids to do?
      2. What should students know when we’re done?
        1. Are the objectives differentiated?
        2. Can students demonstrate more advanced understanding according to Bloom’s Taxonomy?
        3. Where do they go next?
      3. What do students need to know before we start?
  2. Introducing the List
    1. Mathes’ : cheat sheet https://t.co/KZdJkdPz7i?amp=1
    2. The problem of organizing too many bits of data
    3. Programmers use data structures to organize related data
    4. Vocabulary
      1. Data structure
      2. Ordered
      3. Mutable
      4. Sequence
  3. Examples and Demonstrations
    1. Real World Grocery List
    2. Brainstorming types of lists in the real world
    3. Python Grocery List
  4. Practical applications
    1. List sizes
      1. Small lists (choices, menus, limiting options)
      2. Medium Lists (class rosters, schedules, phone apps, etc)
      3. Large Lists (weather data, sensor measurements, etc)
    2. List limits (when not to use a list)
      1. Order doesn’t matter
      2. Searching by key (use dictionary)
      3. List shouldn’t change (use tuple)
    3. List indices are confusing at first
      1. Zero-indexed
      2. Negative index
    4. List methods
      1. Append & Insert
      2. Pop & Remove
      3. Sort & Sorted
    5. Tools for visualization and understanding
      1. Python Tutor
      2. Mu Debugger
  5. Synthesis Opportunities
    1. Using for loops with lists
    2. List slicing
    3. List of Lists
    4. Functions/methods
  6. Creativity & Fun
    1. Class Schedule
    2. Rock Paper Scissors

Support Teaching Python

Links:

  • Python Tutor - Visualize Python, Java, C, C++, JavaScript, TypeScript, and Ruby code execution — Python Tutor helps people overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of code. You can use it to write Python, Java, C, C++, JavaScript, and Ruby code in your web browser and see its execution visualized step by step.
  • Python Flash Cards: Syntax, Concepts, and Examples: Matthes, Eric: 9781593278960: Amazon.com: Books — These colorful programming study cards help new Python coders drill and reinforce the concepts, syntax, and terminology they'll need to become successful professional programmers. Keep your coding skills sharp on the go! Python Flash Cards take a tried-and-tested method and give it a programming makeover. Eric Matthes, author of the best-selling Python Crash Course, distills essential Python programming knowledge into this 101-card deck you can use anywhere.
  • UNDERSTANDING BY DESIGN® FRAMEWORK — The Understanding by Design® framework (UbD™ framework) offers a planning process and structure to guide curriculum, assessment, and instruction. Its two key ideas are contained in the title: 1) focus on teaching and assessing for understanding and learning transfer, and 2) design curriculum "backward” from those ends.
  • Will Richardson (@willrich45) / Twitter — It's the most amazing time to be a learner. Time to explore what comes next for schools. Co-founder of http://BigQuestions.Institute. Parent, speaker, instigator.

Episode source