Table of Contents
Fetching ...

A Problem-Based Learning Approach to Teaching Design in CS1

Christopher William Schankula, Habib Ghaffari Hadigheh, Spencer Smith, Christopher Kumar Anand

TL;DR

This work presents its experience teaching a team design project course to 200 first-year-university students, taking them from user interviews to functional prototypes, and the extent to which students' awareness of the strategies led to the development of metacognitive abilities.

Abstract

Design skills are increasingly recognized as a core competency for software professionals. Unfortunately, these skills are difficult to teach because design requires freedom and open-ended thinking, but new designers require a structured process to keep them from being overwhelmed by possibilities. We scaffolded this by creating worksheets for every Design Thinking step, and embedding them in a PowerPoint deck on which students can collaborate. We present our experience teaching a team design project course to 200 first-year-university students, taking them from user interviews to functional prototypes. To challenge and support every student in a class where high school programming experience ranged from zero hours to three computer science courses, we gave teams the option of developing single-user or multi-user (distributed) web applications, using two Event-Driven Programming frameworks. We identified common failure modes from previous years, and developed the scaffolded approach and problem definition to avoid them. The techniques developed include using a "game matrix" for structured brainstorming and developing projects that require students to empathize with users very different from themselves. We present quantitative and qualitative evidence from surveys and focus groups that show how these strategies impacted learning, and the extent to which students' awareness of the strategies led to the development of metacognitive abilities.

A Problem-Based Learning Approach to Teaching Design in CS1

TL;DR

This work presents its experience teaching a team design project course to 200 first-year-university students, taking them from user interviews to functional prototypes, and the extent to which students' awareness of the strategies led to the development of metacognitive abilities.

Abstract

Design skills are increasingly recognized as a core competency for software professionals. Unfortunately, these skills are difficult to teach because design requires freedom and open-ended thinking, but new designers require a structured process to keep them from being overwhelmed by possibilities. We scaffolded this by creating worksheets for every Design Thinking step, and embedding them in a PowerPoint deck on which students can collaborate. We present our experience teaching a team design project course to 200 first-year-university students, taking them from user interviews to functional prototypes. To challenge and support every student in a class where high school programming experience ranged from zero hours to three computer science courses, we gave teams the option of developing single-user or multi-user (distributed) web applications, using two Event-Driven Programming frameworks. We identified common failure modes from previous years, and developed the scaffolded approach and problem definition to avoid them. The techniques developed include using a "game matrix" for structured brainstorming and developing projects that require students to empathize with users very different from themselves. We present quantitative and qualitative evidence from surveys and focus groups that show how these strategies impacted learning, and the extent to which students' awareness of the strategies led to the development of metacognitive abilities.

Paper Structure

This paper contains 26 sections, 1 equation, 10 figures, 1 table.

Figures (10)

  • Figure 1: Summary of Good Problem Properties
  • Figure 2: Model-View-Update dataflow.
  • Figure 3: The Game Matrix
  • Figure 4: Desirability vs. Feasibility worksheet. Students rate their ideas from the Game Matrix (Fig. \ref{['fig:GameMatrix']}) and drag them onto the plot to choose their top 2 ideas to pursue. The plot has some value as a product, but its main value is in engaging teamwork by forcing the design team to discuss the placement of different solutions, and in critical thinking.
  • Figure 5: Local-Global Model-View-Update (LG-MVU) architecture dataflow diagram. This simple example stores a colour in the local model and the shape itself in the global model. Thus the colour can be changed by local messages and shape change global messages are propagated to all clients.
  • ...and 5 more figures