To the faculty page of James Tam Return to the course web page

CPSC 217: Assignment 1

Due at 4 PM. For assignment due dates see the main schedule on the course webpage.

Assignment difficulty

Students may find assignments more challenging than they first thought. It's best to start work as early as possible. Tips in the very first lecture were provided but here's two reminders: 1) work through the lecture and tutorial material before looking in detail at the assignments 2) start work as soon as possible. If you find you cannot complete an assignment before the due date then you will not be granted an extension.

Note: it is not sufficient to just implement a working program and expect full credit. This is so you implement your solution in the correct way using good design principles and you apply the necessary concepts. Even if your program is fully working and the program is not designed or implemented as specified in the assignment description (e.g. poor variable names used, named constants not used when they should have employed etc.) then you will not be awarded full credit. For some assignments your grade may be greatly reduced. For example, in all the later assignments you need to employ functional decomposition and do so in a the proper specified manner. If you do not do this then your maximum assignment grade point could be as low as 1.0 GPA even with a fully working program. Although the earlier assignments will not have marking requirements which are quite as strict take care to read the specific details provided in each assignment which is provided under the "Marking and grading" section of each 'full' assignment. The marking of the mini-assignments will focus on program functionality.

New Concepts to be applied for the assignment

Creating your first Python program

Write a python program that will perform the actual calculations used to calculate your term grade. It will start by prompting for the grade point (0 - 4.3)1 for each of these components (assignments and mini-assignments) one-at-a-time.

1 During a particular semester only some assignments will allow for a bonus (grade point greater than 4.0) but you don't have to account for these issues in your prompts to the user.


Figure 1: Getting input

Your program does not have to error check the user actually entered a value within this range because you will not yet have yet learned how to do this yet. Just assume that the user enters a value within the correct range. (Note Also your program doesn't have to check for invalid types of information being entered (e.g. the user enters a string instead of numbers for a grade point). You should however document these problems as current program limitations (see the "non functional requirements" section).

After the grades for all the components have been entered the program will calculate and display the weighted grade points for each of the full assignments, mini-assignments and the term grade point. It will display the original grades entered by the user along with the weighted grades and the term grade.


Figure 2: Output of the original grades, the weighted grades and the term grade point.

Fractional values should be displayed with one place of precision, precision is the number of digits after the decimal point. (If you still don't know what this means here's an article explaining these terms). The precision must be specified with a correct format specifier.

Here's the format of the output (original grades, weighted grade points and the term grade point):

The angled brackets do not actually appear in the output, they are only used to separate different pieces of information. The spaces between the fields shown above are only included for readability and do not appear in the final output (e.g. there is only a tab between A1 & A2 not a space and a tab.

Here's how you are to produce the specified format:

Explicit reminder to get credit for formatting output:

Testing your program:

Normally you should "hand trace" your program and compare the results of running your program. You can use the [grade calculator spreadsheet] for this assignment to compare results.

Non -functional assignment requirements (style and documentation).

Having at least one violation in one of the above categories will result in -0.1 penalty to marking. Multiple violations in one category still results in a single penalty (e.g. 3 bad variable names will still result in a -0.1 penalty). However violations between categories will result in cumulative penalties (e.g. a program that includes poor variable names and no documentation of features and no documentation of weaknesses will receive a -0.3 penalty).

Marking and grading

Method of submission:

You are to submit your assignment using D2L [help link]. Make sure that you [check the contents of your submitted files] (e.g., is the file okay or was it corrupted, is it the correct version etc.). It's your responsibility to do this! (Make sure that you submit your assignment with enough time before it comes due for you to do a check). If don't check and there were problems with the submission then you should not expect that you can "learn your lesson" and simply resubmit.

D2L configuration for this course

Late submissions for full assignments  when there is no extension granted: Make sure you give yourself enough time to complete the submission process so you don't get cut off by D2L's deadline (or your submission will be automatically flagged as late by D2L and it will be graded appropriately)..

Submission received:

On time

Hours late : >0 and <=24

Hours late: >24 and <=48

Hours late: >48 and <=72

Hours late: >72 and <=96

Hours late: >96

Penalty:

None

-1 GPA

-2 GPA

-3 GPA

-4 GPA

No credit (not accepted)

Collaboration:

Assignments must reflect individual work; group work is not allowed in this class nor can you copy the work of others. Some "do nots" for your solution: don't publically post it, don't email it out, don't show it to other students.  For more detailed information as to what constitutes academic misconduct (i.e., cheating) for this course please read the following [link].

Use of pre-created Python libraries:

Unless otherwise told you are to write the code yourself and not use any pre-created functions (or methods). For most assignments the usual acceptable functions include: print(), input() and the 'conversion' functions such as int(), float(), str(). Look at the particular assignment description for a list of other functions/methods that you are allowed to use and still get credit in an assignment submission. If it's not listed then you should assume that you won't be able use the function and still be awarded credit.