Problem Set 7 - Due Tue Nov 9 at 23:59
Reading
- Slides and notebooks from Lec 14 (Testing & Debugging), Lec 15 (File Input/Output), and Lec 16 (Directories).
- Problems and solutions from Lab 8 (Tracing, Testing, and Files).
- Think Python, Appendix A talks about debugging, and Think Python, Chapter 14 covers files; we only discuss sections 14.1-14.5, although section 14.10 is also useful. The textbook does not have a chapter about testing.
Tasks
The instructions for each task and their specific requirements are laid out on the following pages:
-
Task 1: Function Testing — Write test cases to catch bugs in several similar implementations of a function. For this problem, having a partner is optional but recommended.
-
Task 2: File Operations — Define functions for reading and writing files and for dealing with directories. For this problem, having a partner is optional but recommended.
- Task 3: Problems with Computational Technologies — Work in a group to do some research about the problems with computational technologies. You will be assigned a group for this task, but will be individually responsible for either turning in a 1-page research document or giving a presentation in class.
About this Problem Set
This problem set will give you practice with testing and tracing, and file input/output, with a bit of practice on directories and the os
module as well.
If you want to find a partner to work with for this problem set, use this Google Sheet to do so.
Note that you may not work with different partners on different tasks in this problem set. If you are working with a partner on one task, you must either work individually or work with that same partner on any other tasks where a partner is allowed.
Notes
-
Each task has a rubric which you should use as a checklist to determine whether you have completed the task.
-
Reminder: Collaboration and honor code: you can talk with other individuals and teams about high-level problem-solving strategies, but you cannot share any code with anyone except your partner when working on a partner problem.
-
If you are not going to be able to get everything done before the deadline, you may take a 24-hour extension on this problem set, no questions asked. To do so, you must click the "Take extension" button for this problem set in the Potluck Server before the deadline has passed. If it is close to the deadline and you don't know if you'll make it in time, consider taking the extension now, and then turning in your work. If you take an extension you will not receive feedback until the extended deadline has passed; note that the deadline for revisions does not change when you take an extension, so this gives you less time to revise your work.
-
The CS111 Problem Set Guide gives an overview of psets, including a detailed description of individual and partner tasks.
-
Follow the practices discussed in our CS111 Code Style Guide.
-
When you're done with the tasks follow the submission instructions to submit your pset.
-
All code for this assignment is available in the
ps07
folder in thecs111/download
directory within yourcs
server account. - This week we have our second connections topic task, and again it's a bit different than a standard task, and has different rules for submission: You will work with a randomly-assigned group (although each member will turn in their own work), you will be writing text, not code, and it includes an in-class presentation in the lecture after the problem set is due.
Time Estimate
To help you plan how long you need to spend on this problem set, we have some guidelines based on how long students spent on these tasks last semester (please fill out your time estimates to help students in future semesters). Note that this semester, due to the large number of new tasks, these numbers are often just estimates.
When you've been working on a task for about 2 hours, you should evaluate whether you are making efficient progress, and make use of some of the class resources available to you, like help-room hours or office hours. If you've been working on one task for 4 hours and still have a ways to go, you should definitely get some help with it.
The entire problem set will probably take you something like 7–10 hours of programming, plus another half hour to hour of reading, although some students take more or less time than that.
We expect that you'll spend 2-4 hours doing research and writeup for the connections topic task.
How to turn in this Problem Set
For task 3, you will not be submitting code. Instead, what you submit depends on your role in your team:
- If you are the team captain, your grade will be based on your presentation given in class during the lecture after the problem set is due. (If you are facing logistical issues with this, please let your lecture instructor know as soon as possible.) As part of the presentation, you must create slides as Google Slides and upload them in the appropriate subfolder of this shared Google Drive folder no later than Fri Nov 12 at 10:00 PM. You must also convert your slides to PDF and submit them in Gradescope under PS07 Task 3; you will be given an extension to the Tuesday deadline for this assignment. You should communicate with your group members about their research documents so that you can start creating your presentation before Wednesday, as otherwise you will not have enough time to complete it.
- If you are not the team captain, your grade will be based on the 1-page research document which you will submit via gradescope, under PS07 Task 3, no later than the original pset deadline of Tue Nov 9 at 23:59. The normal 24-hour extension option does not apply to this deadline, because any delay with your submission will affect your team captain's ability to complete their work. You should be in communication with your team captain well in advance of the deadline so that they can give you feedback on an initial draft of your research document. Note that in addition to uploading your final report, you should share it with your team captain. There is a size limit of 1MB for the report document; contact an instructor for help if you are having trouble with this size limit.
For tasks 1 and 2, you will submit code via the usual mechanism:
-
Upload each of your task files via the Potluck server by the deadline ( Tue Nov 9 at 23:59). Click on "Browse..." for the task that you're submitting, then once you've chosen your file, enter your time estimate and click on "Submit task". In the file you're submitting, remember to fill in the authors (including you and your partner if you worked with a partner), the names of people you consulted (other than your partner), the date, and the file's purpose.
- For the functionTesting task, each team member must submit their
final
functionTesting.py
file. It is not sufficient for your teammate to submit this task, you must both submit it independently, or you will not get credit. - For the fileops task, each team member must submit their
final
fileops.py
file. It is not sufficient for your teammate to submit this task, you must both submit it independently, or you will not get credit.
- For the functionTesting task, each team member must submit their
final
-
Double-check the status of your submitted tasks (you may have to wait a minute or two after uploading). The server will identify any serious problems with your submission, and you should fix these. In general, always make sure that your task files run without errors in Thonny before submitting them. Note that only major errors are identified at submission time: your actual grade will not be available until the problem set is due.
-
Failure to submit a code file before the deadline will result in zero credit for that code on ps07. (If you do get a zero, you may always take advantage of the revision period to get a better score).
-
Note that you can submit as many times as you like, and we will only grade the last version you submit before the deadline, so it's a good idea to submit several times as you work on the assignment as a backup in case you accidentally lose your work: we can help you recover a file that you've submitted to the server.
- If you encounter any trouble submitting via the Potluck server, please email Peter Mawhorter with a copy of the files you're trying so submit so that we have a record of your submission if the submission server is running into issues.