“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

Resources

Justified!

Formatting of language and print on page is important in writing and publishing. In this project, students are asked to write an XML (eXtensible Markup Language) processor in order to format text, such as right-justified and left-justified paragraphs.

I'm All aTwitter

In this project using Python, students are asked to read two files containing Twitter feeds, merge them in reverse chronological order, and provide some basic summary information about the files.

I like that Old Time Rock and Roll

Playing a role as an editor in the music industry, students in this project are asked to compile a list of the 10 best bands of all time. Students will need to write a program in Python which merges two files, one which holds a list of bands, the year the band was formed, and the number of albums sold (in millions), and the other data file has a list of bands and a rating of their critical acclaim, from zero to five stars. The output should be the band name, followed by the number of albums sold, followed by the critics' rating.

A rose by any other name

In this project, students are asked to read the entire corpus of Shakespeare's Plays and Sonnets and print out the individual words, each word processed slightly, in sorted order. Students accomplish this task with two programs, one a python program that students write and the other a one-line shell script, that calls the python program and pipes its output to the sort utility.

Listen to the Music!

In this project, students use Python to develop a filter to remove the initial white noise in an audio file. The CS concepts of tokens, strings, and circular buffers are explored.

ASCIIArt!

In this project, students are tasked with straightening out somebody else's mess, namely, a bunch of image data have become scrambled across two files. Students are asked to merge the two files and reconstruct the image.

Earthquake!

In this project, students are given a task of providing a scientific report to the US Geological Survey about earthquake data. To generate the report, students need to write a Python program which will store earthquake data such as date, time, latitude, longitude, magnitude, depth, and region over a 7 day period of time.

I'm a Lumberjack and I'm Ok

Using the scenario of “Logsoft” a fictitious company that specializes in designing and maintaining logging software, students are asked to examine and manipulate a program that captures user activity for the company. Students are challenged with writing a utility that can merge two files correctly, one for capturing specific user information, and one file that runs even if it encounters a bad section of a disk.

You're An Ace!

Using statistics from the US Open Tennis Tournament, students create a program in Python that asks a user enter eight distinct numbers related to an individual tennis player. The program then uses those numbers to compute and report three statistics in order: number of serves attempted, double fault percentage, and ace percentage.

What a Penny Pincher!

In this project, students are asked to examine the cost of modifications done to a car and the impact on its fuel efficiency. Using python, students use certain functions such as number of miles driven per year, current mpg, cost (in dollars) of a gallon of gasoline, cost of the modification, and percent increase in mpg after the modification, in order to determine how long it will take the owner of the car to recoup their investment.

Subscribe to Use Meaningful and Relevant Content