“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

Boom! and Stepwise Refinement

In this project, students are to implement the classic game, minesweeper using ASCII graphics. The game consists of a board with the board divided into a grid. Throughout the grid, mines are scattered. At the beginning of the game, all squares of the grid are covered, obscuring the location of the mines. The object of the game is to uncover all the squares on the board that do not hold mines, avoiding uncovering those squares that do. Squares are uncovered one at a time. Students are asked to use a bottom-up approach to implement the game. For a bottom-up approach, students start out by writing the most basic functions and then write higher-level functions that call these basic functions, and so on.

Lights,Camera, Action!

Databases are implemented everywhere from web servers to automobiles, video games, smartphones, etc. The goal of this project is to implement a simple Python database and query system. The tasks for the program are to display movies, display longest movie, display shortest movie, display movies earlier than specified year, display movies later than specified year, display movies with specified rating, add movie, delete movie, and save database.

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.

Subscribe to Use Meaningful and Relevant Content