Posted by Jill Shumaker on Jun 11, 2019

Voice - The voice of computer science education and its educators

I have taught technology at various levels, but this past year I was presented with the opportunity to teach computer science (CS) at the high school level in an innovative local district.

Full Story

I have taught technology at various levels, but this past year I was presented with the opportunity to teach computer science (CS) at the high school level in an innovative local district. I was both excited and a little nervous about this new position. I had taught CS-related topics at various levels but not at the high school level. As I researched the position, I learned that the high school classes I would be teaching utilized a curriculum created at Carnegie Mellon University, and I breathed a sigh of relief.

There is a wealth of resources for CS teachers in grades K–8 and then again in high school with APCSP or APCS-A. Carnegie Mellon recently decided to address the gap that exists between eighth grade and APCSP by creating CS Academy. CS Academy addresses this gap with an engaging graphics package that promotes creativity while students learn to write code in Python.

 

Curriculum
CMU began pilot testing CS Academy in the Spring of 2017. They currently have a full-year Python course targeted at ninth grade students with no coding experience. They created an online, interactive course that is both engaging and fun for students. The online textbook features interactive notes, an image inspector tool that allows students to understand their code, leveled exercises through which students can apply their knowledge, and creative tasks. Creative tasks are end-of-unit opportunities for students to create programs that reflect their learning and allow them to build their “creative muscle.”

 

Course Facilitation
I teach several sections of this course and utilize various strategies to help all students be successful. I incorporate screencast strategies in my classroom to assess students’ progress and to help students learn. When my students finish their creative tasks for a unit, I ask them to make screencast reflections. In the screencasts, students describe the functionality of their programs, detail the challenges they faced and how they overcame them, and discuss future plans for the project. This allows me to see what they understand, identify skills they want to learn, and spot any misconceptions they may have. I also added a playlist to my YouTube channel that includes videos to help students learn skills and techniques they’ve requested as they worked on their projects such as how to create timers or make a hitbox that will turn a shape invisible.

 

I have also had success with pair programming for larger projects where students are applying skills they have learned through the class. Allowing students to work together on larger projects decreases anxiety and encourages efficiency.

 

Next year, I would like to incorporate digital portfolios so that students have a space to display their programs to a larger audience. Students value opportunities to build projects from scratch and feel pride in their accomplishments. Giving them a digital space to exhibit their work will be an amazing opportunity to exhibit their achievements in programming.
I hope you have found value in my experience and the resources I use in my classroom.

 

Additional Resources

About the Author

Jill Shumaker teaches programming, robotics, and artificial intelligence in the Avonworth School District in Pennsylvania. She is passionate about increasing girls’ engagement in all fields of CS.