2nd Grade
2nd grade Workshop
Teaching coding is no easy feat, and you’ve done an exceptional job at it this school year! This workshop is designed to help you continue building your confidence with the 9 Dots curriculum during the second half of the year. We’ll begin by reviewing key coding concepts in your grade level’s curriculum, followed by dedicated planning time to ensure you are well-prepared to lead your upcoming coding lessons. Finally, we’ll provide a sneak peek of what’s to come in the Module 3 project your students will work on by the end of the year. As you go through this workshop, use our Graphic Organizer to take notes along the way.
Quick Navigation
Review Coding Concepts
Module C, designed for 2nd grade, engages students in a more rigorous study of loops and debugging. In Module C1, students focus on recognizing and decomposing complex patterns to solve problems with loops. This practice enhances their ability to recognize patterns and teaches students to structure their code efficiently. Additionally, this module’s emphasis on pattern recognition and computational thinking supports learning in other subjects such as math. Module C2 further advances students' knowledge of loops via a series of debugging lessons in which students must learn to identify and fix common errors pertaining to loops in pre-written code.
Loops
A loop is a programming1 tool that allows us to repeat a sequence of code without rewriting the same blocks multiple times. In earlier lessons, students might have written long code sequences with repetitive elements This repetition often indicates a pattern.
The repeating elements are called the core of the pattern. By placing this core inside a ‘loop block’ and specifying the number of times it should repeat, we can make the code shorter and more efficient
When approaching a challenge, students should be looking for patterns in the image of the goal, like lines or squares. These patterns usually can be efficiently replicated using a loop.
In Lesson C1.07, students begin to write code with multiple loops to complete their challenges.
Watch the video below to review how to complete a writing challenge using multiple loops
Try completing a reading challenge with loops below!
💡 Take a moment to add any key vocabulary words and definitions to your handout!
Debugging
Whenever our code does not behave the way we want or expect it to, we say it has a bug2. A bug is a mistake, or error, in code. The process of finding and fixing these mistakes is called debugging.
In Lessons C2.01 - C2.03, students review the Compare, Find, Try debugging strategy:
Compare: First, students run the pre-written code and compare the image created by PixelBot to the image presented in the goal.
Find: Next, they use the yellow Stepper Tool to find any bugs in the code.
Try: Finally, they try to fix the bugs. Students repeat this entire process until all bugs have been fixed.
Watch the video below to see how to use the Compare, Find, Try debugging strategy
Try completing a debugging challenge using the Compare, Find, Try strategy below!
Debugging Strategies
In Lessons C2.04 - C2.05, students practice the Self-Questioning debugging strategy, in which they ask questions to themselves and their peers, such as:
Self-Questioning helps students unpack what is going wrong in the code and how they might fix the code to get the desired results.
Watch the video below to see how we can use the Self-Questioning strategy to debug:
Try completing a debugging challenge using the Self Questioning strategy below!
In Lessons C2.06 - C2.07, students practice the Talk It Out debugging strategy, in which they ask questions to themselves and their peers, such as:
Talking it out helps students slow down and build the metacognitive strategies they need to solve increasingly complex coding challenges.
Watch the video below to see how we can use the Talk It Out strategy to debug:
Try completing a debugging challenge using the Talk It Out strategy below!
💡 What challenges might your students face when implementing these strategies? List them on your handout so you can discuss later with your Coding Coordinator.
Prepare for Your Next Lesson
Level 1 teachers: Select your next lesson. Then, use the pacing guide below to see which section(s) you will lead or if you will be leading the full lesson. If your next lesson is Lesson 1, use Lesson 2 instead.
Level 2 teachers: Select the next full lesson you will lead according to the pacing guide.
Prepare for your lesson
Use the Graphic Organizer to guide you through your preparation. You’ll review the following resources on the platform:
- Review the lesson plan to familiarize yourself with the content
- Review the slideshow to see how the content will be delivered
- Preview the challenge playlist and attempt to solve the first challenge
Create your action plan!
After preparing for the chosen lesson above, create an action plan for that lesson on your Graphic Organizer. You’ll then do the same for two other upcoming lessons according to your pacing guide. Be prepared to share with the group what lessons you'll be leading and when. This will also be shared with your Coding Coordinator to ensure they support you.
- Schedule your next lessons
- Level 1 teachers: Select estimated dates for your chosen lesson above and lessons 9 & 10.
- Level 2 teachers: Select estimated dates for your next 3 lessons, including the lesson you prepared above. (As a reminder, your goal is to lead lessons bi-weekly. For example, if you have recently taught lesson 2, you should plan to lead lessons 4 and 6.)
- Set one CS teaching goal for each lesson
- Consider the following questions when setting your goals:
- What coding concept(s) do I want to feel more confident with by the end of the lesson?
- How can I support my students through any anticipated challenges?
- Is there a teaching strategy I want to try during this lesson?
- Level 1 teachers: Select estimated dates for your chosen lesson above and lessons 9 & 10.
- Level 2 teachers: Select estimated dates for your next 3 lessons, including the lesson you prepared above. (As a reminder, your goal is to lead lessons bi-weekly. For example, if you have recently taught lesson 2, you should plan to lead lessons 4 and 6.)
- Consider the following questions when setting your goals:
- What coding concept(s) do I want to feel more confident with by the end of the lesson?
- How can I support my students through any anticipated challenges?
- Is there a teaching strategy I want to try during this lesson?
Preview Module 3: Code Café
With any remaining time you have, take a sneak peek at the project your students are building up to!
In Module C3, students end the coding year by participating in a fun and creative project, Code Café, that has them code delicious food items in a group café and compete against other groups in a Café Challenge game. This module consists of 10 lessons and is broken down as follows:
Lesson 1
Practice decomposing large images
Complete a playlist to practice loops
Lessons 2-4
Split into groups
Select and code one of five pre-designed main food items (Pizza, Salad, Taco, Hot Dog, Pizza).
Decompose food items on the handout. Please print & distribute one copy to each group
Lesson 5
Play the Café Challenge game
Review code using Challenge Cards. Please print & distribute one copy to each group
Lessons 6-10
Repeat the same process outlined above, only this time they code side food items (Lemonade, Soda, Churro, Milkshake, and French Fries)
You can take a deeper look at this module by reviewing the Scope and Sequence here, or via the 9 Dots platform.
Survey
Thank you for attending our Semester II PD! We take teacher feedback seriously, please take our survey here.
Access Resources
Looking for more coding practice?
For more practice please log onto the 9 Dots platform and try our Teacher Certification Modules. These modules will prepare you to lead and learn alongside your students.
Find additional resources at https://www.9dots.org/teacher-guide
Footnotes
[1] The terms "programming" and "coding" are used interchangeably. Both refer to the process of writing instructions for computers to execute, creating software, and solving computational problems.
[2] A bug is an error that prevents our code from behaving the way we want or expect it to. Why are these errors called bugs? You can click here to read about the first computer bug!