Bits, Bytes, and Overflows
Overview
The assignment is the first in an introduction to systems course. It covers bits, bytes and overflow, continuing students’ introduction to bitwise and arithmetic operations. Following the saturating arithmetic problem, we added a case study analysis about the Ariane-5 rocket launch failure. This provided students with a vivid illustration of the potential consequences of overflows as well as an opportunity to reflect on their responsibilities as engineers. The starter code is the full project provided to students.
Contributors
- Ethics materials by Kathleen Creel, Nick Troccoli, and Brynne Hurst
- Assignment by Julie Zelenski, with modifications by Nick Troccoli, Chris Gregg, Katie Creel and Brynne Hurst
Assignment goals
- editing, compiling, testing, and debugging C programs under Unix
- writing code that manipulates bits and integers using the C bitwise and arithmetic operators
- working within/around the limits of integer representation
Ethics goals
- understanding the risks associated with integer representations in real-world software
- Discussing the ACM code of Ethics and the responsibilities of engineers
Download Links
- Starter Code
- Assignment handout
- Ethics Slides (pptx)
- Explainer Handout