“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

Tessellation, Problem Set 2

In this assignment, students will be creating mosaics in Python. Students will work to generate tessellations, such as Ring and Hex. Functions must be composed to generate the various images.

Engagement Excellence

Design, Develop, Debug- Connect 4

In this lab, students work to design, develop, and debug a game. In particular, students must use UML and pseudocode to create 'Connect 4' (a popular board game). The methods should be designed to handle the complexity of the potential game moves and the student must clearly illustrate how their program design accounts for the various conditions under which this scenario occurs.

Pseudocode

In this lab, students work to create a square with Turtle graphics and pseudocode. Using the Turtle class in Java, students must create a 'filled-in square.' To start, students must create the program using pseudocode and then, after the algorithm for creating the shape has been defined, write the actual algorithm.

Interfaces and polymorphism- Painting!

In this lab, students work to create a 'painting' program. The Java program must use variables and methods to store values and perform actions, respectively, for painting. To abstract this idea beyond custom methods, students must create interfaces. Specifically, students are to create an interface where the user can (and must) implement all methods in that interface.

Engagement Excellence

Introduction to UMLet and Design

In this lab, students work collaboratively to create graphical representations of class relationships. Using UML and Java, students must build containment diagrams (shows an instance or instances of classes that are contained, or instantiated, within the class) and inheritance diagrams (shows how one or more class extends, or inherits, from the class to which the arrow is pointing).

Introduction to Java-Create a Cupcake!

In this lab, students work to create a program with classes in Java. Starting with a review of packages, classes, methods, parameters, and constructors, students will create a program that builds a 'cupcake.'

Engagement Excellence

Ants Vs. SomeBees

In this project students work individually or collaboratively to implement a tower defense game in which ants defend their colony from attacking bees. Students must implement several subclasses of the Ant class, each with their own unique abilities, as well as a class Water that descends from Place. The classes that students write must interact with several other classes.

Engagement Excellence

Project 1: The Game of Hog

In this project students work either individually or in pairs to implement the game Hog, a dice game in which players try to be the first to reach 100 points by choosing how many dice to roll each turn. Students must write functions that control the general flow of the game, roll the dice for a turn, and choose a strategy for the computer. For full credit, students must create a strategy with a win rate of at least 59%.

You Won't Find Me There

In this project, student's explore the technological side of mail forwarding, by writing a program that determines whether individual pieces of mail should be forwarded and, if so, the address to which they should be forwarded. Along the way, student's gain experience implementing their own data structure called a singly-linked list. This assignment is excellent for students that want additional exposure to an intuitive example of fundamental data structures, or more practice implementing classes.

Engagement Excellence

What's Simple Is True

In this project, students build a Java interpreter for a limited version of BASIC called Facile. The interpreter manages variables, mathematical operations, conditional statements, functional decomposition, and its own call-stack. As part of the activity students test the interpreter with JUnit. This project is for students that would like to explore building an interpreter, or for students that may have an interest in the general workings of compilers and programming languages on a smaller scale.

Subscribe to Use Meaningful and Relevant Content