Jump to page: 1 2
Thread overview
Best language for beginners
Aug 14, 2005
Charles
Aug 14, 2005
Hasan Aljudy
Aug 14, 2005
Hasan Aljudy
Aug 14, 2005
Dejan Lekic
Aug 15, 2005
Vathix
Aug 15, 2005
J C Calvarese
Aug 15, 2005
Ben Hinkle
Aug 15, 2005
Dejan Lekic
Aug 15, 2005
Fredrik Olsson
Aug 15, 2005
Ben Hinkle
Aug 16, 2005
Fredrik Olsson
Aug 15, 2005
Hasan Aljudy
Aug 16, 2005
Fredrik Olsson
Aug 15, 2005
Dave
Aug 16, 2005
Fredrik Olsson
Aug 17, 2005
acerimusdux
Aug 17, 2005
Derek Parnell
August 14, 2005
I never read slashdot , but this showed up on my google news page

http://ask.slashdot.org/article.pl?sid=05/08/11/1951203

D is mentioned as a candidate about the third post down.




August 14, 2005
Charles wrote:
> I never read slashdot , but this showed up on my google news page
> 
> http://ask.slashdot.org/article.pl?sid=05/08/11/1951203
> 
> D is mentioned as a candidate about the third post down.
> 
> 
> 
> 

The spec says D is not so good for people who are just starting out in programming.

I would personally go for Java, but the problem is you're gonna have to mention "class" before the students ever had a chance to know about programming.

C is not bad, except the printf formatting thing isn't so beginner-friendly.

BASIC (the old basic, not visual basic) wouldn't be a bad choice either. I learned it when I was like 8 years old (I had was an MSX computer). I wouldn't spend too much time on it .. just use it to introduce loops and functions with it, which by the way was all I learned from it.

I'd personally start with C++, the cout << way of printing is clean and obvious, but I wouldn't use C++ to teach OOP. Once we get past pointers and structs, I'd move to Java.

As for pascal .. well, I have a thing against it.
It's all good and simple and all .. but once the code exceeds 50 lines, it becomes very hard to debug and maintain it. Everything is so cluttered .. there's simply no obvious boundaries between functions, and main becomes hard to find without a comment.
I always put a huge comment on it to help me find it
(*
 *
 * MAIN
 *
 *)



August 14, 2005
"Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ddoipa$2mag$1@digitaldaemon.com...
> C is not bad, except the printf formatting thing isn't so beginner-friendly.

The console IO functions of C are awful at best, and it's more than a little pain to have to deal with strings in C, which, considering that you usually deal entirely with the console in beginner programming, is not a good thing.

> BASIC (the old basic, not visual basic) wouldn't be a bad choice either. I learned it when I was like 8 years old (I had was an MSX computer). I wouldn't spend too much time on it .. just use it to introduce loops and functions with it, which by the way was all I learned from it.

Ooh.  Line numbers are the devil.  Might want to use a more up-to-date BASIC language, like PureBasic or something.  Anything to get away from the awful spaghetti code that the old line numbers forced.

> I'd personally start with C++, the cout << way of printing is clean and obvious, but I wouldn't use C++ to teach OOP. Once we get past pointers and structs, I'd move to Java.

Good idea.  C++ at least has decent and nice-looking IO, and okay strings.

> As for pascal .. well, I have a thing against it.
> It's all good and simple and all .. but once the code exceeds 50 lines, it
> becomes very hard to debug and maintain it. Everything is so cluttered ..
> there's simply no obvious boundaries between functions, and main becomes
> hard to find without a comment.

Yeah, I always got that feeling when reading Pascal/Delphi code too.  It's also irritating to have to declare all the variables at the top of the function and not inline with the code, like C++/D allow.


August 14, 2005
Jarrett Billingsley wrote:
> "Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ddoipa$2mag$1@digitaldaemon.com...
<snip>
>>BASIC (the old basic, not visual basic) wouldn't be a bad choice either. I learned it when I was like 8 years old (I had was an MSX computer). I wouldn't spend too much time on it .. just use it to introduce loops and functions with it, which by the way was all I learned from it.
> 
> 
> Ooh.  Line numbers are the devil.  Might want to use a more up-to-date BASIC language, like PureBasic or something.  Anything to get away from the awful spaghetti code that the old line numbers forced.
> 

hmm, tbh I don't remember anything from basic, but I do remember that when I started learning functions in C++, I immdeiatly related it to the concept of GOSUB.
August 14, 2005
I would also use C++ because I think high-level languages that hide many
things from developer, like direct memory access for example, create huge
gap in understanding of lower-level programming, and how all those
nice&usefull classes & packages work behind the scenes.
C++ gives oportunity to "widen the horizon", and I think D is the same
story. - I would definitely recommend D also as a programming language for
beginners, yes.

-- 
...........
Dejan Lekic
  http://dejan.lekic.org

August 15, 2005
> The spec says D is not so good for people who are just starting out in programming.

I believe that is just because there aren't many tutorials or books on D yet.
August 15, 2005
"Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ddolsb$2o6c$1@digitaldaemon.com...
> hmm, tbh I don't remember anything from basic, but I do remember that when I started learning functions in C++, I immdeiatly related it to the concept of GOSUB.

Good point, I forgot about GOSUB.  However, what really makes most old-style BASIC code look like spaghetti is the lack of any kind of looping structure besides FOR loops.  Any other kind of loop was accomplished with something like "IF X<10 THEN 40".


August 15, 2005
"Hasan Aljudy" <hasan.aljudy@gmail.com> wrote in message news:ddoipa$2mag$1@digitaldaemon.com...
> Charles wrote:
>> I never read slashdot , but this showed up on my google news page
>>
>> http://ask.slashdot.org/article.pl?sid=05/08/11/1951203
>>
>> D is mentioned as a candidate about the third post down.
>>
>>
>>
>>
>
> The spec says D is not so good for people who are just starting out in programming.
>
> I would personally go for Java, but the problem is you're gonna have to mention "class" before the students ever had a chance to know about programming.
>
> C is not bad, except the printf formatting thing isn't so beginner-friendly.
>
> BASIC (the old basic, not visual basic) wouldn't be a bad choice either. I learned it when I was like 8 years old (I had was an MSX computer). I wouldn't spend too much time on it .. just use it to introduce loops and functions with it, which by the way was all I learned from it.
>
> I'd personally start with C++, the cout << way of printing is clean and obvious, but I wouldn't use C++ to teach OOP. Once we get past pointers and structs, I'd move to Java.
>
> As for pascal .. well, I have a thing against it.
> It's all good and simple and all .. but once the code exceeds 50 lines, it
> becomes very hard to debug and maintain it. Everything is so cluttered ..
> there's simply no obvious boundaries between functions, and main becomes
> hard to find without a comment.
> I always put a huge comment on it to help me find it
> (*
>  *
>  * MAIN
>  *
>  *)

C++ for beginners? yikes. A scripting language all the way - like python or (yes) BASIC or MATLAB (for the numerically minded). I'd even suggest Ruby if I knew anything about it <g>. A compiled language takes waaaay too long to get anything useful running. It's like teaching someone to read by giving them James Joyce's Ulysses.


August 15, 2005
In article <op.sviv00vql2lsvj@esi>, Vathix says...
>
>> The spec says D is not so good for people who are just starting out in programming.
>
>I believe that is just because there aren't many tutorials or books on D yet.

That's my feeling as well.

jcc7
August 15, 2005
Hasan Aljudy wrote:
> I would personally go for Java, but the problem is you're gonna have to mention "class" before the students ever had a chance to know about programming.
> 
I think Java is terrible, utterly terrible for beginners. As a teacher I have had a hard time justifying why my students must declare the start of a program as "main" in C. Going through a dummy class with a static main is just too much; "just accept this kids, and look at this single line, the other 10 will be explained in due time."


> C is not bad, except the printf formatting thing isn't so beginner-friendly.
>
C is also terrible for learners, because of all the exceptions. The trick is to teach the students what arrays and pointers are, what they are good for and why to use them. Good luck with C. And strings, ooh the strings. No too many of the simple things are just not simple enough with C.


> As for pascal .. well, I have a thing against it.
> It's all good and simple and all .. but once the code exceeds 50 lines, it becomes very hard to debug and maintain it. Everything is so cluttered .. there's simply no obvious boundaries between functions, and main becomes hard to find without a comment.
> I always put a huge comment on it to help me find it
> (*
>  *
>  * MAIN
>  *
>  *)
> 
Pascal IS excellent for teaching, mainle because it is consistent. Very few exceptions, and if you are a good teacher you will avoid them very easily (Did you know that you do not have to put a terminating ; on the last statement in a compound statement, just before the end;?). All data types or clear and distinct from each other, and all constructs follows the same patters; what it is, what it is named, what it does.

All good students eventually go on and try their wings at programming, and ozens upon dozens of my C students have tried to make a:
int foo(int a, b) { ... }
Well you just can not declare the arguments that way I have to tell them. But why? They look like variables? They allways say. There is no good answer to that one, so yet another; "just accept it".

When teaching in Pascal I do o need to do that. It is an obvious construct and Pascal allows for it. Even the structure of the main program is the same as for sub-programs, not even a need to explain to the students why; it is soo natural. And as a bonus the students who do try their wings using logic applied to their new skills hits the mark nine times out of ten, and their tries work out. They get confidence and dares to try more. And as we all know; trying and actually write programs is the best way to learn!

My experience says that students learn to code in C twice as fast if they only get a crash cource introduction in Pascal first. Then all you as a teacher have to say is; it is like this in Pascal, and give a good example and then draw up how it can be done in C (And try to make the best practice example :)).

As for D I think it can work as a learning language, at least ten times better then C and Java combined. Pascal is hard to beat. Only trouble I see in D for the first day of teaching is that strings are the same as an array of char. Not good; "the same as, but works this way", and "just accept this, it will be explained" are the wordst things you can say to your students. They lose interest, and they get uneccesary scared of the complexity that need not be there.

regards
	Fredrik Olsson
« First   ‹ Prev
1 2