In this project students explore the design and implementation of software for a highly simplified voting machine that allows users to cast votes for one race (say, Mayor of Simpleton) and counts the number of votes for each candidate. Additionally, students work in pairs to scan input from a file, maintain data in an array structure, and output data in a particular format. This activity is good for students that would benefit from practice with using basic data structures to keep track of information.
Collaborate with a professor from the Political Science department on the "real world" implications of such work to illustrate Interdisciplinary Connections between CS and politics.
Discuss the logistical challenges of voting machines and the increased burden being placed on computers of handling elections. Although computers are built to handle these logistics, discuss how automated solutions present their own problems when not designed and built carefully.
This is Project 1 in a Computer Science 2 course. Please see link to course schedule for sequencing.
This project employs meaningful and relevant content by framing concepts around current political issues (voting) which may be relevant to the life of college students in introductory computing. Additionally in this project, students use pair programming, a method of collaborative learning. Pair programming is explained in detail in the lab manual link within the project.