« Un bon programme d'études en informatique doit mettre l'accent sur des principes fondamentaux largement applicables, permettant aux étudiants de s'adapter facilement aux nouvelles technologies dans le domaine qu'ils abordent. Il doit enseigner aux étudiants comment penser aux logiciels et comment résoudre les problèmes. C'est exactement ce que le programme actuel de Northeastern s'efforce de faire. Le cours « Fundamentals of Computer Science », ou « Fundies », comme on l'appelle communément, enseigne la conception systématique de programmes par le biais de la recette de conception, qui fournit une formule cohérente pour s'attaquer à des problèmes peu familiers. La recette de conception décompose un problème en petites étapes réalisables, dont les premières demandent aux étudiants de réfléchir soigneusement au problème avant d'écrire le code pour le résoudre. Les cours de base tels que Fundies 1, Fundies 2, Conception orientée objet et Développement logiciel se concentrent sur la formation des étudiants à raisonner sur le code, plutôt qu'à l'écrire sans réfléchir », commente un enseignant assistant.
« Mais aujourd'hui, alors que le marché de l'emploi dans le secteur technologique est au plus bas depuis plus de vingt ans, le Khoury College of Computer Sciences envisage d'abandonner l'approche qui a toujours permis à ses diplômés de réussir. Le projet de refonte de l'école prévoit la suppression progressive de Fundies 1, Fundies 2 et Object-Oriented Design (conception orientée objet), et leur remplacement par des cours entièrement nouveaux. Les nouveaux cours enseigneront principalement Python, et l'école affirme que c'est un avantage supplémentaire car Python « est actuellement le langage le plus demandé par les employeurs des programmes coopératifs ». Mais nous ne devrions pas enseigner un langage simplement parce qu'il est actuellement populaire dans l'industrie - nous devons choisir un langage qui a une réelle valeur pédagogique. Racket a été choisi parce qu'il permet d’introduire des fonctionnalités au fur et à mesure que les étudiants apprennent les principes de conception pertinents. Bien que le nouveau programme commence par Pyret, qui est également conçu à des fins d'enseignement, il passera rapidement à Python dans le premier cours. Python n'a rien de semblable : les étudiants doivent apprendre d'emblée des fonctionnalités complexes, avant d'acquérir les compétences de conception qui leur permettront d'utiliser ces fonctionnalités de manière propre et efficace », indique-t-il pour ce qui est des changements à venir.
« Les étudiants qui entrent à l'université ont des parcours et des expériences de programmation de plus en plus hétérogènes. Certains sont totalement novices en informatique, tandis que d'autres apportent des crédits de transfert ou des crédits NUin provenant d'universités partenaires à l'étranger. Environ 40 % des étudiants de Khoury arrivent avec des crédits en informatique, et d'autres ont appris par eux-mêmes ou par des moyens non traditionnels. Plutôt que d'envoyer tout le monde à Fundies 1, nous visons une séquence d'introduction plus adaptable dans laquelle chaque étudiant suit les cours qui ont le plus de sens pour lui compte tenu de son point de départ.Khoury College is revamping and revitalizing its intro sequence of undergraduate courses to accommodate a wider range of student experiences and better prepare students for a competitive job market. Read here:https://t.co/1KfgUUDH4Z pic.twitter.com/U7c7vMLaoN
— Khoury College of Computer Sciences (@KhouryCollege) December 5, 2024
Un autre problème concerne Fundies 2, qui consacre un semestre entier à faire passer les étudiants de la programmation fonctionnelle en Racket à la programmation impérative en Java. Cette transition est nécessaire en raison de l'endroit où nous faisons commencer les gens dans Fundies 1, mais elle ne serait pas nécessaire si nous commencions dans un autre langage.
La « conception orientée objet » est un bon cours qui enseigne beaucoup de choses, et c'est effectivement la porte d'entrée vers les entreprises, le cours que vous devez suivre pour être prêt. Mais parce qu'il est si important, il comporte trop de responsabilités et de matériel, et c'est trop pour beaucoup d'étudiants. La charge de travail est l'une des plus élevées de tous les cours que nous proposons ; c'est ce que nous disent régulièrement les étudiants dans leurs évaluations. L'idée n'est pas de se débarrasser de la matière, mais de la répartir sur l'ensemble du cursus, afin qu'elle ne soit pas concentrée sur un seul semestre.
Les cours Fundies 1, Fundies 2 et conception orientée objet vont être progressivement supprimés et nous allons repartir sur de nouvelles bases. Cela ne signifie pas que le contenu et les aspects que nous apprécions dans ces cours disparaîtront, mais qu'ils seront présentés sous une forme différente », expliquent les têtes derrière la refonte de ces programmes.
Un langage de programmation pour débutants est aussi fonction du domaine cibleStarting your programming journey ? Here are 5 beginner-friendly languages.
— IbnYusha (@Sirr_TM) December 31, 2024
Python 🐍
JavaScript
Java ☕️
C++
Ruby
Which one will you start with? Let us know in the comments section
Quels langages pour un débutant en développement web ?
Certains professionnels de la filière recommandent HTML, CSS, JavaScript ou PHP pour ce qui est du développement frontend et Java, Python ou Ruby quant à ce qui est du développement backend. Ce sont des langages que l’on retrouve d’années en années dans les classements d’institutions comme IEEE.
Lesquels suggéreriez-vous pour un débutant en développement d’applications mobiles ?
Le choix du meilleur langage pour le développement d'applications dépend en grande partie du système d'exploitation avec lequel le programmeur compte travailler. Le fait est que différents systèmes d'exploitation prennent en charge différents langages de programmation mobiles. Par exemple, lorsque Swift et Objective C sont utilisés pour les applications iOS, Kotlin et Java sont utilisés pour le système d'exploitation Android. En revanche, React Native est idéal pour les deux.
Quid du cas de la programmation système ?
Ceux qui écrivent du code pour des systèmes d’entrée/sortie de base (BIOS), des chargeurs d’amorce, des systèmes d’exploitation, etc. sont dans la filière de la programmation système. Ici, on est dans les méandres du fonctionnement des systèmes informatiques ; on parle de code avec lequel l’utilisateur n’interagit, car distinct de celui de la couche dite applicative.
Dans cette filière c’est le C qui s’est imposé aux intervenants pour plusieurs raisons. Primo, il y a qu’en tant que langage évolué, le langage C permet aux développeurs de gagner en matière d’utilisabilité et de productivité ; c’est moins de lignes du code pour accomplir les mêmes tâches en comparaison à l’assembleur. C’est aussi un niveau de performance qui proche de celui de l’assembleur Deuxio, il y a que le passage au C n’induit pas de pertes en termes de possibilités que l’assembleur offre. C’est d’ailleurs utilisé par les mainteneurs du noyau Linux. Depuis le mois de septembre de l’année précédente, le langage Rust a fait son entrée dans ce cercle portant ainsi à deux le nombre de langages utilisés pour le développement du noyau Linux.
Et pour les systèmes embarqués ?
Plusieurs langages de programmation se veulent dédiés à l’embarqué. Parmi ces langages se trouvent Ada et le langage assembleur, ce dernier restant encore un choix approprié pour les systèmes soumis à des contraintes sévères de temps réel. Des langages proches de la machine comme le C et dans une moindre mesure le C++ sont aussi utilisés. On retrouve en sus d’autres langages tels que Arduino, Haskell, D, LabVIEW et VHDL dans la liste de ceux dont on fait usage pour le développement des systèmes embarqués.
Source : Khoury
Et vous ?
Quels sont selon vous les ingrédients indispensables à une classe d'initiation à la programmation informatique ?
Quels langages est idéal pour l’initiation d’un débutant au développement web ? Pourquoi ? Partagez votre expérience
Quels langages est idéal pour l’initiation d’un débutant au développement d’applications mobiles ? Pourquoi ? Partagez votre expérience
Quels langages est idéal pour l’initiation d’un débutant à la programmation système ? Pourquoi ? Partagez votre expérience
Quels langages est idéal pour l’initiation d’un débutant au développement embarqué ? Pourquoi ? Partagez votre expérience
Voir aussi :
Emploi développeur 2018 : les langages les plus demandés et les mieux payés
Quels sont vos langages de programmation préférés pour le Web en 2017 ? Et pourquoi ? Vous êtes invités à partager votre expérience
Sondage : quels sont les langages de programmation qui vont probablement disparaître dans les prochaines années ?
Kotlin gagne trois places et dépasse Scala dans le classement PYPL, l'indice qui analyse la fréquence de recherche des tutoriels sur Google
Sondage : quels sont les langages de programmation que vous détestez le plus en 2019 ? Pourquoi ? Partagez vos avis