May 06, 2018
On 06/05/2018 1:35 PM, Seb wrote:
> On Friday, 4 May 2018 at 11:35:22 UTC, Sjoerd Nijboer wrote:
>> So i'm a college student in and what bothers me is that there seem to kind of assume programming languages don't evolve or don't get replaced by better ones.
>> Right now if you go to college you'll most likely get tought c++, c# or java for any comp sci degree. While these languages are industrial standards, they all have their drawbacks. And one drawback that looks important for teaching is flexibility in expressiveness.
>>
>> [...]
> 
> @ everyone in this discussion: you ask and answer the wrong question.
> The question needs to be:
> 
> "What can we do or improve upon to allow D playing a bigger role in education?"

The answer to that is simple:

We need to create a couple of qualifications.

1) Hard CS theory meant for existing developers in industry
2) Introduction to programming covering most aspects that they would face

Make the material, make the path ways, and make it simple for institutes and standard bodies to adopt.

We cannot do this alone. We need help. We need professional institutes like ITP to assist us in our cause of teaching the next generation of programmers (D is just a tool in this goal).
May 06, 2018
On Sunday, 6 May 2018 at 00:35:19 UTC, Sameer Pradhan wrote:
> I thought it might help if I mentioned that I successfully used D as one of three languages to teach the Programming Languages course at Vassar College last Fall.
> --
> Sameer

I can actually kind of relate to this.
For some background, I work at a company that offers traineeships in software engineering to technical graduates. The traineeship is basically a crash course in high level application development. Our main language to teach is Java, because our biggest customer uses it. We try to focus on design concepts rather than programming languages.

The subject I teach is object oriented programming and test-driven development. For the slides and the demo, I use D. I have two main reasons for this.
Firstly, I don't want the students to become hardcoded Java programmers, who panic when they need to switch languages. I want them to gain the confidence that the gap between various programming languages (mainly in the C family, or one family in general) is very small and, more importantly, that they can transfer the knowledge they already have.
Secondly, I want them to focus on the concepts. During a demo, if I ask them how to set up a test in Java, they think and answer in code. If I ask them to set up a test in D, they think in concepts. I then do the translation to code.
(For the record, they implement the assignment in Java.)

Last course, we had a normal group of Java programmers and a trainee who was learning Python. The trainee was the one who understood the OO principles the fastest, because she was forced to think in concepts and not implementation.

For my personal studies, I programmed in Ocaml for a while. Even though you can mimic the concepts in D using pure and const, it still broadened my horizon.

If I have to conclude anything, it is that there, in my opinion and in the context of my philosophy, should not be a one language during a study. D definitely has a place in there with how different language features are set up. I think Ali's book is a great start, as it explains the concepts as well as the implementation. The D lang tour for example focuses on learning D when you know how to program, which is a completely valid use case as well.

It would be cool to have a "Learn programming with D as a tool" section on the website, but I doubt it would be worth the effort. People who study in their free time go to well-known sites like Code Academy and people who have their own course (like me), write their own material based on their course setup and learning goals.
May 06, 2018
For no other reason than to provide a fun data point:

I am having two graduate students to learn D for use in my computational biology lab 😀

Most bioinformatics work is and remains in Python; for higher performance we have previously used go, but the students indicate D is worlds more pleasant than either C++ or go.
May 06, 2018
On Sunday, 6 May 2018 at 09:16:24 UTC, Marco de Wild wrote:
> If I have to conclude anything, it is that there, in my opinion and in the context of my philosophy, should not be a one language during a study. D definitely has a place in there with how different language features are set up.
Defenately true. I learned some C at school, then some java, C# and broadened my scope of languages and programming styles from then on. Besides learning the languages, I the most important thing we were tought was to be language agnostic. While I can't say I completely am, I can carry over ideas from one language to another. I think that D is a useful language in this regard because it has a realistic, pragmatic and theoretically "correct" way of constructs you find in other languages while not limiting the user. I think that this is very important to teaching.

In contrast, when there were lectures about databases the main database the course focussed on was MySQL. Which is not neccesarily a bad choice as a teaching method. It's just that MySQL deviates from the standard more than for instance PostgreSQL. Therefore it was relatively difficult to learn databases and SQL and at the same time make the assignments for MySQL since there was a small translation step in the middle which had to be taken. Taking this step away could give a boost to learning and maybe a better understanding.

On Friday, 4 May 2018 at 15:14:55 UTC, bachmeier wrote:>
> One way that I could see D getting its foot in the door is an intro course using Java or Python but where the instructor wants to devote a couple of lectures to low-level programming using pointers. D would be perfect for that due to the convenient syntax. Other topics like metaprogramming or memory management would also be reasons to use D.
Hmm sounds interesting. Maybe writing runtimes for relative simple languages in D as a course?

On Sunday, 6 May 2018 at 01:35:53 UTC, Seb wrote:
> @ everyone in this discussion: you ask and answer the wrong question.
> The question needs to be:
>
> "What can we do or improve upon to allow D playing a bigger role in education?"
More awarenes of D's existance for teachers?
How about fliers on schools, aimed at teachers?
Speakers at teacher conferences on conputer science?
Maybe a focus group of D teachers and help them out?

That, and actual quality free teaching material.

May 06, 2018
On Sunday, 6 May 2018 at 13:34:04 UTC, James Blachly wrote:
> but the students indicate D is worlds more pleasant than either C++ or go.

And they're well right about that.
May 08, 2018
On Saturday, 5 May 2018 at 07:37:29 UTC, Walter Bright wrote:
> On 5/4/2018 4:35 AM, Sjoerd Nijboer wrote:
>> Since D seems to be a language that supports a lot of programming
>> paradigms very well, wouldn't it be beneficial to learn people
>> declarative programming using D for a little and from there expose them
>> to other programming styles in thesame language to lower the barrier of
>> entry?
>
> I agree that D being a multi-paradigm language makes it ideal as a vehicle for teaching various paradigms. New paradigms can be taught without the diversion of having to start over learning a new language.

Walter,

I am considering teaching the programming languages course again in Spring but this time simply using D.

Would you be willing to provide me with some advise in the process of converting the one that I had put together based on Dan Grossman's course at UW and which used SML and Python in addition to D. (Dan uses SML, Racket and Ruby). I would like to know if I can purely use D, or at least minimize the use of the two other languages without sacrificing the insights provided by those two languages.

Your response indicates that you have a very positive outlook on such a transition and I could help knowing that I am not compromising on the quality of the student's learning experience.

--
Sameer
1 2 3
Next ›   Last »