Problem Set 2 - Due Tue Sep 21 at 23:59
Reading
- Lecture 02 slides and notebook
- Problems and solutions from Lab 2.
- Optimism reference documentation.
- Think Python, Chapter 1, Think Python, Chapter 2, and Think Python, Chapter 3 (just section 3.1).
- The Path to Programming podcast episodes on What is Programming?, Learning Strategies, and Problem-Solving Strategies.
Note that many of the same materials from last week are relevant this week again.
Tasks
The instructions for each task and their specific requirements are laid out on the following pages:
-
Task 1: Bug Hunt — Improve your understanding of types and operators by fixing some problems in a broken math practice program. This is an individual task.
-
Task 2: Time Profiler — Practice writing an entire interactive program from scratch that uses
input
andprint
. You'll be able to calculate how much time you spend on different activities each week. For this problem, having a partner is optional but recommended. - Task 3: Impacts of Computational Technologies — Work in a group to do some research about the impacts of computational technologies on knowledge processes. 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 finding and fixing problems
in code (i.e., "debugging") and with writing basic interactive programs
using input
and print
. It also features our first connections topic,
which takes the form of a mini research project that you will complete as
part of a group.
Note that as always you can pick your partner for the partner coding task, but groups for the group project have been assigned randomly. (Grading for the group project is based on individual deliverables.)
If you want to find a partner to work with for this problem set, use this Google Sheet to do so.
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
ps02
folder in thecs111/download
directory within yourcs
server account. - The connections topic task is 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 1 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 2.5 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 4–8 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 folder no later than Thu Sep 23 at 9:30 AM if you have lecture on Thursday, or Thu Sep 23 at 18:00 if you have lecture on Friday (note the different times of day). 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 this form, no later than the original pset deadline of Tue Sep 21 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 Sep 21 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 debugMathPractice task, submit
mathPractice.py
. - For the timeProfiler task, each team member must submit their
final
timeProfiler.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 debugMathPractice task, submit
-
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 ps02. (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.