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:
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.