CodeHS has a suite of lessons that could very well cover 4+ years of curriculum. They also have middle school lessons which work with Karel the dog and you can use it either as block code or have students write it out. I don’t want my students using blockly (my students are proficient typists, and I like how much they learn by writing and fixing the syntax of their code) so I find the introduction to computer Science track’s lessons with Karel the perfect beginning for my students. The first section goes over basics through Karel lessons, and these are a great method of teaching programming fundamentals.
The program introduces users to a dog named Karel who only knows 4 commands which are putBall(), takeBall(), move(), and turnLeft(). Students come to a stark realization quite quickly that Karel does not know how to turnRight, and they must call turnLeft 3 times in order for Karel to make this turn. They readily pick up functions, as functions allow students to write their own functions and to teach Karel how to turnRight.By writing functions, students learn they can write much more succinct code. This a simple concept but very valuable to learn. What’s great about the CodeHS lessons is that you can make your own programs using the Sandbox feature and have your students solve it.
The sandbox is just an area to practice and create code. I had my students solve some of my own coding challenges through the Sandbox. They already really enjoyed making their own projects to share this way as well.
I had students write the code for the puzzle displayed before teaching them functions, and then challenged them to write the code again using functions. Students were able to cut the number of coded lines in half by writing functions for their code.
Here’s the puzzle solved without functions:
Students really enjoyed learning how to program their own functions. Out of 111 7th grade students, only one told me that coding isn’t for her. Many students in recent reflections told me that either they see this skill as very important to their futures or that they increased their interest in coding by doing these lessons. Here is a 7th grade students reflections of programming after completing 8/15 lessons of Introduction to Karel lessons:
“This year I have expanded my knowledge of coding. I had no idea about functions, and now I feel like I have mastered them. Who knew that you can put commands and an object will listen to them !! I improved so much with coding, because in 6th grade, I always strongly disliked coding. This year, since my knowledge grew, I am able to actually enjoy coding and get to spend time with it. Not only did my knowledge of coding grow, my vocabulary grew with it. We learned about functions, syntax, and algorithm, and before, I had no idea what any of those words mean, but now I have a better grip for vocabulary skills.”
-Jasmine, 7th grade student