On Saturday, I attended Edcamp Philly for the third time, and gave a presentation with the same title as this post. Here’s a link to the resources I created–on the fly as always. Everyone in my session agreed that everyone should learn to program. After that, we were in two camps–those who teach programming–or want to. And those who just wanted to learn. But in some ways, the issues are the same. There’s the ever-present, “Where do I start?” With what language, what tools, etc. If you go to any CS conference focused on education–CSTA&IT, SIGCSE–you will mostly hear people arguing about which language is the “right” language to start with. I am so tired of this argument. People who want to learn to program don’t care, and continuing to have this argument keeps people from learning to program. My response to this question was, start where you want. If you don’t like what you start with, try something else. That goes for teachers, too. If you’re teaching CS I in Java, and you find your students are getting lost, then switch to something else. Python works for me. I like it. It has less syntax issues than Java or even PHP, and it still gets across the main concepts. I recommended to a grown man that he start with Scratch. I find it fun and you get the basic concepts down, and then when you switch to any other language, you’re not trying to figure out conceptually what a loop is at the same time as you are trying to learn the syntax for it.
Online courses are great, but find the one that works for you. There are free ones and there are paid ones. I like taking these for two reasons. One, I usually learn something. Two, I get ideas for assignments for my own courses. Win-win!
There’s no need to reinvent the wheel entirely. There are tons of things out there that you can use. What I’ve found is that I end up modifying existing curriculum to suit my students’ needs. They like building games, so we make a lot of those.
I also gave my anti-iPad rant. I have nothing against it, per se, but I am against it as our sole tech device. To me, it takes us one more step away from how computers really work. It’s a very passive device. I find when I’m using mine, I have a tendancy to read, but not comment, to watch, to play games, nothing very active. Because it’s hard to type on, hard to copy and paste on, hard, even, to switch from one app to another. And, of course, you can’t program on it at all. Forget compiling. I spent the whole day Saturday with just my iPad, putting together my presentation, and it was doable, but much harder than it would have been on my laptop. Plus, if I’d had my laptop, I could have shown more of my resources, and done a little actual programming.
And, I also discussed the robotics vs. computer science dilemma. I explained that my robotics students and my CS students do not overlap (they will a bit next year, which is nice). I pondered whether robotics clubs really encourage more students to do CS. An audience member said that they had more students going on into engineering, which is good, but engineering != CS. I also discussed the problem of things like robotics turning off girls, and finding ways to attract people to the field who might not normally consider it–the student who would never do robotics, who’s interested in art and literature. As a group, we talked about creating classrooms that aren’t “geeky”, that are welcoming to both genders, to many interests, etc. I need to pay attention to those things, myself.
All-in-all, it was a good session. I love talking about this stuff, hearing what others think, getting new ideas, and more. We decided we might need to have an educational computing hackathon, so look for that. And I am inspired to do some more research and thinking about encouraging students to take computer science.