Course Level
Knowledge Unit
Fundamental Programming Concepts
Collection Item Type

Students will be required to clearly describe the functions of an ordinary object they may use daily, as if they were the inventor of the object. This exercise will allow students to practice problem decomposition, abstraction, algorithmic thinking, and evaluation; as well as, modular programming and encapsulation. To encourage practice, this exercise fosters creativity; asking students to look at the objects in new ways, such as examining the object’s environment and considering its usage. Students work together to develop teamwork skills.

This exercise was developed as part of the NSF-funded Computational Creativity project at the University of Nebraska-Lincoln.


Some things to consider:

  • Assign this exercise at the beginning of the semester when teaching abstraction, modularity, and functions. 
  • It is also good to use this as the first exercise in our series of Computational Creativity Exercises as this is one of the least demanding exercises, and could serve as an icebreaker to get team members acquainted. 
  • Encourage students to provide diagrams to help describe their everyday object.
  • Remind students to describe an everyday object along two key aspects: (1) its characteristic physical attributes, and (2) its definitive functionality. These two go hand-in-hand. Consider, for example, if the everyday object is "a chair." Its functionality could be described as "something for a person to sit on." But one can also sit on a coffee table. To distinguish a chair, you also need to describe the accompanying characteristic physical attributes, e.g., it has a back.

For more information on how to implement Computational Creativity exercises, check out the authors' Teaching paper in this collection.

Engagement Highlights

This exercise is un-plugged: students are not required to do any programming. Through our lightbulbs and reflection and analysis questions, the exercise gently instructs students on content Meaningful and Relevant to CS (e.g., problem decomposition) as well as makes Interdisciplinary Connections. Students are required to work collaboratively in teams. The exercise’s use of wiki platform for collaborative writing and forum discussions, facilitates teamwork and student to student interaction inside and outside of the classroom.  Each team is allowed to choose from a list of everyday objects promoting student choice and fostering creativity.  The exercise is grounded on active learning, with open-ended activities and questions for students to collaborate on.

Computer Science Details

Computer Science Topic(s)
class design
Programming Language

Additional Details

Prerequisites / Prep Materials


Lessons Learned / Pitfalls

Potential pitfalls:

Students might end up describing, say, a pen very specifically, including its color, length, and shape. I would then bring a variety of pens to class, display on team's wiki entry (essay description of "pen"), and discuss with the class whether the description is general enough to include all pens or too specific that it excludes some of the pens.

Some teams in the past have resorted to copy and paste patent filings from the US government site. Usually, it is fairly easy to catch these descriptions. Usually, these would be too specific that would exclude a large subset of the everyday object considered.

Estimated Time to Complete

Can be as little as 2 lectures (50 mins each) in class; or as long as 2 weeks outside class.

Material Format and Licensing Information

Technology Platform Required
Creative Commons License

Author's Institutional Information

Institution Type
Doctoral/Research Universities - Extensive
Community Type
City Midsize