D vs Java as a first programming language

Bruno Medeiros brunodomedeiros+spam at com.gmail
Mon Oct 6 06:40:39 PDT 2008


Sean Kelly wrote:
> Walter Bright wrote:
>> bearophile wrote:
>>> So beside asking the age of your students, a second important
>>> question to ask you is the kind of things you want to teach, and the
>>> kind of students you have. If your purpose is to teach just
>>> programming, then Java may be better. If your purpose is to teach
>>> some math too, to think in a flexible way, logical thinking,
>>> recursivity, functional programming, parallel thinking, and so on,
>>> then maybe Scheme is a better choice, despite it's almost useless
>>> compared to Java.
>>
>> That's a very good point. If my students intended to become top 
>> professionals and had a keen interest, I'd start them with assembler, 
>> and follow up with D. If they were 9 year old kids wanting to toy 
>> around, I'd probably start with a language with instant gratification, 
>> like javascript.
> 
> Also, different people learn best in different ways.  Some can't focus 
> on high-level issues unless they understand what's going on under the 
> covers, while others are the opposite.  If I were to design a curriculum 
> I'd suggest the bottom-up approach (ie. architecture to assembler to D), 
> but leave students the option of doing the reverse as well.  At least 
> insofar as these first few courses are concerned.
> 
> 
> Sean

Starting programming in C/C++ without having assembler or processor 
architecture knowledge is indeed probably not the best. But truly 
high-level languages should shield (abstract) you from that, so that you 
can start programing right away without having to learn a lot of 
low-level stuff first.

In my university, the curriculum is designed so that one starts learning 
from both ends (top and bottom). The first semester has an introductory 
programming course with Scheme where you learn the basics of programming 
and data abstraction, and on the other end a Digital Systems course 
(flip-flops and boolean logic, not yet programming). On the second 
semester the students have courses on assembler programming (and 
microprocessor architecture), and on C programming. Only on the third 
one there is a course about Java and Object Oriented programming.

-- 
Bruno Medeiros - Software Developer, MSc. in CS/E graduate
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D



More information about the Digitalmars-d mailing list