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?

  • 1
    $\begingroup$ 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. $\endgroup$
    – pluke
    Jun 6, 2017 at 14:38
  • 1
    $\begingroup$ 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. $\endgroup$
    – Peter
    Jun 6, 2017 at 15:16

1 Answer 1


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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.