TechSmart Inc.

Understanding and Designing Rigorous Coding Curriculum

January 3, 2019

The Need For Deeper Understanding

Throughout education, it is a critical goal to impart upon students a deep and extensive understanding of what they are learning.  Beyond just surface-level recall and application of the subject matter, students must be able to perform critical, analytical, and creative thinking in order to make use of their knowledge in the real world.  We can illustrate the difference between a basic understanding and this “deep” “high-level” knowledge using Webb’s Depth of Knowledge (DOK), a commonly-used academic framework that classifies the depth and extent of student understanding (see Table 1) (Webb, 2002).  The higher the level, the more the student is able to transfer their knowledge between different contexts and use it outside the classroom (Francis, 2017).


Table 1: Webb’s Depth of Knowledge (DOK) Levels



Designing For Rigor

Any curriculum that succeeds in granting students this deep understanding must have rigor.  A rigorous curriculum is defined as one that expects students to learn at high levels, supports them through that learning, and enables them to demonstrate their learning (Blackburn, 2008).  It is not rigorous to simply rely on the precision inherent in coding and give students repetitive problems on the basis that those problems are “difficult” (Blackburn, 2017). For a class to truly be considered rigorous, students must demonstrate true understanding of the subject matter using critical thinking practices (McBride, 2015).

We have identified three key aspects of rigor that are missing from existing exposure-model computer science curricula, and designed our courses to incorporate them.  A rigorous computer science curriculum requires:

A lesson sequence with instructional design to guide students through steadily deeper understanding
Pedagogy that incorporates questions and discussion to stimulate thinking
Challenge for all students at all levels of comprehension

In this article, we will examine why each of these points is important and how our curriculum is designed to achieve them.


A Sequence Designed Towards Mastery

The sequence of activities surrounding a given set of concepts is vital for guiding students towards true understanding.  It is not sufficient to simply provide information and then have students practice in a single manner.  Students that do not understand will rarely be induced to understanding by simple repetition, and students that have already achieved understanding will quickly become bored (Williamson & Johnston, 1999).  The activities provided within a curriculum must be explicitly designed to guide students from initial exposure to a concept through progressively higher depths of knowledge until they are able to demonstrate mastery of the concept.

We have designed a sequence of activities within each lesson to guide students from first learning a coding concept to demonstrating a high depth of knowledge with it.  The table below summarizes this sequence, with details following about each part of our solution.


Table 2: TechSmart Lesson Sequence



Instruction: Rigor begins with student’s first introduction to a concept.  Instead of a simple lecture, our teacher-led instruction is always interspersed with interactive coding segments.  Students immediately apply the concepts they learn in code. This also provides them with the opportunity to experiment and puzzle out why things work the way they do, making hypotheses before the teacher provides them with a correct model.  By predicting how new concepts will interact with what they’ve already learned, students are able to form connections to their previous knowledge and better understand how the new concept foundational skills spiralled throughout the course.

Coding Techniques: After first learning a topic, the next step towards building a depth of knowledge is learning to apply it (DOK 2).  Coding Techniques guide students through isolated problem-solving activities that encourage them to consider how their newly-acquired conceptual “tools” may be used.  Seeing common use-cases encourages students to generalize their thinking; experiencing several scenarios where a tool is effective broadens into imagining other situations that might be similar enough to require the same tool.  By practicing these isolated problems, students not only learn how to use their new tool, but begin to intuit when and why to use it.

Coding Exercises: Once students are familiar with basic application of the concept, we challenge them to apply it within varied and realistic contexts.  Each coding exercise is an engaging interactive program that students must build for themselves. This novelty and context-shifting is necessary to ensure problems are rigorous, as it prevents them from becoming rote drills (Honner and Wiggins, 2013).  Not only does every exercise involve coding a new program designed to engage students, but the nature of the activity changes to focus on the different key elements of coding: writing, organization, analysis, and debugging. After completing the coding exercises, students will have demonstrated an ability to plan, organize, and build programs in a manner similar to that in real-world engineering careers.

Code Your Own: While each activity gives students a way to demonstrate their learning, we place a special emphasis on student assessment at the end of each lesson.  Beyond the standard formative and summative assessments, lessons end with a performance-assessment capstone: a “Code Your Own” project where students apply the lesson’s concepts to a program of their own design.  We provide a library of original art, sounds, and animation for students to use in their own creations. This enables students to demonstrate mastery through increased engagement (Blackburn, 2010), a way to prove that they are curious and imaginative in the ways required by true high-level performance (Wagner, 2008).  As with all good performance assessments, in order to write working code and complete the project, students must demonstrate thorough, detailed knowledge of the subject matter.


Pedagogy with Questions to Stimulate Thinking

While performing any coding activity, it is essential that students do not lapse into a habit of rote memorization and application of formula, as is common in many math curricula (Honner and Wiggins, 2013).  True rigor pushes students to understand the things they create, not merely complete them.  In a rigorous classroom, much of this drive must be provided by teachers.  Perhaps a teacher’s simplest yet most effective tool for promoting depth of understanding is asking questions (Blackburn, 2010).  When teachers ask high-level questions that challenge the depth of students’ understanding, and use a process that encourages the whole class (rather than just individual students) to think about these questions, student achievement increases (Dyer, 2013).

We try to make it as easy as possible for teachers to foster such a rigorous environment, through a feature in our Teaching Platform called Teach Assist.  Teach Assist sits alongside the teacher’s coding environment, detects which line of code they are on, and suggests relevant discussion questions (along with possible answers).  These questions are designed for rigor, to challenge student understanding of why the solution works and encourage them to explore alternatives.  To ensure teachers are confident incorporating Teach Assist into their teaching style, our professional development includes pedagogy training and mock-teaching sessions to help them become comfortable with this tool.


Challenge for Students at All Levels

Rigor is not just for the more advanced students in a class, nor is the correct way to accommodate every student to lessen rigor (Blackburn, 2010).  True rigor means challenging all students at a level appropriate to them, which includes giving students the support they need to achieve learning objectives.  If some students progress through higher levels of understanding more gradually than others, they must have the scaffolding to support them (Blackburn, 2010).

The key to achieving a universally rigorous classroom is curriculum differentiation.  Rather than giving every student identical exercises regardless of their learning profile, students need to engage in coursework that recognizes their individual level of understanding the current material, adjusts to give them appropriate levels of scaffolding and challenge, and encourages them to work towards a higher learning (Murray, TeachHUB).  Our curriculum supports multiple forms of differentiation, notably giving each exercise six levels of scaffolding differentiation based on depth of knowledge. (For more on our differentiation strategies, see “Achieving a Differentiated Computer Science Classroom: An Approach to Promote Equity.”)


The Importance of Rigor

Rigor is a vital mandate for curriculum design: it is both the key to college and career readiness, and simply the best practice for education (Blackburn, 2010).  In short, rigor is the difference between students that have been exposed to computer science and students that have truly learned computer science.  Without a rigorous approach, students may be able to follow directions or give accurate test answers by rote, but they will be unable to understand how to solve problems in complex real-world settings, nor how to innovate and instill code with their own creativity.  A true understanding of computer science is galvanizing. It engenders real curiosity and a desire to experiment, expressing oneself in a new medium. This cannot be done with shallow conceptual memorization alone.

Our vision is to give all students equitable access to high-quality computer science education, one that gives them a complete pathway to both college and career opportunities.  To accomplish that, curriculum must be held to high standards of rigor and depth of knowledge. A truly rigorous curriculum will allow students to succeed at computer science regardless of their approach, and the resulting diversity of ideation will help both the students and computer science itself flourish going into the future.

Works Cited

Webb, Norman L., “Depth-of-Knowledge Levels for Four Content Areas”(March 28, 2002)

Francis, Erik M. “What EXACTLY is Depth of Knowledge” (May 9, 2017) /

Blackburn, Barabara. (2008b). Rigor is Not a Four-Letter Word. Larchmont, NY: Eye On Education.

Blackburn, Barbara. “The Beginner’s Guide to Understanding Rigor.” Excellence in Education: Barbara Blackburn. (2017.)

McBride, TS. “Using DOK to Increase Academic Rigor in the Classroom.” Treadwell Middle School. (July 29, 2015.)

Williamson, Ronald and Barbara R. Blackburn. “4 Myths About Rigor in the Classroom.” Excellence in Education: Barbara Blackburn. (2017.)

Honner, Patrick and Grant Wiggins. “A Dialogue with Patrick Honner on Rigor.” Granted, and…~ thoughts on education by Grant Wiggins. (August 14, 2013.)

Williamson, Ronald and Barbara R. Blackburn. “4 Myths About Rigor in the Classroom.” Excellence in Education: Barbara Blackburn. (2010.) Available:

Dyer, Kathy. “Higher-Order Questions, Rigor, and Meeting the Common Core State Standards.” NWEA. (October 11, 2013.).

See All White Papers >