Lecture notes for Computer Science I by James Tam | Return to the course web page |
Although there are many ways in which the impact of one's lifestyle can have an impact on the earth one of the simplest approaches is to calculate the tons of carbon that get generated on a yearly basis as you go about your everyday activities. For this assignment you will be writing a program that will ask the user a number of questions about his or her lifestyle. In some cases the questions will require a specific answer (e.g., How many miles do you drive each year?) while other cases will allow the user to select an option from a series of choices (e.g., What category of accommodation do you live: small house, medium house, large house). As the user answers these questions the program will calculate a tally of the tons of carbon generated each year. Note: this program is simply a tool to calculate a value...how you use and interpret these numbers is entirely up to you!
The questions are categorized into 6 categories and each group consists of one or more questions. The answer to each question will either directly determine the tons of carbon generated or be used in conjunction with the answer from another question. The tons of carbon generated should be specified as a yearly figure.
For this question the user will be given the choice of either entering the kilowatt hours used per year or estimating that value by specifying the size of their accommodation.
(Exact value):
10 kWh = 0.01 tons of carbon
(Estimate):
Small house / apartment: 1.58
tons
Medium sized house: 2.53 tons
Large house: 3.69 tons
Small house / apartment: 2.44
tons
Medium sized house: 3.65 tons
Large house: 5.48 tons
Question 1: Bus travel
Every 100 miles traveled by bus each year will generate 0.01 tons of carbon.
Question 2: Train travel
Every 100 miles traveled by train each year will generate 0.01 tons of carbon.
Question 3: Vehicle type and mileage
This question actually consists of two sub questions: one is about the size of the person's vehicle, the other relates to mileage. The number of tons of carbon generated yearly for all the combinations of answers are shown in the table below.
|
Small car |
Medium sized car |
Large car |
Low mileage (~6000 miles/year) |
2.32 |
2.6 |
3.58 |
Average mileage (~9000 miles/year) |
3.48 |
3.9 |
5.36 |
High mileage (~12000 miles/year) |
4.64 |
5.2 |
7.15 |
Question 1: Amount of organic food consumed
None: 0.7 tons |
Some: 0.5 tons |
Most: 0.2 tons |
All: 0 tons |
Question 2: Amount of meat and dairy consumed
Above average: 0.6 tons |
Average: 0.4 tons |
Below average: 0.25 tons |
Lacto-vegetarian: 0.1 tons |
Vegan: 0 tons |
Question 3: Source and season of the food
Mostly out of country and out of season: 0.5 tons |
Average amount of locally produced food: 0.3 tons |
Above average amounts of locally produced food: 0.2 |
Almost all food is locally produce : 0.1 tons |
Question 4: Packaging and processing (how much of your food consists of ready-to-eat meals)
Above average: 0.6 tons |
Average: 0.4 tons |
Below average: 0.2 tons |
Very little: 0.05 tons |
Question 5: Wastage (what proportion of the food that you buy ends up getting thrown out)
Above average (30%+ wasted): 0.39 tons |
Average (~20% wasted) 0.35 tons |
Below average (~10% wasted) 0.32 tons |
Almost none1: 0.29 tons |
None: 0.2 tons |
Some: 0.1 tons |
Everything: 0 tons |
This category relates to the amount spent on leisure, things for your accommodations, clothing, hygiene, books etc. The category consists of two questions: one question asks how much is spent on consumption, the other asks how much of those goods and it's packaging is recycled. The number of tons of carbon generated yearly for all the combinations of answers are shown in the table below.
No recycling | Recycle paper, glass and metal | Recycle all plastics | Recycle everything | |
Above average consumption | 5 | 4.93 | 4.86 | 4.79 |
Average consumption levels | 3.4 | 3.33 | 3.26 | 3.19 |
Below average consumption levels | 2.4 | 2.33 | 2.26 | 2.19 |
Much below average consumption levels | 1.4 | 1.33 | 1.26 | 1.19 |
For each question, the program should check for invalid input (e.g., selecting a non-existent option) and handle the error according to the principles of good design as shown in the lectures dealing with branching and looping. [Example] Also the user should have the option of skipping any question so they can proceed with the remaining questions (remember: programs should never make the user feel 'trapped' to give an answer). [Example] Also if the answer to one question has an impact on another question this should be reflected by the program e.g., if the user chooses not to answer the question about the size of the vehicle that they drive then it makes no sense to ask what their yearly mileage is. Finally as each question is answered the program should not only show the number of tons of carbon that get generated according to the answer to that specific question (so they get immediate feedback about how their lifestyle has an impact) but also a running total of the tons of carbon produced should also be shown each step of the way (even if the result is currently zero). When all the questions have been answered a grand total should then been calculated and displayed.