“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

Credit Card Validation Project

This is the third project in a series of three programming projects and a set of lecture slides. This project on Credit Card transaction validation builds upon the Luhn Algorithm project and brings it to a higher level of complexity involving different card types, interest rates and rebate plans. The implementation of this third project uses OOP, inheritance and polymorphism.

Engagement Excellence

Luhn Algorithm for Digit Validation. Part of Integrating Concepts in Cyber-Security and Encryption

This is Project 2 in a series of three programming projects and a set of lecture slides. This project is to implement Luhn algorithm for digit validation. This project integrates string manipulation, use of regular expressions, and file i/o together with discussion on security measures on check-digit methods used among credit card numbers and IMEI numbers.

Image Processing (Warhol Pop Art Filter)

This is the eighth lab for computational art (CS1) using Processing where students practice creating an Andy Warhol silkscreen image filter. The goals for this lab are:

  1. Practice creating an Andy Warhol silkscreen image filter
  2. Practice using images in Processing
  3. Practice manipulating pixels of an image
  4. Practice using arrays and writing for loops
  5. Practice indexing a 1D ray with 2D coordinates
  6. Practice using boolean logic to control which parts of an image are modified (including implicit circles) 
Engagement Excellence

Animating Multiple Elements with Arrays

This is lab for computational art (CS1) using Processing where students create a program that animates multiple characters in a scene using loops and arrays.

The goals for this lab are:

  1. Practice writing methods
  2. Practice writing loops
  3. Practice using an array data structure
  4. Practice using animation variables
  5. Practice using arrays

Image Processing: Interactive Self-portrait

This is the third project for computational art (CS1) using Processing where students create a self portrait using a digital image of themselves as the starting point. In this project, students learn about 2D to 1D array mapping and indexing as well as practice using loops via the plotting of a shape using a parametric equation. The objectives for this project are:

Spatial Games and the Prisoner's Dilemma

This is a programming assignment given in the middle of an introductory class aimed at non-CS majors. The assignment is to simulate repeated rounds of the Prisoner's Dilemma where there are many prisoners situated in cells on a grid, and neighboring prisoners interact with each other. Since the location of prisoners matters, these are called "spatial games". Each student works alone to write a program to do this simulation and produce an image of the final configuration of strategies. The CS goals of this assignment are to introduce reading files (since the initial configuration of the prisoners is supplied in a file), to practice working with 2-dimensional arrays and structs, and to gain additional practice with control structures (loops, if). Since we provide a template, an additional goal is to understand a partially written program by reading it.

Art Nouveau Curves and Generative Elements

In this assignment students create an art nouveau style sketch using Processing which includes both animated curved elements and repeated ’tile’ like aspects. This is the second project for computational art (CS1) using Processing. The objectives for this project are:

  1. Practice using a loop to control structure to generate patterns/scenes
  2. Use functions to re-draw parts of a scene
  3. Use random to produce desirable colors and design layout
  4. Use structured layout
  5. Use parametric curves to control curved patterns in a sketch
  6. Apply repetition of drawing certain elements in a sketch
Engagement Excellence

Animated and Remixed Blexbolex

In this project, students merge their lab 2 code and add animation to explore the use of variables (and explore the process of merging two code bases together). The objectives for this project are:

  1. Practice using Processing
  2. Practice using simple primitives and shapes in Processing
  3. Practice using methods to encapsulate parts of your code for re-use
  4. Practice integrating two student’s code
  5. Practice scaling and translating shapes into a single coordinate frame
  6. Practice animating via transforms and variables
  7. Practice developing your aesthetic
  8. Make an interesting ‘story’ combining two existing designs and adding animation

Impressionism and Implicit Functions (Looping 2D Space)

This is the sixth lab in a course on computational art (CS1) using Processing (https://processing.org/overview/). In this lab, students write a program that creates an image using an implicit representation of geometry that is drawn using shapes to emulate paint strokes.

In this lab, students will:

  1. Practice using a loop control structure to create an image made of strokes based on implicit lines.
  2. Practice using implicit lines and implicit circles, and the distances from these equations, to create a scene or object.
  3. Create new stroke styles using patterns of points, lines, and ellipses that model the textures seen in many impressionist paintings.
  4. Practice translating mathematical functions into code. 
Engagement Excellence

Generative Art Using Loops

This is the fourth lab for computational art (CS1) where students write a program that creates two different images using Processing each of which are generated by an algorithm when the program is run. Each of the two different images must use repetition (that is, some visual elements that are repeated, but that may be slightly different) using loops and a function to draw the repeated element. The goals for this lab are:

  1. Practice using a loop control structure to generate patterns/scenes
  2. Practice using functions to re-draw parts of a scene
  3. Practice using random to produce desirable colors and design layout
  4. Practice using structured layout in 2D space
  5. Consider the role of repetition in art
Engagement Excellence
Subscribe to Use Meaningful and Relevant Content