Teaching Courses A-F

Table of Contents

Overview

The landscape of computer science education has changed immensely since the creation of the original Computer Science Fundamentals courses. Originally, Courses 1-4 were designed as a starting point to acquire the basics, no matter what the age of the student who was coming to the discipline. Now that far more districts, cities, and states have implemented computer science courses beginning at Kindergarten, teachers are asking for more content to see students through until middle school/junior high.

Computer Science Fundamentals Courses A-F, are our answer to that issue. The creation of a grade-by-grade curriculum allowed us to step back and rethink the way we were presenting material. It also allowed us the chance to wholeheartedly incorporate feedback from the dedicated teacher community that has supported us on this mission. Designed with the help of some of the best elementary school CS education specialists across the country, Courses A-F should feel familiar enough to run with no extra professional development, but fresh enough to present to students who have done our lessons in the past.

  • Course A: Kindergarten
  • Course B: 1st Grade
  • Course C: 2nd Grade
  • Course D: 3rd Grade
  • Course E: 4th Grade
  • Course F: 5th Grade
  • Pre-reader Express Course: Kindergarten - 1st Grade
  • Express Course: 2nd Grade - 5th Grade

The biggest update to CS Fundamentals is that content will move from four courses (Courses 1-4) to six courses aligned to each K-5 grade level (Courses A-F). In doing so, the lessons have become more tailored to the appropriate levels for reading, math, and overall cognitive development. Note the addition of two different “Express” courses, one for pre-readers and one for all other grades. These are similar to the previous suite’s “accelerated” version.

Teaching the new courses

As mentioned earlier, the courses should feel familiar, but different. If you’ve been to a Code.org professional development workshop, then you’re ready to teach the new courses. There are a small number of changes, but the overall platform, curriculum and pedagogical philosophy is unchanged. If you haven’t yet been, Code.org offers 1 day workshops at no cost to help you learn how to understand the curricula, navigate the Code.org platform, and teach the unplugged lessons.

The main updates to the courses are:

  • Circle-time stories for the younger learners
  • A new approach to scaffolding and practicing/applying concepts
  • Bridging activities to enhance the transition from unplugged lessons to plugged lessons
  • End of course projects for older students

The rest of this guide will present each idea in more detail, offering tips and tricks for implementing the changes in your classroom.

Circle-Time Stories (Courses A and B)

Some concepts are difficult to teach through activities and puzzles alone, especially for young students. This is why we’ve introduced a small number of circle-time stories in the Kindergarten and First Grade curricula. These stories are intended to be read by the teacher to the entire class, with stops along the way to discuss critical ideas like debugging, persistence, and frustration. Our hope is that allowing students to experience these tough concepts via story characters will help them to recognize the same notions when they arise in future lessons.

Here is how the circle-time stories are intended to be used:

Read the appropriate story to your class

  • Make sure to check for understanding along the way with questions and comments at useful moments during the action.
  • Discuss the stories afterward. What did your students hear? Are there any ideas that stuck with them?
  • Try to get students to identify with the characters. Is there anything that they do in their lives that remind them of one of the characters in the story?

Remind students about the story before they begin the next activity.

  • Do you remember the main ideas we discussed?
  • How will you know if you see that idea today?
  • What did the character do to handle that idea? What would you do?

Point out similarities between the story and the student’s situations when they intersect during an activity.

  • Describe for a student how the position that they are in resembles a situation from the book.
  • Ask a student to think about the characters and figure out what they might do. Does that help the student figure out a next step?

If you are unable to gather your entire class together, Code.org has provided a video option at the beginning of the appropriate lesson that presents the stories with limited animations. While these videos don’t offer quite the same experience, they will allow students to get exposure to the concepts and characters before continuing on with the rest of the course.

Lesson Scaffolding & Challenge Puzzles (All Ages)

Courses A-F are less scaffolded overall than our previous courses. That means that we try to have students create their code from the beginning as often as possible, unless they are specifically learning to debug. As part of this design, most of our online lessons follow a trend where we present a simple puzzle to begin the lesson, then slowly drill forward with a new concept until the point where students have had a chance to understand the idea underneath. Next, we present them with a challenge puzzle, which is intended to get students thinking about the concept in a new and complicated way.

Challenge puzzles are new in Courses A-F. The intention of challenge puzzles is to expose students to a high bar where they can practice persistence and independent thought. Challenge puzzles are intentionally hard and designed so that only students who truly understand the concept will pass within a reasonable timeframe. This means that a good number of students will not be successful on challenges their first time through. This requires a particular attitude from both student and teacher to pull off.

  1. Students should give these challenges a hearty try, then put them aside and carry on. That practice allows for two very important things to happen:
  2. Students gain a better understanding of when and why to use the concept being studied. The following puzzles feel easier after the challenge, even though they are serious puzzles in their own right.

Keep in mind that students can go through lessons and reattempt incomplete puzzles at any time. Sometimes it can be quite helpful to get a good night’s sleep before revisiting a tough problem.

Once students make it past the challenge, they will find a handful of exercises waiting for them that are similar to what they may have experienced in the first half of the stage. These puzzles were placed intentionally to test a student’s clarity on the subject being studied. They might seem far too easy, given the puzzles that were experienced beforehand, but they were created to demonstrate the exact level of competence desired from the corresponding stage.

In some instances, we end our lessons with free-play style levels. These levels might either have no “wrong” answer, or they might allow several different ways to solve their core problem. Please encourage students to give them their best shot and not just click “Continue” even though they can.

Some final notes for this area:

  • Remind students to be persistent and use their debugging skills on problems that feel tough.
  • Videos are often helpful. When students get stuck, have them rewatch the video a second, third, or even fourth time.
  • Require students to read the instructions. If they are having a hard time, let them read the instructions out loud to a classmate.
  • It’s okay to use hints! Students should use as many hints as they need, but be sure to attempt re-solving the puzzle at least one between each new offering.

Bridging Activities For Unplugged Lessons (All Ages)

Unplugged activities meet students where they are in terms of pointing out how they already use important CS concepts in their everyday life. Once students can identify fundamental ideas like loops and conditionals, they get over the mental blocks that can happen when trying to use them for the first time programming online.

Unplugged experiences are so important that we chose to take them one step further and bake in activities that bridge the unplugged lessons to their online counterparts. In Courses A-F, you will now find that lesson plans provide examples of how to take the offline exercises and translate the lessons to the following set of online puzzles. Appropriately, we call these "Bridging Activities."

For the most part, bridging activities can be created either by taking the subject of the unplugged exercise and executing it with paper Blockly blocks, or by taking an online puzzle and solving it using the language from the unplugged exercise. In some cases, a different relationship is introduced, but all of the examples are meant to keep the offline experiences from feeling too abstract or unrelated.

End of Course Projects (Courses E & F)

For older students, we have introduced substantial end of course projects in Courses E & F. Though Code.org has provided the ability to build “projects” for quite a while, we felt that it would add some much needed perspective for students to be able to plan and execute their projects in a formal context.

The end of course projects are relatively straightforward. Over the period of four to five weeks students will review project ideas, plan their application, code their program, revise based on feedback (5th grade), then present their completed work. Each of these steps is guided by a helpful handout, as well as a teacher lesson plan that highlights the big picture.

Review: Students will take a look at a handful of aspirational projects, built to showcase the amazing things that can be done with the skills that they have learned up to this point. These projects have been built either in Play Lab or Artist, but students are free to review projects from Tynker, Scratch, or even text-based languages if the teacher sees fit.

Plan: The intention here is for students to sit back and think about what is really possible. They will need to think about the games that they saw, and the limitations that they faced when editing them. Afterward, they will sketch out a plan to create something unique. Students might need to be reminded to stay realistic, as they will have limited time and resources when bringing their visions to life. The materials here assume the use of Artist or Play Lab, but projects can be moved to whatever platform works for each particular classroom.

Build: One day is not a whole lot of time to execute a plan that has been laid out on paper. Students will face tough choices when it comes to trying to make things work as they run into one barrier after another. They will learn to edit and adapt as bugs and program limitations change their perceptions of what can comfortably be accomplished in a restricted timeframe.

Revise: For older students, a day of revising their programs based on the feedback of classmates can help them improve their final product, and lets them inspire others with the things that they have achieved. Students will practice constructive critique, as well as group brainstorming and persistence.

Present: Nearly a month in the making, this is the chance for students to stand-up and be proud of how far they have come. Our lesson plan assumes an oral presentation, but teachers have the option of suggesting written or multimedia presentations instead.

No matter how thoroughly students embed themselves in their projects, they are sure to learn something useful about the processes of creativity and problem solving in computer science.

Conclusion

As you can see, Courses A-F in Computer Science Fundamentals contain exciting enhancements, influenced by feedback from the massive CS Fundamentals teacher & facilitator communities.

We hope this overview has been insightful. If you have any questions or comments about this change, please visit http://forum.code.org/c/csf and post them on our forum. We will be sure to get your questions answered as quickly as possible. Until then, here are some of frequently asked questions about Courses A-F.

FAQs

Question Answer
You are launching a new set of courses-- does that mean that Courses 1-4 are going away? Yes. Courses 1-4 no longer meet modern standards. CS Fundamentals courses A-F better teach these computer science concepts. We will be removing Courses 1-4 gradually. Starting at the end of the 2022-2023 school year, we will remove references to these courses, but the links you already have will remain. Starting in July 2023, the courses will no longer be accessible on our site.
When can we start using Courses A-F? Courses A-F are available now!
These puzzles seem much harder. I’m worried that they’re too difficult for my little ones. The backbone of these new courses is the desire to get students to think, problem solve, and practice persistence. None of these things are required when puzzles are too easy to complete. For this reason, we’ve had to make puzzles more difficult. Please refer to the teacher guide for help with leading your class in building these skills. As always, don’t underestimate the importance of using unplugged lessons before jumping in with the online puzzles.
Some puzzles only allow a certain number of specific blocks. What if my students want to code something out the long way before they figure out loops? There are a few puzzles that restrict specific blocks. This is one of our new manners of scaffolding. It is a way of giving direction, without over scaffolding the pieces in the workspace itself. For students who like to code puzzles the long way before they pare down (and, in fact for all students, all the time) it is useful to have a journal or scratch paper beside the keyboard where they can figure out the algorithm in whatever way comes most naturally.