Student-centered Assessment helps students examine their own learning. Effective feedback on performance--and assistance on how to reflect on it--encourages persistence. So give students feedback they can productively use, i.e., timely, contextualized, and actionable.

Some suggestions

Provide frequent opportunities for feedback. Students need to understand how they are doing in relation to their peers, to your expectations, and to their final grade. Instead of having students wait until a midterm to gauge their performance, try giving short knowledge quizzes on previously-covered material. Clickers are a great way to do this.

Help students interpret the results of any assessment. This begins with simply reporting the mean and standard deviation for every assessment. Then let students know what is considered "doing well" in the class, and what they can do if their grade is below that (e.g., come to office hours, attend an extra lab, meet with your TA).

High performing students need to understand their performance as much as struggling students. Sometimes we are so focused on helping students in trouble, that we don’t give enough feedback to those who are succeeding. Don’t hesitate to drop an email to a student who is doing well letting them know that you noticed. This kind of recognition from a professor can be transformative, especially to a student who may feel like they don’t belong.

Encourage students to seek help. When a student struggles, encourage them to persist through the task, and make it acceptable and easy to seek help. For example, periodically remind students when and where they can get help and genuinely encourage them to take advantage of it.

Examples from the collection


Fitness Tracking Lab

In this lab, students track their own fitness activities for a week. They submit this data which becomes some of the test data for the lab. Based on the students' activities, the program computes the number of equivalent miles each student has walked and the total number of miles walked by everyone together. Output is sorted from most miles walked to least miles walked. 

This is a lab for late in the semester of a CS 1 course. It requires students to use text files and an array of structures.

Learning objectives:

  • Compiling, linking, executing a program
  • Developing an algorithm
  • Testing a program
  • Using the C++ syntax and programming constructs of standard I/O, variables and arithmetic expressions, selection statements, structures, arrays

Prerequisite knowledge: Students must have already been exposed to standard I/O, variables, arithmetic statements, selection statements, loops, functions, arrays, structures, and text files.

The lab could be easily modified to use a class instead of a structure and an array of objects.

Embedding Messages in Images

In this laboratory, students are asked to embed a message within an image in order to send an email to a friend through an unsecured site. Students will design an algorithm for encryption/ decryption and compute Big-O for each.

Backtracking and Caves

In this lab, students apply the CS concepts of stacks and backtracking by writing a program to explore all accessible locations within a cave and find as much treasure as possible. Choosing an appropriate algorithm and set of data structures will prove crucial to how difficult the lab will be.

Input Validation - "All Input is Evil"

Imagine making a 1 billion dollar error by typing the incorrect information into a computer. That is what happened to a Japanese securities trader in December of 2005. The trader accidentally typed in the wrong amount when selling a share of stock and lost his investors millions upon millions of dollars. This module discusses the importance input validation and the risks involved if this is not considered in code.

Integer Error – You Can’t Count That High

In this laboratory, student are asked to examine integer values that are too large or too small and may fall outside the allowable range for their data type. This may lead to undefined behavior that can both reduce the robustness of the code and lead to security vulnerabilities.

CS1510 (CS1) Syllabus

This is the first introductory computer science course at the University of Northern Iowa. It is a semester-long course with three one-hour classroom lectures and a two-hour interactive lab per week. It is required for computer science majors but non-majors also take the course. No prior programming experience is expected, but the class is designed to be engaging to those with and without programming experience. While a major goal of the course is to provide a good start to the development of programming skills (using Python), the course is not solely about programming.  

Upon successful completion of the course students should have gained the following skills and proficiencies: general computer and operating system usage, computer operation, a mental model of how programs are executed, machine capabilities and functions, general program design, standard approaches to common (simple) programming tasks, abstraction (data , procedural, thinking), data and problem representation, and elementary data structures.

JavaDocs and Intro to Eclipse

In this lab, students work to explore the basics of working with an integrated development environment (IDE). Using the Eclipse IDE, students create a project, add a package, insert some code, implement some methods, and do some refactoring.

Ants Vs. SomeBees

In this project students work individually or collaboratively to implement a tower defense game in which ants defend their colony from attacking bees. Students must implement several subclasses of the Ant class, each with their own unique abilities, as well as a class Water that descends from Place. The classes that students write must interact with several other classes.

Engagement Excellence

Sets and Dictionaries to analyze movies

In this lab (Lab 13) students work individually or collaboratively on sets in Python. This lab introduces the concept of sets through analysis of two movies using data from the Internet Movie Database (IMDB). Students create a dictionary with values from these movies and process the info to determine such things as intersections between movies on actors and co-actors. This lab was inspired by the work of Bill Punch and Richard Enbody, Michigan State University.

The authors of this material were awarded a 2015 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.

Engagement Excellence


In this lab students are encouraged to work collaboratively to create various functions. This activity requires students to create functions that performs various calculations on entered values. The first function calculates molecular weight of hydrogen, carbon, and oxygen; the second calculates body-mass index (bmi); and the third the Collatz conjecture. This lab is ideal for students looking for more practice creating functions.

Subscribe to Student-Centered Assessment