CPSC 217: Mini-Assignment 3A
Due at 4 PM. For assignment due dates see the
main schedule on the course webpage.
The program must be written and run under python version 3.X. Submit the
assignment as a python program (.py)
New Concepts to be applied for the assignment
-
Defining and calling a single function that takes parameters and returns a
value.
Functional assignment requirements
Up to this point you have only
been using functions that have already been defined with
the Python programming language such as: print() and input().
For this assignment you will be defining
a new function
called
smallest().
JT's hint:
knowing your terminology is always important before starting an assignment. It
is imperative that you complete this prerequisite work for this assignment
otherwise you will have trouble understanding the following requriements.
- To get credit for this assignment you
must use the starting code provided in
file [miniAssignment3A.py]
- Define the header for function
smaller() that takes as
its arguments two parameters which are assumed to be integer values. (Worth
1.0 GPA)
- The function will determine which of the arguments
is smaller (this feature must be correct in order to get credit for the
remaining features that follow). (Worth 1.5
GPA)
- The smallest value will be returned (either
argument can returned if both are equal). This feature must be correct in
order to get credit for the remaining features that follow. (Worth
0.5 GPA)
- Write the call to
smaller function at the specified location in
the start()
function. The function return value will be stored in
num3 (this feature must
be correct to get credit for the following feature). (Worth
0.4 GPA)
- Display the smaller number at the specified
location in the start()
function along with the original two numbers. (Worth
0.6 GPA)

The program already prompts the user for the two
numbers, function smaller must take take as
arguments the two numbers entered by the user and determine which of these
values is smaller.
You should still practice applying good style in your solution as well as
writing documentation. Unlike the full assignments you will be just graded on
program functionality for the mini-assignments.
- Naming conventions: You should employ good naming conventions for
identifiers (variables and constants).
- Documentation: contact information (your name,
student identification number and tutorial number). This should be specified
in the header of the program (very top in the form of Python documentation).
In addition your documentation should specify:
- What does the program do.
- What are it's limitations e.g. the program doesn't
perform type checking (crashes when non-numeric information is entered)
- The version number of the program (dates are
acceptable)
- Named constants should be used as appropriate.
- The program code should have appropriate white
space (specified in the "Intro to programming lecture") and alignment
(specified throughout the lecture notes)
- Finally your program should follow the 5 rules of
thumb for designing software (Jakob
Nielsen's 10 usability heuristics) which were
included at the notes on 'Repetition' e.g. prompts to the user to enter the
required information should be clear to the user as to what is required,
good error messages should be provided for erroneous input etc.
Submitting your work:
- The document must be electronically submitted
using D2L. This
applies to on-time or late submissions.
- D2L configuration for this course
- Multiple submissions are allowed for this assignment: You can (and
really should) submit work as many times as you wish before the due
date. Due dates are strict, only what is in D2L by the deadline is what
will be marked. Other methods of verifying that your work was completed
on time (e.g. checking timestamps, emailed files etc.) will NOT be
accepted.
- Multiple files can be submitted for this assignment (e.g.
A1_version1_May7, A1_version2_May8 etc.) Consequently all versions of
your submissions will be retained. However only the latest versions of
each individual document (for assignments that require multiple files to
be submitted) are the ones that will be marked, everything else will be
ignored (because it is not fair to your marker to sort through multiple
versions of your files).
- Do not use compression utilities (such as zip) or archiving utilities
(such as tar) otherwise your submission may not be marked
- 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 your submit your assignment with enough time before it
comes due for you to do a check)
Marking
-
Assignments will be marked by your tutorial instructor (the "Teaching
Assistant" or "TA") for your
tutorial section. When you have questions about marking this is the first
person that you should be directing your questions towards. If you still
have question after you have talked to your TA, then you can talk to your
course (lecture) instructor.
-
Because this is a simple mini-assignment there isn't a marking spreadsheet.
If you were awarded full marks then you will see your grade point in D2L
(4.0). If you were awarded less than full credit then your marker will enter
some brief comments that described where you went wrong into the D2L Dropbox
for this component.
Points to keep in mind:
-
Due time:
All assignments are due at 4 PM on the
due dates
listed on the course web page. Late assignments or components of
assignments will not be accepted for marking without approval for an
extension beforehand. Alternate submission mechanisms (non exhaustive list
of examples: email, uploads to cloud-based systems such as Google drive,
time-stamps, TA memories) cannot be used as alternatives if you have
forgotten to submit work or otherwise have not properly submitted into D2L.
Only files submitted into D2L by the due date is what will be
marked, everything else will be awarded no credit.
-
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).
-
Identifying information:
All assignments should include contact information (full name, student ID
number and tutorial section) at the very top of your program in the class where the 'main()'
method resides (starting execution point). (Note other documentation is also required for most
assignments).
-
Collaboration:
Assignments must reflect individual work;
group work is not allowed in this class nor can you copy the work of
others. For more detailed information as to what constitutes academic
misconduct (i.e., cheating) for this course please read the following [link].
- Execution:
programs must run on the computer science network running Python 3.x. If you
write you code in the lab and work remotely using a remote login program
such as Putty or SSH then you should be okay (assuming you don't login to a
non-Linux computer). If you choose to install Python on your own computer
then it is your responsibility to ensure that your program will run properly
here. If it won't run using Python 3.x then it
won't be awarded credit. It's up to you if you wish use the graphical
program builder IDLE to write/run your programs but if you do you submit your program in the form of
text ".py" file or files.
-
Use of pre-created Python
libraries:
unless otherwise told you are to write the code yourself and not use any
pre-created functions. For this assignment 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
classes that you are allowed to use and still get credit in an assignment
submission.
-
Extensions
may be granted for reasonable cases by the course instructor with the
receipt of the appropriate documentation (e.g., a sworn declaration with a
commissioner of oaths). Typical
examples of reasonable cases for an extension include: illness or a death in
the family. Example cases where extensions will not be granted include situations
that are typical of student life: having multiple due dates, work
commitments etc. Tutorial instructors (TAs) will not be able to provide
extension on their own and must receive permission from the course
instructor first.
-
Questions about marking: Your Teaching
Assistants will be marking the assignments so I will first direct your
questions to them regarding the marking
-
Late submissions (no extension granted):
|
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 |