“Make it matter” for students by experimenting with new and interesting topics for assignments and projects, and by using varied examples in your lectures and other materials. Students are more likely to persist in the face of a challenge when what they are learning is relevant to their life experiences and goals. Use examples that have broad appeal, place assignments in contexts that interest students, and explain how a particular idea is used in different contexts.

Some suggestions

Don’t assume what’s meaningful; find out! Don’t rely on your notion of what’s interesting and meaningful, and certainly don’t rely on stereotypes. Find out from your students--and from the students you want to recruit--what is meaningful to them! Surveys and clicker polls are a great tools for this.

Keep keeping it real. Don’t relegate the discussion of larger context to the beginning of a course. Keep bringing students back to the real world application of what they are learning. This can be as simple as showing how a concept is used in a familiar application or program (e.g., how hash maps are used in natural language processing to predict what a user will type into a search engine).

Highlight the people. To help students see the people behind the concepts, refer to the contributions of an individual or group. A great story is Grace Hopper and her team at Harvard University finding a literal bug in one of their machines.

Examples from the collection

Structs with application in Ecology- Bears!

In this activity, students work through an extended problem applying data structures to ecology. Students begin by defining data structures to define characteristics about different types of bears, write templates for functions over these data structures, and then write functions that take in the data structure constructed. This activity is excellent for students learning to construct and use new data structures in Scheme.

Engagement Excellence

K-means clustering

In this activity, students use hierarchical clustering and k-means clustering to find clusters of similar genes, which can be used to predict genes that can affect certain cancers. Students use a priority queue to find close pairs of objects to use in clustering, and then use other data structures to perform the algorithm. This assignment is excellent for students that would appreciate synthesizing several data structures with a non-trivial algorithm with real-world applications.

Engagement Excellence


CS2 Graphical Photo Library Project

This project steps learners through a series of assignments that culminate into a photo viewer/archive tool. The assignments are designed to emulate a software development "sprint" in the Agile development process parlance. Each sprint consists of an assignment that builds off the code of the previous assignment, and is by itself a valuable piece of the overall end product.

Analyzing Airbnb data

This CS1 assignment asks students to use lists, dictionaries, tuples,
and basic programming concepts in Python to analyze Airbnb data.
Students are then asked to make a connection to the real world by
finding articles about regulating Airbnb and reflecting on how data
analysis might be relevant to those conversations.  The difficulty of
the assignment can be varied by changing the assumptions that students
are allowed to make about the input files.

Boolean Logic - Java

This classroom activity uses Process Oriented Guided Inquiry Learning (POGIL) to introduce students to Java. Students work in small teams to answer a series of questions about relational and conditional operators. The instructor facilitates interaction among teams, offers guidance and encouragement, and summarizes key concepts.

Coffee Barista Assistant CS1 Programming Assignment

The Coffee Barista Assistant assignment has students develop a tool that generates instructions to build a customer's cup of coffee. The assignment has a basic path for all students to complete, while containing additional layers to challenge high performing students. Through this programming assignment, students gain experience and proficiency with variables, conditionals, lists, and functions. By starting the assignment as an unplugged design activity, students will learn how to identify repeated patterns.

    Olympics Lab

    In this lab students compute the acceleration of a short track speed skater per lap. This is a lab for early in a semester of CS 1. It requires the use of 1) standard input/output, 2) variables and simple arithmetic expressions, 3) selection statements, and 4) loops.

    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, and loops

    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:

    Arrays vs Linked Lists: Operations and Their Efficiency (in-class demo)

    This is a script of an in-class kinesthetic learning activity that illustrates the pros and cons of storing data in array-based and linked list-based data structures. The students act as either elements in an array or as nodes in a linked list; chairs are used to represent memory addresses.

    Air Quality Index Calculator

    In this project, students make a calculator that determines the Air Quality Index (AQI) given user-input sensor data. All calculations follow methods published by the US Environmental Protection Agency (EPA) and give students practice handling user input, rounding/truncating, calculating the max and min, and must handle a a simple calculation that requires either a look-up table or conditionals. This assignment can be given early in the semester to help students gain experience and proficiency with loops, calculating max/min, using conditionals and boolean expressions. 

    Engagement Excellence

    Wallpaper Tessellation Creator

    In this assignment, students will create geometric tilings in Python. Students work to draw tessellations whose specifications are provided, and have the opportunity to design their own. Students practice problem decomposition to build logic that draws a single element, a row of elements and finally a plane tiled with rows.

    A Tournament for Pong AI Engines

    In this 2018 Nifty assignment, students write an AI engine for the game of Pong. Pong is a game enjoyed by people in general, by the CS1 community in particular, and by pigeons. In this open-ended assignment, students write an AI engine for Pong from scratch. Students can have their AI engines play against each other, and participate in a class-wide tournament.

    Subscribe to Use Meaningful and Relevant Content