Learning programming through practice / Apprentissage du code par la pratique

Hello everyone,

A few days ago with Frédéric, we tried to make some programming exercises to learn to code by practicing (we are both working at CodinGame). We have started this project because we both share and love this idea, and because we think that the CodinGame platform could be a great way to learn. We have prepared 2 exercises with different approaches and we would like to share them with you. Give us your feedback!

Learn quickly how to do a simple sorting algorithm (easy)

Learn to code a simple path-finding algorithm (hard)

We would like to know if we should keep creating learning exercises and in what format. For this, your feedback, ideas and reviews are welcome.

Thank you!

Loick.

////////////////////////////////////

Salut à tous,

Il y a quelques jours avec Frédéric on s’est mis en tête d’essayer de faire quelques exos de programmation à but pédagogique et tournés vers la pratique du code (on bosse tous les deux chez CodinGame). On s’est donc lancé dans ce mini-projet parce que l’idée nous bottait bien et parce que la plate-forme nous semble appropriée pour faire des choses sympas. Nous avons fait deux exos pour essayer, chacun dans leur style et j’aimerais les partager avec vous pour savoir ce que vous en pensez :

Apprendre rapido un algo de tri simple (plutôt facile)

Apprendre un algo de recherche de chemin le plus court (plus difficile)

L’idée c’est de savoir si on devrait continuer à en faire d’autres, et pour cela, vos retours, idées et critiques sont les bienvenues.

Merci!

Loick.

23 Likes

It’s awesome.

Enough said.

I think you should put them in a special section before easy puzzle (training section?) where puzzles could be sorted by how many people succeed in doing the training.

OR, do a special icon of the left toolbar for special puzzles.

By the way, if other categories (easy, medium, hard and very hard) could sort their puzzles by how many people achieved them too, that’ll be great so we know what are the most difficult ones in each category + you could change a puzzle from one category to another if they are too easy/too hard.

EDIT: Ok so I had 10min to spare so I did the first tutorial, it’s nice and easier than even the easy puzzles. The code is saved, but submit is buggy (I guess it’s normal).
I haven’t watch the video yet entirely, but I’m sure it will be great + the visual help with the cups seems really helpful :smiley:

Do we have to choose between the two types of learning? The second ones hasn’t got a video but is well documented. I particularly like the GUI of the second puzzle, that makes it more enjoyable

3 Likes

C’est une super idée et c’est vraiment bien fait !

1 Like

J’ai déjà fait des remarques positives à ce sujet à 0logN sur IRC, donc je vais tout de suite passer au retour d’expérience sur bubble sort.

Je pris le côté « apprentissage » au pied de la lettre, en essayant d’implémenter l’algorithme sur un langage que je suis en train d’apprendre.
J’ai trouvé l’exercice très intéressant, bien que je l’ai pris comme auto-évaluation plutôt que découverte d’un algorithme. Un peu comme l’écriture de « Hello world ! », mais dans un format un peu plus compliqué.
Pour ce type d’utilisation, l’exercice est plus adapté que les exercices de challenges, car il fait abstraction de la partie logique pour plus se concentrer sur l’explication/compréhension et la retranscription.

À ce propos, en plus de le dire dans la vidéo, mettre à l’écrit la liste des requis pour effectuer l’exercice serait un plus.
Ceci permettrait de se dire : je pense avoir les compétences pour implémenter cet algorithme, donc je vais regarder la vidéo/les explications et faire de mon mieux pour y arriver.

Pour cette idée, la plate-forme du site ainsi que l’utilisation d’une vidéo/démonstration permettent de se démarquer de sites proposant de réaliser des algorithmes similaires.
De plus, pour les personnes sur IRC qui ont du mal à faire un pathfinding (par exemple), cette idée permet de les rediriger vers ces algorithmes.

TL;DR

Point de vue utilisateur, la seule chose que j’aurai aimée en plus est donc une liste écrite des requis/compétences nécessaires à l’implémentation de l’algorithme.

2 Likes

J’ai essayé dans un premier l’exercice du tri à bulles, que certes j’avais déjà fait par le passé, quand je faisais encore mes armes, donc ce n’était pas vraiment une découverte.
Mais j’avoue que l’idée de faire découvrir des algorithmes simples pour les débutants, voire mieux, tenter de résoudre ce genre d’algorithmes dans des langages qu’on ne maîtrise pas encore me semble une bonne idée pour progresser.

Concernant la vidéo, le contenu est très bon, je pense qu’il n’y à pas grand chose à dire, on pourrait peut-être penser à un découpage par étape, pas forcément nécessaire pour quelque chose de court comme le tri à bulles, mais pour des choses plus longues. Pour la forme, je pense que vous êtes au courant, qu’il y à des petits efforts à fournir, notamment au niveau de la prise de son, mais j’imagine que ce n’était qu’un simple test ici.

Bref ça mérite une place ici, dans une section à part, d’apprentissage (peut-être). Et je souhaiterais surtout voir ça comme une manière de s’essayer à de nouveaux langages !

1 Like

Excellente idée, ils pourraient même être en tête des jeux, pour s’entraîner et qui ne rapportent aucun point.

Oui, continuez, c’est extra!
J’ai fait le tri à bulles, l’explication est claire, le visuel avec les gobelets limpide. J’ai hâte de faire le suivant, car les explications d’algorithme qu’on peut trouver sur le web, sont souvent très obscures, et la manière dont vous les présentez est vraiment bien faite.
Pour finir, mille mercis pour ce site, tellement pro, et fun en même temps!

1 Like

Creating learning exercices is a very good idea ! It really helps me to learn.

I tried to code a path-finding algorithm (with BFS) and I will try to implement other path finding algo as suggested.

Thx

Imgur

this isn’t really helpful @DollarAkshay, explain a little your opinion

Hello,

This is really nice ! I hope there will be some more. Especially some difficults one. I’m thinking for example OCR, signal processing, machine learning algorithms … stuff like that.

Moreover, could this kind of content be submitted by CodinGamer (with some filtering before, maybe a ‘staging’ category for people to test and share experience before shipping it) ? Having the community generating some content would help to have plenty of algorithms / exercises available.

Regards,
Colin

Forgot to ask: I see the original post is from March. These exercises are not available from any link from the website yet (except from those in the post above) ? There’s only those two exercises for now ?

That’s right. Still in progress.

The IDE doesn’t seem to be working in these 2 puzzles. Maybe the recent update didn’t agree with it.

Anyway , this is a great initiative.
Having no professional coding experience or background , i struggle on the hard puzzles because i don’t know much about algorithms. This is defenitly a great way for me to learn.

I really hope you will add some more in the future.

Je viens de voir ce sujet. C’est une excellente initiative. Les puzzles ne sont en lien que sur ce fil ou peut-on les trouver dans les menus?

Ce genre d’initiative me parle, etant donne que je suis avant tout ici pour apprendre a coder. Je m’arrache un peu les cheveux sur les challenges de pathfnding, le fait d’avoir un tuto ici est genial. Je l’essaierais des que ces tutos fonctionneront dans la nouvelle IDE.

I’m seeing that the link to these ‘edu-tainment’ puzzles is just sending me straight to my profile. Are they down for reworking at the moment? Would love to see what there is to be gained from a puzzle presented with more of a teaching perspective.

As to anyone who is put off due to a lack of codinpoints - it makes sense. Let codinpoints represent your skill as solving a problem, while these tasks are just helping to give you the tools and knowledge to do exactly that :slight_smile:

I fixed the links. :slight_smile:

1 Like

Wow! Lightning quick turnaround, thanks :slight_smile: