Skip to main content

Assess your internal programmers on a regular basis using Jupyter notebooks - A probable way to enrich and baseline developers

 

  1. Install Jupyter: To build a Jupyter notebook environment, you will first need to install Jupyter on your computer. You can do this by installing Anaconda, which includes Jupyter, or by installing Jupyter separately.

  2. Install nbgrader: nbgrader is a tool that allows instructors to create and grade assignments in Jupyter notebooks. You can install nbgrader by running the command “pip install nbgrader” in your command prompt.

  3. Create assignments: Once nbgrader is installed, you can create assignments using Jupyter notebooks. nbgrader provides several commands that allow you to create assignments, add test cases, and grade them.

  4. Create a JupyterHub server: JupyterHub is a tool that allows multiple users to access Jupyter notebooks on a single server. This can be useful for a programming class, where multiple students need to access the same assignments. You can create a JupyterHub server by installing JupyterHub and configuring it to work with nbgrader.

  5. Integrate with a Learning Management System (LMS): Integrating JupyterHub with a LMS such as Canvas, Blackboard, or Moodle allows students to access the assignments and submit their work. It also allows instructors to easily grade and provide feedback on the assignments.

  6. Add a test runner: To add test cases to the assignments and run them automatically, you can use test runners such as nose or pytest. This allows students to automatically check their code against test cases and get instant feedback.

  7. Provide feedback and grades: Finally, you can use the nbgrader commands to grade the assignments and provide feedback to students. You can also use the JupyterHub server to track student progress and access the graded assignments.

It's important to note that this process might require some technical knowledge and experience in order to set it up correctly. If you need additional help or support, you can reach out to the Jupyter community or consider hiring a professional developer.

What are the options available other than say mbgrader, a quick check on google provides a gamut of projects that help in achieving this goal

  1. nbgrader: nbgrader is an open-source tool that allows instructors to create and grade assignments in Jupyter notebooks. It supports multiple programming languages and can be easily integrated with other tools such as JupyterHub and GitHub.

  2. Jupyter Notebook Evaluator: Jupyter Notebook Evaluator (JNE) is another open-source tool that allows instructors to create and grade assignments in Jupyter notebooks. It has a built-in test execution engine and supports multiple programming languages.

  3. Autograder: Autograder is a cloud-based tool that allows instructors to create and grade assignments in Jupyter notebooks. It supports multiple programming languages and can be easily integrated with other tools such as GitHub and Canvas.

  4. JupyterLab-grading-extension: JupyterLab-grading-extension is a JupyterLab extension that allows instructors to grade Jupyter notebooks in-place. It supports multiple programming languages and can be used in conjunction with other tools such as GitHub.

  5. Gradescope: Gradescope is a cloud-based tool that allows instructors to create and grade assignments in Jupyter notebooks. It supports multiple programming languages and can be easily integrated with other tools such as Canvas and Blackboard.

  6. Jupyter Notebook Checker: Jupyter Notebook Checker (Jupyter nbchecker) is a command-line tool that checks the quality of Jupyter notebooks. It can be used to check the code, markdown, and outputs of the notebooks, and it supports multiple programming languages.

  7. Jupyter Test: Jupyter Test is a command-line tool that allows instructors to run test cases on Jupyter notebooks. It supports multiple programming languages and can be easily integrated with other tools such as GitHub and Travis CI.


Comments

Popular posts from this blog

Where are we headed ... A crystal ball into Cybersecurity in the next five years .. Are we ready?

  The future of Cyber Security: Trends and Predictions for the Next 5 years The field of cybersecurity is constantly evolving, and the threats are only getting more sophisticated. In the next five years, we can expect to see a number of trends emerge in the field of cybersecurity, including: The rise of artificial intelligence (AI). AI is already being used by cybercriminals to develop more sophisticated and targeted attacks. As AI continues to develop, it is likely that cybercriminals will be able to use it to even greater effect. The increasing use of cloud computing. Cloud computing has many benefits, but it also introduces new security challenges. Cloud-based data is often more vulnerable to attack than data that is stored on-premises. The growth of the Internet of Things (IoT). The IoT is connecting billions of devices to the internet, which creates a vast new attack surface for cybercriminals. IoT devices are often poorly secured, making them easy targets for attack. The shor...

The Shifting Landscape of Knowledge and the Nobel Prize

Our recent conversation sparked some interesting thoughts about the prestigious Nobel Prize and the distribution of its recipients across the globe. Inspired by a user's search history, we delved into the fascinating patterns and potential implications of who gets recognized for groundbreaking achievements. The initial point of discussion centered on the user's search activity, which revealed an interest in various scientific and technological topics, as well as a specific search for "Nobel Prize winners by country." This led us to explore the geographical distribution of Nobel laureates, and a question arose: why does it seem that certain schools and countries, particularly in the West, have a higher representation? We considered several factors that might contribute to this observation: Historical Dominance in Science: Historically, Western nations have often been at the forefront of scientific research due to earlier investments and established infrastructure. V...

Red Team Blue Team Exercises - A Roadmap to follow to test the efficacy of controls

  Scenario 1: Phishing Attack Red Team Playbook Day 1: Send out phishing emails to the blue team. Monitor the blue team's response. Day 2: Analyze the blue team's response and identify any vulnerabilities. Report the findings to the blue team. Blue Team Playbook Day 1: Train employees on how to identify and avoid phishing emails. Monitor for phishing emails. Day 2: Analyze the phishing emails sent by the red team. Identify any vulnerabilities in the organization's phishing detection and response processes. Develop a plan to improve the organization's phishing detection and response processes. Analysis The red team's phishing attack was successful in getting several employees to click on the phishing links. This shows that the organization needs to improve its employee training on phishing awareness. The blue team was able to identify and contain the phishing attack, but it took them several hours to do so. This shows that the organization needs to improve its phishi...