1. Produce code that is free of syntactical, logic, and run-time errors.
2. Design and create code in python using objects and classes, information
encapsulation, and efficient class design.
Submitting Your Code to Moodle
For this assignment, you will need to submit a .zip file with your source code as a single .py file,
screenshots of the output and if needed, any other supporting file. Please name the .zip file
You must submit your code to Moodle to get full credit for the assignment. Please also include
comments in your code to describe what your code is doing. Comments should also include
your name, recitation TA, and the assignment. TAs will be checking that your code has
Your TA will be hand-grading your code, examining your project to make sure that you meet the
requirements of the assignment and assessing how well you coded your solution. You will not
have an interview, so be as explicit as possible. Make sure that everything works as you want
when the file you submitted is unzipped. For that, right after submitting, download the file you
submitted, unzipped, run it, and correct if not satisfied.
What to do if you have questions
There are several ways to get help on assignments in CSCI 1310, and depending on your
question, some sources are better than others. If, after reading this write up, you need
clarification on what you’re being asked to do in the assignment, the TAs and the course
instructor are better sources of information.
Your project must compile. Otherwise, you loose all the points (see grading rubric at the end). If
your project does not compile or you are not satisfied with your work, you might choose to ask
for the standard extension, once again, there will be no interview grading for this assignment.
You are allowed to use a similar project than the C++ (not all the requirement are portable to
Your project must have the following features:
● When your code first runs, it should display a welcome message and a detailed
description of what your code does.
● You need to provide an interactive menu that allows whomever is running your code to
choose what functionality they would like to try out. This menu should be explicit and
detail exactly what will happen when an option is selected.
● 2 loops (either while or for, or one of each)
● 4 if/elif/else blocks
● 4 numerical variables
● 4 strings
● File I/O and Console I/O
○ Writing to a file.
○ Reading from a file or ask the user for input and handle that input.
● 4 classes, including
○ At least one base and one derived class
○ At least 16 member functions total in all classes. For example, each of the
four classes could contain 4 functions, including the constructor.
● There is at least one function that operates on two objects of one class. For
example, our distance function operating on two Point objects.
Once more, we will be having a contest for who submits the best project. In the interest of
fairness, each student’s work will be analysed based on the efforts and the difficulty of the
project. They will be categorized as below:
● Novice Project.
● Intermediate Project.
● Advanced Project.
Based on the students creativity, prior programming experience and efforts, 1 students will be
nominated for each category.
Please note that we will take off points if you fail to complete the above requirements. For
example, if you don’t provide a welcome message and a detailed description of what your
program does, you will lose 10 points, regardless of how good the rest of your program is. If
you have any questions about the requirements or are unsure of where to start, please contact
your instructor or your TA.
Requirement Points each
2 loops (either while or for, or one of each) 2 1
4 if/elif/else blocks 2 0.5
4 numerical variables 1 0.25
4 strings 1 0.25
Reading from file or console 1 1
Writing to a file. 2 2
4 classes, including 8 2
At least one base and one derived class (together they count as two)
At least 16 methods total in all classes. For example, each of the three
classes could contain 4 methods, including the constructor (destructors
don’t count). 16 1
At least one function that operates on two objects 2 1
Driver(main function) that tests all your functionalities 5