Computer Science Canada

What's really rotten in Turing?

Author:  wtd [ Wed Jan 28, 2009 5:17 pm ]
Post subject:  What's really rotten in Turing?

I've said many non-positive things about Turing the language in the past, and I stand by all of them. Turing is not a very good language by anything approaching modern standards.

But...

Aside for a Read-Eval-Print-Loop environment and its overt procedural bias, it has the basics.

So, if it's not the language, then there's only one other culprit: curriculum.

While I have not been exposed to a formal curriculum that utilizes Turing as a teaching tool, I can infer from the code I've seen students working on. I have to assume there is almost no emphasis on how programs are actually designed. Students seem to have very little idea about how to utilize language features to make programs more manageable.

IN my Introduction to Java I specifically addressed code organization issues early. Of course, that work does not come close to anything approaching a teachable curriculum, and is merely inteded as a quick and rough guide. One I can recommend though is How to Design Programs. This is how it should be done, and fortunately, you can see that for free.

Of course, I started this out asking what's rotten in Turing, and suggested that it isn't the language itself so much as the way it's taught. I will reinforce my bias now by saying that while I think it would be possible to develop a beneficial curriculum around Turing as a tool, I also believe that would represent a massive change of mindset, and that if we're willing to undertake that, the incorporation of a more suitable learning tool is a small, but very good thing to do.

Author:  Insectoid [ Wed Jan 28, 2009 5:27 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I think a big problem is that a lot of CS teachers don't actually have teaching degrees. Most schools are so desperate for a CS teacher that they hire old programmers who don't know the first thing about teaching, or who's coding experience is very outdated.

Author:  saltpro15 [ Wed Jan 28, 2009 5:29 pm ]
Post subject:  RE:What\'s really rotten in Turing?

lol, my CS teacher teaches 8 other classes and coaches 5 school teams, he's there for about 30% of the classes, the rest are idiot subs from the board who barely know how to turn on the computer. We ACTUALLY managed to convince one that the monitor was a touch screen XD. Thank god for this site lol

Author:  DemonWasp [ Wed Jan 28, 2009 6:15 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Third to what insectiod and saltpro15 said: the teachers are largely incompetent or unwilling to review the materials provided in the curriculum. These materials may be inadequate or difficult to understand (remember, most of these teachers have never programmed before), so their own difficulties understanding may get passed on. For the record, my CS teachers included: a business teacher, a math teacher, and another math teacher.

Additionally, I find that the teachers are often overworked by the number of personal-help requests from students. Often, students have minor issues that they need help with, so they ask the teacher. For an hour-long class, the teacher may have upwards of 3 or 4 hours worth of individual issues to look at in code they're unfamiliar with. While having competent students who are willing to help is a plus, teachers really need to know about compsci.ca (I was in high school in 2005 and we didn't know about compsci.ca...I'd have been a member years ago if I knew). Students should be informed on the first DAY about this board, particularly the Turing help section.

A particular issue is that while students are taught exactly how put, get, Font, Pic, loop, if and for are used, they don't always know why they're used or how to use them to make their lives simpler. For people who are experienced coders, this comes naturally, generally without even thinking about it. New students, however, are generally not used to thinking algorithmically: they know the end result of what they want the computer to do, they're just unsure of how to break down what the computer must do to get there. Teaching that is hard, but doable; it just doesn't seem to be a big part of the curriculum.

Absent the knowledge of how to go from "process I can do in my head" to "algorithm", the knowledge that's taught, namely "algorithm to implementation" is largely useless. Students end up able to perform simple tasks, but not design an entire program, even fairly simple ones.

What I would propose to counteract this is that, once the basic commands are taught, the class as a whole follows a set of logical steps to writing a given program. These steps could be the following, for example (Minesweeper):

1. Collect requirements: know the rules of the game, how the game is played, and what features (high scores, timers, etc) the game must implement.

2. Determine how to deal with each feature. The teacher will have to largely do this phase for the students to provide an example. In this case, the class could decide that Turing's GUI is too broken, so they decide to use Mouse.Where and their own GUI code. They could decide that the high scores will simply be stored in a text file with a given format to store all the necessary data (player name, time, etc).

3. Determine a basic flow of control. At this point, the teacher will probably end up dictating the de facto design:

A. Program starts. All variables initialised.
B. Necessary data is loaded, including any pictures, sprites, input files and other resources.
C. Main loop starts
D. Main loop checks for GUI interaction, does as required for each interaction.
E. Main loop ends whenever appropriate.

At this stage, the teacher should probably also give the method signatures for each operation (not helper methods, just the ones that would be public).

4. Once that's all established, and a skeleton of the program has been distributed to the class, they can probably manage to fill-in-the-blanks with some (considerable) assistance. They end up with a functional Minesweeper implementation, which motivates students more than simpler games would.

5. Now that the students have gone through the design process and its clearly delineated steps, their teacher can walk them through doing the same thing on their ISU. This would require the students to do the design themselves, but they can always base it on the design the class did together.

Note: I realise I've just sorta said "waterfall!" design process. That's pretty much my intent: waterfall should work great for such small projects.

Author:  saltpro15 [ Wed Jan 28, 2009 6:22 pm ]
Post subject:  RE:What\'s really rotten in Turing?

DemonWasp, come teach my class one day. please? lol, my last teacher couldn't even log in, he didn't have an account

Author:  DemonWasp [ Wed Jan 28, 2009 6:38 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I've actually spent a fair bit of time considering teaching, but I know it's not something I'd want to do long-term or permanently. That's why I'm here, not learning how to teach properly.

In reality I'm probably not a very good teacher. I loathe public speaking and my organisation is at best mediocre.

Thanks though Wink

Author:  dc116 [ Thu Jan 29, 2009 4:37 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I don't think Turing is that bad. It's just missing some features though.

Author:  michaelp [ Thu Jan 29, 2009 5:51 pm ]
Post subject:  RE:What\'s really rotten in Turing?

And it can be slow for larger scale projects.

Author:  andrew. [ Thu Jan 29, 2009 6:18 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I agree with you guys. Most CS teachers are horrible and aren't even qualified. Luckily, my teacher used to program downtown and actually knows Java.

Author:  saltpro15 [ Thu Jan 29, 2009 7:12 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Although I think computer programming is one of the hardest things to teach. I admittedly end up helping out quite a few friends with math/science/french/whatever, and I am a decent tutor, but when it comes to computers I find it so hard to communicate exactly what is happening to the person Sad

Author:  Insectoid [ Thu Jan 29, 2009 7:50 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I'm rather lucky. My CS teacher is a certified math teacher, but also has years of programming experience (although dated). My CE teacher has been teaching for years, and though I'm not sure of his qualification, he's a damn good teacher.

My grade 10 teacher, however...

Something was wrong with that guy...absent minded? He was one of those teachers who used to program but can't teach. We used to play pranks on him. I think I've told this one before, but what the hell, I'll say it again.

So, some people were bored. It was like, the 3rd day on strings (he managed to drag a 5 minute lesson over several days), and we decided to have a little fun. So, the teacher had to leave the class for a bit. Some of the kids went to his overhead ("You never touch my overhead. It is mine, just stay away from this area"), and unplugged the power. They also turned the switch off. When he went came back, he tried to turn it on, saw that the plug was out, plugged it back in. It still didn't turn on, and he couldn't figure out what was wrong. So he took the clear overhead with black text in font 12 and held it up to the black blackboard and started pointing at things to try to keep teaching.


It was a good day.

Author:  Tyr_God_Of_War [ Fri Mar 27, 2009 8:46 pm ]
Post subject:  Re: What's really rotten in Turing?

My teacher was good at teaching me some stuff for the first week or so. Then I found this place. I ended up with the students coming to me for help instead of the teacher. Most need to slow down and think, "What do I want it to do?". Once they know what it is that they are trying to do, plan it out. Use scrap paper or notepad or commented out code to plan. On guy in out class was trying to have to things move at once. He had 2 loops! Only the first one did anything. What do you do in a loop? You get input, update to position of the first item, update the second item, draw the first item, draw the second item, View.Update, cls Time.DelaySinceLast.
If he would get the class to see that, it be so much simpler. I'm glad I took to programming like a fish to water (98%, WOOT!) because I would not want to need him to teach me something.

Author:  saltpro15 [ Fri Mar 27, 2009 9:09 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I wish we just learned C++ from day 1, it would really make CS so much easier... you have to learn C++ at some point anyway, might as well dive right in

btw, we had a substitute once, Ms.Ding... Laughing
we managed to convince her the computer monitor was a touch screen, I say no more. best day ever.

Author:  SNIPERDUDE [ Fri Mar 27, 2009 10:10 pm ]
Post subject:  RE:What\'s really rotten in Turing?

I wished I started with Python. Simple enough to keep the interest at that early stage, yet powerful enough so I don't end up learning a pretty much useless language.

Author:  Insectoid [ Fri Mar 27, 2009 10:15 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Haha saltpro, that's awesome. I think Turing is great to start. Having not done much Python at all, I don't know how accessible it is, but while Turing may be useless, it sparks an interest in the students to stop facebooking during class and try out some real programs.

Author:  CentiZen [ Tue May 12, 2009 10:49 am ]
Post subject:  RE:What\'s really rotten in Turing?

I agree that there are some idiot teachers that don't know loop from while, but don't paint a bad picture for all of them.

I mean, last semester I had a CS class with a brand new teacher to the school. HE WAS AWESOME!!! He'd been using computers since punch cards, and stayed with it ever since. He got his hands on all of the schools old hardware (they did some upgrades this year) and we built our own computers out of them. Granted, the computers were not the greatest (900mhz, 256 ram, 10 gig HD) but they were ours, and the school had no control over them. I'd always known that I wanted to go into computers as a career,but I didn't know what exactly I wanted to do. It was because of him that I decided to apply to college (accepted!) for becoming a system admin, and one day becoming a teacher, and like him, become an awesome teacher one day.

Author:  BigBear [ Tue May 12, 2009 2:04 pm ]
Post subject:  Re: RE:What\'s really rotten in Turing?

insectoid @ Wed Jan 28, 2009 5:27 pm wrote:
I think a big problem is that a lot of CS teachers don't actually have teaching degrees. Most schools are so desperate for a CS teacher that they hire old programmers who don't know the first thing about teaching, or who's coding experience is very outdated.


Who says you need a teaching degree to teach have you not learned stuff from a friend/family member without one?

Author:  Savage Reindeer [ Wed May 13, 2009 10:05 am ]
Post subject:  Re: RE:What\'s really rotten in Turing?

insectoid @ Thu Jan 29, 2009 7:50 pm wrote:


My grade 10 teacher, however...

Something was wrong with that guy...absent minded? He was one of those teachers who used to program but can't teach. We used to play pranks on him. I think I've told this one before, but what the hell, I'll say it again.

So, some people were bored. It was like, the 3rd day on strings (he managed to drag a 5 minute lesson over several days), and we decided to have a little fun. So, the teacher had to leave the class for a bit. Some of the kids went to his overhead ("You never touch my overhead. It is mine, just stay away from this area"), and unplugged the power. They also turned the switch off. When he went came back, he tried to turn it on, saw that the plug was out, plugged it back in. It still didn't turn on, and he couldn't figure out what was wrong. So he took the clear overhead with black text in font 12 and held it up to the black blackboard and started pointing at things to try to keep teaching.


It was a good day.


Do we have the same teacher?

Author:  Thaviel [ Mon Mar 15, 2010 12:07 pm ]
Post subject:  Re: What's really rotten in Turing?

apparently I got lucky, my CS teacher was a programmer that decided he didn't like big city life and wanted to teach. He states over and over to all the kids who come in that know C++ or python "I'm going to teach you how to solve problems, differently languages are just syntax you can learn syntax in a few days, It's the ability to solve problems that I'm here to teach you." and he does his course is pretty close to open ended and he help's people find their own solutions.

Author:  ProgrammingFun [ Mon Mar 15, 2010 7:34 pm ]
Post subject:  RE:What\'s really rotten in Turing?

My CS teacher was a civil engineer in China, then a software engineer in Canada for 7 years before switching to teaching. He was amazing in everything except Turing (he had never heard of it). He taught us most things using what he knew about Java (ha was amazing at Java). He was very carefree about us learning and we spend 9/10 of class time on Halo. Very Happy He would even watch us play and the most he ever did was suspend us from the computer for that one day (although he usually forgot).

Author:  DtY [ Mon Mar 15, 2010 8:54 pm ]
Post subject:  Re: RE:What\'s really rotten in Turing?

ProgrammingFun @ Mon Mar 15, 2010 7:34 pm wrote:
My CS teacher was a civil engineer in China, then a software engineer in Canada for 7 years before switching to teaching. He was amazing in everything except Turing (he had never heard of it). He taught us most things using what he knew about Java (ha was amazing at Java). He was very carefree about us learning and we spend 9/10 of class time on Halo. Very Happy He would even watch us play and the most he ever did was suspend us from the computer for that one day (although he usually forgot).
So did you actually, uh, learn computer science? I'd be pretty pissed off to get a teacher whose not teaching.

Author:  ProgrammingFun [ Tue Mar 16, 2010 11:26 am ]
Post subject:  RE:What\'s really rotten in Turing?

Yea we did learn (he did give us pretty comprehensive lessons)...

My point was that he made the class fun by being so carefree.

Author:  yetiboy [ Thu Mar 25, 2010 10:09 am ]
Post subject:  RE:What\'s really rotten in Turing?

Hi folks.

I'm a CS teacher (1 course a year) with some programming experience in university - at least enough to remember how to program in a few languages if I spend enough time going over the code again.

I'm teaching an introductory programming course right now. I started off with basic problem solving skills (ie. word puzzles and such) and just finished off having students work with Scratch - kind of a basics of programming without having to worry about typos. They had some fun, made some games, etc.

Now I'm getting into Turing for the rest of the semester. I'd like to start off with a "learn to walk before you run" strategy. I've read a few articles about how students are able to learn programming languages much faster and have a better understanding of the structure of the language if they actually start off by reading samples of code and learning how to decipher them before actually coding themselves. Kind of like learning a new spoken language, it's much easier to learn how read it before learning how to write it.

I really like the suggestion of diving into a complicated example (like Minesweeper) immediately after learning the basics so they can learn that way too. But I'd like to get them to read a few samples of code first. Anyone have any simple programs that are semi-fun once run that my students can try to play with? I'd like to start off with simple variables then decisions then loops.

Thanks for the help, and I'm glad this resource is available for both myself and my students - I've already given them a link to the Walkthrough, I'm sure it will be a great help to them.

Author:  Dan [ Thu Mar 25, 2010 10:46 am ]
Post subject:  RE:What\'s really rotten in Turing?

The Turing Submissions section is full of student created works in Turing and might have some nice examples: http://compsci.ca/v3/viewforum.php?f=48

There are also the FP contest entries which are students final projects (tho not all in turing):

http://compsci.ca/v3/viewforum.php?f=62
http://compsci.ca/v3/viewforum.php?f=49
http://compsci.ca/v3/viewforum.php?f=69

Author:  SNIPERDUDE [ Thu Mar 25, 2010 1:33 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Also, the Turing Walkthrough is a great way to brush up on all the useful functions Turing provides.

As for example programs, there's a sticky thread in the Turing Submissions forum for the best submissions to date. A lot of innovative stuff has been posted there.

Author:  DemonWasp [ Thu Mar 25, 2010 3:32 pm ]
Post subject:  RE:What\'s really rotten in Turing?

The Turing Tutorials section is also full of small example programs that could be used as samples to try reading.

You should probably, at least once, hand half the students in the class a program with proper commenting style, and hand the other half the exact same program without any comments at all, then ask the students to give the output of the program. Your students will forever comment their code after this example.

You did mention Minesweeper explicitly, so you've probably already seen my own Minesweeper tutorial (parts 1-4), but in case you hadn't, those are the links. I would appreciate any feedback, positive or negative, on that tutorial, as I am currently writing additional programming tutorials for this site and would like to improve my style / writing / code in any way I can.

Good luck!

Author:  yetiboy [ Thu Mar 25, 2010 5:37 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Thanks all. I'll try out the examples and let you know how things go.

Author:  InfectedWar [ Sat Jun 12, 2010 4:18 pm ]
Post subject:  RE:What\'s really rotten in Turing?

Luckily my computer science and computer engineering teacher is actually qualified and registered, he really emphasizes on modularity and good coding conventions/commenting. Also global variables vs local variables, we also do other languages like prolog and C. Arrg the other week everyone finished up their recursive landscape project (recursion is a pretty cool programming concept) and a little earlier before that we finished up our networking battleship game made in turing (surprisingly the networking in turing was a lot faster than I thought)

Author:  BigBear [ Sat Jun 12, 2010 5:28 pm ]
Post subject:  Re: RE:What\'s really rotten in Turing?

InfectedWar @ Sat Jun 12, 2010 4:18 pm wrote:
Luckily my computer science and computer engineering teacher is actually qualified and registered, he really emphasizes on modularity and good coding conventions/commenting. Also global variables vs local variables, we also do other languages like prolog and C. Arrg the other week everyone finished up their recursive landscape project (recursion is a pretty cool programming concept) and a little earlier before that we finished up our networking battleship game made in turing (surprisingly the networking in turing was a lot faster than I thought)


I hope you do not use global variables

Author:  InfectedWar [ Mon Jul 12, 2010 9:04 am ]
Post subject:  Re: RE:What\'s really rotten in Turing?

BigBear @ Sat Jun 12, 2010 5:28 pm wrote:
InfectedWar @ Sat Jun 12, 2010 4:18 pm wrote:
Luckily my computer science and computer engineering teacher is actually qualified and registered, he really emphasizes on modularity and good coding conventions/commenting. Also global variables vs local variables, we also do other languages like prolog and C. Arrg the other week everyone finished up their recursive landscape project (recursion is a pretty cool programming concept) and a little earlier before that we finished up our networking battleship game made in turing (surprisingly the networking in turing was a lot faster than I thought)


I hope you do not use global variables


Our cs teacher would fail us if we used globals lol (Unless one was absolutely required)


: