“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


Computational Creativity Exercise (CCE): Storytelling

In this assignment students work as a team to develop chapters of a story where the first and last sentence of the chapter is prescribed. Students first work independently developing their own chapter and then work collaboratively to identify and resolve logical inconsistencies in the chapters in order to produce a final coherent story.  This exercise will allow students to practice problem decomposition, abstraction, and evaluation, and also debugging and testing.

This exercise was developed as part of the NSF-funded Computational Creativity project at the University of Nebraska-Lincoln.

Engagement Excellence

File I/O - Name Redaction

This lab requires students to use file I/O methods to process a text file and make a new copy with some minor changes.  In particular, students must write code that looks for particular strings in the original file and then replaces them in the copy.  The real-world theme of the assignment is name redaction from sensitive documents.

Computational Creativity Exercise (CCE): Everyday Object

Students will be required to clearly describe the functions of an ordinary object they may use daily, as if they were the inventor of the object. This exercise will allow students to practice problem decomposition, abstraction, algorithmic thinking, and evaluation; as well as, modular programming and encapsulation. To encourage practice, this exercise fosters creativity; asking students to look at the objects in new ways, such as examining the object’s environment and considering its usage. Students work together to develop teamwork skills.

This exercise was developed as part of the NSF-funded Computational Creativity project at the University of Nebraska-Lincoln.

Voters Lab

This lab involves students coming up with a poll on a subject in which they are interested; administering the poll to students, faculty and staff on campus; and writing a program to calculate and manipulate poll results. The example provided uses a poll based upon the 2016 US presidential election, although any poll data will do. One goal of this lab is for students to learn how to use arrays of structures. Another is for students to create a program that uses most of the concepts covered in CS1 as a culminating project. Students may work individually or in pairs.

Mad Lib Haiku Lab

This resource is a lab assignment that creates a “Mad Lib™” haiku based on user input. It requires the use of strings and string manipulation functions. The lab can be assigned to individual students or to pairs. The outcome is for students to be able to manipulate strings. In order to make real world connections, students are also asked to list at least one program that uses the strings of data such as finding strings, replacing strings, etc.

Introductory EarSketch Assignment

In this tutorial, students will learn how to navigate the EarSketch environment, and begin to use Python commands through the exploration of a song. Students are then invited to create their own song(s). After this tutorial, students will be able to use EarSketch's full curriculum and acquire deeper knowledge about Python and music composition and remixing.

This exercise is appropriate for high school-level AP CS Principles courses and well as CS0 courses at the collegiate level. This exercise is derived from a tutorial developed for the Hour of Code. It can be completed by following the instructions in the attached documents and working in the EarSketch environment (earsketch.gatech.edu).

EarSketch is a free and online learning environment. No prior knowledge in music or Python are necessary to teach this exercise. With EarSketch, students code in Python to place samples from a vast sound library into musical tracks, arrange them, and add effects.

Engagement Excellence

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.

Lightboard Lab

Lightboard Lab is a loops/lists/tuples lab assignment for a CS0/CS1 course. For this lab, students program 8x8 matrices of LED lights via a Fadecandy microcontroller. Students are encouraged to work in pairs and/or individually for this lab.

Engagement Excellence

Game of Student's Choice

Game of Student's Choice is a loops/file I/O/strings/lists/dictionaries/classes programming assignment for a CS0/CS1 course. For this assignment, students have the option of either implementing an object-oriented Tic Tac Toe game (for which the requirements are rigorously specified) or a game of their choice (for which the requirements are loosely specified). The purpose of providing the option is to support students who are not comfortable yet with classes to get started with scaffolding (Tic Tac Toe) and to support those who are comfortable with classes to get started on a project of their own imagination.

Subscribe to Use Meaningful and Relevant Content