Y at-il une bonne raison Uni utilisent encore des cours des langues « académiques » comme Modula2?

StackOverflow https://stackoverflow.com/questions/2677326

  •  30-09-2019
  •  | 
  •  

Autres conseils

  

Pourquoi ne pas Java, C #, ...

En l'absence d'exigences pour interopérer avec des bases de code existant, quel avantage ne # Java ou C ont plus, disons, Smalltalk? Je suis un programmeur C # par jour (et ancien programmeur Java) et il y a quelques bonnes choses à ce sujet et de mauvaises choses, mais une chose qui colle vraiment est de savoir comment il est incroyablement complexe. Regardez combien de questions il y a ici sur les subtilités de la syntaxe C # et la sémantique. Vous souhaitez perdre tout votre trivia enseignement semestre ou année. Modula-2 est beaucoup plus simple et parfaitement adapté à de nombreux problèmes.

Vous devez apprendre le montage, aussi, et va de Modula-2 à une étape est l'assemblage beaucoup plus facile que C # à l'assemblage. Je ne voudrais pas essayer d'enseigner à l'Assemblée un groupe d'étudiants qui ne connaissaient des outils professionnels de Microsoft.

  

Related: Est-il encore en arrière pour enseigner LISP

(Il y a environ 50 façons différentes d'interpréter cela ...)

Je ne vois pas ce qui est « à l'envers » à ce sujet, à moins que vous le voir enseigné {avant, après} une langue de niveau inférieur et je pense qu'il devrait être enseigné {après, avant} au lieu.

Pouvez-vous suggérer une autre langue qui fait ce qu'il fait? (??? Smalltalk Forth Icône Factor) Par exemple, si vous voulez voir la conception d'un véritable système OO (et sans doute un plus puissant que Java ou C #), vous pouvez ramasser AMOP et de voir la chose dans un petit livre, y compris le code source complet. (Common Lisp est pas le dialecte Lisp plus simple, mais il est beaucoup plus simple que C # ou Java, et AMOP utilise un sous-ensemble relativement faible de toute façon.) Comment vous enseigner Méta, ou même l'envoi multiple, avec Java?

Ou: l'objectif initial de Lisp était de remplacer les machines de Turing comme une construction pour les algorithmes de construction. (Il se trouve être vraiment utile pour écrire des programmes réels!) Voulez-vous dire que vous préférez utiliser des machines de Turing pour les algorithmes d'enseignement? Ou C # pour le calcul de modélisation? Une machine de Turing est un 7-tuple - Je ne peux pas imaginer combien de composants C # modèle de calcul aurait! Lisp comble le fossé parfaitement, et je ne l'ai vu une ou deux autres langues dans cet espace -. Forth vient à l'esprit, mais pour quelque raison que ce n'est pas devenu populaire dans le monde universitaire

  

... Haskell?

Je pense que c'est une excellente idée. Je l'ai appris à l'école. Là encore, je pense que tout membre de cette famille linguistique ferait bien. Si vous apprenez ML à l'école à la place, je ne pense pas que vous serez pas plus mal. Les concepts sont les mêmes.

Il est comme l'étude de l'ingénierie mécanique à Berlin par rapport à Chicago: la langue peut être différent, mais les concepts sont les mêmes. Mais si vous ne savez rien, même pas une langue, il est logique de commencer par le langage le plus simple possible. Si vous voulez être un ingénieur à Berlin, mais ne parle pas allemand, il est logique d'ingénierie d'étude et d'étudier aussi l'allemand, mais la pensée conventionnelle est qu'il est moins efficace de commencer par des cours d'ingénierie allemand uniquement.

Deux raisons que je peux penser, un bon, un non. (Et j'étais prof.)

La bonne raison: pour simplifier l'enseignement. Enseigner aux élèves intro est comme des poussins d'élevage sur un plongeoir. S'il y a un moyen pour eux de tomber, ils le feront. Si je devais enseigner C, je serais déchirais mes cheveux, avec ce char, unsigned char, char*, char**, char*[], char[10]*, et ainsi de suite tous être légaux et différents, et qui est à quelques éclats sur l'arbre. Pour un cours de deuxième ou troisième, il est une autre histoire.

La mauvaise raison: la liberté académique. Nous avions une personne à enseigner un langage interprété far-out parce qu'il aimait. Un autre a insisté sur la programmation de tableur d'enseignement, parce que c'était la « vague de l'avenir ».

Bien que cette question semble avoir été traité que je voulais il y a quelque temps ajouter quelque chose (depuis que je suis le demandeur de la question mentionnée :)) Pourquoi nous apprenons Modula2 dans notre première année: En plus de toutes les raisons déjà évoquées, il est pour obtenir une prise en main sur la façon dont les choses de base (par exemple, des pointeurs) travail avant d'être impliqué avec quelque chose comme Java où tout ce genre de choses est assez invisible pour le programmeur:)

Je me rends compte de cette question est assez vieux et il y a beaucoup de bonnes réponses. Néanmoins, je voudrais carillon.

La plupart des réponses sont des variations du « Modula-2 est plus simple, donc plus facile à enseigner / apprendre » thème. Bien que ce soit correct, ce n'est pas ce-disqualifie-tout d'autre raison pour laquelle une université devrait choisir d'enseigner Modula-2.

L'avantage le plus important de l'enseignement Modula-2 aux étudiants en sciences informatiques de premier cycle est qu'il forme bonne habitude et à leur inculquer la discipline.

Voir aussi « Quels sont les avantages les plus importants de Modula-2? » à:

http://modula-2.info/m2info/pmwiki.php/ général / FAQ

Il y a très peu de langues là-bas qui enseignent la discipline de programmation stricte, le respect des principes d'ingénierie et de bonnes habitudes. La plupart des langues modernes, et surtout populaires ne fait le contraire, ils enseignent les mauvaises habitudes.

Parmi les langues strictes, Modula-2 est le plus petit, et parmi les petites langues, Modula-2 est la plus stricte d'un.

Cette combinaison fait Modula-2 le choix parfait pour une université qui ne veut pas seulement être une école professionnelle pour la mécanique du logiciel.

Cela peut sembler dur, mais si les développeurs de logiciels aspirent à appeler les ingénieurs logiciels, alors ils devraient être formés comme ingénieurs, pensent comme ingénieurs et surtout, se comportent comme des ingénieurs quand ils se rendre au travail.

électrique, génie mécanique et civil ont une obligation de choses de construction qui sont d'abord et avant tout sûr et fiable. À quelques exceptions près, les logiciels ne pas tout à fait à la hauteur de cette norme et le manque d'un état d'esprit d'ingénierie classique est un facteur important ici. Par exemple, la notion populaire de « libération anticipée, solution plus tard » est diamétralement opposé aux principes d'ingénierie.

La question de Lisp / ADA vs C / Java est le même que l'informatique vs programmation. La première est une science, l'autre est un métier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top