Unformatted Attachment Preview
Assignment Tasks
This assignment focuses on programming basics, expressions, variables, constants, methods, selection
and loops. It is divided into two parts: Part A (Due in Week 3) and Part B (Due in Week 7). A report has
to be submitted for both parts separately on respective Moodle links.
PART A: Expressions and Operations: (8+ 2 Marks)
1. Print the following statement 3 times such that they look like this:
“Now is better than never.”
“Now is better than never.”
“Now is better than never.”
2. When you’re writing long numbers, you can group digits using underscores to make
large numbers more readable:
>>> universe_age = 14_000_000_000
a. Print the above variable on the python shell prompt.
b. Add 12 billion to it and print the result.
3. What is the output of the following multiple assignment statement?
a. Print the values and the types of each variable.
>>> x, y, z = 0, -15, 5.75
b. Cast variable z to an integer type and print the result
c. Cast variable x to string type and explain your answer
4. What is the output of the following expression? Justify your answer in the demo.
a. 9/3*4+6%2*2/2*3.
b. 13//4/2
c. Take a value from the user, e.g. a=5. What is the output of a >-2. Test all cases.
PART B: Functions : (18+2 Marks)
In this task, you will write a complete program in Python that computes the cost of
breakfast at the MIT Brekky! Restaurant.
Your program is expected to prompt the user for input and validate it before
computing the results. Your program will make use of expressions, decisions, and
input/output in Python.
Functional Requirements:
The program will prompt the user for various pieces of information about the desired
breakfast. Some of the information is dependent on the type of breakfast being ordered. Once
all the information has been entered, the program will compute and display the amount of
money (including tax) charged for the customer’s breakfast.
•
The customer can build a custom breakfast from the following individual food and
beverage items: egg ($0.99 each), mix fruit salad ($2.5 per box), sausage ($3.5 each), hash
brown ($1.19 each), toast ($0.79 per slice), coffee ($1.09 per cup), and tea ($0.89 per tea
bag). For example, the customer can order two eggs with two toasts and a cup of coffee.
•
Alternatively, the customer can order a small, regular , or big breakfast:
•
The program will display the available choices in the following way:
For instance, if the customer wants a big breakfast, the user will type:
big breakfast .
The program will then ask for the quantity (how many big breakfasts).
The program continues to ask for additional menu items by re-displaying the choices.
When the customer is done ordering, the user enters 111, the program then displays the
pre-tax total, the tax, and the total with tax.
•
The program will compute the total cost of the order with additional taxes of 13%. All the
costs are to be rounded to the nearest penny, and displayed with a dollar sign and two
decimal positions. For example, a total cost of 13.66666 will be displayed as $13.67output.
•
The program must also detect and report invalid input; that is, the input must match one
of the keywords or phrases exactly (ignoring upper case and spaces). When an invalid
input is detected, the program will display an error message, and prompt for the input
until the user enters it correctly
Functional specifications:
1. Your assignment should include the following in the .ZIP archive:
•
•
A Word report with sections containing:
i.
An overview of the problem description of the assignment
ii.
Pseudocode as an algorithm for the program
iii.
A flow chart which shows how your program functions from start to the end
iv.
Screen shot/capture of the program output
v.
Acknowledgment of any help taken for assignment completion
Python files that can be executed by your tutor
2. Instructions for archiving and submitting your files:
•
Create a folder and name it with your student ID (MITxxxxxx, where xxxxxx are
digits of your student number)
i.
Copy your Word document and the python files into that folder.
ii.
Zip the folder.
a. Right-click on the folder
b. In the pop-up menu select Send-to, Compressed (zipped)Folder
iii.
Upload the zip folder under Assignment 1 folder at Moodle.
Non-Functional Requirements:
•
Include brief comments in your code identifying yourself, describing the program, and
describing key portions of the code.
•
Assignments are to be done individually and must be your own work. Software may be
used to detect academic dishonesty (cheating).
•
Use Python coding conventions and good programming techniques. For example:
•
•
•
•
•
Meaningful variable names
Conventions for naming variables and constants
Use of constants where appropriate
Readability, indentation, and consistency
Do not include/dump in screenshot of codes in written document. This
document must contain algorithm and relevant screenshot of output. Code
dumped in document will attract zero marks.
Example Runs (Part B):
2.
Marking criteria:
Description of criteria
Marks
Assignment report PART A
10
• Overview
1
• Code Implementation snapshots
5
• Explanation with each answer’s snap shot
2
Assignment report PART B
20
• Overview
0.5
• Pseudocode + Flowchart
2+2
• Python implementation
• Comments describing the program, methods, author and date
1.5
• Design of main function is correctly implemented with menu
4
• Design of small_b, regular_b, big_b, egg, fruits, hash_brown, toast, coffee, 4
tea function is correctly implemented
4
• Design calc_total function is correctly implemented
Demo (PART A + PART B)
2+2
Total
30
Assignment code Demo
Each student will be interviewed during a lab session regarding their submission to gauge your
personal understanding of your Assignment code. The purpose of this is to ensure that you have
completed the code yourself and that you understand the code submitted. Mark will be scaled
accordingly.
DEMO Rubric
0
The student cannot answer even the simplest of questions
There is no sign of preparation
They probably haven’t seen the code before
0.25
There is some evidence the student has seen the code
The answer to a least one question contained some correct points
But it’s clear they cannot engage in a knowledgeable discussion about the code
0.5
The student seems underprepared
Answers are long winded and only partly correct
They seem to be trying to work out the code as they read it
They seem to be trying to remember something they were told but now can’t remember
However they clearly know something about the code
With prompting they fail to improve on a partial or incorrect answer
0.75
The student seems reasonably well prepared
Questions are answered correctly for the most part but the speed and/or confidence they are
answered with is not 100%
With prompting they can add a partially correct answer or correct an incorrect answer
1
The student is fully prepared
All questions were answered quickly and confidently
It’s absolutely clear that the student has performed all of the coding themselves.