A question was raised on Facebook last week asking about teaching truth tables and logic gates in an intro class in programming Python. The teacher who posed the question certainly appreciates the value of these topics but was wondering both how best to motivate the topics and if they were really appropriate in an intro programming course as opposed to, say, and intro computer architecture or electronics course or even a more general intro CS survey course.
Another recent discussion online asked "do you need to know assembly language to be a computer scientist?"
Sides quickly formed. On one side, it was a strict requirement. Some going so far as saying you had to start with it or at worst a language like C. On the other side you had people claiming that it's wholly unnecessary for most CS graduates like many of the classes we require of a CS major (I'm looking at you Calc II and beyond).
Over in the Facebook CS Ed groups there was a discussion of the forthcoming code.org APCS-A curriculum. As far as I can tell, the curriculum isn't actually available yet so I can't really comment on it but the discussion started with a concern about some of the announcement. It made me think of what a curriculum was when I started teaching, what it is now, and the ramifications of the change.
The other day I saw Allen Holub lamenting on how students don't learn the command line.
All my students this semester have gone through at least a year of programming classes, and some of them do not know how to do even basic stuff on the command-line. This strikes me as a huge flaw in the curriculum. Maybe the first CS class should be How Devs Use Computers 101.
I was talking in our Curriculum Development class last week about the courses I've created over the years. From the first computer graphics course to the current teacher education courses. JonAlf pointed out that we missed an "important" occasion last spring - the twenty fifth offering of my computer graphics class at Stuy. I haven't taught it in almost 10 years but it's been running continuously for a quarter century since it first ran back in the mid 90s.
I was involved in a really exciting project a few months ago and now that it's available, it's time to tell everyone about it.
There's a new book on teaching CS in K12 - Computer Science in K12. I got an email a few months ago from Shuchi Grover. Okay, actually a DM over twitter. I hadn't officially met Shuchi although I'm pretty sure we've been at the same table or group in a conference or two but I did know her from reputation.
Continuing from yesterday, what about the article and report on pay and free teacher resources.
The report looked at three sources - one pay and two free. They came up with a number of results but I think they largely missed the point.
Their bottom line conclusion was that 'Overall, reviewers rate most of the materials as “mediocre” or “probably not worth using”.' They also didn't seem to find that neither the for profit or free sources were universally better.
There was a bit of buzz a couple of months ago when Amazon announced an online marketplace for educational resources. It wasn't a new concept - on the pay side, Teachers Pay Teachers has been around for a while and in terms of free, there are many online resources but they're not necessarily well organized or curated. What was the buzz? Should teachers be charging their peers for class materials or should they be providing them for free.
The state got back to us the other week on our CSEd programs. Still no approval. One of the requirements is that we have 12 graduate CS credits in our program and that in those courses these five major areas:
Algorithms and programming
Data and analysis
Impacts of computing
Networks and the internet
as described in the K12 CS Framework.
Monday's the start of the Spring semester. Other than the 8:00am start I'm looking forward to it. My 8:00am class is the honors/lab component that goes with CS1. I taught it last semester and during each of the past two years at Hunter. My second class is the follow up - more OOP / C++, data structures and some algorithms.
The material is old hat. I've taught it in Java more times than I can count and also in C++ albeit many years ago.