My year teaching Sonic Pi - Week 4

This week I wanted to have students complete some type of project so I could assess their progress as to how they are learning the basic functions we have been going over. I also wanted to set a precedent that this is not a free for all. There will be projects and assignments which they will need to complete and they are accountable for showing that they have an understanding of the material I have been presenting to them. I have found in any type of class where you are doing some type of creative work and you meet somewhat infrequently (in this case once a week), it is very easy to let time slip away and before you know it months have passed and you don’t really have a good gauge on how the students are really doing. At that point trying to implement some sort of official assignment may be difficult to enforce and a good portion of the students may not take it very seriously because they haven’t really been held accountable for anything.

With what we have learned up to this point, the assignment could be pretty straight forward but still allowing a good amount of freedom. I basically wanted them to create a composition which used all of the basic commands we have learned up to that point. This includes play, sleep, use_synth, use_bpm and a repetition block (4.times do end). We had also discussed the loop function, so I threw that in as an optional command. I made all the other commands required. Within that framework, they could do whatever they wanted. I created a reference sheet for them to use while they worked so they had all the commands in front of them. I put it on a Google Doc and uploaded it to Google Classroom.
Link to Reference Sheet: https://docs.google.com/document/d/15L69FKPOR3yI_50hRCMR5yPQhRr3kDorceWirJQdty4/edit?usp=sharing

To have students submit their assignments, I also used Google Classroom to provide a simple Google Doc to each pair of students. I informed them that once they were finished, they just had to copy and paste their code into the Google Doc and turn it in. I figured this would be an easy way to have all of the projects be in one place. It would also be a way to archive all the students projects to keep for reference purposes as well as a way for students to back up their code in a safe place.
Link to submission sheet: https://docs.google.com/document/d/16Bfl8_thWYN9HklZcXDohMXskdSbFOuDVqTZx2Whqyc/edit?usp=sharing

Finally, because this is an assignment for music class which does require I submit a grade for students each marking period, I needed to decide what I was going to be assessing and what criteria I would base the grade on. This has been something I’d been thinking about since I made the decision to teach Sonic Pi in this capacity. While I love the freedom and creative opportunities that Sonic Pi offers to students, it also led me to a bit of a conundrum: How do you grade when there are no mistakes, only opportunities?!

When dealing with creative products in a setting that requires some sort of grading, I always make sure to keep the criteria as objective as possible. I never want the students to feel that they are being graded on how “good” their creation is. My personal preference will never influence how I grade a creative work, at least as much as I am consciously able to be aware of it. I make it a point in any type of discussion about music or art in general to stress that “good” is subjective and can never be used as criteria for proving a point. So when developing rubrics, I try to focus on aspects that are achievable by all students and can demonstrate knowledge of whatever concepts we have covered. Output will vary based on several factors, for example if a student has some type of outside musical training, but this type of criteria will at least level the playing field in regards to what I am looking for as a teacher.

For this project, since there wasn’t much to go off of, I decided to simply focus the criteria on using all the basic commands we have learned. All I really wanted to see was that students could use all those functions in some type of composition. I figured it would also help me get a sense of any misconceptions or problems students might be having with what we had done up to this point. On a 4 point rubric, the general practice is that a 3 meets all the criteria, while a 4 shows students ability levels exceed the requirements or standard. This meant to earn a 4, students would have to go beyond simply using all the basic commands. The best way I figured they could show this would be to incorporate an additional command which we have not formally discussed in class or demonstrate a creative use of the commands we know that is more than just using them as presented. In all honesty, I wasn’t quite sure what that would look like, but I figured I would know it when I saw it. I have often found that no matter how much I think I have my bases covered with setting the criteria for an assignment, students will always throw me some curve balls that defy the categories in the rubric. This is helpful moving forward and allows me to make changes when I teach it again, but that first time can be rough figuring out where it fits into the grading criteria because ultimately it still has to get factored into the overall grade. It’s like throwing out the proverbial first pancake except someone still has to eat it.
Here’s the rubric I came up with. Seemingly nice and simple for a first assignment.
Sonic pi rubric

For the roll out of the assignment, I first directed students to log onto to their Google Classroom account to access the reference sheet, the rubric and the submission sheet. I briefly went over each of the commands and explained the assignment and showed them the rubric. I then showed a short piece of code I wrote which used all the basic commands. I pointed out each command that I did and why I put it where I did. I explained this would be a solid 3 on the rubric.
Here is the code for that example:

use_bpm 78

use_synth :hollow
2.times do
  play 60
  sleep 0.5
  play 67
  sleep 0.5
  play 69
  sleep 0.5
  play 65
  sleep 0.5
  2.times do
    play 65
    sleep 0.25
    play 64
    sleep 0.25
  end
  play 67
  sleep 1
  play 69
  sleep 0.5
  play 67
  sleep 0.25
  play 65
  sleep 0.25
  play 64
  sleep 0.25
  play 62
  sleep 0.25
  play 60
  sleep 0.5
  play 64
  sleep 0.5
  play 67
  sleep 0.5
  play 65
  sleep 1
  use_synth :chiplead
end

I didn’t want to go beyond that because I have found when you give one example of how they can go above and beyond, a lot of them will just copy that idea instead of actually doing anything intrinsically creative. I want to see what they can come up with on their own and if most of them can just get all the basic commands, I am ok with that. Finally, I showed them how to copy and paste the code into the document and submit it. I said it would be due at the end of class, so I’m am not looking for a master piece. I just want to see that everyone can use these basic commands. I gave them the rest of the period to work. I circled the room and addressed questions as they came, some were debugging syntax, some were clarifying what they needed to do for the assignment and some was helping to deal with the logistics of submitting through Google Classroom.

Some observations I had during this process:

I liked the idea of having a digital document with all the basic commands on it, both as a way to conserve paper and to fit into this whole tech themed way of teaching. However, as I looked at kids working, they would either be constantly toggling back and forth between Sonic Pi and the document or they had fit both onto the computer screen which gave them only about ¼ of the screen where they were writing their actual code. I didn’t like the way either of those scenarios looked. I wanted them to have a nice big, open text editor where they could see all their code in front of them. I made the decision to make hard copy printouts of any reference sheets from then on.

Although I felt I had been clear about the time frame, I got quite a few students at the end who said they weren’t finished, especially in the first group I presented the project to. I had not intended to have this be a multiple day project since I felt they could easily make something which used these all functions in one period. And I don’t think these students couldn’t do it in one period, it’s just that sometimes they get very caught up in experimenting and really trying to create something that they like and then lose track of time. I did want to be sympathetic to these students but at the same time, I don’t want to set a precedent of constantly adding another day to a project because once kids see that, they take advantage of it. Then you get more kids who aren’t finishing because they are just slacking off since they know they can get an extension, not because they are really trying to make something exceptional. I told the ones who didn’t finish that they would have to submit what they had next class. I also made sure to really stress to the next two groups that this project HAD to be finished by the end of class.

I wasn’t really sure where I was going to go from here. I wanted to see how the projects came out and go from there. Spoiler alert: I gave them more time to work on it in the next class.

4 Likes

This is perfect for my needs at the workshops and courses… I’ll continue to look into your posts, tutorials and docs! Keep them coming! :wink:

Please keep this series up… I find it fascinating… never been an educator
but I’ve done a lot of training people over the years, both in military and
commercial circles… and I find this very very enlightening… I never had
any training in -how- to train people… if that makes sense.

Eli…

Totally. Teaching or training is an artform that requires practice, reflection and refinement of what you are doing just like any other. Having the knowledge of the subject matter is only part of it. I’ve known plenty of great musicians who have no idea how to teach. I have found this process of reflecting on my experience has been very helpful to make me more self aware to my own teaching practices. I am glad to know that other people are getting something out of it as well. Thanks for the feedback.

1 Like

Really great report, thanks :slight_smile:

One thing you might want to do with the kids that didn’t finish because they got lost in time is to mention that they can download Sonic Pi for free on their home computer and play with it there for as long as they want - and if they don’t have access to a home computer to consider getting a Raspberry Pi and plugging it into their TV!

1 Like

Oh I have let them know! One of the first things I told them was that SPi, unlike Garageband, is free to download and is supported on all operating systems. Some of them have already taken me up on it. In regards to the project however, right now they are working in pairs, so I don’t want one to do all the work and the other do nothing and still receive credit (although sometimes that is what happens even when we are in class :man_shrugging: )

1 Like

That’s so awesome thanks for sharing!

I’ve also gone with the approach of hard copies to help with not switching out of Sonic Pi, and I actually like how when they type it out and make syntax errors - it re-iterates the precision for the music to run.