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