Part of the President’s recent announcement of the CS For All initiative calls for “expanding access to high-quality instructional materials.”At the primary grade level, however, I am having a hard time finding any materials that qualify.
This may seem hard to believe. After all, there are hundreds of resources for young coders. I can’t update my rated list of resources fast enough. However, as we expand from a few classrooms learning computer science when it’s convenient to coding in every classroom every day, we’re realizing an ideal coding curriculum does not exist.
I’m still looking for an elementary coding curriculum that has all of the following: effective, student-centric learning tools, an appropriate scope and sequence, useful formative and summative assessments and scalability. I’m looking for a slow and steady progression to create a solid foundation in computational thinking and computer science.
K-5 Coding Teachers: What is on your wish list for an ideal curriculum?
Effective Learning Tools
Most coding resources fall into one of two categories: student-centric or pre-directed. Is the tool telling kids that coding is a creative way to solve problems solving and express themselves? Or that it’s a set of instructions that lead to identical outcomes?
What’s working: Student-centric resources allow users to develop unique programs, to express their unique creative. We want students to explore and code uninhibited by predetermined outcomes. Every student’s product should look different from their peers’ programs. Guide students to create programs using computational thinking concepts and programming best practices.
What’s not working: A common type of pre-directed assigns a character to shepherd through a maze with basic commands. These resources allow educators with no coding experience to get their class started. They’re very popular, but after working with thousands of students using Code.org and other similar programs, I have seen that students fail to use concepts from code.org when they begin to code original projects. It seems to me that this learning environment is ineffective at teaching computer programming at a rigorous level.
Scope and Sequence
Many of the currently available coding tools are aimed at first time coders and make the assumption that the class will only be taught on a short-term basis. As we look to CS For All implementation, we need curriculum that spans all grade levels and provides in-depth engagement.
What’s working: Expectations are high for the New Framework to Define K-12 Computer Science Education, a collaboration effort between the CSTA, ACM, and Code.org, and, hopefully, the curriculum and tool developers involved will meet them. SFUSD’s scope and sequence, created by Bryan Twarek, is another bright spot that sets a clear outline for all grade levels from pre-K through 12th grade.
What’s not working: Too many coding tools try to teach all aspects of coding within a short period of time. In my experience, kindergarten and first grade students struggle with looping and anything more advanced than that. Take it slow.
As our students start coding at a younger age, they won’t require lessons on the basics later. Many tools don’t take this into consideration: They assume no matter how old students are, they are starting with no coding knowledge.
Example of an appropriate scope and sequence: SFUSD’s curriculum
The need for formative and summative assessments is obvious, yet most curricula don’t provide a clear way to determine students’ needs and growth. Many teachers also don’t articulate the goals of teaching computer science, which precludes creating accurate assessments. Personally, I want students to learn to code because it helps them learn computational thinking skills.
What’s working: Harvard researchers have outlined three approaches to assessing computational thinking: artifact-based interviews, design scenarios, and learner documentation, which are applicable to all sorts of coding and computer science curricula. Khan Academy also offers a great form of assessment. Throughout their computer programming courses they challenge students to complete a project that their peers assess. Teachers also grade the projects, but the peer review creates another level of accountability.
What’s not working: The absence of any sort of assessment is very common with popular coding resources. Even those that offer quizzes and exams, however, are often ineffective. Code.org, for example, offers assessments where students can resubmit answers, which fails to inform the teacher if a student needs more help.
Example of informative assessments: Harvard's assessing computational thinking approaches
With over 200 million students served, it is obvious that the Hour of Code and its sponsoring organization, Code.org, is doing a phenomenal job at scaling coding education. But if it is not the best tool for student learning, why is it so popular?
What’s working: Free always helps in education, but what differentiates Code.org is how easy it is for any teacher to use. That’s its secret to scalability. The site features a teacher dashboard, student management tools, an intuitive student portal and even allows pre-reader students to use a picture as their password. Lesson objects and standards alignment are peppered throughout the courses to give teachers a boost during lesson planning.
What’s not working: Many teachers are creating their own computer science lessons (Jared O’Leary is a great example), and while these lessons can be outstanding and work very well for their specific classes, it is difficult to scale this model. Many teachers struggle to find the time to search through other educators’ lessons, find one that fits, adjust it to their students’ needs and then transfer it to the tool their class uses.
Look to the Future
I don’t doubt that an ideal coding or computer science curriculum will appear soon. I have high hopes for resources created for and by ambitious school districts. Until that point, we will have to be our own MacGyvers and continue to make the best with what we have.