Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Turing's Future
Index -> CompSci.ca, General Discussion -> Featured Poll
Goto page Previous  1, 2
View previous topic Printable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

What do you think should happen to Turing?
(No ending time set)
Keep it alive, in one form or another.
47%
 47%  [ 11 ]
Let it die, bring in other languages.
52%
 52%  [ 12 ]
Total Votes : 23

Author Message
wtd




PostPosted: Sat May 02, 2009 11:39 pm   Post subject: RE:Turing\'s Future

In summation, I believe what Prabhakar Ragde is saying (from a great depth of experience) is that introductory computer science should focus on introducing students to concepts.

In theory, it'd almost be best to not even use a computer. But, as in many other pursuits, theory should not always be pursued blindly. Programming becomes necessary as a way to provide students with feedback on what they're learning.

If we accept that, then the goal has to be choosing programming languages which are, for lack of a better way to express it, straightforward. Or, at least languages which allow concepts to be expressed in a straightforward manner.

I suspect that the creators of Turing actually understood this. It is a reasonably straightforward language in which to demonstrate statically-typed procedural concepts. Aside from its primary logistical failure of not being (at least in a user-friendly manner) cross-platform, and until recently not being freely available, Turing suffers from the fact that it is a reasonably straightforward way to demonstrate statically-typed procedural programming, but is pretty terrible at expressing anything else.
Sponsor
Sponsor
Sponsor
sponsor
Prabhakar Ragde




PostPosted: Sun May 03, 2009 11:08 am   Post subject: RE:Turing\'s Future

Good summary.

Yes, the feedback provided by a computer attempting to interpret one's program is invaluable. But that feedback should be as clear as possible for the beginner, as should be the ways in which said beginner is shown how to express computations initially. And the more we use massive industrially-oriented infrastructure in introductory courses, the less this will be the case.
saltpro15




PostPosted: Sun May 03, 2009 11:43 am   Post subject: RE:Turing\'s Future

+karma for Prabhakar from me, wtd will get one too as soon as I can change it again, both excellent points.
wtd




PostPosted: Sun May 03, 2009 11:54 am   Post subject: RE:Turing\'s Future

As an example of the feedback being discussed, consider the DrScheme environment vs. Turing. Let's say an intro CS class has just discussed adding two numbers. Now we want to use a programming tool to try this out.

Let's fire up DrScheme. After selecting a language and clicking run (this need be done only once), we simply type our expression at the prompt, hit enter and are immediately greeted with the result.

code:
> (+ 1 2)
3
>


Let's do the same in Turing. I'll type "1 + 2" and click "Run". Hmmm... it tells me there's a syntax error, even though this expression is written correctly. Sadly it doesn't tell me what kind of error it found, or how to fix it.

Oh, wait, Turing is a procedural language, so I know I have to tell the computer to print the result for me. But, as a student in an introductory class, I wouldn't know this, so I'd probably be pretty confused.

I'll input "put 1 + 2" and click "Run". Okay, now the expected result of 3 appears in a new window.

Winner for providing feedback to students on what they've just learned about adding numbers? I'd say DrScheme, but I'll leave that to the reader to decide for him or herself.

Of course, we could use C++, as has been suggested.

Step 1: open a text editor and start a new file.
Step 2: type the following code.

code:
#include <iostream>

int main()
{
    std::cout << (1 + 2) << std::endl;
}


Step 3: save that file.
Step 4: teach your students about directories.
Step 5: set up g++ on your platform of choice (and heaven save you if its Windows).
Step 6: teach your stduents how to use the command-line.
Step 7: teach your students how to compile a C++ program with g++.
Step 8: have them compile the program they input in step 2.
Step 9: have them run the program they just compiled.
Step 10: observe that the program outputs 3, assuming they didn't typo.
Step 10.5: remind everyone of why they were writing a program to output 3.
Step 11: if they did typo, teach them how to debug C++ code.

Depending on how competent your students are with basic computing skills, this may take two to five meetings of the class. Neither C, nor Java nor C# are going to be especially more straightforward.
Prabhakar Ragde




PostPosted: Sun May 03, 2009 1:54 pm   Post subject: Re: Turing's Future

What is even more impressive about DrScheme is what happens when you do something wrong.

The expression that wtd used is in fact a complete Scheme program. You could put it into the Definitions window, hit Run, and see the value 3 in the Interactions window (where he typed in the expression).

Suppose the user forgot that + is a function, not an operator, and typed this into the Definitions window and hit Run:
code:

(1 + 2)


Here is what DrScheme responds with in the Interactions window:

code:

function call: expected a defined name or a primitive operation name after an open parenthesis, but found a number


and it highlights the 1 in the Definitions window.

This sort of care is not a feature of the programming language, of course, but of the IDE. But all of this is implemented in full-blown Scheme plus many useful extensions. The full power of the language is put to work in the service of its humblest users, the absolute beginners. We need to see more of that. Lots more of that.
Prabhakar Ragde




PostPosted: Sun May 03, 2009 1:57 pm   Post subject: RE:Turing\'s Future

(OT: Hmmm, interesting rendering changes in both wtd's message and mine after the second code block, in three different browsers on a Mac. Tony?)
Brightguy




PostPosted: Sun May 03, 2009 6:07 pm   Post subject: Re: Turing's Future

Prabhakar Ragde @ Sun May 03, 2009 1:57 pm wrote:
(OT: Hmmm, interesting rendering changes in both wtd's message and mine after the second code block, in three different browsers on a Mac. Tony?)
Code blocks have a spurious span closing tag and posts are wrapped in two spans for some reason.
Dusk Eagle




PostPosted: Mon May 11, 2009 10:03 pm   Post subject: Re: RE:Turing\'s Future

Prabhakar Ragde @ Sun May 03, 2009 2:57 pm wrote:
(OT: Hmmm, interesting rendering changes in both wtd's message and mine after the second code block, in three different browsers on a Mac. Tony?)

That really annoys me too. It's best to just type [size=12] and [/size] around your text. Although I would like to know why this occurs.
Sponsor
Sponsor
Sponsor
sponsor
Tony




PostPosted: Mon May 11, 2009 10:51 pm   Post subject: RE:Turing\'s Future

The second code block breaks out of the "postbody" span, so the rest of the post doesn't get the same styles applied to it. I think it might be that the actual generated HTML at fault, not the interpretation of it. Though I wasn't the one to implement the syntax tags.

OT of OT: what's the current plant for v4? I would like something that renders a topic page with less than 41 <table> tags (I've counted)...
Latest from compsci.ca/blog: Tony's programming blog. DWITE - a programming contest.
Display posts from previous:   
   Index -> CompSci.ca, General Discussion -> Featured Poll
View previous topic Tell A FriendPrintable versionDownload TopicRate TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 2 of 2  [ 24 Posts ]
Goto page Previous  1, 2
Jump to:   


Style:  
Search: