@extends('template') @section('title') How to work on projects @stop @section('content') {{--TODO: Video version --}} # Lab 1: How to work on projects To access starter code and to turn in your projects, you will use [the Potluck server](https://cs.wellesley.edu/potluck). This page gives detailed instructions for using it, and will walk you through the process of submitting an "example" task that has been set up on the server for this purpose. # Potluck Overview The Potluck server enables you to do the following: * download starter code for a task * upload your finished code * obtain feedback on your uploaded code * submit revisions and obtain feedback immediately In order to use the server, you must first authenticate by logging into your Wellesley domain account (you will be prompted to do so). Note that the example project is not worth any points! # Welcome to the Potluck server ## Accessing starter files For all tasks, there will be some starter files that we supply. To access them: 1. Go to [the CS111 Potluck Server](http://cs.wellesley.edu/potluck). 1. Authenticate by logging into your Wellesley domain account. 1. Scroll down to the task you want to work on (for today, go to the Example Task which is at the top). 1. Click on the "Download starter files link" on the right-hand side. 1. Your browser should download a `.zip` file. 1. You need to extract the `.zip` file before you can work with the files inside. On a Mac, double-clicking should work, on Windows after double-clicking you may need to click on the "Extract all" button. Download and extract the starter files for the example task now to make sure you know how to access starter files. ## Step-by-step instructions for uploading your code 1. Go to [the CS111 Potluck Server](http://cs.wellesley.edu/potluck) and authenticate. 1. You'll see Potluck's dashboard.
Note that each task has a light blue background right now. This example will focus on the "example" project, which has only one task called "Example Task" (in the red rectangle below)
The Potluck interface. There is login information at the very top with a link to log out. Next is the title and the header 'Dashboard' followed by quick links for each project, and then a checkbox that can be used to disable form validation (use this only if necessary). Then there is a list of projects, each of which has a name, due date information (where the button to request an extension is placed) and series of tasks. Each task has informtion about your submission status, a task name, a form for submitting it including a file chooser and a text field for estimating how long it took you, and a submit button. Each task also has a link to 'View initial feedback' and some warning messages below, which initially indicate that you haven't yet chosen the right filename or estimated your time spent. The warning messages should be linked to the form inputs so you don't have to jump back and forth to check them, although warnings about problems with your submission will also appear at the end of each task. 1. Click on "Choose File" and browse to find the `hello.py` file in the lab01 starter files. Note that your selected Python file must have the exact name `hello.py`, any other file name will generate an error.
The location of the choose file button within each task. It should be the second element to get focus if you're navigating with Tab, and it should read as 'Submit' followed by a filename, or if things aren't working well, simply as 'Choose file', in which case you can find the text specifying the filename right before it. 1. Enter a number in the box following **"How many hours have you spent on this task (across all attempts)?"**. If you type a word like "two" Potluck will remind you to enter a number. Your hours spent may be an integer (eg 3) or a decimal (eg 3.5).
The text entry field for estimating time spent. It should be labeled, but the relevant text is just before it if not. 1. Click on the "Submit task" button (it is disabled until you select a valid file and enter your time spent)
The submit button, labeled 'Submit task'. It follows the text entry for time spent, and may be disabled if either you have not chosen a file with the required filename, or you have not entered a numerical value for time spent. If validation is too cumbersome, you can disable it using the checkbox at the very top of the page, although unfortunately this setting may not be remembered. Just make sure that you choose the correct file to upload. 1. This will bring you to a new window.
Note that the text at the bottom initially says "Evaluation is still in progress". The feedback view. At the very top, there may be one or more messages about your most recent operation, for example confirming a successful upload. After that is the same login information from the original page, and then after the title, a 'Back to the dashboard' link that will take you back to the previous screen. A sub-title includes links for the project and task descriptions, and there may be a link offering to view feedback on a revised (or initial) submission instead of the one you're currently viewing. Next comes information about the deadline for the task you're viewing, and then information about how much time you reported spending. After all of that the actual feedback starts. It has several paragraphs describing the state of things, depending on whether or not you've submitted anything, whether feedback is available or not, and whether any errors have occurred. There will be a final list of messages, which in this case is just a single message indicating that evaluation of your submission is still in-progress. When feedback is available, it will be shown after the messages. 1. Wait for the page to refresh itself, or click refresh to see the results of your code evaluation (note that it's possible for more complex tasks to take a bit of time to be evaluated but most tasks should be done in 10 seconds or less, and the evaluation process will be terminated if it takes longer than 60 seconds).
If you submitted the starter file (as we instructed), you should see a message which warns about this. If you scroll down, you will see a report showing that one of the two goals was accomplished but the other was not: the starter file does use `print`, but it does not print the correct message.
The same screen as described above, this time with a new message saying 'You submitted the starter file without any changes (you probably submitted the wrong file?)'. This is expected, becuase we asked you to submit he starter file as a test. 1. Now, we should edit the `hello.py` file to fix the issue and submit another revision. Use Thonny to open `hello.py`, and add 'world' plus an exclamation mark (inside the double-quotes) it so that it looks exactly like this: ```py print("Hello world!") ``` In your browser, use the link near the top to go back to the dashboard, and submit it again.
You will have to refresh the page one more time, after which you should get a message in green which says "Your submission is at least partially complete."
It will look like this: The same screen as described above, this time with a new message saying 'Your submission is at least partially complete'. This is the indicator that what you submitted is at least working at a very basic level, and you won't get more detailed feedback than that before the deadline. 1. You can view full feedback immediately for every submission you make.
When you scroll down, the rubric report should now indicate that both of the goals are met, which looks something like this:
The same screen scrolled farther down, to show a nested series of lists, classifying the goals into 'procedure' and 'behavior' requirements, listing one 'core' goal in each of those categories, with the procedure goal titled 'call print' and the behavior goal titled 'Your program prints the correct output.' At each elevel of the hierarchy things are marked as 'accomplished' (visually using a blue check-mark but also with a label for screen readers) because both goals were completed successfully. Note that included in the feedback is a copy of your submitted code, as well as a report listing test results which were produced while evaluating the goals. It also includes a copy of the task instructions. 1. Go back to the Potluck dashboard again, using the "Back to the dashboard" link. 1. Back at the Potluck dashboard, note the following: + the background of the exampleTask entry is now green, and it should have a check mark for the initial submission in the upper-left (in contrast to the light blue backgrounds and ellipses for other unsubmitted tasks)
(Note that your image should have just a check mark without an ellipsis before it)
The dashboard again (the first image described on this page) which now shows that the task which was submitted has both an ellipsis (for the 'initial' submission which of course we did not do) and a check mark (which should read as 'submitted'). + you can resubmit your `hello.py` file multiple times, like we just did, and you can see feedback each time. Basically, you can revise things until you like your score. {{-- REMOVING FOR FALL 2024 ------------------------------------------------ 1. **OPTIONAL EXTENSION**
Before the revision period starts, there is a **"Take an extension"** button on the left of every project. If you opt to take an extension on a project (applies to all tasks), click this button and your 24 hour extension is automatically granted.
Note that there is currently no way you to undo taking extension except contacting an instructor. Also note that taking an extension does NOT affect the revision deadline. Get in touch with an instructor if circumstances require additional flexibility.
The dashboard yet again, showing the location of the 'take an extension' link. It appears as part of the project entry (it's not per-task) after the information on the due date, and in tab order should be right after the project title link and before the first task title. 1. This shows how the Potluck server reflects the newly amended due date, taking the extension into account for the example task.
Still the dashboard, with the deadline information highlighted, now including extra text describing that an extension has been taken. --}} @include('/labs/lab01/_toc') @stop