Preparing to teach CS lesson or unit is somewhat different from preparing to teach other subjects. The biggest difference is that because you are asking your students to prototype an artifact, you will need to prepare by prototyping something yourself. Below, we’ve given you some steps to preparing:
- Don’t Panic!
- Think of something you want to build as a project.
- Build the project.
- Build a pacing guide for the unit and map out the daily tasks.
- Think about how best to get information to your students.
Step 1: Don’t Panic!
Computer science requires persistence even from its most talented practitioners. You are likely not going to get things right the first time you to try to break down a logical problem or execute code you’ve written. In fact the idea of right will constantly shift as you better understand your problem as you build. Remember to stay calm and maintain a growth mindset as you prepare.
Step 2: Think of something you want to build as a project.
When you’re coding, your first version likely won’t work very well. You will spend a decent amount of time debugging and iterating, so think about picking a topic or project that interests you and connects to your content. Interest plays an important role in learning, too. In fact, interest in a topic has been shown to affect the learning strategies that students employ while working. Learning strategies such as collaboration, independent information seeking, elaboration and critical thinking have all been positively correlated with inherent interest in a topic.
Likewise, part of the joy of teaching computer science is learning to persevere through failure. We have all been struck by the persistence our students demonstrate when handling complex and challenging CS tasks. To build that capacity, it is very helpful to let students choose a topic or project they are passionate about—and that starts with your passion.
Here are some ideas for projects that might be of interest and related to your content:
- A web page about a historical figure or event
- A Scratch animation that plots a graph or depicts a conversation from a book
- See the Blueprint exemplar units for other ideas
Step 3: Build the project.
You need to make sure that you understand the content associated with the unit, which will help you model the project for your students. While you are building a project, make sure that you:
- Document your process (use comments in your code, take screen capture to capture images and video documentation).
- Document resources that you’ve used (reference websites, forums, and the like).
- Keep track of how much time it takes you to build the project. Add at least 50 percent more time for your students.
- Find the “sticky points” (the points where you think the students might have trouble) and think about ways to explain them. These might be topics around which you can build lessons.
- Create a rubric for the project.
Step 4: Build a pacing guide for the unit and map out the daily tasks.
As with any other unit of study, begin with the learning outcomes that you want to accomplish overall. Break these objectives down to weekly and then daily goals. Because students will be building projects, some lessons during the unit may be devoted to students working independently or in groups with no mini-lesson or instruction. During these sessions, you might want to think about how you revisit or reinforce overall objectives so students build up their understanding and stay on task.
An example of a pacing guide with daily goals is shown after step 5.
Step 5: Think about how best to get information to your students.
- What will your “lessons” be like? Will they require whole-class instruction or tutorials through which students can guide themselves at their own pace?
- What exercises will you use to reinforce your teaching? Do you have enough time or content knowledge to create exercises with each topic or will the reinforcement be a part of the overall project?
- How will you assess your students? How will you build in assessment to better understand students’ comprehension of CS practices and concepts? Does your school require you to have a certain type of assessment that you can build in easily?
The following example is shows the pacing for a short CS activity in which students are working in the Scratch programming environment to build an ”About Me” project. Some things to notice:
- Lesson 5 is about sharing their work and engaging in a meaningful reflection on their work.
- Lesson 3 and 4 are primarily independent lab time. Lab 3 gives students a low stakes introduction to Scratch before jumping into their “final” About Me project.
- Lesson 1 uses an unplugged assessment, which is a great way to help students understand CS practices and concepts before they get on computers.
What is Programming?
Independent Lab Time
Scratch Lab Time
Students will be able to (SWBAT) write sequential and specific instructions, and explain the connection to programming.
Aim: Why is it important to give instructions carefully?
Assessment: Pseudocode sandwich: Write instructions to make a sandwich using a limited number of commands.
SWBAT create a Scratch account and connect with their classes on Scratch.
SWBAT use open-ended exploration to create a sequence of instructions.
How can we code in Scratch?
Make something surprising.
SWBAT complete the “10-block challenge”
Aim: How can limitations help us be creative?
SWBAT begin “About Me” project
Aim: How can we tell a story using Scratch?
SWBAT share work on scratch.mit.edu
SWBAT deconstruct and remix Scratch code
- Don’t Panic! Build something that interests you and document the process!
- If you need help at any point, reach out to your Computer Science Education Manager who is knowledgeable and the local CS coach at your Field Support Center.
- Prototype a project connected to your interests so you can persevere through failure. Doing so will set you up share your passion for CS along with your own trials and tribulations authentically with your students.
- Document your project as you make it. This is an important part of the Communicate practice and will help you slow down and better understand your process. This understanding will help you when you are working on pacing your unit.