PS3: Submission Instructions and Extra Advice: CSC263H1 S 20221 (All Sections): Data Structures and Analysis
PS3: Submission Instructions and Extra
Advice
Submission Instructions
For this problem set, you must submit a separate PDF file for each question named as
follows: Q1.pdf, Q2.pdf, etc. Additionally, your code for Q1c must be submitted in a file named
Routes.py, the example board should be submitted in the file example_board.txt, and your
input test files for Q1d must have the file extension .txt. Don’t create subdirectories in your
MarkUs repo.
As before, completely handwritten submissions will receive a grade of zero, but you are
welcome to draw any diagrams by hand.
Question 1 will be worth between 40 and 60% of the marks. The remaining marks will be
divided approximately equally among the other questions.
The work you submit must be that of your group; you may not use or copy from the work of
other groups, or from external sources like websites or textbooks. We recognize that although
it should not be necessary to do so, students may wish to read a different textbook or
reference material about course topics. This is not prohibited, but you must declare it.
On the front page of your Q1.pdf submission, you must list every source of information you
used to complete this homework (other than your lecture notes, our textbook, or conversations
from office hours or lectures). For example, indicate clearly the name of every student from
another group with whom you had any discussions, the title and sections of every textbook
you consulted (excluding the course textbook), the source of every web document you used,
or website you visited (other than our own CSC263 site.)
You do not need to work with the same partner that you had for either earlier assignment. Both
group members in a partnership are responsible for what is submitted for every question.
Partners are advised to work together on every question – not to divide the questions
between you.
Advice
Many of the marks for this assignment are based on written explanations of algorithms, data-
structures or test cases. Writing clearly and concisely is an important skill for a computer
scientist and is something that develops with practice. In many real-world situations, you will
have a limited number of words (or characters or time) in which to convey your ideas. Learning
to be efficient with words is part of your CS training. One way to improve a piece of writing is to
revisit it multiple times. If you are working with a partner, you could pass the explanation back
and forth, each time improving what the other person has written. (When we create
2022/3/26 20:39 PS3: Submission Instructions and Extra Advice: CSC263H1 S 20221 (All Sections): Data Structures and Analysis
https://q.utoronto.ca/courses/250296/pages/ps3-submission-instructions-and-extra-advice 2/2
assignment handouts or academic papers, your CS instructors often do a half-dozen iterations
- each!)
For the testing of the Routes.py program, focus on the quality of tests rather than the quantity.
It is more important to have clearly explained tests chosen for their algorithmic significance
than to have covered every case.
Notice that because every group is designing their own input representation, we will not be
auto-testing the programs you submit for Q1c. The programs need to be able to be run on
teach.cs, (and we will run some of them), but it is your responsibility to convince the marker of
the correctness of your algorithm in part a by what you have written in part a alone. They
should not have to look at your code in order to follow your explanation. Similarly, you need to
convince the marker of the correctness of your code by the presentation of your testing in
part d.
The design, naming, comments, and formatting of your code is critical - since markers will be
reading it to confirm that it implements the design you described in part a. Use appropriately
named helper functions. This course isn’t explicitly about programming but use all your best
programming skills here to write beautiful code. The program shouldn’t be long. (My
solution is less than 100 code lines – longer with long comments that I made directly in the file
as I was working out the representations and the algorithm.)
We haven't included all the assignment questions yet because we haven't learned everything
you need. But don't let that stop you from starting work on the questions that are available.
Some helpful files
Routes.py (https://q.utoronto.ca/courses/250296/files/19980974?wrap=1)
(https://q.utoronto.ca/courses/250296/files/19980974/download?download_frd=1) is a tiny bit of
Python code that demonstrates how to open and read from a file whose name is given as a
command-line argument.