15Fermer17
flankerLe 02/08/2016 à 10:44
Uther (./12) :
Flanker> Ton approche pour l'apprentissage du bas niveau vers le haut est certes d'un point de vue théoriquement la plus logique, pour apprendre l'état de l'art existant. Mais si dans la pratique presque aucun professeur ne fait comme cela, c'est qu'il y a une bonne raison. Le bas niveau est, paradoxalement, beaucoup trop abstrait pour un débutant. Tu risques de décourager les gens qui ne vont voir que l'étendue de ce qu'il y a comme prérequis et ils ne veront pas en quoi ça pourrait leur être utile.En général ce qui se fait c'est exactement le cheminement inverse : du haut niveau puis on détaille pour arriver vers le bas niveau.
Oui, je suis d'accord, mais ils veulent également savoir comment ça fonctionne concrètement.
Mais comme je l'ai déjà dit, j'étais surtout curieux de savoir comment vous auriez abordé ce genre de cours ^^
Je pense qu'une base d’algorithmie avec un langage simple genre Python est un bon début pour avoir une idée même vague de comment réfléchit un ordinateur. Je pense que maîtriser l’algorithme est un prérequis avant d'attaquer le C ou l'assembleur, qui vont eux aussi nécessiter une maîtrise de l'algorithmie en plus des notion plus techniques d'adresse mémoire, etc...
Ah, mais j'ai bien l'intention de leur faire faire un peu de Python ^^

Par exemple, si on prend l'exemple de compter le nombre de mots différents dans un texte :
- on peut les écrire sur une feuille, en parcourant la liste à chaque fois pour voir si le mot s'y trouve déjà, et en le rajoutant à la fin sinon : c'est une recherche linéaire
- on peut procéder par ordre alphabétique pour retrouver plus rapidement, avec un dossier différent en fonction de la première lettre du mot, et éventuellement des sous-dossiers pour la 2ème lettre, etc. : c'est une structure d'arbre
- on peut associer à chaque mot une valeur numérique (par exemple, la valeur du mot au Scrabble) et ranger le mot dans le tiroir qui a la valeur correspondante : c'est une hash table
Rien qu'avec un truc tout bête comme ça, et assez simple à comprendre, tu touches à pas mal de concepts (dont la complexité : on voit rapidement que la 1ère solution, en O(N), est inefficace au possible dès qu'il y a beaucoup de mots)..
Oui, j'ai déjà quelques idées de ce genre pour faire découvrir ce genre de notions happy
PpHd (./10) :
Vu leur métier, je pense que comprendre concrètement les termes informatiques qui apparaissent dans les licences d'utilisation logicielles serait un plus.
Pour le coup, je suis persuadé que ça ne les intéresse absolument pas (comme beaucoup de gens, d'ailleurs), surtout que ce n'est pas du tout leur domaine ^^