Dans certains endroits du monde, les gens n'ont généralement pas accès (et donc peu de connaissances) aux ordinateurs, et même s'ils en ont, le matériel et les logiciels sont obsolètes et leur utilisation est en proie à des pannes de courant et autres. L'accès aux (bons) livres a également tendance à faire défaut. Comment puis-je enseigner l'informatique dans de telles circonstances?
Je crains que sans pouvoir faire des expériences et appliquer ce qu'ils apprennent, ils n'apprennent pas (bien) du tout même s'ils sont incroyablement motivés et consacrent la plupart de leur temps à ce passe-temps. Est-il possible d'enseigner CS uniquement en théorie?
Réponses:
Demander comment étudier l'informatique sans ordinateur, c'est un peu comme demander comment étudier la cosmologie sans télescopes. Bien sûr, c'est agréable de pouvoir regarder les choses que vous étudiez et il est souvent très utile de pouvoir jouer avec les choses. Mais vous pouvez faire beaucoup de choses sans avoir accès à un ordinateur: in extremis , vous pourriez probablement faire presque tout un cours de premier cycle sans ordinateur.
En termes pratiques, l'accès aux ordinateurs permet de renforcer une grande partie de ce que vous apprenez dans un cours d'informatique. Les cours de programmation sont évidemment beaucoup plus naturels avec l'accès à un ordinateur. D'un autre côté, le fait d'être obligé d'écrire du code sur papier encourage les gens à penser à leur code et à s'assurer qu'il fonctionne vraiment, plutôt que de simplement l'exécuter à travers un compilateur encore et encore jusqu'à ce qu'il compile, puis à exécuter encore et encore des cas de test triviaux. jusqu'à ce que les bugs évidents disparaissent.
Les sujets qui seraient les plus naturels sans ordinateur seraient les plus mathématiques. Toutes les mathématiques de base, telles que la combinatoire et la probabilité. Calculabilité, langages formels, logique, théorie de la complexité, conception et analyse d'algorithmes, théorie de l'information et du codage. Rien à voir avec le calcul quantique!
la source
Il y a l'utilisation évidente du papier et du crayon. Lorsque j'ai appris le traitement du signal, le processeur de signal spécial n'était pas directement disponible pour nous et nous venions de remettre des rapports papier.
Notez que le grand informaticien Dijkstra n'a apparemment pas beaucoup utilisé les ordinateurs:
Cité du Mémorial de Disjkstra
Cela montre que vous pouvez faire de l'informatique sans ordinateur!
Outre le papier et le crayon, les problèmes informatiques peuvent également être résolus «dans le monde réel», par exemple, la démonstration d'algorithmes de tri avec des cartes ou - plus inhabituel - avec la danse comme le fait l'Université Sapientia .
la source
De nombreuses théories informatiques sont purement théoriques et peuvent être résolues en utilisant un stylo (cil) et du papier. Obtenir des informations à leur sujet et les communiquer au monde extérieur nécessite un ordinateur.
la source
Voir http://csunplugged.org/ pour quelques bonnes idées. Google est l'un des sponsors.
Depuis le site:
la source
Vous pouvez, c'est assez évident comment vous le feriez. Je ne sais pas à quel point ce serait utile aux gens, mais vous pouvez.
Mais je ne sais même pas comment un professeur d'informatique serait, peut demander comment vous pouvez enseigner l'informatique sans ordinateur.
Parce que si vous pouvez enseigner l'informatique, vous saurez comment.
Si vous savez que ...
L'étude de la normalisation, la structure des tableaux de données pour les bases de données, peut se faire au stylo et au papier. (Je ne l'ai fait que sur stylo et papier lorsque j'ai étudié les bases de données relationnelles)
Les manuels d'informatique ne nécessitent pas d'ordinateur.
Si vous aviez déjà acheté un manuel d'informatique et l'aviez étudié dans une bibliothèque, vous sauriez que vous n'aviez pas besoin d'un ordinateur pour le comprendre.
Mais vous devez savoir que quiconque a suivi un cours d'informatique peut voir que la plupart des gens ne peuvent pas programmer, c'est juste au-delà d'eux. Trop abstrait pour les gens. C'est même vrai au niveau universitaire.
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
J'ajouterais que l'appeler une minorité substantielle est un euphémisme. C'est une petite minorité qui -peut- programmer.
Je noterais cependant, la cause du déclin dont il a été témoin. Comme les ordinateurs sont devenus plus populaires, par exemple entre 2000 et 2010 (il a écrit cela au milieu de cette décennie), plus de wollies étaient intéressés à étudier «l'informatique». Avant cela, seules les personnes les plus fanatiques étaient intéressées. Et plus tôt, l'utilisation des ordinateurs était plus technique, mais comme les ordinateurs devenaient plus faciles à utiliser pour la personne moyenne et plus puissants dans les applications qu'ils pouvaient exécuter, alors plus de wollies les utilisaient et plus de gens qui n'étaient intéressés que par ce qu'ils pouvaient faire plutôt que comment ils le font et comment le faire.
la source
Il SERAIT possible d'enseigner les concepts de l'informatique sans ordinateur. Bien sûr, sans accès à un ordinateur, à quoi sert vraiment l'apprentissage de l'informatique?
Lorsque j'apprenais l'informatique au lycée, nos premières classes ne comportaient pas du tout d'ordinateurs. Au lieu de cela, nous avons travaillé à partir d'un livre intitulé Karel ++ , qui enseignait les concepts orientés objet. Le langage composé peut être "exécuté" sur un tableau blanc ou un tableau noir assez facilement car tout le code effectue des actions sur un graphique. Nos premiers travaux étaient tous manuscrits et le professeur démontrerait la bonne solution au tableau au début de la classe suivante.
Lorsque nous avons commencé à discuter des algorithmes, notre professeur nous a tous appelés devant la salle et nous a dit de faire la queue. Il a ensuite démontré quelques algorithmes de tri différents - en commençant par quelque chose de stupide qu'il a appelé «tri de singe» où il échangerait au hasard deux d'entre nous et vérifierait ensuite si nous étions triés à chaque itération, mais effectuait ensuite un tri à bulles et un tri par shell - par "les faire courir" sur nous.
Il a dessiné des diagrammes au tableau, expliquant les bases du fonctionnement de la mémoire de l'ordinateur et de la pile. Il a démontré des variables et des pointeurs (c'était une classe C ++) et de là aux listes et arbres liés ...
Je pourrais probablement ajouter à cela si je passais en revue les notes que j'ai gardées de cette classe, mais c'est tout ce dont je me souviens maintenant. Si ces suggestions sont intéressantes, je peux développer cette réponse.
la source
J'ai fait un diplôme en informatique et j'ai pensé qu'on nous enseignait beaucoup de programmation (dans différentes langues), nous avons également appris de nombreux aspects mathématiques (et du matériel aussi).
Les parties mathématiques étaient plus importantes pour la première année - pensez aux mathématiques matricielles qui sont essentielles aux graphiques 3D (comment calculez- vous une surface normale pour éclairer un sommet? ). Nous avons fait beaucoup de statistiques - pensez à l'analyse du débit des travaux, quel taux d'emplois pouvez-vous passer dans un système avant qu'il ne se bouche? C'est assez important pour de nombreux systèmes centralisés et réseaux.
Vous pouvez enseigner de nombreux algorithmes, une affiche mentionne ici donner aux élèves un numéro chacun, puis les amener à se trier à l'aide de divers algorithmes (c'est actif et informatif). En fait, tout algorithme qui peut être décrit dans une image animée sur Internet peut être enseigné de cette manière. De même les fondamentaux de l'informatique - compteur de programmes, accumulateur et registrespeut être enseigné de la même manière, ou sur papier. Que diriez-vous du multithreading basé sur les étudiants - définissez un jeu de cartes avec un groupe d'étudiants avec une pile entre chacun d'eux dans un exercice de multi-threading classique (ou le problème d'une cuillère partagée). Ou des modèles de conception, je peux penser que l'architecture du tableau noir est parfaite pour que les étudiants apprennent comment la communication multi-processus peut être mise en œuvre, ou une architecture à n niveaux décrite comme une sorte de jeu de chuchotements chinois ou de machines à états finis conviendrait aux étudiants agissant comme modules dans un «ordinateur vivant». Vous pouvez enseigner les mathématiques binaires ou l'exécution basée sur la pile (c'est-à-dire le polissage inversé).
Bien sûr, si vous avez accès à l'électronique, vous pouvez construire un ordinateur analogique à partir d'amplificateurs opérationnels. Ils sont cool.
Malheureusement, tout cela ressemblera plus aux mathématiques qu'à l'informatique, mais une grande partie de cela restera et un jour ils comprendront pourquoi ils leur ont été enseignés (en supposant qu'ils se lancent dans l'industrie informatique). N'oubliez pas que tout ce qu'un ordinateur peut faire, une personne peut le faire - cela lui prendra juste beaucoup plus de temps et d'ennui pour obtenir le même résultat. Il vous suffit de prendre des exemples simples pour démontrer ce que l'ordinateur ferait, et de l'imagination pour décrire les bases de l'informatique d'une manière moins sèche que l'on m'a appris, en arrière :)
la source
Je réponds principalement pour réagir à cette déclaration et parce que je suis fortement en désaccord avec d'autres réponses. La comparaison correcte serait à mon avis
L'informatique concerne les ordinateurs, pas seulement leur utilisation. Certes, beaucoup d'informatique est basée sur les mathématiques, donc les parties mathématiques peuvent être étudiées sans ordinateur (donc vous enseignez les mathématiques alors) tout comme au lieu de la cosmologie, vous pouvez étudier la physique qui sera utile une fois qu'il y aura un cosmos (ou avoir accès à des télescopes), mais à la fin ce que vous étudiez reste la physique.
Maintenant, ce que tout le monde fait dans les réponses ici, c'est de noter que l'informatique au niveau du baccalauréat est principalement théorique et ne nécessite pas d'ordinateurs, ce que ces gens oublient à mon humble avis, c'est que les mêmes personnes ont beaucoup utilisé les ordinateurs jusque-là. Sans une compréhension naturelle, plonger directement dans les trucs théoriques incitera de nombreux étudiants à abandonner ou à avoir une vision terriblement inadéquate de l'informatique. Donc, enseignez la programmation, comprenez ce que les ordinateurs sont d'abord et ensuite seulement entrez dans les trucs théoriques.
Dépend du budget:
Donc, laissez-moi être clair, je ne dis pas que l'informatique ne peut pas être enseignée sans ordinateurs, juste que vous devez être habitué aux ordinateurs et les connaître assez bien avant de commencer à envisager une telle chose.
la source
L'informatique concerne les algorithmes et non (strictement) les ordinateurs (et l'électronique).
Ainsi, l' étude des algorithmes (même de l'arithmétique élémentaire) peut permettre de comprendre l'informatique et la programmation. Rappelez-vous que même le terme "algorithme" est une paraphrase de l'auteur d'un livre d'arithmétique ( al-Khwārizmī , vers le 9ème siècle CE).
L'étude des algorithmes peut se faire en utilisant des moyens élémentaires, mais devrait fournir une couverture des raisons pour lesquelles l'algorithme fonctionne, comment il est né et comment peut-on réellement démontrer qu'il fonctionne correctement.
L'histoire derrière l'évolution de l'informatique, des algorithmes et de la programmation ne doit pas être sous-estimée. Par exemple, la calculatrice de Babbage / Ada, la machine Enigma, le plankalkul de Konrad Zuse , ENIAC etc.
Ensuite, on peut introduire la programmation (et les langages de programmation) comme un moyen de formaliser les algorithmes. Cela peut également être fait (dans une large mesure) en utilisant des moyens élémentaires.
Notez que certaines études ont montré que la programmation d'apprentissage des personnes a deux difficultés principales à comprendre (liées à la surcharge de symboles, par exemple le test d'affectation par rapport à l'égalité et le fonctionnement d'une machine RAM).
Ainsi, on peut s'assurer que ceux-ci sont clairement saisis et compris par le peuple.
De plus, si un ordinateur est accessible (même une calculatrice qui peut être programmée), cela peut être utilisé pour fournir des exemples d'application et une expérience pratique. Sinon, on peut utiliser un ordinateur simulé. Cela peut être fait de différentes manières, par exemple un groupe de personnes peut simuler des parties d'un ordinateur et la classe peut concevoir des algorithmes pour résoudre divers problèmes pour cet ordinateur simulé et voir comment cela se passe. Cela peut aussi être vu comme un jeu, être créatif et créatif.
Ensuite, certains modèles de calcul (abstraits) (par exemple Turing Machines ) peuvent être introduits et liés au matériel précédent sur les algorithmes et la formalisation dans un langage (de programmation).
Si l'on veut introduire l'électronique d'un ordinateur réel, cela peut également se faire en deux parties.
Rappelez-vous que même dans les universités, certains cours d'électronique et d'architecture informatique sont théoriques (on n'entre pas en contact avec un CPU ou un design).
Ainsi, certains principes de fonctionnement de l'électronique (et de la physique sous-jacente) liés à l'architecture informatique peuvent être introduits ( semi - conducteurs , zones d'énergie à semi- conducteurs , portes p-np, etc.).
Ensuite, on peut tirer parti du matériel précédent sur la programmation et les algorithmes et introduire des techniques (modernes) de conception (et description) de CPU qui sont utilisées dans l'industrie ( portes logiques , bascules , FPGA , VHDL , circuits CMOS, etc.).
Cela peut être approfondi, les problèmes d'architecture de conception du processeur comme le parallélisme, le pipelining, la mémoire cache, l'adressage vectoriel, la micro-programmation, le DMA, etc.
Eh bien, peut-être que cela peut être trop, mais ajouté pour rendre la réponse autonome.
la source
Cherchez-vous à enseigner la programmation?
Quand j'étais enfant, nous sommes partis en vacances en camping et j'ai pris le manuel de l'ordinateur avec moi. J'ai pu écrire un jeu simple en utilisant du papier et un stylo.
C'était mon premier vrai programme, je suppose, donc beaucoup d'apprentissage a été impliqué. Je savais ce que je voulais faire, mais il y a eu beaucoup de faux départs pendant que je le comprenais. Mais finalement j'ai pu écrire tout le code.
Je suppose que ce que je dis, c'est commencer par du pseudo-code et / ou des organigrammes pour planifier le projet, puis traduire en code. J'ai pu déboguer une grande partie de mon code simplement en le lisant. Vous pouvez également utiliser les évaluations par les pairs ici.
la source
Pour faire écho aux réponses précédentes: il y a beaucoup à apprendre rien qu'en lisant et en faisant des exercices avec un stylo et du papier. Si vous pouvez résoudre le problème sur papier, vous avez la partie dure vers le bas. Cependant, je souhaite également mentionner l'existence de moyens assez bon marché pour exposer les étudiants à la CS. Connaissez-vous le projet Raspberry Pi ? Même si plusieurs personnes doivent partager ou si vous ne pouvez vous permettre que d'obtenir 1 ou 2 unités, cela peut être utile d'envisager un moyen d'exposer vos élèves à la technologie.
la source
Je vais essayer de bouger un peu sur celui-ci et de "sortir des sentiers battus". les ordinateurs complets sont en effet coûteux, parfois gourmands en ressources et difficiles à entretenir. mais il existe de nombreux systèmes électroniques bon marché qui imitent des ordinateurs à part entière, par exemple avec des écrans LCD, etc. et auxquels de nombreux principes de programmation de base peuvent être appliqués, dont beaucoup sont alimentés par batterie. il existe également un lien étroit entre les principes EE et le calcul, comme la construction de circuits logiques binaires, etc.; de nos jours, certains jouets ont des capacités de programmation.
calculatrices programmables . certains ont des langages de programmation entiers (pas si haut niveau mais plus comme des langages d'assemblage) intégrés. certains soutiendraient des programmes avancés.
Le mini-ordinateur / microcontrôleur Raspberry Pi a été développé à cet effet et fonctionne sous Linux. moins de 40 $ dans de nombreux cas.
Le microcontrôleur du kit STAMP de parallaxe nécessite une connexion USB mais peut-être qu'un Raspberry Pi serait suffisant. voir aussi microcontrôleur PIC
systèmes robotiques. il y en a beaucoup qui ont une logique programmable. Lego robotics mindstorms / nxt est l'un des meilleurs et il existe des modèles moins chers.
certains jeux de console ont des principes de programmation intégrés. Par exemple, Little Big Planet a des fonctionnalités de programmation incroyables intégrées. il existe des versions portables de jeux programmables. il existe de nombreuses vidéos youtube de constructions complexes pour l'inspiration.
les smartphones sont le nouveau monde de la programmation. ils ont des navigateurs qui exécutent javascript, et il existe de nombreuses applications liées à la programmation, et on pourrait même surfer sur des sites de programmation avec une connexion Internet (y compris le wifi).
suggèrent également, comme dans les commentaires, de créer des programmes de MT, par exemple pour les ajouter, etc. et d'essayer de les suivre à la main.
la source