March 12

On Tuesday, 12 March 2024 at 18:03:43 UTC, Lance Bachmeier wrote:

>

On Tuesday, 12 March 2024 at 17:03:42 UTC, Mike Shah wrote:

>

As a note, the 'which language is best for CS 1' debate has long been debated -- but at least in a school setting, I've found the quality/enthusiasm/encouragement of the teacher to be the most important aspect regardless of language choice.

As someone that's been teaching beginners to program at a university for a long time (but not in a CS department) I've come to see the choice of language as largely unimportant. You have to decide what you want to teach them and then eliminate the languages that aren't suitable. D is one of many languages that would work with the right content. Other languages, like C++, add unnecessary overhead and thus should not be used.

It's often said "X is a complicated language" but that's the wrong way to look at it. You're teaching a set of programming concepts, not a language. The question is how well a particular language works for learning those concepts.

I was always wondering about this debate on a suitable "first" programming language in a CS curriculum. I largely observe one dividing point: to start with a strongly-typed language or not. (After that, it probably does not matter so much which language is chosen; alas, it should be available on Windows, Linux, and Mac OS). Do you observe similar sentiment in the discussions in the university settings?

March 12
On Tue, Mar 12, 2024 at 06:03:43PM +0000, Lance Bachmeier via Digitalmars-d-announce wrote:
> On Tuesday, 12 March 2024 at 17:03:42 UTC, Mike Shah wrote:
> 
> > As a note, the 'which language is best for CS 1' debate has long been debated -- but at least in a school setting, I've found the quality/enthusiasm/encouragement of the teacher to be the most important aspect regardless of language choice.
> 
> As someone that's been teaching beginners to program at a university for a long time (but not in a CS department) I've come to see the choice of language as largely unimportant. You have to decide what you want to teach them and then eliminate the languages that aren't suitable. D is one of many languages that would work with the right content. Other languages, like C++, add unnecessary overhead and thus should not be used.
> 
> It's often said "X is a complicated language" but that's the wrong way to look at it. You're teaching a set of programming concepts, not a language.  The question is how well a particular language works for learning those concepts.

I don't know how CS programs are carried out these days, but back when I was in university, the choice of language is largely irrelevant, because the whole point of a programming course isn't to teach you a specific language, but to teach you the *principles* that underlie programming in general. There are really only a small handful of different paradigms that you need to learn; once you learned the principles behind them, they can be applied to any language out there.  You wouldn't need anyone to teach you a new language then; you could just learn it yourself by applying these same principles.

The rest, as they say, is just details. ;-)


T

-- 
The irony is that Bill Gates claims to be making a stable operating system and Linus Torvalds claims to be trying to take over the world. -- Anonymous
March 12
On Tuesday, 12 March 2024 at 19:12:03 UTC, H. S. Teoh wrote:
> I don't know how CS programs are carried out these days, but back when I was in university, the choice of language is largely irrelevant, because the whole point of a programming course isn't to teach you a specific language, but to teach you the *principles* that underlie programming in general. There are really only a small handful of different paradigms that you need to learn; once you learned the principles behind them, they can be applied to any language out there.  You wouldn't need anyone to teach you a new language then; you could just learn it yourself by applying these same principles.
>
> The rest, as they say, is just details. ;-)
>
>
> T

I agree.

Andrea
March 12
On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
> On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote:
>> ...
>> I really think D would be a wonderful first language. 🙂 Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course.
>
> If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice.
>
> Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example.
>
> Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell.
>
> Matheus.

I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.
March 12
On Tue, Mar 12, 2024 at 08:40:49PM +0000, Meta via Digitalmars-d-announce wrote: [...]
> I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.

	People who are more than casually interested in computers should
	have at least some idea of what the underlying hardware is like.
	Otherwise the programs they write will be pretty weird.
	-- D. Knuth

;-)


T

-- 
Just because you can, doesn't mean you should.
March 12
On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote:
> On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
>> On Tuesday, 12 March 2024 at 14:52:32 UTC, Mike Shah wrote:
>>> ...
>>> I really think D would be a wonderful first language. 🙂 Fast feedback, no need to manage memory, and easy to use built-in data structures would make for a nice intro course.
>>
>> If you say that D would be a good language to learn in lieu C++/Rust I'd agree, but as a First Language neither one would be my choice.
>>
>> Most here already program and know things, but as a first language forget, at least where and when I did college (Already knowing how to program), most people were lost with all the concepts of C++ for example.
>>
>> Bitwise shifts like << >> and the same operators being used in cin/cout may be OK for most people already in programming and using shell, but for those learning was a hell.
>>
>> Matheus.
>
> I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.

I've been at institutions where C++ is the first language and for most folks who were sure they wanted to do programming it was a fine enough language (when taught with care) to teach. In fact, it benefited me (and other instructors) quite a bit when I saw those students later and taught them computer graphics (usually taught in C++ to prepare them for job market).

For folks who were not sure if they wanted to study computer science, unfortunately they were scared away as they thought this was the only path for programming (i.e. C++, assembly, etc.). For this reason, a language that is gentler (e.g. Python, JavaScript, or I also suspect a large subset of D) would all have been better choices. More universities these days are offering courses with gentler options (e.g. Programming for non-majors) which usually take this approach to more slowly ramp students up -- which I think is a good thing to have these offerings. And then later on in the program, these students can learn the good stuff (i.e. systems, compilers, graphics, etc. :) )
March 13
On Tuesday, 12 March 2024 at 22:27:11 UTC, Mike Shah wrote:
> On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote:
>> On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
>>> [...]
>>
>> I think it really depends on the person. My first language was C++, which was absolute hell to learn as a complete beginner to programming, but I really wanted to learn a language with low-level capabilities that could also do gamedev. Learning C++ as my first language was incredibly difficult, but it also made the programming parts of my CS degree a breeze - especially courses like machine level programming. Nobody else in the class even understood what a pointer was for the first couple weeks.
>
> I've been at institutions where C++ is the first language and for most folks who were sure they wanted to do programming it was a fine enough language (when taught with care) to teach. In fact, it benefited me (and other instructors) quite a bit when I saw those students later and taught them computer graphics (usually taught in C++ to prepare them for job market).
>
> For folks who were not sure if they wanted to study computer science, unfortunately they were scared away as they thought this was the only path for programming (i.e. C++, assembly, etc.). For this reason, a language that is gentler (e.g. Python, JavaScript, or I also suspect a large subset of D) would all have been better choices. More universities these days are offering courses with gentler options (e.g. Programming for non-majors) which usually take this approach to more slowly ramp students up -- which I think is a good thing to have these offerings. And then later on in the program, these students can learn the good stuff (i.e. systems, compilers, graphics, etc. :) )

I understand that outside of CS, something like Python is a fine choice, hiding many low-level details. But within a CS-curriculum, one needs to come beyond basics-of-programming to something like efficient algorithm-design-and-data-structures; isn't a typed language better here? (Like the quote of Knuth says: if you do not understand the hardware behind, your programs will look weird. I have observed this a lot with current data-science students, which use a map/dictionary for everything, largely ignoring the existence of arrays).
March 13

On Monday, 4 March 2024 at 13:37:53 UTC, Fidele wrote:

>

I want to start learning D programming language it looks interesting

The free digital book from Ali, is written to fit your need:

https://ddili.org/ders/d.en/index.html

March 13

On Tuesday, 12 March 2024 at 19:07:25 UTC, M.M. wrote:

>

I was always wondering about this debate on a suitable "first" programming language in a CS curriculum. I largely observe one dividing point: to start with a strongly-typed language or not. (After that, it probably does not matter so much which language is chosen; alas, it should be available on Windows, Linux, and Mac OS). Do you observe similar sentiment in the discussions in the university settings?

I'm not a CS person so I'll have to defer to others (their needs are very different). My grad students are doing more complicated programming for data analysis and simulation. I focus on recursion and using a functional programming approach, because that simplifies things so much for these types of problems. All I need is a language that supports that.

1 2
Next ›   Last »