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

Twitter Trends

In this project, designed to be completed in teams of two, students solve twelve problems that incrementally will have them develop a program to visualize positive/negative sentiments of Twitter posts (tweets). The twelve problems are organized into four distinct phases. The problems require that students either apply and/or implement an abstract data type (ADT). For example, students implement ADTs for tweets and sentiments. The problems require using ADTs like lists and dictionaries.

Engagement Excellence

Cluster Analysis

Gives students practice with writing classes using k-means clustering, a common machine learning technique. Students will be exposed to classes with complex invariants and practice using data encapsulation in classes. This is a challenging assignment but it is sure to be a good learning experience for students.

Engagement Excellence

Seam Carving

This is an assignment on implementing an algorithm that generates a context-aware image resizing technique. Students work to create a program that identifies the path of pixels connected from either a vertical or horizontal seam in one pixel increments to generate a resized image that preserves interesting features (such as aspect ratios and set of objects present). Mutable data types must be implemented to identify seams and resize the image.

Engagement Excellence

Resources

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:

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.

Seam Carving

This is an assignment on implementing an algorithm that generates a context-aware image resizing technique. Students work to create a program that identifies the path of pixels connected from either a vertical or horizontal seam in one pixel increments to generate a resized image that preserves interesting features (such as aspect ratios and set of objects present). Mutable data types must be implemented to identify seams and resize the image.

Engagement Excellence

8 Puzzle

Assignment on writing a program to solve the 8-puzzle problem using searching algorithms. Students use priority functions, Hamming and Manhattan, within the A* search algorithm, as well as immutable data types Board and Solver to solve the problem. A test client and text files are provided to facilitate testing program.

Lab: 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.

Assignment 5: Word games

In this assignment, students build two word games to extend their understanding of string manipulation. Students begin by building a made up word game in which students score "hands" of letters based on the words that can be formed with that hand, similar to Scrabble. Then, students build the popular board game Ghost, where players alternate providing a letter trying to avoid creating a valid word at their turn. Students also test their functions with unit testing. This assignment is ideal to test students' cumulative understanding of strings and test that understanding on their own.

Subscribe to Student-Centered Assessment