Description
Title: Final Project
Students will develop Python code to achieve a meaningful purpose. This will encourage the application
of knowledge acquired throughout the semester in creative ways. This is not a group project and less
than half of the semester is spent working on it. Accordingly, students are advised not to undertake
objectives on the scale of group projects they might have experienced in other courses. However, at a
minimum, projects should:
1. Make use of each area covered in class. This does not mean that the program must use
everything we learned from each area. For example, the code should import and make use
of at least one module, but students are not expected to use something from every module
covered by the instructor. Similarly, a student might find lists or dictionaries useful from the
data structure category, but have no need for tuples and dictionaries. As stated in the
syllabus, the areas covered in the course are:
a. Data types, such as strings, integers, and booleans
b. Data structures, like lists, sets, tuples, and dictionaries
c. Control flow, viz ‘if’, ‘for’, and ‘while’ loops
d. Conditional and algorithmic logic
e. Python functions and parameters
f. Reading and writing to files and accepting user input (IO)
g. Importing and using Python modules
h. Error handling and debugging
i. Coding standards
2. Achieve a meaningful purpose. The program can have a business, scientific, entertainment,
or other related domain, but the code must do something more than simply demonstrate
examples of each subject just for the sake of doing so.
3. Near the beginning of the project, students will submit short project proposals detailing the
code’s purpose. The proposal should not be longer than 2-3 paragraphs. The instructor will
advise accordingly.
4. Students will also include a short description of the application with the final submission.
This should not be longer than 2-3 paragraphs.
Although students can seek advice from peers, the instructor, books, or the internet, all code must be
written by the individual student. If it becomes absolutely necessary to borrow a few lines of code to
resolve an obstacle, those lines must be enclosed by a source citation. A comment indicating the
code’s source must precede the copied lines. A second comment must follow the block of code
indicating the copied lines have concluded.
Example:
#The following code came from https://gist.github.com/mjhea0/5680216
def deal(deck):
hand = []
for i in range(2):
random.shuffle(deck)
card = deck.pop()
if card == 11:card = “J”
if card == 12:card = “Q”
if card == 13:card = “K”
if card == 14:card = “A”
hand.append(card)
return hand
#End of code from https://gist.github.com/mjhea0/5680216.
Merely changing variable names in copied lines of code, or other minor alterations, must also have
source citations. When in doubt, add a citation. It is better to over cite than neglect a necessary
citation and be suspected of plagiarism.
Any indication that a student has completed someone else’s code, had someone else complete
her/his code, or copied code from any source without proper citation will result in a failing grade in
the course and possible further punishment by the University’s Academic Integrity Board. The student
will not be offered a second chance to complete the project properly.
Submission
1. The final PY file by the final due date;
2. A short document explaining the program in two or three paragraphs by the final due date; and
3. A project proposal near the begging of the project.
All files should be named per the standard stipulated in this document’s header. Only DOC, PDF, and PY
file types will be accepted.