Ada introduction talk in Complutense University, Madrid, 15th of April

Hi all,

while this may not be of much interest to most of the community, I just wanted to let you know that there will be an introductory talk about Ada in the Universidad Complutense de Madrid, the 15th of April (next Wednesday). I will be giving it thanks to an invitation from the student association there, who I met during an https://fsfe.org/ event.

Feel free to come if you can! I promise there will be stickers (sponsored by AdaCore!)!

9 Likes

Hi all,

I forgot to take photos (again!), so I have no prove that we did it! It was a great experience, there were about 15-20 students of a fairly young age (most seemed to be in their bachelor/degree, not in master). I think they liked it tbh, no body got up when the Q&A started and it was already pretty late for lunch even by Spanish standards! I think most students were amazed that such an “old” language could do so much more than the vast majority of languages that they know, have tried or were being taught.

I genuinely think that we should increase our presence in universities and give students a 45 mins, high energy, high impact, meme-loaded, fun presentation with quite a few “WoW!” moments and it will be something that at least they will remember for a loooong time. For a small percentage of students it may stick in the end and become involved with us. But beyond that, I think the presentation was worthy to them regardless of what they do with the language if anything.

I highly encourage the rest of you to give a presentation that will connect with modern students about Ada if you can!

Best regards,
Fer

10 Likes

Well done, Fer! Congratulations!

I fully agree with what you wrote. Those of us who can “give students a 45 mins, high energy, high impact, meme-loaded, fun presentation with quite a few “WoW!” moments” should definitely try to do that at local universities or politechnics. And those of us who don’t have such talent, should try to invite those who have… :wink:

3 Likes

Could you share an outline of your talk?

2 Likes

Sure! I can share the whole presentation (in Spanish), here it is https://irvise.xyz/Ada_SPARK_Complutense.pdf The pdf was not nicely produced, so there are some artifacts, such as all the memes being gone, but oh well…

The full presentation took about 1h, even though I was planing for 50 mins + 10 mins of Q&A, which in the end it was more like 1:05h presentation and 10 min Q&A. Some of the slides are just for “show” such as those for arrays and records (just to make the point that indexes in Ada are pretty flexible and that we do have variants and discriminated records). But in general the outline is:

  • Self presentation (people think it is cool to have a nuclear engineer talking) and intro to why I found Ada (looking for better quality and low level access, prove included)
  • A brief history of Ada and why Ada is so different
  • Types and data, a lot of types and data. Including attributes (very important for type reflection) and aspects (very important to separate the low level from the high level, to “regain” control and to be more expressive)
  • The arrays and records (veeery briefly)
  • Then functions/procedures and how strict they are
  • Finally a very simple task example that they can vibe with and see how easy it is compared to other languages and how nicely designed it is
  • The conclusions, final words and more resources

Best regards,
Fer

8 Likes

Nice. The little Spanish I picked up through living in the southwest US together with my B1-level French don’t really help me to understand your slides. An English version might be helpful for those who want to give such a talk. But this outline and the examples in the slides may serve as a decent starting point.

Aspects of the language that you don’t seem to give much attention to include its support for multi-person projects and its emphasis on ease of reading. I realize giving equal attention to all aspects will result in a very long talk, but these seem to me to be important things.

1 Like

I will look into it. I am building a very large Ada introduction which will be in English :slight_smile:

Hehehe, I do mention them at the end. As a lot of people complain that Ada is “very verbose” in the conclusions I add a comparison list of what a programmer actually does and how does Ada affect that aspect (think of reading code, refactoring, documenting, testing, debugging, thinking…). And as you said, I had to chose the topics carefully.

Regarding readability, I mentioned by voice “do I have to explain anything from this language or can you read it yourselves? I think you are the best ones to decide if it is clean, easy to understand and read” :slight_smile:

Best regards,
Fer

4 Likes

Thanks, Fer, for sharing this very nice presentation.

I enjoy reading introductions to Ada:
First, I forget certain features of the language because I don’t use them; a reminder never hurts.
Next, I love those little examples of almost biblical clarity, where other languages require a cryptic syntax. They remind me of reading the Ada 83 standard (an unusually pleasant and enjoyable standard to read), or the rationale documents for the different versions of the language: I’ve always preferred illustration through a concrete example rather than the underlying theoretical discussion.

(When I think that some people claim LLMs are very different from us :slight_smile: )

2 Likes

It seems your domain is blocked here, do you happen to know if there is an alternate server that the PDF is available on? No biggie if not, just checking.

How could one emphasize or demonstrate this in an introductory presentation?

Here the constraint is that the students today are used to untyped vibe languages such as Python or terse hieroglyphics such as anything in the C family.
It’s quite likely that for them Ada is not easy to read.

Perhaps an example could be used of a complex logic path or algorithm in one of these languages with the most common naming styles. Then the second example would be the first but with comments. And then compare that to the Ada example, which will be more verbose, but wouldn’t have the comments as they are ‘inside’ the code now.
This does still require passing the hurdle that doesn’t really appeal to most people, because in every single circle I see besides here, “verbose=bad”.

Most software companies these days go for minimum viable product anyways. So in many cases, even pushing better programming practices that will help in the long run that use their current languages will immediately fail. Pushing better practices along with a language change will probably immediately fail as well.

For support for multi-person projects, Ada would be better because it is easier to re-understand older program code, even stuff you didn’t write yourself. Don’t try to explain things about “why it’s better for multi-person projects”. Show how it is easier to re-understand older code instead.

I still don’t know how that would be put in presentation format. Showing code on screen wouldn’t really work, since it’s just one screen. That might require a github demo or something, but that would turn off most people as well. Damn, I give up.

Sadly, a lot of “firewalls” block the .xyz domain… I did buy the same name but under the .de dns space. I need to get around setting it up, but it will take some time…

I disagree. Since they are used to Python and the like, for them, having a language where ideas are clearly indicated (ranges, type predicates, etc), they find it a lot more readable and understandable, which is a strong contrast to what they are used to (which is usually trial-and-error programming).

I triend to convey that idea with the C++20 example for a simple Ada type (just ints) and the Dynamic Predicate for a sorted array and telling them “now try to get something equivalent in any other language, just try to get somewhat close, when you give up and cry, you will remember Ada :D”

I did make a comment about this during AEiC 2024 in Barcelona. I kind of agree. But some people are realising that systems are growing faster, that requirements are changing faster, complexity is growing faster and customers are becoming more demanding. So a good foundation from the beginning will be beneficial quickly.

I did point that out verbally during the talk.

Not everything is on the slides. A lot of it is spoken and I try to talk about cases that even new students will understand, so the code becomes a “teaser” and the voice becomes the full explanation.

Best regards,
Fer

2 Likes