“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

Resources

CPTS111 (CS1) Syllabus

This is the first CS class for non majors and majors alike. No prior programming knowledge is required, and there are no prerequisites. This course introduces concepts such as how to solve problems by designing and implementing algorithms in Python. Specific programming concepts include: arithmetic, conditionals, iteration, functions, file IO, lists, and dictionaries. Upon successful completion of the course students should have gained the following skills and proficiencies: 

CS2 Syllabus

The CS2 course introduces object-oriented programming, data structures, and more sophisticated algorithms than in CS 171 (Computer Science I) which is a prerequisite for this course. You are not expected to have any prior experience with Java. In terms of the ACM’s Computer Science Curriculum 2013, this course addresses the following knowledge areas: • Algorithms and Complexity (AL) • Discrete Structures (DS) • Programming Languages (PL) • Software Development Fundamentals (SDF) • Software Engineering (SE)

Computational Creativity Exercise (CCE): Marble Maze I

In this assignment students work as a team to build, using only specified materials, a structure through which a marble will travel,  Students first work independently developing their own segment of the structure and then work collaboratively to construct a final structure. Students are required to video tape the execution of a marble traveling through the structure lasting at least n seconds. This exercise will allow students to practice problem decomposition, abstraction, generalization, and evaluation, and also debugging and testing.

Dynamic Word Clouds

This project, the 4th unit in a year-long high school introductory programming course, teaches students how to write programs that draw text objects in an individually designed word cloud. It uses the programming language, Processing (www.processing.org), which is a simplified form of Java.

Engagement Excellence

Computing the Bacon Number Using IMDB Actor-Movie Data and BRIDGES

This is a project involving graphs that is motivated by the Bacon Number problem (or more generally six degrees of separation), i.e. to compute the smallest number of links from one actor to another.

Console Game Application

In this assignment, students build a game where monsters are hidden in an array of cells and the player guesses which cell the monsters are in. It is a fun culminating project for a CS1 course that has students apply fundamental programming topics such as data types and variables, input/ output, classes, arrays, and others.

Exploring USGS Earthquake Data Using Binary Search Trees

In this project students will implement a binary search tree and its underlying algorithms (insert, find, etc) using Live USGS Earthquake data. The BRIDGES API (links below) will be used as part of this project to:

Weather Data Analysis

This assignment helps students gain experience and proficiency with the Python pandas package in order to learn how to visualize weather data.  Students use Python to get sample outputs and then graph weather data such as maximum and minimum temperatures as well as number of days with rain. 

CS1 Project: Matching Game

In this project, students build a matching game in order to gain experience and proficiency with loops, control flow, two-dimensional arrays, writing functions from their specifications and making simple graphical interfaces. In addition, students will learn how to manipulate game state to represent a game board, use randomness to vary the game state, change game state in response to user clicks, and draw a graphical representation of that game state.

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.

Engagement Excellence
Subscribe to Use Meaningful and Relevant Content