I think my brain shut down when I left school last Monday to start the summer break. While I got a lot of personal business done last week my mind was really not on computer science. Oh I collected some good links (shared below) but I didn’t have much to say myself. So I didn’t say much in this blog. Maybe I’ll get on track this week. In the mean time check out the links to people who were thinking CS.
“Learn to Program with Small Basic” a Book Review by Middle School Teacher, Martin Fish. I plan to do my own review soon.
Doug Peterson writes A colourful post to introduce the RGBChallenge. That’s a fun little game to help learn the numeric representation of colors (or as my Canadian friend spells it colours)
Why Aren’t There Simple Programming Languages? Maybe there are though. I think some block programming languages may fit the bill. I found the ideas interesting anyway.
Mark Guzdial talks about Five Principles for Programming Languages for Learners in one of his posts. His is based on research though so I take it very seriously.
Getting closer to "all" in #CSforAll: Instructional supports for students with disabilities in K-5 computer science covers an important topic that we really don’t know enough about. He has a link to some of the work by Maya Israel in this area.
Apple, Microsoft and Google race to introduce your kid to coding from CNet. I think Apple is coming late to the game and the Swift based tool is not available until the fall. One would have thought they would have wanted it available for teachers to try it out over the summer.
Microsoft MIE Teacher Academy Trainings some online PD for teachers
Having a PLN – Professional Learning Network – another great post by Doug Peterson.
Re: Simple languages — this is the iea behind the progression of “Student Languages” that come with DrRacket. Beginner Student Language looks like Racket/Scheme syntactically, but is much, much simpler: no anonymous functions (functions are not first-class values), definitions are only allowed at the top level, no macros, no OOP, no continuations, no pattern-matching, no “improper” (or “dotted”) lists, and much more (or should I say: much less). The simplicity of the language allows for really great error messages: since there’s so little you _can_ do, the compiler has an easier time figuring out what your intent is. The entire language is described here: https://docs.racket-lang.org/htdp-langs/beginner.html
ReplyDeleteOnce students outgrow it, they can move onto Intermediate Student Language, which adds anonymous functions and a few other things, but is backward-compatible with BSL. And then Advanced Student Language. And then Racket! :)
I have been following Mark Guzdial's blog for years. I have to say these 5 principles are some of his best work. They also convince me I am not a complete idiot. I am building a game programming course right now and the thinking behind what I want to do and how I am going to do it fit this list of 5 perfectly. I pretty much checked off those 5 as I went through my possible language options. I settled on Gamemaker using GML (not the drag-and-drop form of Gamemaker) and it fits mine and his criteria nicely.
ReplyDeleteHis original article in Communications of the ACM was interesting in the amount of conversation about Logo. Having started with Logo in the late 70's, early 80's and refreshing myself on it every now and then I am pretty familiar with what Logo can and cannot do. Considering what new stuff is out there the cannots of Logo are pretty high now. Scratch, Small Basic, Touch develop are three that come to mind that do as much and more than Logo.