Skip to Content

Transition from Scratch to C++

« Computer Science Education
3 replies [Last post]
Louis Bertrand
Member
 Hello, I am new to Scratch and, after a couple of projects to try it out, I'm quite impressed. I would very much like to use it for my community college electronics technology students who are learning programming down at the hardware level with Arduino or bare microcontrollers (e.g. AVR, PIC). Unfortunately, most are not programmers, having chosen electronics over programming because they prefer working with hardware. In other courses, they learn Karel for Fanuc industrial robots and ladder logic. They are not computer science majors, nor do they aspire to be. They do like to make things work, though.

I would like to introduce programming concepts with Scratch. That looks easy enough thanks to all the resources out there. I will also introduce them to Scratch for Arduino (s4a.cat)

But it's the next step that puzzles me: how to transition to "production" O-O programming languages like Python and C++?

The way I see it, the conventional O-O paradigm works fine for each object if you treat sprites as objects (cloning sprites is similar to instantiating objects of a class). However, it's not so obvious for messages, events and concurrent execution of sprites (objects). For example, interrupts are events, so Scratch is helpful to introduce the concept of an interrupt service routine (handler) that runs asynchronously. However, broadcasting messages between objects (tasks?) typically requires some OS support. Any ideas?

Are there any resources to map Scratch concepts to conventional O-O programming? Thanks
Replies
Karen Brennan
Member
If you haven't already seen it, you might find this tutorial (for an earlier version of Scratch) by David Malan interesting.
Louis Bertrand
Member
 Thanks!
Louis Bertrand
Member
Answering my own post... 
There is a good article in the Wiki on objects in Scratch: 
wiki.scratch.mit.edu/wiki/Object-Oriented_Programming

Many other useful articles in category "Computer Science":
wiki.scratch.mit.edu/wiki/Category:Computer_Science

Finally, see Snap!, "an extended reimplementation of Scratch that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students." (snap.berkeley.edu)