“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

Graphics Lab

In this lab, students are asked to create a Java application that draws a simple house or beach hut. Students use the drawing methods from the Graphics class. A clear grading rubric is provided.

Structs, pointers to structs, reading from files, arrays of structs

This lab has two main parts. In the first part (Steps 1 through 5), students use test-driven development to finish three programs that the students will use to practice storing and manipulating data in structs and arrays, as well as general debugging. In the second part (Steps 6 through 9), students extend a program that reads in airport data from a file, and reports to the user the easternmost airport. Students add code to the program to determine the westernmost, southernmost and northernmost airports in the United States.

Writing Functions

In this assignment, students write four functions, each of which solve real-world problems such as converting inches to centimeters. Through this assignment students practice writing functions and passing and using parameters.

Getting used to Java syntax (or, "Concise Guide to Java-ish for Tourists in Javaland")

In this tutorial, students work individually to explore the basic concepts of statements, sequence, and methods. Using pseudocode and various scenarios (such as making a milkshake, getting money from a cash machine, and doing laundry), students must examine the basic principles for creating a sequence of actions and then generate their own example. This activity is excellent for introducing the concept of sequences and statements to a student with no background in computer programming.

Final Project: Sketchy

In this project, students incorporate a variety of programming skills to write a program that allows a user to draw images in a Java graphics window. Students, in addition to practicing with graphics, GUI programming and file i/o, are introduced to the stack data structure used to implement an undo/redo functionality.

Chess Problems

In this activity, students exercise their understanding of file reading and graphics to display a chess problem as specified by data provided in a file. Students begin by reading a file containing positions of chess pieces, and then display pieces on a graphical board to represent the position encoded in the file.

Fantasy Game

In this activity, students build a simple graphical display for a role-playing game where a map with different terrain types is displayed on a screen, with small images for each character displayed over certain elements of the grid. Students are instructed to use constants for numbers, and are given opportunities to make new terrains and add extra customization features.

Card Object

In this lab, students demonstrate their understanding of objects and basic object oriented programming by implementing a class that represents a common playing card. The class contains many methods, such as functions to return the rank and suit of the card, functions to compare the rank of cards, and a constructor that returns a random card, among others. 

Rabbits & Foxes Ecosystem

In this lab, students demonstrate their understanding of while loops and computation by simulating populations of rabbits and foxes in an ecosystem. Students are provided with formulas to compute populations from one year to the next, using previous populations of rabbits and foxes for each. This activity is a good simulation for students beginning to learn about while loops.

Partners - loops

In this lab, students demonstrate their understanding of for loops and mathematical computation by printing out all pairs of people in a list of people. The program first asks for a list of names, and then prints out all possible pairs of distinct names among the ones provided.

Subscribe to Use Meaningful and Relevant Content