What is Vocareum? What are Notebooks?
Vocareum is the website that hosts notebooks for this course. The notebooks are Jupyter notebooks, which are essentially 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.
Jupyter Notebook Cells
The notebooks are organized in a series of cells - self contained units of either Python code or Markdown. Typically markdown cells will provide you with information like the section header, exercise description, etc. Code cells will provide code that are needed for the notebook to run, and also where you will enter your code. Typically each exercise will have one code cell with an area for you to enter your solution, then a code cell with test code (referred to as a "test cell") that will run automated checks against your code.
About The Kernel
As mentioned above, the kernel is a Python interpreter session which is used to execute the code cells in the notebook. The kernel is persistent, until you close the notebook, restart the kernel, or it times out (through inactivity or losing connection). That means that once you run code, it stays in your session (ex: if you run a cell that declares a variable then delete the cell, the kernel will still know the value of that variable). Once the kernel is no longer active, you will need to re-run all the cells you ran previously..
About The Autograder
The Autograder is a partially hidden layer that's part of the test cells of your notebooks and exams. It runs the test cell code but a more thorough version of it. The Autograder runs only when you hit "submit". Running the test cell normally simply tests the code, the Autograder is this specific code run when you submit the assignment. Note that you have unlimited submissions on all assignments including exams provided that they are made before the due date.
You can submit your solutions to the autograder by clicking the "Submit" button. Submitting initiates the following events:
There are a few key takeaways from this logic.
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.