“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

Binary and Decimal Conversions

In this lab students work either individually or in pairs to write various functions dealing with binary and ternary numbers. Students must use recursion to convert between binary/ternary/balanced ternary and decimal numbers, as well as to count in binary. This lab reviews binary and ternary numbers and requires students to use recursion. It is particularly useful for students who are new to numbers in different bases and need additional practice with recursion.

Sounds good!

In this lab students work either in pairs or individually to write five functions dealing with list recursion and six functions dealing with sound manipulation. As a warmup, students must perform various operations on lists using list comprehension, such as scaling and replacing certain elements. They then manipulate sound files to play in reverse, at different volume, with static, overlaid with another file, and echoed. This lab requires students to work on list comprehension and file i/o. It is particularly useful for students who are new to Python lists.

The authors of this material were awarded a 2015 NCWIT Engagement Excellence Award for this assignment. Learn more on NCWIT's awards page.

Engagement Excellence

Recursion Muscles

In this lab students work in pairs or individually to write seven recursive functions. Without the use of iteration or built-in functions, students must write functions to compute a dot product, return a list of letters in a word, find the index of an element in a sequence, remove elements from a list, filter a list, reverse a list, and find the Scrabble score of a word. This lab requires students to create recursive functions that deal with integers, lists, and strings, as well as to error check. It is particularly useful for students who are new to recursion.

Simple graphics

In this project students work in pairs to create a drawing. Using a provided graphics library, students must create a drawing whose location, size, and other parameters can be changed with different calls to a function. Students are allowed to choose what to draw, and there is a competition for the best drawings. In addition to teaching graphics, the project also requires students to work collaboratively on abstracting and decomposing their code.

Engagement Excellence

SPAM: SPelling A la Millisoft

In this lab, students create a basic spell checking program. Students must first add memorization to an "edit distance" function and then use the function to return a list of the top ten recommended corrections for a misspelled word. This lab requires students to use recursion and memorization, as well as to time the execution of their code. It is particularly useful for students who need practice using recursion and memorization.

Subscribe to Use Meaningful and Relevant Content