Tuesday, June 04, 2013

Side by Side Programming Language Comparisons

For fun this week I am working on a side by side programming language reference for Alice 3.1, C#, Scratch 2.0, TouchDevelop, Small Basic and Visual Basic. Keeping it simple. Variable and array declarations, Assignment statements, For and While loops, and If and IF/Else statements. What else is really that basic?

I should probably include Python and Java and I may add them later. JavaScript was also suggested as worth including. That could bring my set up to 9 languages. Seems a bit much. On the other hand the OCD in me thinks I need a tenth.

I know I need Visual Basic and C# since I will be teaching C# next fall to students who already know some VB. I'm also going to be teaching a course called Exploring Computer Science and thinking I would like to use several languages for that. My thought is three languages. A block language like Alice or Scratch. TouchDevelop as a middle ground. And then a high level (conventional) language like Visual Basic or C#. Still deciding what to use though but what ever I use I am thinking that comparisons would be a good thing. rather than confusing students I think this can work to help them focus on concepts ahead of specific syntax.

If you want to see my first draft it is on SkyDrive at sdrv.ms/10LYIuf I would be trilled to get some feedback and suggestions. Leave a comment or send me email at act2@acthompson.net


Anonymous said...

It looks like you're off to a great start. How about a comparison of inputs and outputs? That should keep you busy for a while!

Unknown said...

Great document on SkyDrive sdrv.ms/10LYIuf.

[1] Label the heading with the versions: like Alice 3.1, Scratch 2.0.
[2] The thumbnail images are great, but have them link to a larger image when clicked. They are too small to read.
[3] Please include Java and Python. Java is the current AP CS language and Python looks like the future language.
[4] Change the Alice while and if/then examples to something that more closely matches the other languages. while 1.0 < 2.0 ? where's the variable being tested?
[5] Add another row for dynamic (run-time) instantiation. It was just added in the new releases of Alice (3) and Scratch (2.0).

Alfred Thompson said...

Great suggestions. Keep them coming. I knew I needed to fix/improve the Alice examples. I don't have the experience with Alice 3.1 that I had with Alice 2.0 so that is taking me a bit. I have only played a little with Python but I agree that it is where a lot of people are moving. Java is pretty much the same as C# at this level so adding it will be easy. My biggesst problem is that I have to find a different way to display things. Size is an issue and I do need some of those images to be larger.

Anonymous said...

The screenshot of variable declaration for TouchDevelop should be replaced by this code:

var x:= 0

Garth said...

You have way to much time on your hands. Maybe for a 10th language bring back old school Apple BASIC. It might show how much programming has not changed at this level. I like this idea as an exercise for my advanced classes.

Alfred C Thompson II said...

Finals week. Doing stuff while supervising students who are either studying for or taking exams. :-)