Teaching Python

We're two middle school teachers learning and teaching Python

Three Tips for Designing True Authentic Assessments

What constitutes quality, authentic assessments, and how do we identify meaningful conditions for students? One of the frequently used markers in designing an authentic assessment is ensuring that it is "tied to real-world contexts and constraints, and requires the student to "do" the subject."

In Computer Science class, designing quality learning experiences meaningful to our students is the ultimate goal. Developing ways to accurately evaluate students' learning using real-world situations that are applicable yet challenging is the underlying focus.

This is part two of a blog series that takes a deep dive into authentic assessment components and what entails quality assessments. Authentic Assessments in education are a complex topic full of multifaceted features.


Grant Wiggins asks a great question in many of his assessment articles. One question that permeates is, "What is a true test?" In Wiggins's explanation, a "true assessment" not only measures intellect but should also be a replica of performance that professionals experience every day yet differentiated to the appropriate age. The assessment should not measure a checklist of the average abilities that other students can achieve and the rote content from a text but should be less superficial, less recall of a single performance, and mirror the real-world goals.

When designing an authentic assessment for Computer Science, we first need to identify what are the actual tasks that we want our students to be good at by the end of the course. The "test" of proficiency in code should not be completed at the end of teaching each concept or done because we need another grade in the gradebook. A well-designed assessment is similar to a programmer's daily role to get the job done.

It is sometimes difficult to know or understand a professional programmer's role if you have never been a programmer. Therefore, designing activities that mirror authentic jobs in the field may be difficult. However, with proper research and discussion with other professionals, we can devise the student's learning experiences more accurately. Look for the skills needed as a programmer as well as the content and knowledge. Also, depending on the students' age, specialization in a particular field, such as front-end design or Machine Learning, or web development, maybe a primary focus of skills. If students are younger, focus on developing computational and soft skills, such as learning new concepts and applying them to other problems, communication skills, problem-solving, or asking good questions. The specific coding language may be a perishable skill for some students' future; however, focusing on durable skills can help ensure authenticity to the real-world experiences.

Grant refers to a concept known as "evidence of knowing." As educators, we must first decide the activities students will be good at and the proficiency level we wish them to reach before assessing them. What is it that we want them to do is the primary focus.

Knowledge is vital for students to obtain during instruction. Computer Science teachers have a curriculum filled with content that needs to be understood and recalled frequently to succeed. However, the ability to recall information is not an authentic assessment of a programmer. For example, knowing that a list is mutable, used to store and access various data types, be nested, and looped through is fundamental for a student to obtain and know; however, assessing these facts' by regurgitation is not a valid assessment. Students should use this knowledge to determine when a list is beneficial for solving a unique problem in an authentic challenge.


Here are three tips when designing authentic, true test assignments.

  • Look to do: As you dissect the curriculum, look for areas in the learning that focus on recall and disconnected "dysfunctional habits" and switch them for more process-focused, connected, and active activities that allow students to "do" the learning. Software developers research, design, test, evaluate, identify, determine, maintain, communicate and write code. It is a job that is always "doing" something. If most of your curriculum is watching, listening, or reading, switch those activities for more active learning activities.

  • Use what is there: Developers look for areas to modify existing programs or upgrade existing code. Use former students' code or your own code, and have students improve upon it. Can they make the code more pythonic? Simplify repetitive code? Or can they take two pieces of their own code, to make a "mashup," to create a new seamless product? One of favorite 6th grade activities is to have kids mash together a turtle library project with another project they have completed.

  • Make it a PBL: Design open-ended assessments that solve a problem. Project-Based Learning allows students to solve a problem in a variety of ways. Even if you do not have time to complete a true PBL assessment, use some of the structure to design open-ended projects where students have agency and create various solutions. For example, use inspiration from Caines Arcade and have students create their own arcade with the Microbits.

If designed well, the learning should be messy, require students to decide, and be more connected to areal-life situations. It is only after this learning that a "true test" of learning can be made.




Works Cited

"Authentic Assessment." Center for Innovative Teaching and Learning, [citl.indiana.edu/teaching-resources/assessing-student-learning/authentic-assessment/index.html](citl.indiana.edu/teaching-resources/assessing-student-learning/authentic-assessment/index.html).

Wiggins, Grant. "A True Test: Toward More Authentic and Equitable Assessment." Phi Delta Kappan, vol. 92, no. 7, 2011, pp. 81–93., doi:10.1177/003172171109200721.