“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

A Game of Craps

Craps is a functions/conditionals/loops programming assignment for a CS0/CS1 course. To do this assignment, students implement the game and add personality output by including "chatter" messages.

Students are to work individually on the assignment.

Google Maps Pairwise Distances

Google Maps Pairwise Distances is a functions programming assignment for a CS0/CS1 course. It uses the Google Maps API in order to determine distances between pairs of US cities. Students are to work individually on the assignment.

CarBot

CarBot is a first programming assignment for a CS0/CS1 course. It is a chatbot program wrapped around a monthly payment calculator for a car loan.

Input Validation - "All Input is Evil"

Imagine making a 1 billion dollar error by typing the incorrect information into a computer. That is what happened to a Japanese securities trader in December of 2005. The trader accidentally typed in the wrong amount when selling a share of stock and lost his investors millions upon millions of dollars. This module discusses the importance input validation and the risks involved if this is not considered in code.

File I/O - Benford's Law

In this lab, students experiment with input and output files using real-world population data to see if they follow Benford's Law. At the end of the lab, students are asked discussion questions which help to extend their thinking.

Engagement Excellence

Arrays 1- CoWorkers and Directions

In this lab, students get practice using Arrays and ArrayLists to complete common tasks such as "fixing" a co-worker's mistake, and reversing the directions from "their office to their client's office". Student are also asked discussion questions at the end in order to extend their thinking.

Integer Error – You Can’t Count That High

In this laboratory, student are asked to examine integer values that are too large or too small and may fall outside the allowable range for their data type. This may lead to undefined behavior that can both reduce the robustness of the code and lead to security vulnerabilities.

Pokemon Go Graphic

In this homework assignment, students are asked to use Python Turtle Graphics to design and draw a simple Pokémon graphic.

CS1510 (CS1) Syllabus

This is the first introductory computer science course at the University of Northern Iowa. It is a semester-long course with three one-hour classroom lectures and a two-hour interactive lab per week. It is required for computer science majors but non-majors also take the course. No prior programming experience is expected, but the class is designed to be engaging to those with and without programming experience. While a major goal of the course is to provide a good start to the development of programming skills (using Python), the course is not solely about programming.  

Upon successful completion of the course students should have gained the following skills and proficiencies: general computer and operating system usage, computer operation, a mental model of how programs are executed, machine capabilities and functions, general program design, standard approaches to common (simple) programming tasks, abstraction (data , procedural, thinking), data and problem representation, and elementary data structures.

Minecraft Drawing

In this assignment, students use Python functions to create two or more types of Minecraft tiles. Examples of a drawing as well as a summary of Turtle methods are provided for guidance. In addition, past submissions are provided for inspiration.

Subscribe to Use Meaningful and Relevant Content