Course Level
CS1
Knowledge Unit
Fundamental Programming Concepts
Collection Item Type
Lab
Synopsis

This lab involves students coming up with a poll on a subject in which they are interested; administering the poll to students, faculty and staff on campus; and writing a program to calculate and manipulate poll results. The example provided uses a poll based upon the 2016 US presidential election, although any poll data will do. One goal of this lab is for students to learn how to use arrays of structures. Another is for students to create a program that uses most of the concepts covered in CS1 as a culminating project. Students may work individually or in pairs.

Recommendations

I generally assign this in week 12 or 13 of a 14 week course. See the attached syllabus for how this lab is sequenced within my computer science 1 course.  However, this assignment can be as large as you like, with a larger assignment best being done in teams. The lab could also be extended into an additional lab by having students make an interactive web page (for mobile or not) to administer the survey.

Engagement Highlights

This lab provides Student Choice by having students determine the subject of the poll. It encourages Student Interaction by having students work together to gather real data to be used to test the program. To help students see how the assignment connects to the real world, invite a statistics or political science instructor to class to talk about how polling is used and how surveys are used in general. Encourage your guest speakers to give lots of specific examples to help your students see the relevance to their lives.

Finally, the more students are involved in creating the survey (with instructor guidance), discussing what the lab functionality should be using the data as input, and administering the actual poll, the more invested they are in outcome (their program).

Computer Science Details

Programming Language
C
C++
C#
Java
Python
None

Material Format and Licensing Information

Creative Commons License
CC BY-SA