J'ai toujours été intéressé par différentes idées sur l'apprentissage de la programmation. C'est peut-être parce que je reste un étudiant éternel dans ce domaine. Mais aujourd'hui, j'ai fait connaissance avec une
idée inattendue pour moi: commencer à apprendre avec Java. Et je ne pouvais pas me taire.
Je ne suis pas un grand spécialiste de la pédagogie - peut-être en informatique, il est de coutume de jeter les étudiants à l'eau, de choisir un endroit plus profond, et là - ceux qui sont destinés à venir. Mais il me semble toujours que la formation sera plus efficace si l'enseignant initie l'élève à divers concepts de programmation un par un, à mesure que la complexité augmente. Par conséquent, la principale exigence pour un PL «de formation» est la capacité d'utiliser vos fonctionnalités isolément, en commençant par les plus élémentaires.
Encore une fois, à mon avis amateur, il est facile de vérifier si le langage de programmation répond à cette exigence. Ouvrez simplement
la section «Hello World» sur Rosetta Code .
Essayons d'énumérer les concepts nécessaires à la compréhension de ces programmes élémentaires.
Il est complété à la demande des auditeurs radio. Brainfuck, PHP, C, Julia.
Python 2
print 'Hello world!'
Lors de l'analyse de ce code, l'enseignant doit au moins expliquer brièvement à ses élèves quels sont les
mots clés , les
opérateurs et
le type de données de chaîne . Bien sûr, même sans une telle explication, certains étudiants (mais pas tous!) Peuvent rapidement développer une compréhension intuitive de ces fonctionnalités. Cependant, il est préférable d'obtenir immédiatement une certitude.
Ruthon 3
print('Hello world!')
Le concept de
fonction est ajouté
aux mots clés et aux
lignes . Oui, la fonction d'
print
est un plus de Python 3 en tant que langage industriel. Mais en même temps, une fonction est une fonctionnalité de niveau supérieur à un opérateur, ce qui complique l'étude de Python 3 en tant que premier PL. Oui, vous, en tant qu'enseignant, pouvez reporter l'explication de la nécessité d'utiliser des supports pour l'une des classes suivantes, mais cela restera une douleur dans le cerveau de vos élèves.
Julia
println("Hello world!")
Les mêmes concepts de base que dans le cas de Python 3. Mais Julia est un Java dynamique hautes performances compilé en code natif. Bravo!
Basique
10 PRINT "Hello world!"
Mots -
clés ,
chaîne AP ,
opérateurs ,
numérotation des lignes de code. La numérotation des lignes dans Basic est un concept de bas niveau plutôt complexe qui imite le périphérique de mémoire physique d'un ordinateur. Cela peut devenir une pierre d'achoppement pour un élève si l'enseignant ne fait pas attention à elle.
Dans les dialectes ultérieurs, tels que VisualBasic, les lignes de code deviennent des
étiquettes simples et non calculables. Dans le premier programme, les balises ne sont pas nécessaires. La langue devient donc plus facile pour l'apprentissage élémentaire.
Pascal
program HelloWorld(output); begin writeln('Hello, World!'); end.
Mots -
clés ,
chaîne TD ,
opérateurs ,
fonctions et quoi d'autre? Étant donné que le programme prend plusieurs lignes, des
blocs , des
délimiteurs (ou des
terminateurs ? Je les confond toujours) et des
retraits sont ajoutés aux premiers concepts. Et l'énoncé du
program
n'est pas si simple ... Il semble que la gentillesse de Pascal soit quelque peu exagérée.
C
#include <stdlib.h> #include <stdio.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; }
Mots clés ,
chaînes de points d'accès ,
opérateurs ,
fonctions ,
blocs ,
délimiteurs et
indentation , ainsi que
directives et
macros de préprocesseur . Il était possible de se passer de macros dans cet exemple, mais le
return EXIT_SUCCESS
dans ce cas est très indicatif: C est un langage de programmation système traditionnel, il est donc conseillé de l'étudier sur la base d'une bonne compréhension du fonctionnement des
systèmes d'exploitation et en mettant l'accent sur la
portabilité . Sinon, ce PL semble un peu plus compliqué que Pascal.
Php
<?php echo "Hello world!\n"; ?>
Outre la compréhension des
mots clés ,
des points d'accès de chaîne , des
opérateurs et des
délimiteurs (ou
terminateurs ?), Cet exemple ne peut pas être appris sans une compréhension de base de technologies Web spécifiques telles que les
langages de
balisage (HTML) et
les moteurs de modèle . En fait, PHP est le langage de modèle, une sorte de DSL. Par conséquent, PHP est un excellent langage d'apprentissage pour un fournisseur frontal qui souhaite approfondir la technologie backend. Mais apprendre PHP à partir de zéro est assez difficile.
C ++
#include <iostream> int main () { std::cout << "Hello world!" << std::endl; }
Mots -
clés ,
chaîne de caractères AP ,
opérateurs ,
fonctions ,
blocs ,
délimiteurs et
indentation , ainsi qu'un
préprocesseur avec ses directives, sa
portée , son
flux d'entrée / sortie ... Pouah, c'est tout?
Java
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }
Mots -
clés ,
chaîne AP (même deux chaînes AP, mais vous pouvez rester silencieux à ce sujet),
AP vide ,
tableaux ,
blocs ,
séparateurs et
indentation , ainsi que les
classes , les
objets (implicitement, mais vous ne pouvez pas expliquer
static
autrement), les
attributs , les
méthodes , les
modificateurs accès ... Dieu, je veux déjà voir tout ça! Après tout, je voulais seulement écrire des mods pour Minecraft!
C #
namespace HelloWorld { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello world!"); } } }
Le même Java, moins
les modificateurs d'accès , plus les
espaces de noms . Rien d'intéressant, on passe.
Brainfuck
Je ne veux pas énumérer ici - c'est trop volumineux et monotone. Je vais seulement énumérer les concepts de base qui doivent être appris pour comprendre cet exemple:
mots clés ,
opérateurs ,
variables ,
pointeurs ,
conditions ,
boucles ,
représentation numérique des caractères (tableau ASCII). Oui, Brainfuck n'est pas la langue la plus accessible pour les débutants.
Conclusion
Bien sûr, en plus de l '«entrée rapide» (facilité de compréhension des programmes élémentaires), il existe un certain nombre de facteurs qui influencent le choix du PL pour la formation. Il s'agit de la disponibilité d'environnements et d'outils pratiques pour le codage, de la qualité de la documentation et, enfin, de l'applicabilité pratique. Mais si les premières étapes de l'apprentissage sont liées à la douleur et à l'incompréhension, cela peut l'emporter sur tous les autres arguments. En général, apprenez facilement et ne vous embêtez pas!