“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

CS1 - Twitter

In this assignment, students have the opportunity to connect their Java programs in their favorite IDE to Twitter to determine some interesting information about the feeds of their choice.  Students have to apply what they've learned about string manipulation, sorting, ArrayLists, and finding the maximum value in a collection of items in order to achieve the goal of determining a Twitter user's most common and non-common word they've tweeted in their last 2,000 tweets.

Engagement Excellence

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

Boolean Logic - Java

This classroom activity uses Process Oriented Guided Inquiry Learning (POGIL) to introduce students to Java. Students work in small teams to answer a series of questions about relational and conditional operators. The instructor facilitates interaction among teams, offers guidance and encouragement, and summarizes key concepts.

Coffee Barista Assistant CS1 Programming Assignment

The Coffee Barista Assistant assignment has students develop a tool that generates instructions to build a customer's cup of coffee. The assignment has a basic path for all students to complete, while containing additional layers to challenge high performing students. Through this programming assignment, students gain experience and proficiency with variables, conditionals, lists, and functions. By starting the assignment as an unplugged design activity, students will learn how to identify repeated patterns.

Olympics Lab

In this lab students compute the acceleration of a short track speed skater per lap. This is a lab for early in a semester of CS 1. It requires the use of 1) standard input/output, 2) variables and simple arithmetic expressions, 3) selection statements, and 4) loops.

Learning objectives:

Fitness Tracking Lab

In this lab, students track their own fitness activities for a week. They submit this data which becomes some of the test data for the lab. Based on the students' activities, the program computes the number of equivalent miles each student has walked and the total number of miles walked by everyone together. Output is sorted from most miles walked to least miles walked. 

This is a lab for late in the semester of a CS 1 course. It requires students to use text files and an array of structures.

Learning objectives:

Arrays vs Linked Lists: Operations and Their Efficiency (in-class demo)

This is a script of an in-class kinesthetic learning activity that illustrates the pros and cons of storing data in array-based and linked list-based data structures. The students act as either elements in an array or as nodes in a linked list; chairs are used to represent memory addresses.

Air Quality Index Calculator

In this project, students make a calculator that determines the Air Quality Index (AQI) given user-input sensor data. All calculations follow methods published by the US Environmental Protection Agency (EPA) and give students practice handling user input, rounding/truncating, calculating the max and min, and must handle a a simple calculation that requires either a look-up table or conditionals. This assignment can be given early in the semester to help students gain experience and proficiency with loops, calculating max/min, using conditionals and boolean expressions. 

Engagement Excellence

Wallpaper Tessellation Creator

In this assignment, students will create geometric tilings in Python. Students work to draw tessellations whose specifications are provided, and have the opportunity to design their own. Students practice problem decomposition to build logic that draws a single element, a row of elements and finally a plane tiled with rows.

A Tournament for Pong AI Engines

In this 2018 Nifty assignment, students write an AI engine for the game of Pong. Pong is a game enjoyed by people in general, by the CS1 community in particular, and by pigeons. In this open-ended assignment, students write an AI engine for Pong from scratch. Students can have their AI engines play against each other, and participate in a class-wide tournament.

CPE123 (CS1) Syllabus

This course is one version of Cal Poly's CPE123, an introductory course targeting incoming freshmen. All sections of CPE123 have the goal of engaging students in "demonstrating the relevance of computing to the world around them" by challenging "students with creative, constructivist challenges that are relevant to their own lives.” It assumes no prior experience in computer science.

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: 

Subscribe to Use Meaningful and Relevant Content