What's the best programming language for education (POLL)

kherman

Golden Member
Jul 21, 2002
1,511
0
0
Well, you see the question, don't you? I know I missed some, I'm just listing the POPULAR ones
 

AU Tiger

Diamond Member
Dec 26, 1999
4,280
0
76
Edit: I voted Java, but C is the best to learn. It is easy to learn Java once you have mastered C. Why no Visual Basic?

When I was in school the languages taught were Assembly, C, Cobol, and Visual Basic.

This was nine years ago.
 

Derango

Diamond Member
Jan 1, 2002
3,113
1
0
I'd say C/C++ since, even though its a tougher language than others, once you know C/C++, you pretty much know the syntax for a lot of the other languages out there that you're going to use. If you can do C/C++ well, you can do pretty much anything :)
 

stonecold3169

Platinum Member
Jan 30, 2001
2,060
0
76
I picked c++, just because it's the most practical language you listed...

BTW: <---- Current student at Clarkson university... you're the only person on this board I've found so far that knows where it is:p
 

kherman

Golden Member
Jul 21, 2002
1,511
0
0
Originally posted by: stonecold3169
I picked c++, just because it's the most practical language you listed...

BTW: <---- Current student at Clarkson university... you're the only person on this board I've found so far that knows where it is:p

MMmmm,, Clarkson. I remember the first year i was there. it snowed for the finals...in spring. That was Spring '95.

I hope they tear down new dorms. The floor layouts for those building are stupid as hell.

What's your major?
 

Descartes

Lifer
Oct 10, 1999
13,968
2
0
I was going to ask why you neglected to mention what has been considered the most popular development tool on the planet: VB; this was of course until I saw "I HATE MICROSOFT!" in your sig. *sigh*

Learn programming at that level and the rest is cake.

Not even close.

Sure, a jump to C and "C++ like C" (without employing any OO facilities) may be easier for those who know assembly than those who don't, but a jump to *any* other language (C++ w/ OO, Java, C#, and yes, VB) will be quite difficult if you know only assembly.

Note, I'm not implying C++ isn't inherently OO, I'm simply referring to how many people write C++ in C-style, perhaps only taking advantage of it's scoping rules and little else.

[edit]I'm going to make a notable exception to my assembly argument: MASM. It's collection of macros and other higher-level constructs would provide a smooth transition to a language like C (but not C++). Assembly w/ MASM is rather easy in fact... [/edit]
 

stonecold3169

Platinum Member
Jan 30, 2001
2,060
0
76
Originally posted by: kherman
Originally posted by: stonecold3169
I picked c++, just because it's the most practical language you listed...

BTW: <---- Current student at Clarkson university... you're the only person on this board I've found so far that knows where it is:p

MMmmm,, Clarkson. I remember the first year i was there. it snowed for the finals...in spring. That was Spring '95.

I hope they tear down new dorms. The floor layouts for those building are stupid as hell.

What's your major?

Sophmore CS major currently, and as of right now I intend on sticking with it. I'm afriad those dorms are here for good. In fact, we now have major housing issues because we are finally starting to get a national audience, versus the Tri-state area for perspective students.

And yes, we must have the worst weather of any college or university ever. Granted, I've lived here my whole life, so I'm used to it, but it's still sucky... snow pretty much from mid October through mid April or so.
 

Linflas

Lifer
Jan 30, 2001
15,395
78
91
Originally posted by: Descartes
I was going to ask why you neglected to mention what has been considered the most popular development tool on the planet: VB; this was of course until I saw "I HATE MICROSOFT!" in your sig. *sigh*

Learn programming at that level and the rest is cake.

Not even close.

Sure, a jump to C and "C++ like C" (without employing any OO facilities) may be easier for those who know assembly than those who don't, but a jump to *any* other language (C++ w/ OO, Java, C#, and yes, VB) will be quite difficult if you know only assembly.

Note, I'm not implying C++ isn't inherently OO, I'm simply referring to how many people write C++ in C-style, perhaps only taking advantage of it's scoping rules and little else.

[edit]I'm going to make a notable exception to my assembly argument: MASM. It's collection of macros and other higher-level constructs would provide a smooth transition to a language like C (but not C++). Assembly w/ MASM is rather easy in fact... [/edit]

In terms of the language mechanics you are probably correct however the understanding of what underlies all programming languages once they are spit out of the compiler is what makes assembly language valuable IMHO.
 

Descartes

Lifer
Oct 10, 1999
13,968
2
0
In terms of the language mechanics you are probably correct however the understanding of what underlies all programming languages once they are spit out of the compiler is what makes assembly language valuable IMHO.

I agree to that. With that in mind, I'd say my learning x86 assembly and C was the most valuable (and enjoyable) thing I've ever done (with regards to software engineering)...
 

FeathersMcGraw

Diamond Member
Oct 17, 2001
4,041
1
0
It depends what the goal of the teaching is. If it's to illustrate logical data structures, Java is probably a better choice than C. If it's to expose the underpinnings of the memory model to illustrate the architecture of the system, a lower language such as C or perhaps assembly is called for. And neither C nor Java are really well-suited towards implementation of functional programming paradigms, whereas Lisp and ML are.

Personally, I'm of the opinion that beginning students should start with higher-level languages and progress to the lower ones. I saw way too many people in CS classes in college struggle with language issues that were tangential to the actual issues being taught (folks who couldn't create a proper hashtable in C, for example, because they didn't have a decent understanding of memory allocation techniques). Of course, some of that may have been due to "weeder" design, but it's possible to be a competent software designer without being a crack coder (and vice versa).

Language is just an implementation detail. I'd rather see CS majors who know which tools to use (and perhaps where to find an appropriate instruction manual) rather than those who always reach for a hammer and try to turn every problem into a nail.
 

stonecold3169

Platinum Member
Jan 30, 2001
2,060
0
76
Originally posted by: FeathersMcGraw
It depends what the goal of the teaching is. If it's to illustrate logical data structures, Java is probably a better choice than C. If it's to expose the underpinnings of the memory model to illustrate the architecture of the system, a lower language such as C or perhaps assembly is called for. And neither C nor Java are really well-suited towards implementation of functional programming paradigms, whereas Lisp and ML are.

Personally, I'm of the opinion that beginning students should start with higher-level languages and progress to the lower ones. I saw way too many people in CS classes in college struggle with language issues that were tangential to the actual issues being taught (folks who couldn't create a proper hashtable in C, for example, because they didn't have a decent understanding of memory allocation techniques). Of course, some of that may have been due to "weeder" design, but it's possible to be a competent software designer without being a crack coder (and vice versa).

Language is just an implementation detail. I'd rather see CS majors who know which tools to use (and perhaps where to find an appropriate instruction manual) rather than those who always reach for a hammer and try to turn every problem into a nail.

Exactly... At my university, we focus on concepts of syntax... let's face it, in 10 years most of our languages will either be obsolete or be so heavily revised that they no longer resemble their former selves. However, in 10 years, I'd assume that a linked list, or a stack, or a tree, etc will all function with the same idea behind them... therefore, learning how to regurgitate the actual code is futile, understanding the concepts will get you much, much farther.

If anyone is interested in brushing up on recurssion, and just wants to learn a neat new language, check out Scheme. Man, what a fun language. No loops, everything is done recursively... such a powerful language, when used... your typical function only takes up say 6 lines or so, but does so much. Great way to force this type of thinking on you :D
 

SagaLore

Elite Member
Dec 18, 2001
24,037
21
81
BASIC.

BASIC is a language you can learn without extensive calculus knowledge. If you're not prepared to learn algorithms and the big O, then you're not ready for C. But I'm assuming you're talking about a starter language for kids... if it's college based then C++ is the default.
 

Yomicron

Golden Member
Mar 5, 2002
1,735
1
81
It depends, for a first language to learn and get the student familiar with programming, I would vote for C. Not that the students should get too deep in it in the begning, but just so they can get the feel of programming and syntax and such.

If you are trying to teach OO design, then I feel Smalltalk is the way to go. Once the student knows Smalltalk and C, moving to quasi OO languages like C++ and Java shouldn't be too dificult.
 

vi edit

Elite Member
Super Moderator
Oct 28, 1999
62,389
8,160
126
Pascal.

Simple syntax. Follows structure, and teaches the principles of various programing techniques found in many languages.

VB is nice too, but it's kind of bad to start out with since it's more of a free flowing language and doesn't really teach you how to structure your programs well. It's nice though in that you can do some fairly impressive and powerful programs very quickly, and with very little effort. Doing the same thing in C++ or COBOL would take hours and much, much more code.

It's a nice beginner class and doesn't discourage many people.
 

gopunk

Lifer
Jul 7, 2001
29,239
2
0
Originally posted by: vi_edit
Pascal.

Simple syntax. Follows structure, and teaches the principles of various programing techniques found in many languages.

VB is nice too, but it's kind of bad to start out with since it's more of a free flowing language and doesn't really teach you how to structure your programs well. It's nice though in that you can do some fairly impressive and powerful programs very quickly, and with very little effort. Doing the same thing in C++ or COBOL would take hours and much, much more code.

It's a nice beginner class and doesn't discourage many people.

i dunno, i kind of want a language that will discourage people. way too many people are going into cse for money... it's nice to have something to weed out the fakers.