<p>I would teach the command line first. Both units 2 and 3 require use of python, which I wouldn't teach before the command line because it is normally run from the command line. I'd also teach the command line earlier because I find that it makes students more comfortable knowing it. It could also be useful because you could teach some command line utilities to connect to the pi and that we prepare the students to learn about networking further.</p>

<p>Generally, teaching shell scripting opens many doors into computer science that I'm sure a few of your students will happily explore. Once you know the command line you can learn how to write command line utilities, explore networking,  process management, and so much more. I think it'd be more effective to get this vital information to students earlier rather than later.</p>

CC BY-SA 3.0
2017-06-06T00:31:43.333Z
2017-06-06T00:31:43.333Z
thesecretmaster
<p>I am in the process of developing a new course focused entirely on Raspberry Pi. The goal is to make it a summer-school elective equivalent to one semester (i.e. one class meeting over the summer == one week of class during the school year). The course is in its beginning stages, but my goal is to essentially make a "textbook" out of Raspberry Pi. The course is to make it project-based and hands-on and to work my way from the ground up assuming no prior knowledge of programming.</p>

<p>Here is my current course outline:</p>

<ul>
<li>Unit 0: Computational Thinking with Scratch</li>
<li>Unit 1: Programming as Art with Processing and Sonic Pi</li>
<li>Unit 2: Programming in Python</li>
<li>Unit 3: Hacking Minecraft with Python</li>
<li>Unit 4: Learning the Command Line</li>
<li>Unit 5: Intro to OOP with Greenfoot and BlueJ </li>
</ul>

<p>I am confident in starting with Scratch, Processing, and Sonic Pi and concluding with OOP. However, I am unsure of the order of Units 2-4. </p>

<p><strong>Does it make more sense to introduce the Linux command line (and the shell/scripting in general) <em>before</em> Python or <em>after</em> Python?</strong></p>

CC BY-SA 3.0
2017-06-06T14:38:30.237Z
Not meaning to be contrary, but why use a RPi for this? Couldn't you just use a Linux USB boot from a normal PC? Or even a Windows Machine / Mac? Minecraft and Python is the only thing on your list that might be more difficult to do elsewhere for free, but the costs of RPis memory cards and adapters might outweigh some MC licenses. Unless you are doing some physical computing I don't see RPis being any better than any current hardware you might have.
pluke
CC BY-SA 3.0
2017-06-06T15:16:17.317Z
Fair question. I have a few reasons. 1) I want students to walk away with a RPi to inspire further projects after the class ends. 2) I do want to do physical computing with the GPIO pins. 3) I have keyboards/mice/monitors at my disposal, so those won't be an added cost.
Peter
<curriculum-design><raspberry-pi>
Scope and Sequence for Raspberry Pi Course
# Scope and Sequence for Raspberry Pi Course

(Asked by: username_0 on 2017-06-05)

I am in the process of developing a new course focused entirely on Raspberry Pi. The goal is to make it a summer-school elective equivalent to one semester (i.e. one class meeting over the summer == one week of class during the school year). The course is in its beginning stages, but my goal is to essentially make a "textbook" out of Raspberry Pi. The course is to make it project-based and hands-on and to work my way from the ground up assuming no prior knowledge of programming.

Here is my current course outline:

* Unit 0: Computational Thinking with Scratch
* Unit 1: Programming as Art with Processing and Sonic Pi
* Unit 2: Programming in Python
* Unit 3: Hacking Minecraft with Python
* Unit 4: Learning the Command Line
* Unit 5: Intro to OOP with Greenfoot and BlueJ

I am confident in starting with Scratch, Processing, and Sonic Pi and concluding with OOP. However, I am unsure of the order of Units 2-4.

**Does it make more sense to introduce the Linux command line (and the shell/scripting in general) *before* Python or *after* Python?**

**Tags:** curriculum-design, raspberry-pi

> **Comments:**
> **username_1**: Not meaning to be contrary, but why use a RPi for this? Couldn't you just use a Linux USB boot from a normal PC? Or even a Windows Machine / Mac? Minecraft and Python is the only thing on your list that might be more difficult to do elsewhere for free, but the costs of RPis memory cards and adapters might outweigh some MC licenses. Unless you are doing some physical computing I don't see RPis being any better than any current hardware you might have.  
> **username_0**: Fair question. I have a few reasons. 1) I want students to walk away with a RPi to inspire further projects after the class ends. 2) I do want to do physical computing with the GPIO pins. 3) I have keyboards/mice/monitors at my disposal, so those won't be an added cost.  

---

## 1 answers

### Answer by username_2 on 2017-06-06. Score: 5

I would teach the command line first. Both units 2 and 3 require use of python, which I wouldn't teach before the command line because it is normally run from the command line. I'd also teach the command line earlier because I find that it makes students more comfortable knowing it. It could also be useful because you could teach some command line utilities to connect to the pi and that we prepare the students to learn about networking further.

Generally, teaching shell scripting opens many doors into computer science that I'm sure a few of your students will happily explore. Once you know the command line you can learn how to write command line utilities, explore networking, process management, and so much more. I think it'd be more effective to get this vital information to students earlier rather than later.


---

