This is the first year I have ever taught computer science! I took my fair share of computer science classes in college but that was a long time ago! My school sent me to an AP Institute this summer which was great and really helped me start to conceptualize how I wanted my course to go, but I foresee some false starts and chaos this year!
Our text is Java Software Solution by Lewis, Loftus, and Cocking, but I’m not sure how much I am going to use it. We haven’t really gotten to that point of the course, yet (see below) and I’m considering using something like Blue Pelican Java or one of the other free textbooks available online. At the moment I’m a little overwhelmed by choice.
In the spirit of my philosophy of working on big ideas before getting into the inevitable minutia that comes with starting a class, we have spent time this week working on less textbook dependent things. This has been tricky because our school computer lab isn’t set up yet, so I have had to burn more time than I would like downloading JDK’s, IDE’s, and importing JARs. But by today we were finally able to run some code!
The first day of class students spent playing with lightbot. I was introduced to lightbot at my AP institute and it seemed like a friendly way to get students exposed to some of the thought processes and concepts of object oriented programming. I tried to explicitly connect some of the ideas in lightbot to object oriented methods, but I was a lot clumsier about it than I would have liked.
Otherwise this week we have been working with Karel J. Robot. I wish I had been able to spend the first few days in the computer lab, because we spent a fair amount of time trying to get things up and running and that’s time I think could have been better spent, but when we were finally able to get things really going today I felt like there was a good pay off. I like that students are exposed to real code that’s more complex than something like “Hello World”, have to focus in on the relevant parts, and make changes. I also like that they can immediately run their code and get visual feedback (we don’t do a whole lot with GUI otherwise in the course). I also like that they have to interact with a class (UrRobot, etc) without actually seeing the code for it, just knowing what methods it has and what they do. Already they are itching to write new methods to help the robot learn to do things it can’t already! Also they love getting to rename their robot.
We will spend at least one more day with Karel next week. At some point I will have to pull the chute and start with a more traditional course sequence. Many of my students bring their laptops with them to class but some will only have the school chrombooks in class, so I plan to use tools like codeboard.io and codingbat as our primarily in class tools, and students will have to work on more complex projects outside of class (and we will reserve the computer lab as necessary). I hope this is a workable model! I also have a few students who aren’t interested in AP credit who would rather learn a language like Python than Java, and I’m trying to work with these students in getting something they find worthwhile out of the class.
We shall see what this year holds! I expect a lot of challenges, frustrations, and set backs but also a lot of growth, and that’s very important to me.