Nous l'avons tous entendu; chaque fois qu'il y a une discussion sur les diplômés CS ayant de faibles compétences en développement, quelqu'un dit finalement,
L'informatique n'est pas le génie logiciel.
Le problème que je vois est que la programmation et le développement de logiciels sont enseignés dans des cours CS. Ils sont tout simplement mal enseignés. Si c'est enseigné, alors pourquoi ne pas l'enseigner correctement la première fois? *
Je voudrais donc voir quelles sont les opinions sur 2 questions:
L'argument CS! = SE est-il une excuse ou une excuse pour ne pas enseigner correctement les compétences en programmation.
Quelle que soit votre réponse à la question 1; si vous étiez dans la position toute-puissante de prendre une telle décision: forceriez-vous de mettre l'accent sur un bon enseignement de la programmation dans les cours de CS?
*. Je soupçonne, sur la base de preuves anecdotiques que j'ai obtenues tout au long de mes études, que la plupart des universitaires dans le domaine n'ont pas eu à écrire du code pour être maintenu et n'ont pas maintenu le code, et par conséquent n'ont pas les connaissances / compétences pour l'enseigner efficacement.
la source
Réponses:
Je ne pense pas que ce soit un copout, mais plutôt une affirmation que l'informatique n'est pas le génie logiciel, ce n'est pas la programmation - c'est, bien, la science du calcul formalisé. Essentiellement, ce sont les mathématiques (en fait, de nombreux programmes CS ont commencé comme des programmes de mathématiques appliquées).
Je pense que le problème réside davantage dans l'industrie que dans le milieu universitaire. L'industrie voit un diplôme CS inscrit sur un curriculum vitae et pense: «Super, ce gars est bon avec les ordinateurs», et l'embauche pour faire tout ce qui touche à un ordinateur: informatique, programmation, développement de logiciels, peu importe. Ces choses ne relèvent pas nécessairement du domaine d'expertise d'un diplômé CS. À leur tour, beaucoup de gens qui aiment construire des ordinateurs ou jouer à des jeux vidéo entrent dans un programme CS s'attendant à faire ce genre de choses, et obtiennent une grossière surprise; c.-à-d., beaucoup d'étudiants qui entrent en CS n'y appartiennent pas vraiment et seraient mieux dans un programme d'études plus ciblé.
Deuxièmement, il y a un temps très limité pour enseigner la CS - une matière très large - dans un programme de premier cycle typique. Mon programme de premier cycle comptait 8 cours CS (pour un BA) ou 12 cours CS (pour un BS), plus tous les cours de mathématiques requis. Ce n'est pas beaucoup de temps pour enseigner le CS et les mathématiques et la programmation et le génie logiciel, donc à un moment donné, vous devez décider ce qui est important et ce qu'un étudiant peut ramasser par lui-même.
Ce dernier point est crucial: je pense qu'un bon étudiant - dans n'importe quel domaine - explorera les idées par lui-même. J'ai un diplôme CS, mais je pense que je suis sorti de l'université en tant que développeur décent, parce que j'ai étudié et écrit des logiciels par moi-même . L'université n'est pas tout au sujet des classes; il s'agit également de donner aux étudiants le temps de développer leurs compétences de manière semi-autonome, tout en leur donnant de précieux conseils.
Je maintiens que l'enseignement de la théorie - CS, mathématiques, etc. - est tout aussi important, sinon plus , que l'enseignement de compétences spécifiques liées à l'emploi. Si vous enseignez à un étudiant le pourquoi des méthodes et des techniques, et pas seulement le quoi , vous vous retrouverez avec quelqu'un qui est beaucoup plus adaptable lors de l'application de ses connaissances. Par exemple, je suis allé dans une "école Java" très décriée et j'ai donc été enseigné en Java, mais j'ai également suivi des cours de théorie des langages de programmation, qui expliquaient pourquoi derrière de nombreux langages; en conséquence, j'ai appris à écrire de bien meilleurs logiciels que si je n'avais pas cette formation. Bien sûr, je n'écris pas de logiciels dans Haskell dans mon travail de jour, mais la connaissance de beaucoup de théorie du langage de programmation m'a permis de comprendre quea été applicable à mon travail de programmeur.
Je pense aussi que l'industrie attend trop des étudiants. L'industrie veut réduire ses propres coûts, donc au lieu de former de nouvelles recrues pour leur emploi, ils s'attendent à ce que les collèges deviennent des écoles de métiers / techniques; en fait, ils veulent que les collèges fassent leur formation à leur place. On ne peut pas s'attendre à ce que les diplômés du collège sachent tout ce qui sort du collège. Être un bon développeur est autant une question d'expérience que de connaissance (en particulier dans un domaine relativement jeune comme le développement de logiciels).
la source
Une partie du problème ici est le fait que 4 ans ne suffisent pas pour devenir un ingénieur logiciel raffiné. Étant donné que nous voulons que le premier cycle soit exposé à plus de choses que des cours de mathématiques et de CS et qu'il y ait beaucoup de mécanique pure à apprendre (algorithmes, structures de données, syntaxe du langage), nous ne pouvons pas nous attendre à ce qu'un CS vert soit un ingénieur logiciel.
Je serais d'accord que CS! = SE et je ne suis pas sûr que vous puissiez simplement aller à l'école et devenir SE (même avec un Master)
la source
CS n'est en fait pas SE. Et les gens semblent confondre les deux tout le temps, même en l'admettant. L'informatique devrait vraiment être renommée quelque chose comme la informatique, ou la science de l'informatique. En fait, l'informatique a très peu à voir avec les ordinateurs. C'est la théorie des graphes, l'analyse d'algorithmes, les structures de données, etc.
Les gens veulent supposer qu'un nouveau diplômé CS est en fait un diplômé ITT; ils veulent quelqu'un qui a été formé dans une vocation. L'informatique est une science, la programmation est un art. Ce ne sont pas les mêmes.
C'est comme demander pourquoi un nouveau diplômé en physique n'est pas un bon ingénieur automobile. C'est idiot.
la source
la source
Non, CS n'est pas SE. C'est un fait, pas une excuse.
Ce serait comme forcer les astronomes à apprendre les détails de la construction de télescopes. Ou forcer les programmeurs à apprendre les détails de la construction d'ordinateurs. Des choses connexes, mais un homme n'a pas besoin de tout savoir.
la source
Oui, cela me semble être une dérobade et un signe de l'immaturité de CS en tant que discipline académique.
Un programme BS accrédité par l'American Chemical Society vous oblige à avoir réussi des cours spécifiques pour démontrer des compétences particulières à la fois en théorie (cours magistraux) et en pratique (cours de laboratoire). À l'heure actuelle, CS n'a rien de tel pour autant que je sache.
Un de mes professeurs diplômés était un théoricien de la tour d'ivoire dont le bureau n'a jamais été souillé par quelque chose de plus physiquement chimique qu'un bocal à poisson avec Magic Rocks, mais quand j'étais son TA pour la chimie de première année, il s'est également avéré être un chimiste de banc assez compétent. .
Quand je travaillais comme chimiste industriel en peinture, ils se moquaient de l'idée que j'aurais un baccalauréat et que je serais incompétent au laboratoire. Bien sûr, les détails de ce que je faisais en laboratoire étaient différents de ceux que j'avais en classe à l'école, mais les principes étaient les mêmes - nous avons simplement utilisé un mélangeur de peinture et une boîte, plutôt qu'un bécher et un agitateur magnétique .
Si l'on devait appliquer la même approche à la CS, les détails de ce que l'on pourrait enseigner en tant que compétences pratiques de développement de logiciels pour un programme CS / SE pourraient varier d'une école à l'autre et au fil du temps. Mais il me semble juste fou qu'il soit acceptable que quelqu'un puisse obtenir un diplôme dans le domaine et ne pas être capable d'écrire, de déboguer et de maintenir une sorte de code. (Bien sûr, c'est ainsi que les choses se passent dans de nombreux programmes CS, mais c'est toujours fou.)
la source
Je suis d'accord que 4 ans ne sont que le temps suffisant pour leur donner une bonne base sur laquelle grandir. Cependant, je pense qu'une chose qui aide vraiment, c'est lorsque les gens de l'industrie s'impliquent dans l'élaboration du programme d'études et même l'enseignement en classe. L'année dernière, j'étais boursier de l'industrie dans une classe de développement logiciel dans une université locale. Ce fut une expérience très révélatrice pour moi. Le professeur et moi avons travaillé ensemble sur le contenu du cours et nous avons mis beaucoup plus d'informations sur le processus de développement, les meilleures pratiques de l'industrie et les situations "réelles" qu'ils ne l'avaient fait auparavant. Ce que nous avons découvert, c'est que, comme la plupart des instructeurs ne développent pas de code largement utilisé et maintenu, le fait de faire appel à quelqu'un de l'industrie a aidé à identifier et à enseigner les compétences nécessaires pour le faire.
la source
Oui, c'est un copout à 100%, ils devraient enseigner des compétences à long terme qui seront utiles tout au long de notre carrière. Que votre intention soit d'aller dans le monde universitaire ou dans l'industrie, vous devrez être en mesure de programmer d'une manière qui peut être maintenue, même si ce n'est que par vous-même.
Oui, bien que cela ne soit souligné que dans les cours appropriés. Personnellement, si je dois vous parler pour mieux comprendre comment vous avez essayé d'implémenter un algorithme, je noterais votre note.
Même si vous faites de la recherche CS pure, vous devrez probablement créer du code pour démontrer vos idées. De bonnes compétences en programmation vous seront utiles à un moment donné, alors pourquoi ne pas commencer au collège.
la source
Je pense que notre problème est que nous sommes beaucoup plus comme des médecins que nous sommes prêts à l'admettre ... Nous avons cette idée qu'un diplôme de quatre ans devrait préparer les étudiants à écrire des logiciels. Ce n'est même pas proche.
Notre profession en est à ses balbutiements par rapport à d'autres disciplines. Peut-être que la question devrait être: comment pouvons-nous améliorer la CS afin que les étudiants qui obtiennent leur diplôme soient mieux adaptés pour devenir des membres productifs d'une équipe de développement de logiciels dans un délai beaucoup plus court?
Nous devrions peut-être ressembler davantage à la médecine. Quatre ans de travail de base (diplôme CS) puis résidence - pratique de l'artisanat sous la supervision d'un ingénieur logiciel plus expérimenté. C'est peut-être ce que nous avons déjà, mais c'est moins formel ... Je veux dire, comme un résident, nous apprenons nos compétences les plus précieuses sur le lieu de travail dans nos premiers emplois.
Peut-être qu'en tant que discipline, nous avons juste besoin de mieux formaliser cela.
la source
J'ai un diplôme CS, et pendant toute une année de mon programme, il n'y a pas eu de programmation, seulement de la théorie. On nous a dit que nous n'obtenons pas de diplôme en programmation mais en informatique. Si vous voulez être programmeur, allez au collège communautaire.
Nous avons appris des algorithmes, des modèles de conception et beaucoup de théorie sur la résolution de problèmes sans langage spatial. Les langages de programmation vont et viennent, mais la théorie sous-jacente reste la même.
Donc, à votre première question, non, je ne pense pas que CS! = SE soit un copout. C'est un fait.
Pour votre deuxième question, non, je ne pense pas que je le ferais. Comment enseignez-vous correctement la programmation? Au-delà des boucles, ifs, méthodes, classes et POO, quelle serait la «programmation appropriée» et comment la rendriez-vous pertinente pour n'importe quel langage de programmation? Vous avez besoin d'expérience en écriture de code, quelque chose qu'un diplôme de 4 ans ne peut pas vous préparer.
Une chose que je ferais cependant est de donner un cours sur le développement dans le monde réel. Le contrôle des sources, le suivi des tickets / bogues, le traçage du code et tout ce jazz serait un bon début pour préparer tous les futurs diplômés à ce à quoi ils seront confrontés dans leurs nouveaux emplois.
Je pense que c'est à nous que nous embauchons un nouveau diplômé pour comprendre qu'il n'écrira probablement pas de code primé. Ils ont besoin d'orientation et de direction.
la source
Il est important pour l'université de trouver un bon équilibre entre les connaissances théoriques et les compétences pratiques. En suivant différents cours, j'ai appris les deux. Au cours des premières années, il y avait beaucoup de mathématiques et d'algorithmes / structures de données. Ce qui a suivi était un choix: soit vous pouviez continuer à apprendre l'informatique (sorte de parcours artistique, où vous pouviez par exemple suivre des cours avec des algorithmes sophistiqués de correspondance de chaînes) ou vous concentrer sur le génie logiciel. Vous deviez encore obtenir une solide expérience en programmation pendant cette période.
J'ai choisi le génie logiciel, car je n'ai jamais été très intéressé par les problèmes abstraits. Mais même ceux qui aimaient l'informatique pure devaient:
linux
module noyau et modifier le noyau lui-même, écrire un jeu orienté objet pur dansSmallTalk
,Java
dans une équipe de quatre personnes,C
pour la programmation parallèle (les idées étaient abstraites, mais les critiques étaient assez dures, comme perdre des points pour ne pas fournir une sortie appropriée, lorsque le programme échouait, comme un bon unixprogram
devrait le faire),django
ce qui m'a fait aimer ce framework),LAMP
(j'ai encore des cauchemarsphp
, mais utilisé à lapostgresql
place deMySQL
et je suis très heureux de le savoirDBMS
maintenant),python
un programme de bureau de 10k lignes en utilisantPyQt
.Peut-être qu'il y avait d'autres projets, mais je les ai simplement oubliés maintenant.
Mon point est: tout dépend de l'école. J'ai une grande aversion pour une approche d'ingénierie logicielle pure, où
Java
est la langue principale. J'ai dû aider un ami une fois, qui fréquente une telle école et a dû écrire un programme pour une programmation parallèle. Je devais écrire pour lui au fond, parce qu'il cependant, quesizeof(some_string)
dansC
donne la longueur de la chaîne.Je vais être honnête: je détestais les mathématiques, j'avais mal, quand je devais me préparer à des tâches abstraites, qui seraient servies lors d'examens d'algorithmes / structures de données. Mais cela me donne un certain avantage: je peux penser de manière très abstraite. C'est comme lorsque vous apprenez les arts martiaux et ne gardez pas votre garde (du moins dans ceux où vous êtes censé le faire). L'entraîneur ne cesse de venir et de vous frapper dans la tête, lorsque vous baissez les mains, parce que vous avez oublié ou parce que vous êtes trop fatigué pour les garder. Mais après un certain temps, il vous suffit de les garder. Et il devient vraiment difficile de vous frapper au visage. De même pour les problèmes algorithmiques abstraits. Comprenez le contenu de l' introduction aux algorithmes et très peu de choses surprendront au travail.
la source
Je pense que la réponse est oui (en quelque sorte).
Le truc, c'est qu'il n'est pas possible d'enseigner aux enfants dans une courte période de programmation. Ils devraient être formés à la réflexion logique des programmeurs, comment résoudre (à plus petite échelle) les problèmes du programmeur.
Je suis certain que les programmes de l'école devraient être révisés. Dans mon tout petit pays du "tiers-monde", heureusement, un effort est fait pour que cela se produise. Nous sommes le premier pays à mettre en œuvre le programme OLPC; http://laptop.org/en/
la source
D'après ma propre expérience (je suis étudiant en ce moment), je dois dire oui, c'est une excuse. Tout le monde se réfère à CS comme une science qui nous enseigne toutes les bases de l'informatique, et SE comme une branche spéciale de CS qui enseigne explicitement la programmation. Imo, tous ceux qui ont BS dans CS, doivent savoir comment écrire du bon code optimisé (même si la programmation n'est pas sa spécialité). Alors oui, si j'avais une position toute-puissante de prendre une telle décision, je forcerais les étudiants à acquérir de bonnes compétences en programmation.
la source
En supposant que le but est de former de bons ingénieurs logiciels (programmeurs) parce que le monde en a besoin, est-il correct de répondre en disant ce que je pense devrait être enseigné?
Tout d'abord, cela est important car actuellement le transfert de connaissances est très inefficace. Lorsque les futurs programmeurs sont en classe, leur esprit est ouvert et ils absorbent ce qu'ils ont appris. Dans le même temps, les professeurs (j'en étais un) sont trop souvent plus intéressés à remplir le pipeline des études supérieures avec des étudiants qui peuvent travailler sur des sujets ésotériques. Lorsque l'objection est soulevée que les étudiants ne sont pas préparés aux problèmes du monde réel, j'ai vu des professeurs affirmer que ce n'était pas leur travail . C'est le travail du monde réel.
Ensuite, lorsque les étudiants deviennent programmeurs dans le monde réel, sont-ils désireux d'apprendre de leurs nouveaux collègues? Pas d'après mon expérience. Au contraire, ils sont désireux de diffuser tout évangile qu'ils ont acquis à l'école. Je me souviens, en tant qu'étudiant et jeune pratiquant, de penser à quel point il allait être difficile de favoriser de nouvelles idées parmi les vieux mecs fous. Maintenant que je suis un vieil idiot, je vois à quel point il est difficile d'ouvrir les yeux de nouveaux programmeurs sur la différence entre la théorie et la pratique.
J'étais étudiant en génie, en génie mécanique et plus tard en génie électrique. Un élément fondamental de cela était a) les fondements mathématiques et b) la résolution pratique des problèmes. Le génie logiciel devrait être comme ça, pas seulement la programmation.
Je pense que le génie logiciel (programmation) devrait être enseigné avec suffisamment d'informatique pour être une connaissance pratique - la théorie de base des automates et la théorie de l'information. Celles-ci n'ont pas besoin d'être approfondies. Une fois les compétences de base en programmation enseignées, il devrait y avoir des projets coopératifs de taille non triviale. Une partie essentielle de ceux-ci devrait être la proposition et la considération de solutions alternatives à des problèmes spécifiques, avec une analyse des avantages et des inconvénients, pas seulement la dernière religion ou la "prochaine grande chose" ou la solution universelle. Enfin, il devrait y avoir une coopération et un partenariat entre l'industrie et le monde universitaire, afin que les idées et les améliorations puissent être communiquées dans les deux sens, ce qui améliore considérablement le contrôle de la qualité.
la source
Ceux qui le peuvent, le font; ceux qui ne peuvent pas enseigner.
Dans mon université, la base de connaissances des enseignants est cruellement déficiente. J'ai vu des enseignants avoir du mal à comprendre comment représenter des tables semi-structurées en XML tout en détenant un doctorat en conception de base de données. J'ai vu mon professeur d'assemblage me demander ce que fait mon code quand c'est son extrait de code que j'ai copié et collé. J'ai vu mon professeur de conception de logiciels nous dire que la méthode Agile est la même que la méthode en cascade, mais plus rapidement, que le modèle de processus de développement itératif a et ne peut avoir que 3 itérations parce que c'est ce que l'image que le livre utilise comme exemple illustre. Un de mes professeurs ne savait même pas ce qu'était une autre déclaration.
Je ne pense pas qu'ils «s'en sortent» ou qu'ils fassent des excuses, je crois vraiment qu'ils font du mieux qu'ils peuvent avec leurs expériences, qu'ils ont très peu.
Je suis d'accord avec les autres personnes qui postent ici que 4 ans ne suffisent pas pour devenir un programmeur chevronné, mais l'expérience que mes professeurs ont eue ne suffit pas non plus pour les rendre chevronnés. C'est un peu comme dans Ender's Shadow, où Bean remarque que les mesures utilisées par les enseignants à l'école de bataille sont insuffisantes parce que la dernière guerre qui est la règle directrice, était trop courte pour montrer vraiment ce qui est réellement nécessaire. En d'autres termes, les enseignants faisaient de leur mieux, mais n'avaient pas l'expérience nécessaire pour savoir ce qui était vraiment nécessaire pour faire un bon commandant (ou un bon programmeur dans ce cas).
la source
Those that can, do; those that cannot, teach.
Je ne suis pas du tout d'accord non plus: les carrières académiques et industrielles conduisent à des modes de vie complètement différents. Une grande partie de la recherche mondiale provient d'universitaires. Et je ne vois pas comment vous avez répondu à la question d'origine.Les informaticiens et les ingénieurs logiciels sont différents. Les scientifiques sont les gars qui effectuent les expériences folles et proposent les algorithmes que nous, ingénieurs logiciels, utilisons pour être meilleurs.
Pensez à des chimistes qui mènent des expériences pour une entreprise pharmaceutique. Ils ne se soucient pas de la façon de produire le produit chimique en masse. Ils ne se soucient pas non plus du marketing, de l'emballage, de la distribution ou de tout ce qui arrive au médicament après l'avoir découvert. Enfer, ils ne se soucient même pas du processus de certification. Tout ce qui leur importe, c'est de trouver un produit chimique qui a un effet lorsqu'il est administré aux sujets testés. Il incombe à l'entreprise de la dépasser.
Les informaticiens sont comme ces chimistes. Tout ce qu'ils font, c'est tester des théories avec du code. Ils ne se soucient pas de la maintenabilité du code. Ils prouvent une théorie et passent à la suivante. Quelqu'un d'autre emballe cet algorithme et le rend utile pour les masses et nous avons la vision MP3 ou par ordinateur avec le Kinect ou la vidéo en streaming sur votre iPhone. Donc CS! = SE est un argument valide.
WRT la deuxième partie de votre question. Si je proposais un diplôme en théorie de la musique, il pourrait y avoir un cours obligatoire en écriture de chansons ou quelque chose comme ça, mais ne demanderait à personne d'étudier un instrument. C'est à l'étudiant de rechercher les connaissances qu'il veut. L'informatique n'est pas du génie logiciel ... si vous voulez apprendre le SE, prenez une double majeure.
la source
Edsger Wybe Dijkstra était un informaticien néerlandais.
Il a reçu le prix Turing de 1972 pour ses contributions fondamentales au développement de langages de programmation , a déclaré un jour:
"LA SCIENCE INFORMATIQUE N'EST PLUS SUR LES ORDINATEURS QUE L'ASTROMIE SUR LES TÉLESCOPES."
CS est VRAIMENT DIFFÉRENT D'UN SE. (CS! = SE).
Un CS est un scientifique qui a acquis des connaissances en INFORMATIQUE.
L'INFORMATIQUE ou l'informatique (parfois abrégé CS) est l'étude des fondements théoriques de l'information et du calcul et des techniques pratiques pour leur mise en œuvre et leur application dans les systèmes informatiques.Elle est fréquemment décrite comme l'étude systématique des processus algorithmiques qui créent, décrivent, et transformer l'information.
L'informatique a de nombreux sous-domaines par exemple:
Beaucoup d'entre nous n'ont besoin d'aucune de ces compétences dans leur travail quotidien ou du moins un peu.
SOFTWARE ENGINEER (SE) est une profession dédiée à la conception, l'implémentation et la modification de logiciels afin qu'ils soient de meilleure qualité, plus abordables, maintenables et plus rapides à construire. Il s'agit d'une "approche systématique de l'analyse, de la conception, de l'évaluation, de la mise en œuvre, des tests, de la maintenance et de la réingénierie d'un logiciel en appliquant l'ingénierie au logiciel"
En tant que connaissance CS, il est supposé avoir les connaissances nécessaires pour gérer de vrais problèmes complexes sans connaître un très bon langage de programmation. À mon humble avis, ici, nous pouvons ouvrir un autre fil, où un DEGRÉ pour moi est UNIQUEMENT UN POINT DE DÉPART et non un OBJECTIF FIN.
En tant que connaissances SE, il est censé avoir les connaissances nécessaires pour gérer la production de ce problème complexe réel et gérer le développement d'une équipe ou d'un projet dans ce domaine.
Ensemble, faites la recherche scientifique d'un CS en sciences appliquées avec l'aide d'un SE.
Je ne veux pas dire que CS est meilleur que SE, je veux dire CS! = SE.
Ce genre de question est la même que celle que les non-informaticiens se posent lorsqu'ils se demandent pourquoi, en tant que programmeurs, vous ne pouvez pas résoudre par téléphone le problème du programme X, Y, Z sur le système d'exploitation J, M, N. ;)
En fait, je m'ennuie vraiment de coder après 10 ans de développement de systèmes Unix dans le domaine de la sécurité et après avoir lu cette question, je comprends, j'ai besoin d'étudier plus d'informatique et moins de langage informatique et de système informatique ou de protocole!
Personne à mon travail ne peut faire la différence entre SE et CS! c'est vraiment une mauvaise chose.
Si vous pensez qu'un CS peut être une excuse pour de mauvaises compétences en programmation, vous ne savez vraiment pas ce que c'est qu'un CS et ce qu'est SE.
Je suppose que vous êtes un SE, savez-vous par exemple que tous les langages, tous les paradigmes et toutes les choses liées au langage informatique peuvent être exprimés mathématiquement dans un ensemble de fonctions récursives partielles et quoi que vous appreniez une nouvelle langue, TOUT NOUVEAU LANGAGE, vous n'êtes que apprendre une nouvelle abstraction sur la même fonction partielle récursive?
s'amuser :)
la source