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 only on program functionality.

New Concepts to be applied for the assignment

Synopsis:

Implement a program with the features listed under the functional requirements. You must save your program in a file called "grader.py". Failing to use this exact name will affect your grade.

Write a python program that will perform the actual calculations used to calculate your term grade. The formula for calculating a weighted term grade was covered in the first set of lecture notes dealing with administrative issues such as grading but the basics are simple. The weighted grade for a component (whether that grade is a GPA, percentage or raw score) = (grade for the component) * (weight of that component). This product is calculated for each component and the weighted component grades are summed to yield a term grade.

The user will be prompted to enter the grade point for each course component after which the weighted grade point will be calculated for the major course components and displayed along with the term grade point as well as the original grades. This output must be formatted using the appropriate escape code and format specifier.

Functional requirements (working features of your program):

Explicit reminder to be awarded credit for the formatting output:

Figures showing the program getting input from the user and displaying program output


Figure 1: Getting input


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

How to do determine 'how you did' on an assignment?

Program functionality (implementing working program features)

Style and documentation (non-functional assignment requirements)

Optional python feature that you can use

The calculations for the weighted grade points for each major course component can be long but python won't allow you to simply hit enter and continue a instruction on the next line. (You must use the line continuation character (back slash) properly). Here's a [simple example] illustrating how it works.

Testing your program: Normally you should "hand trace" your program and compare the results of running your program. The calculations are a bit long in this case so for this assignment You can use the [grade calculator spreadsheet] 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

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].

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)

General 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.