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

Malware Damage - It is real and you need to be ready ...

  Malware, short for "malicious software," is any software intentionally designed to cause harm to computer systems, networks, or devices. Malware can take many forms, including viruses, trojan horses, worms, ransomware, spyware, and adware, among others. The dangers of malware are numerous, and it is crucial to protect yourself from malware to avoid serious consequences, such as: Data theft: Malware can be designed to steal personal information, such as bank account details, social security numbers, and login credentials. Once this information is stolen, it can be used for identity theft, financial fraud, and other malicious activities. System damage: Some malware can damage your computer system, causing it to crash or malfunction. This can result in lost data, system downtime, and costly repairs. Financial loss: Malware can also be used to extort money from victims. For example, ransomware can lock down a victim's computer and demand payment in exchange for the decrypti...

CIO Questions answered - Your comments welcome - The reflections of the inner self

Briefly describe the typical size and organization of an IT team that you have managed. Include the division of responsibilities, how you track progress, etc. My experience ranges from me working independently, mainly to maintain my independence when I perform audits to managing a team of more than 25 - 100 consultants in various roles. I have handled multiple projects simultaneously where we have multiple consultants (typically from five to ten) working on multiple projects. We have used a set of tools to specifically monitor progress as well as the milestones. The projects involved were simple roll out of products (Microsoft Active Directory Domain Builds, Log Consolidation, Vulnerability Management) in line with product specifications to complex integration of systems that involves building multiple SoA interfaces for healthcare applications. For a successful project there needs to be proper delegation, personally I believe a person can deliver if he is not micromanaged, identifyi...

A Roadmap to move from Cloud to In premise - The reverse migration -- Is Cloudflation at myth?

 Cloudflation as a term is being used and talks on the spiralling cost of cloud bills for an organization. The easily available and provisioning options leads to workloads that run for no reasons, orphaned accounts and a gamut of costs that are accrued by multiple departments without much of an oversight. There is a trend to reduce the workloads and have a semblance of order. It is imperative that we have plans that helps to reverse the migration to cloud and bring back some of the workloads that might work cheaper to run local. Is there a roadmap to achieve this goal? A few pointers in this direction A roadmap for moving from the cloud to in-premise computing should include the following steps: Assess current workloads: Assess the current workloads that are running on the cloud and determine which workloads would be most suitable for in-premise computing. Identify in-premise infrastructure: Identify the in-premise infrastructure that will be needed to run the identified workloads....