I have been teaching computer science for 3 years now, and I’ve never actually had any training or PD on the pedagogy of computer science! I was thrilled when my friend Kristina Brown (twitter: @MsBrownTeachCS) told me she was able to round up some support and a little funding to go. Although I had to pay a little of my own way, I am really glad I got to attend! Here are some of the highlights of the sessions I went to. Many of the sessions were set up as a themed group – 20 or 25 minutes each, three presentations in a row. You could float between groups, but if you were interested in the theme it was easy to just stay and get information on three projects all at once. I liked the format of these sessions. Although the time frame seemed rushed for the presenters, I thought it was perfect for the audience. We were engaged the whole time, we got a short movement or stand-stretch break between each one, and we never got bored.
I went to a couple of sessions in this theme – one, presented by Shuchi Grover and Satabdi Basu, was about using formative assessments to identify misconceptions students had about CS concepts. Tobias Kohn led the next presentation on a related topic, beginners’ misconceptions about variables. When I taught math, I frequently got training on how to identify, question and correct common misconceptions of students – but this was the first time I’d had similar training in CS. Many of the misconceptions they talked about are ones I wrestle with when I teach middle schoolers:
- Not understanding the assignment operator is different from the equality operator in math
- Missing loop initialization
- Grouping items in a loop incorrectly
- Not understanding a variable’s value has been changed after an assignment operator
- Not understanding a variable’s value can change during a loop’s execution
- Confusing OR, AND boolean operators
I feel I understand better how to ask questions, use assessments and identify the misconceptions, but I think I will still struggle with how to correct them. I have many 7th and 8th graders who are still struggling with how to write a basic program that asks for input, does some math, and produces an output. I know some of the misconceptions above are to blame, and they can be devilish to fix.
Data Science for Kids:
I also went to a session on “Introducing Data Science to School Kids” by Shashank Srikant and Varun Aggarwal, and this was one of my favorites of the whole conference. I had been thinking for a long time that data science was a neglected area in beginner CS but I didn’t know how to teach it, so this gave me a great place to start. These researchers developed a lesson toolkit that tasks kids with developing an algorithm that can predict whether they’d want to be friends with someone, and testing the algorithm. It also covers data privacy and consent… really good, full lesson set. You can find it online here! http://www.datasciencekids.org/p/home-page.html
I enjoyed a session presented by Yin Pan, Sumita Mishra, and David Schwartz about “gamifying” a college-level course using an achievement map. I had been thinking I would love to have badging and an achievement map for my beginner classes. Their interface allows for creating assessments. http://forensic-games.csec.rit.edu/ I would have to consider if I want to put a lot of investment into something like this, but I love the idea.
I went to a session led by Sue Sentance which was a report on how students enjoyed using the BBC Micro:Bit in a few locations where it was deployed. I’m really interested in this device and hope to purchase a set for next year. You can now pre-order them from Sparkfun and other retailers. The research showed students are really interested in this device, but teachers seemed to struggle with it for a number of reasons. The delivery was really late. Many teachers understood how to teach the basic lessons but struggled to connect larger concepts of computer science and physical computing. Teachers had a hard time making the time for the Micro:Bit due to a lack of training and the unpredictable timing of when they actually got the devices. These would need to be addressed in a successful implementation!
I went to several sessions on blocks-based programming and encouraging diversity in computing, and in the process, discovered some new computing tools that can be used for content creation in a variety of formats!
Netsblox: Found here http://editor.netsblox.org This tool uses SNAP!, a block-based language really similar to Scratch. The researchers have added some interesting blocks to SNAP to encourage distributed computing – remote procedure calls and messaging. Through these blocks, students can have users at different computers interact with each other. You can create multi-player games and also interact with NASA, Google maps, Twitter and more. I thought it was a really exciting idea. I would need to have better control over user accounts and “friends” lists in order to use this with young kids.
TurtleStitch: Found here http://www.turtlestitch.org/ A variant of SNAP! in which you can code a turtle to make an embroidery pattern and then upload the pattern to a professional embroidery machine. The presenters used the program at a STEM camp to encourage student self-expression. The students made their own personal logo and stitched it on a T-shirt! I tried to find embroidery machines that would work with the file formats in this program, but I can’t tell if a basic $400 machine would be able to actually stitch the patterns. I need to do a little more research to see if an embroidery machine would be a good addition to our makerspace.
Beetle Blocks: Found here http://beetleblocks.com/ you can program a “beetle” instead of a turtle. The beetle moves in 3-d space and can extrude filament behind it to create a 3-D model! You can export the 3-D model for use in a 3-D printer or in any other modeling tool such as Blender, Unity, or TinkerCad. I love this tool. I found some great examples by another CS teacher / blogger I follow, Laurel Pollard. She makes earrings with Beetle Blocks, among other cool things. I made a tower of hearts and 3-d printed it. I thought for my first project it wasn’t too bad!
And here it is!
EarSketch: Making music with Python. Intriguing! I didn’t get a chance to play with it, but I’m interested. https://earsketch.gatech.edu/landing/#/
Jupyter Notebooks: This was presented as an interactive notebook in which you can do storytelling and coding, and it gives you a runtime environment for Python code. You can find it here: http://jupyter.org/ I would be really interested in this environment if it does what I think it does. I’m going to explore it this summer. I usually use OneNote as an interactive notebook, and I ask students to copy and paste their code there. How nice would it be to just be able to execute the code and keep notes all in one place?
There are example assignments and puzzles here. http://norvig.com/ipython/
Building Capacity and Professional Development:
I attended a number of sessions that touched on how to develop more CS teaching capacity. New Mexico started a program to train science teachers in NetLogo, and through a blend of online and in-person learning, recruited dozens of teachers to offer a new course integrating simulations and coding into science. Utah created a tiered certification program for teachers, allowing many teachers to offer CS at an entry point appropriate for them. The UK created a computing certificate for teachers that included online coursework, an individual coding project, and an action research component on CS pedagogy. I loved this model and thought it has a lot of potential for my own district.
I also got to attend a “birds of a feather” session on the K-12 CSTA standards, which are almost ready for full release. I like the standards overall. I notice that they represent a big philosophical change from what I am used to, which is the K-12 Common Core math standards. In order for someone to teach the CSTA standards well, they would have to offer a chance to create an involved capstone project. Many of the standards are something you *could* teach with a couple of lessons and a quiz, but students can’t truly demonstrate they learned the concept without actually creating a meaningful, authentic project that includes the idea. We talked about the need for examples and rubrics. What does mastery vs. proficiency look like at different grade bands? Those conversations will need to be hashed out, but the standards-writers could help us along with built-in rubrics where appropriate.
Networking with Friends
Finally it was awesome to meet up with several people I knew from online but hadn’t met in person. 🙂 Thanks to Sheena Vaidyanathan, Kim Wilkens, and Todd Lash, my Twitter #csk8 friends who sought me out and said hi! And Mike Zamansky, a fellow blogger and Tweeter. It was great to connect and share ideas. I also got to meet several of Kristina’s AP CS contacts from around the internet and it was great. Thanks to all of you for commiserating with me – this job is hard, and it often helps to know you share a lot of the same struggles.
I really enjoyed SIGCSE 2017 and I felt I came away with a lot of interesting tools to try, and new insights on computer science education. I hope I get to attend another CS education conference again sometime!