CPSC120A
Fundamentals of Computer Science I

Assignment 1

Use Python for rocket science.

This assignment was inspired by XKCD What if? #24: Model Rockets


Over the past 50 years, spaceflight has become more technologically advanced. While NASA's prospects on manned spaceflight have fizzled out, commercial spaceflight is just around the corner. For the low, low price of $250,000, you to could travel to the edge of space and back. However, one does not necessarily have to wait that long to get to space, or spend that much money...or do they?

Estes is a company that makes model rocket engines. One of their most powerful, but commonly available, model engines is the E9. The E9 engine provides 28.5 Newton/second of thrust. Given that an average human being weighs about 160 pounds, let's figure out how many model rocket engines are needed to lift the human off the ground.


Details

Create a program called lift_off.py. This program should print the information about lifting a human off the ground. In particular, your program should print:

  1. The equation (as text) you derived to determine the number of rocket engines required to lift the human off the ground,
  2. How many rocket engines are required to lift a 160 pound human being, Assuming all thrust is additive,
  3. Assuming three rockets come in a pack, how many full packs of rockets are used,
  4. In the (potentially) not fully used pack, how many rockets are left over,
  5. And assuming each rocket engine weighs 35.8 grams, how much the collection of rocket engines weighs.

Remember 1 N = 1 kg/s. For a vertical launcing rocket, lift-off requires the thrust to exceed the the gravitational force (9.81 N) on the object being lifted. You can assume weightless rockets for the computation of the forces, though this is generally a bad assumption.


"Hacker" Prompt


Each week, additional exercises related to the assignment will be provided at the end. These exercises are typically more challenging than the regular assignment. Bonus points will be provided to students who complete any of the "Hacker" level assignments.

  1. Cost of travel: For this mechanism to be worth while, we really need to know how much it would cost to lift an average human off the ground. Assuming each pack of rockets costs $54, how much does the launched monstrosity cost?
  2. To Infinity: Of course, that's just to get the person off the ground. Where's the fun in that?!? Compute how many rockets would be necessary to get the human 1000m in the air! Keep in mind that the Estes E-9 burns for ~3 seconds. You can assume all thrust is immediate.
  3. Weight of the Rocket: Your code above likely assumed that the rocket engines had no weight, for the purposes of HP-II. So, how could you factor that into your calculations? Factor in weight of the rockets into your solution for HP-II.
  4. What if?: The idea for this assignment came from the web site xkcd what if? Read through some other questions, and create a program that performs the calculations.

Grading

The assignment will be graded on the following requirements according to the course’s programming assignment rubric.

Functionality (75%): A functional program will:

Style (25%): A program with good style will:

Submission

Submit your program as a .py file on the course Inquire page before class on Wednesday September 16th.