Container Architecture lab types are in general release. Please contact support@vocareum.com to set up a compatible course.
Creating a JupyterLab Assignment
From the course page select "Edit Assignments".
Create a name for the assignment, choose the Jupyterlab lab type from the dropdown menu and select "Save and continue".
Adding your new lab to a new or existing group is optional
Now you have created your first Part. From this page you can access the Part Settings by selecting Part 1. You can open Configure Workspace to begin populating your lab. And Student View to emulate the student experience during development.
Configure Workspace
Select Configure Workspace to launch the instructor IDE.
Accessing the Jupyter interface
Open the Apps tab to select between the Jupyterlab or Jupyter Notebook interface. Note that students will see Jupyterlab regardless of what you choose here.
Uploading or Creating A New Notebook
From the instructor IDE select the Files icon to the left to open the file tree.
Right click to create a new file, upload an existing Notebook, and more
The file tree is also accessible within the Jupyterlab and Jupyter Notebook UI
Grading with nbgrader
Vocareum supports nbgrader for Jupyter. Details on how to generate a graded notebook here
Releasing Data
To release data sets to students simply upload a file, such as a .csv or .png, into the Jupyter workarea.
Select "Generate Notebook(s)" and you will now see an additional field for "Data Files". This will allow you to choose which files to move to the "startercode" directory and whether to make the files "read-only". Files greater than 8mb will only be available as "read-only".
Note, if you do not wish to affect rubric items or changes to the grading script carefully review and de-select any related fields.
When a file is not read-only the entire file will be placed into the startercode.
Read-only files will be moved into the data directory and rather than the files themselves being added to startercode. A symbolic link will instead be created which links to your file located in the data folder.
Installing Packages
To install packages to your JupyterLab assignment, please follow the instructions in the following article:
For Julia packages specifically:
sudo su
export JULIA_DEPOT_PATH="/opt/julia"
julia -e "using Pkg; Pkg.add([\"Combinatorics\", \"LightGraphs\"])"
Changing the Kernel Version
Jupyterlab containers come with Python 3.10 installed. If your coursework requires a notebook to run on a different version of Python you will need to run the following script in the Jupyterlab terminal:
sudo su
apt-get update
apt-get -y install python3-pip
python3.8 -m pip install ipykernel
python3.8 -m ipykernel install --name=Python3.8
mv /usr/local/share/jupyter/kernels/python3.8 /usr/local/venvs/jupyter/share/jupyter/kernels/
In this example we are using Python3.8
It may take a couple minutes to render but you will now be able to change the Kernel from the Jupyter tool bar.
Jupyter Container File System
While configuring the container, there is a file system mounted in the container. These files are not a part of the docker image. The purpose of these files are multifold -
/course - This directory is common to the entire course and is available only to the grading script.
/data - Place data here to make it available to the learners. For large data sets, it is a more efficient way to deliver data than make it a part of the image or copy to startercode. Every lab gets access to a readonly copy of the data.
/docs - If there is a README.md, README.html, README.txt or README.pdf file present in this directory it will be showed to the user in a panel on the right side of the learner interface.
/private - Place necessary course content or data that does not need to be seen by the learner.
/scripts - This directory is not visible to the learner. It can hold the scripts and any related files that might be required for executing the script.
/startercode - Initializes the student environment. All the content of this directory is copied to /home/labsuser directory when the learner launches the lab.
/work - This directory can be used to develop and test coursework, starter code, scripts, etc. Can also be used for creating quiz.md before running "Generate Quiz" operation.












