<p>Not sure about automatic grading, but you can try this combo:</p>

<ul>
<li><a href="https://jupyter.org/documentation" rel="nofollow noreferrer">Jupiter</a> as basic infrastructure</li>
<li>with the <a href="https://github.com/takluyver/bash_kernel" rel="nofollow noreferrer">bash_kernel</a> to add support for bash exercises</li>
<li>and <a href="https://nbgrader.readthedocs.io/en/stable/" rel="nofollow noreferrer">nbgrader</a> for the grades.</li>
</ul>

<p>I never used nor tested this particular combination, but you can dig a little bit the documentation to check if it works for you.</p>

CC BY-SA 4.0
2020-05-04T20:35:49.073Z
2020-05-04T20:35:49.073Z
danidemi
<p>I am looking to create interactive workbooks that teach the Gnu/Linux terminal to students. This would be presented in such a way that one half of the screen is an interactive terminal, running the Gnu <code>bash</code> Unix shell, and the other half of the screen is a workbook, with steps that the student must follow in the included shell. The output from the students' shells would be automatically graded, to ensure that they have correctly followed the steps from the workbook. </p>

<p>So far, I have found two such 'services' <a href="http://tuxlab.org/#/" rel="noreferrer">http://tuxlab.org/#/</a> and <a href="https://github.com/jakebailey/ua" rel="noreferrer">https://github.com/jakebailey/ua</a> , There are also GitHub classrooms which may fall into this category. </p>

<p>Is anyone else aware of products like this? Preferably open source.</p>

CC BY-SA 4.0
2019-06-14T11:27:21.993Z
Except for auto grading, why do you need a special app? Having two windows (from different apps) open at the same time doesn't seem much worse than two panes of a single window. Do you have so many students that auto grading is a "must have"?
Buffy
CC BY-SA 4.0
2019-06-14T14:08:28.233Z
Have you explored the possibility of Jupyter Notebooks?  They support shell scripts using the `%%bash` header.
John K.
CC BY-SA 4.0
2019-08-08T21:16:56.237Z
The Unix shell is rather limited, as it is more a vehicle for calling complex programs and combining snippets. Is it really worth their while to learn shell in enough depth that this is required? I picked up what I need for my day-to-day use through, well, use; and occasionally peeking at the manual (or doing experiments on line...).
vonbrand
<curriculum-design><resource-request>
Creating Interactive Gnu/Linux shell programming courses
# Creating Interactive Gnu/Linux shell programming courses

(Asked by: username_0 on 2019-06-13)

I am looking to create interactive workbooks that teach the Gnu/Linux terminal to students. This would be presented in such a way that one half of the screen is an interactive terminal, running the Gnu `bash` Unix shell, and the other half of the screen is a workbook, with steps that the student must follow in the included shell. The output from the students' shells would be automatically graded, to ensure that they have correctly followed the steps from the workbook.

So far, I have found two such 'services' <http://tuxlab.org/#/> and <https://github.com/jakebailey/ua> , There are also GitHub classrooms which may fall into this category.

Is anyone else aware of products like this? Preferably open source.

**Tags:** curriculum-design, resource-request

> **Comments:**
> **username_1**: Except for auto grading, why do you need a special app? Having two windows (from different apps) open at the same time doesn't seem much worse than two panes of a single window. Do you have so many students that auto grading is a "must have"?  
> **username_2**: Have you explored the possibility of Jupyter Notebooks?  They support shell scripts using the `%%bash` header.  
> **username_3**: The Unix shell is rather limited, as it is more a vehicle for calling complex programs and combining snippets. Is it really worth their while to learn shell in enough depth that this is required? I picked up what I need for my day-to-day use through, well, use; and occasionally peeking at the manual (or doing experiments on line...).  

---

## 1 answers

### Answer by username_4 on 2020-05-04. Score: 1

Not sure about automatic grading, but you can try this combo:

* [Jupiter](https://jupyter.org/documentation) as basic infrastructure
* with the [bash\_kernel](https://github.com/takluyver/bash_kernel) to add support for bash exercises
* and [nbgrader](https://nbgrader.readthedocs.io/en/stable/) for the grades.

I never used nor tested this particular combination, but you can dig a little bit the documentation to check if it works for you.


---

