Vocareum Guide

About Jupyter Notebooks

Your view of a Jupyter notebook is an interactive webpage. When you make changes to the notebook, you are making changes to an open file on a web server. When you run a cell you are telling the web server to execute whatever is in that cell on a Python interpreter session called a "kernel". What this means for you is (1) there is nothing to install or set up other than a web browser (2) all of the compute happens on the server side, so your computer's specs will not affect the performance of the notebook. For this class, the notebooks are hosted on the Vocareum platform.

About Cells

The notebooks are organized in a series of cells - self contained units of either Python code or Markdown. You can edit, run, insert, delete, or change the type of cells in the notebook. The code cells can reference variables or names which were defined in previously run cells. In the assignment notebooks for this course there are some cells designated as "test cells". These cells are used to check your solutions for correctness and can not be modified. If the test cell associated with an exercise runs without error, you should submit before moving on to the next exercise (more details below).

About The Kernel

As mentioned above the kernel is a Python interpreter session which is used to execute the code cells in the notebook. You can run multiple cells in on the same kernel. That is what allows the variables to persist from one cell to the next. Each time you open the notebook, restart the kernel, or refresh the page you get a new kernel which has no knowledge of the previous kernel instances (i.e. the variables are wiped out). If the kernel is idle for 10-15 minutes it will disconnect. If this happens you will have reconnect the kernel and rerun previous cells to reload the variables.

About The Autograder

You have unlimited submissions on all assignments including exams provided that they are made before the due date. You can never cause your grade to go down by submitting. There is no reason not to do it!

You can submit your solutions to the autograder by clicking the "Submit" button. Submitting initiates the following events:

  1. Your notebook is saved and checkpointed.
  2. A copy of your notebook is sent to the grading server.
  3. Each cell in your notebook is run from top to bottom on a clean kernel.
  4. Your "run score" is updated with points for each test cell passed in the grading run.
  5. Your run score is compared with previous run scores. If this run score is higher, the run is designated as the "kept run".
  6. Your 'kept run' is pushed to Canvas/edX (depending on which program your section uses), where it should be instantly visible, or delayed briefly if there is a lot of network traffic (e.g. the last few hours of the exam window).
    • Vocareum is the source of truth for all grades. If you are able to see your score in the grades window on the right side of the screen then we have your score. Note this is not the same as seeing the "passed" output below the test cell in the notebook itself.

There are a few key takeaways from this logic.

  • If the grading script itself crashes or times out, you will not get a run score for that submission.
  • It is not possible to lose points by submitting. The highest run score will be kept.
  • It is possible that by deleting or changing a previously passed solution that you can submit and have a run score lower than your kept score. (Say you first submitted and had exercise 1 complete for 3 points. Then deleted that solution and completed exercise 2 for 1 point. When you submit the second time, your kept run would not update since the run score for the second submission would be 1 which is lower than the 3 you already had.)

About Grades

After the autograder completes, you should see your scores populate in a frame to the right of the screen. This will display the score achieved for each test cell. You can also see the outputs generated by the autograder for your latest submission by checking the "Grading Report" under the "Details" dropdown. This will let you know the error traceback of any failures and inform you if the autograder crashed or timed out.

About Parts

Some of the assignments are broken up into multiple notebooks called "parts". Each part must be completed and submitted individually. The point total for the overall assignment will be the sum of the point totals for all the parts. The late penalty is also applied on the part level - so if you submit after the late penalty has started the most points you can get for each part is half of the total for that part. Exams will have only one part, and no late period.

About Printed Output

Recall that your view of Jupyter notebooks is an interactive webpage. As such, huge printed outputs will severly impact both browser and server performance. While prints are useful in debugging, we recommend that you comment out any unnecessary print statements before running test cells or submitting. Additionally, printing entire datasets is usually not helpful and should be avoided. If you get into a situation where you did generate excessive printed output and want to get back to a workable state follow the steps listed in troubleshooting.

Updated: 2022-12-16