Scope and Sequence for Raspberry Pi Course 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?
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.