How Might I Evaluate Student Progress?

Monday, July 27th 2020, 4:12:16 pm

Student progress should be evaluated through a multitude of experiences. To make learning meaningful and lasting, we assess students using a variety of methods, such as self-assessment, peer assessment, presentation, synthesis, and reflection in order to show their understanding and mastery of CS practice and concepts. When preparing a CS unit, evaluation should be one of the first things you consider.

A meaningful CS unit consists of a performance task that ends in one or more learning artifacts that showcases the student’s work, the rubrics that will be used to grade the artifacts, and a reflection where a student can communicate her progress and reflect upon her learning

This document highlights the approaches teachers can take to:

  • Create a meaningful unit assessment with performance tasks.
  • Evaluate student progress during a unit through formative assessments.

Performance Tasks

Performance tasks use the ideas from project-based learning to allow for a hands-on approach in which students can learn through their experiences. Performance tasks usually involve working on a challenge or problem for an extended period of time, giving students multiple means of acquiring and showcasing skills and knowledge. Computer science projects give students the chance to learn through iterative creation and reflection and moves the teacher’s role from instructor to guide.


A learning artifact is an object a student creates during a performance task. It is used to showcase the skills a student learned during a particular unit or lesson and makes student knowledge visible. An artifact is usually a physical creation like an essay, drawing, and the like. However, an artifact also can be digital, such as code or a program. The end result of a performance task usually leads to one or more student artifacts.

The artifact below was created by a student using an assignment outline and rubric. The teacher was able to gauge the student’s progress by making sure the student completed each step of the outline and evaluated each step of the outline with the rubric.

Example of student work using the specified outline and rubric.


In addition to creating an artifact, students should also be able to communicate their learning and reflect upon what they did. Journaling is an especially effective tool because it encourages both students and teachers to take on a growth mindset and value iteration.

The process of journaling should be done at multiple stages of a performance task, and can be used in conjunction with entry and exit tickets. Students can use a journal to plan out their artifacts, write about how their project works, or reflect upon what they learned by working on their tasks. Journals give students a way to bring their thoughts to paper and help them understand their own thought processes. Meaningful CS units should assess students’ ability to analyze and communicate their thought processes and comprehension of CS concepts.


A rubric is an effective tool for monitoring student progress because it allows the teacher to clearly communicate the expectations for the assignment and provide feedback on student work. Students should be made aware of the rubric criteria when the project is assigned. Both the teacher and student should use the rubric to evaluate progress while the artifact is being created. When creating a rubric, make sure the correct kind of rubric is chosen for the specific artifact. When deciding if a rubric is well-written, it can be evaluated using the rubric for rubrics from the Buck Institute.


Portfolios are collections of student artifacts (and possibly their rubrics and journal entries). The portfolio can include several types of artifacts and can be displayed or collected differently. A portfolio could be displayed on a website created by a teacher or student, in a folder on Google Drive, or in a physical form in a binder or folder. Unit portfolios can display student work from the entirety of a unit. Course portfolios can display student work from each unit throughout a course. School portfolios can display a student’s work from each course throughout his time in the school.

Formative Assessments

Students should be assessed throughout their time in a unit. While working on a performance task should be the primary way of evaluating a meaningful unit, student progress should be assessed throughout the unit as well.


Entry and Exit Tickets can be used to get a baseline understanding of the entire class’s progress. Entry tickets can introduce a topic, review prior material, or start a project (for more entry ticket ideas see The Teacher Toolkit). Exit tickets can check student understanding at the end of a lesson, summarize what students are currently thinking, or prepare for the next class (for more entry ticket ideas see The Teacher Toolkit). These tickets allow the teacher to constantly reassess student knowledge and progress as they move through a unit. Entry and exit tickets can be given on separate handouts, but it is recommended that they are completed in a student’s journal so she can constantly look back and reflect upon her learning.

Some examples of questions to be used on exit tickets:

  • What did I learn?
  • What did I create?
  • What code blocks did I use?
  • What did the code blocks do?
  • What am I still confused about?

Entry/Exit Ticket Examples:

  • Game Design Entrance Ticket: After debugging or hacking games, students are tasked with creating their own games. This ticket will help the initial project setup.
  • Scratch Game Exit Ticket (see below): This exit ticket summarizes students’ game design and allows the teacher to evaluate the progression of their students.
Sample Scratch exit ticket part 1
Sample Scratch exit ticket part 2


In computer science, traditional quizzes are still used, although instead of giving multiple-choice questions, students should prove their understanding through creating and debugging code. These assessments are not usually used at the end of a meaningful unit. Instead, they are used during a unit to give students a chance to test their knowledge and see what they still have to learn.

The following are ways you can assess student programming (via CS Teaching Tips):

  • Predict the output of code.
  • Find and fix a bug in code.
  • Explain, compare, or critique code.
  • Arrange code segments.
  • Solve the problem by hand.
  • Create a portfolio.
  • Write or modify code.

Ideally, multi-tiered assessments should be provided. Additional activities should be available for students who finish early or who are struggling.

Quiz/Exam Example:


  • Meaningful units include performance tasks that end with one or more artifacts.
  • All artifacts should include the rubrics with which they will be evaluated.
  • Rubrics should be given at the start of a performance task and be looked at often.
  • Have students keep a journal throughout a performance task to note their thinking.
  • Portfolios can be used to gather all artifacts on which students have worked.
  • Utilize entry and exit tickets to keep track of student progress.
  • Traditional assessments should test student ability to create and debug code.

Resource content by Sean Pawelec and Daniel Gaylord, with the assistance of the CS4All team. Consultation by Tythe Design and Tiny Panther. Published by CS4All.