Dans ce cours centré sur un projet, vous construirez une hiérarchie logicielle moderne, conçue pour permettre la traduction et l'exécution de langages de haut niveau basés sur des objets sur une plate-forme matérielle informatique dépouillée. En particulier, vous mettrez en œuvre une machine virtuelle et un compilateur pour un langage de programmation simple, de type Java, et vous développerez un système d'exploitation de base qui comblera les lacunes entre le langage de haut niveau et la plate-forme matérielle sous-jacente. Ce faisant, vous acquerrez une compréhension approfondie et pratique de nombreux sujets en informatique appliquée, par exemple le traitement des piles, l'analyse syntaxique, la génération de code, les algorithmes classiques et les structures de données pour la gestion de la mémoire, les graphiques vectoriels, le traitement des entrées-sorties et divers autres sujets qui se trouvent au cœur même de tout système informatique moderne. Il s'agit d'un cours autonome : toutes les connaissances nécessaires pour réussir le cours et construire les divers systèmes seront fournies dans le cadre de l'expérience d'apprentissage. Le seul prérequis est une connaissance de la programmation au niveau acquis dans les cours d'introduction à l'informatique. Tous les outils logiciels et le matériel nécessaires à la réalisation du cours seront fournis gratuitement après votre inscription au cours. Ce cours est accompagné du manuel "The Elements of Computing Systems" (Nisan et Schocken, MIT Press). Bien qu'il ne soit pas nécessaire pour suivre le cours, le livre fournit une couverture pratique de tous les sujets du cours. Le livre est disponible en version papier ou électronique, et MIT Press offre une réduction de 30 % sur le prix de vente en utilisant le code de réduction MNTT30 à l'adresse https://mitpress.mit.edu/books/elements-computing-systems.
Le cours se compose de six modules, chacun comprenant une série de conférences vidéo et un projet. Vous aurez besoin d'environ 2 à 3 heures pour regarder les conférences de chaque module et d'environ 15 heures pour réaliser chacun des six projets. Le cours peut être terminé en six semaines, mais vous pouvez le suivre à votre propre rythme. Vous pouvez regarder un exposé TED sur ce cours en tapant "nand2tetris TED talk" sur Google.
*À propos des cours axés sur les projets : Les cours centrés sur un projet sont conçus pour vous aider à mener à bien un projet personnel significatif dans le monde réel, avec votre instructeur et une communauté d'apprenants ayant des objectifs similaires qui vous guident et vous font des suggestions tout au long du chemin. En appliquant activement les nouveaux concepts au fur et à mesure que vous apprenez, vous maîtriserez le contenu du cours plus efficacement ; vous aurez également une longueur d'avance sur l'utilisation des compétences acquises pour apporter des changements positifs dans votre vie et votre carrière. Lorsque vous aurez terminé le cours, vous aurez un projet fini que vous serez fier d'utiliser et de partager.
Inclus
2 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
2 vidéos•Total 26 minutes
Aperçu du cours•21 minutes
Aperçu du projet 0•5 minutes
1 lecture•Total 5 minutes
Aperçu de la semaine 1 (commencer ici)•5 minutes
1 devoir de programmation•Total 60 minutes
Projet 0•60 minutes
Langage machine
Module 2•8 heures à terminer
Détails du module
Inclus
10 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
10 vidéos•Total 187 minutes
Unité 0.0 : Initiation au langage machine•8 minutes
Unité 0.1 : Vue d'ensemble du langage machine•12 minutes
Unité 0.2 : Éléments du langage machine•17 minutes
Unité 0.3 : L'ordinateur de poche et le langage machine•16 minutes
Unité 0.4 : Spécification du langage Hack•10 minutes
Unité 0.5 : Manipuler les entrées et les sorties•27 minutes
Unité 0.6 : Programmation de bas niveau, partie I•24 minutes
Unité 0.7 : Programmation de bas niveau, partie II•21 minutes
Unité 0.8 : Programmation de bas niveau, partie III•32 minutes
Unité 0.9 : Vue d'ensemble du projet 4•19 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 300 minutes
Projet 4•300 minutes
Machine virtuelle I : Arithmétique de pile
Module 3•13 heures à terminer
Détails du module
Inclus
11 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
11 vidéos•Total 188 minutes
Unité 1.0 : Le chemin à parcourir•22 minutes
Unité 1.1 : Aperçu de la compilation de programmes•13 minutes
Unité 1.2 : Abstraction de la VM : la pile•16 minutes
Unité 1.3 : Abstraction de la VM : Segments de mémoire•10 minutes
Unité 1.4 : Implémentation de la VM : la pile•17 minutes
Unité 1.5 : Mise en œuvre de la VM : Segments de mémoire•27 minutes
Unité 1.6 : L'émulateur VM•23 minutes
Unité 1.7 : Mise en œuvre des machines virtuelles sur la plate-forme Hack•9 minutes
Unité 1.8 : VM Translator : Proposition d'implémentation•12 minutes
Unité 1.9 : Projet 7 : Construire le traducteur VM, Partie I•23 minutes
Unité 1.10 : Perspective•17 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 600 minutes
Projet 7•600 minutes
Machine virtuelle II : contrôle des programmes
Module 4•13 heures à terminer
Détails du module
Inclus
10 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
10 vidéos•Total 166 minutes
Unité 2.1 : Contrôle des programmes•10 minutes
Unité 2.2 : La ramification•9 minutes
Unité 2.3 : Fonctions : Abstraction•22 minutes
Unité 2.4 : Appel et retour de fonction : Aperçu de l'implémentation•24 minutes
Unité 2.5 : Appel et retour de fonction : Simulation d'exécution•17 minutes
Unité 2.6 : Appel de fonction et mise en œuvre du retour•25 minutes
Unité 2.7 : Mise en œuvre des machines virtuelles sur la plate-forme Hack•11 minutes
Unité 2.8 : Traducteur VM : Proposition d'implémentation•10 minutes
Unité 2.9 : Projet 8 : Construire le traducteur VM, partie II•27 minutes
Unité 2.10 : Perspective•12 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 600 minutes
Projet 8•600 minutes
Langage de haut niveau
Module 5•13 heures à terminer
Détails du module
Inclus
11 vidéos1 lecture1 évaluation par les pairs
Afficher les informations sur le contenu du module
11 vidéos•Total 179 minutes
Unité 3.1 : La langue Jack en bref•11 minutes
Unité 3.2 : Programmation basée sur les objets•21 minutes
Unité 3.3 : Traitement des listes•22 minutes
Unité 3.4 : Spécification du langage Jack : Syntaxe•5 minutes
Unité 3.5 : Spécification du langage Jack : Types de données•9 minutes
Unité 3.6 : Spécification du langage Jack : Classes•15 minutes
Unité 3.7 : Spécification du langage Jack : Méthodes•19 minutes
Unité 3.8 : Développer des applications en utilisant le langage Jack et le système d'exploitation•19 minutes
Unité 3.9 : Un exemple d'application Jack : Danse carrée•25 minutes
Unité 3.10 : Optimisation graphique•22 minutes
Unité 3.11 : Perspective•12 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 évaluation par les pairs•Total 600 minutes
Projet 9•600 minutes
Compilateur I : Analyse syntaxique
Module 6•12 heures à terminer
Détails du module
Inclus
10 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
10 vidéos•Total 131 minutes
Unité 4.1 : Analyse syntaxique•7 minutes
Unité 4.2 : Analyse lexicale•9 minutes
Unité 4.3 : Grammaires•15 minutes
Unité 4.4 : Analyser les arbres•7 minutes
Unité 4.5 : Logique de l'analyseur syntaxique•20 minutes
Unité 4.6 : La grammaire de Jack•14 minutes
Unité 4.7 : L'analyseur Jack•11 minutes
Unité 4.8 : L'analyseur Jack : Proposition de mise en œuvre•20 minutes
Unité 4.9 : Projet 10 : Construire un analyseur syntaxique•16 minutes
Unité 4.10 : Perspective•13 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 600 minutes
Projet 10•600 minutes
Compilateur II : Génération de code
Module 7•14 heures à terminer
Détails du module
Inclus
12 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
12 vidéos•Total 224 minutes
Unité 5.1 : Génération de code•12 minutes
Unité 5.2 : Manipuler des variables•20 minutes
Unité 5.3 : Manipuler des expressions•23 minutes
Unité 5.4 : Gérer le flux de contrôle•16 minutes
Unité 5.5 : Manipuler des objets : Aspects de bas niveau•14 minutes
Unité 5.6 : Manipuler des objets : Construction•20 minutes
Unité 5.7 : Manipuler des objets : Manipulation•21 minutes
Unité 5.8 : Manipuler les tableaux•23 minutes
Unité 5.9 : Mappage standard sur la machine virtuelle•19 minutes
Unité 5.10 : Compléter le compilateur : Proposition d'implémentation•17 minutes
Unité 5.11 : Projet 11•29 minutes
Unité 5.12 : Perspective•10 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 600 minutes
Projet 11•600 minutes
Système d'exploitation
Module 8•14 heures à terminer
Détails du module
Inclus
14 vidéos1 lecture1 devoir de programmation
Afficher les informations sur le contenu du module
14 vidéos•Total 230 minutes
Unité 6.1 : Système d'exploitation•15 minutes
Unité 6.2 : L'efficacité compte•18 minutes
Unité 6.3 : Opérations mathématiques•21 minutes
Unité 6.4 : Accès à la mémoire•13 minutes
Unité 6.5 : Gestion du tas•31 minutes
Unité 6.6 : Graphiques•15 minutes
Unité 6.7 : Dessin au trait•25 minutes
Unité 6.8 : Traiter les sorties textuelles•19 minutes
Unité 6.9 : Entrée•17 minutes
Unité 6.10 : Traitement des chaînes de caractères•18 minutes
Unité 6.11 : Traitement des tableaux•6 minutes
Unité 6.12 : La classe Sys•13 minutes
Unité 6.13 : Projet 12 : Construction du système d'exploitation•12 minutes
Unité 6.14 : Perspective•8 minutes
1 lecture•Total 10 minutes
Aperçu du module (commencez ici)•10 minutes
1 devoir de programmation•Total 600 minutes
Projet 12•600 minutes
Post-scriptum : Plus de plaisir à venir
Module 9•1 heure à terminer
Détails du module
Inclus
4 vidéos
Afficher les informations sur le contenu du module
4 vidéos•Total 31 minutes
Unité 7.1 : Plus de plaisir à partir•10 minutes
Unité 7.2 : Plus de plaisir à partir•9 minutes
Unité 7.3 : Plus de plaisir à partir•8 minutes
Unité 7.4 : Plus de plaisir à partir•5 minutes
Instructeur
Évaluations de l’enseignant
Évaluations de l’enseignant
Nous avons demandé à tous les étudiants de fournir des commentaires sur nos enseignants au sujet de la qualité de leur pédagogie.
Classée parmi les meilleures institutions universitaires et de recherche au monde, l'Université hébraïque de Jérusalem est la première université et la première institution de recherche d'Israël. L'Université hébraïque, qui accueille 23 000 étudiants originaires de 70 pays, produit un tiers de la recherche civile israélienne et se classe au 12e rang mondial pour les dépôts de brevets en biotechnologie et le développement commercial. L'université hébraïque a été fondée en 1918 par des visionnaires tels qu'Albert Einstein, Sigmund Freud, Martin Buber et Chaim Weizmann. Elle est située sur trois campus à Jérusalem et un quatrième à Rehovot. Visitez le site web à l'adresse http://new.huji.ac.il/en. Rejoignez notre communauté d'apprenants en ligne à l'adresse https://www.facebook.com/groups/hujimooc/
OK
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’
Avis des étudiants
4.9
534 avis
5 stars
94,56 %
4 stars
4,49 %
3 stars
0,37 %
2 stars
0,18 %
1 star
0,37 %
Affichage de 3 sur 534
A
AD
5·
Révisé le 1 sept. 2018
One of the best computer science courses I ever had. You start understand how actually things like heap, stack, etc. works.
O
OM
5·
Révisé le 12 janv. 2021
Outstanding ! What a journey and what a remarquable course. An awful lot of work but very gratifying in the end !
Z
ZN
5·
Révisé le 7 avr. 2022
Great course in every way. I can't imagine how much efforts Noam, Shimon and their team have taken. Everyone who's trying to understand computer in a more comprehensive way should take this course.
Dois-je emmener Nand à Tetris Part I avant d'emmener Nand à Tetris Part II ?
Nand to Tetris Part I et Nand to Tetris Part II sont deux cours distincts et indépendants. Bien qu'il soit recommandé de suivre la partie I avant la partie II, vous pouvez suivre n'importe lequel de ces cours, dans l'ordre qui vous convient.
Quelles sont les connaissances en informatique que je dois avoir avant de suivre ce cours ?
La seule exigence est une capacité de programmation du niveau de celle acquise dans les cours typiques d'introduction à l'informatique.
Quel langage de programmation dois-je utiliser pour réaliser les travaux de ce cours ?
Nous attendons des apprenants qu'ils soumettent des travaux dans n'importe quelle version de Java ou de Python. Nous supposerons que vous avez des compétences de base en programmation dans ces langages, y compris une capacité de base à comprendre et à écrire des programmes simples basés sur des objets.
Combien de devoirs dois-je remettre pour réussir le cours ?
Le cours consiste en 6 projets (travaux de programmation), numérotés 7, 8, 9, 10, 11, 12, et un projet optionnel, numéroté 4. Pour réussir le cours, vous devez soumettre au moins 5 projets parmi les projets 7, 8, 9, 10, 11 et 12. (La numérotation des projets est cohérente avec les numéros des projets du cours Nand to Tetris Part I)
Quand aurai-je accès aux cours et aux devoirs ?
Pour accéder aux supports de cours, aux devoirs et pour obtenir un certificat, vous devez acheter l'expérience de certificat lorsque vous vous inscrivez à un cours. Vous pouvez essayer un essai gratuit ou demander une aide financière. Le cours peut proposer l'option "Cours complet, pas de certificat". Cette option vous permet de consulter tous les supports de cours, de soumettre les évaluations requises et d'obtenir une note finale. Cela signifie également que vous ne pourrez pas acheter un certificat d'expérience.
Que recevrai-je si j'achète le certificat ?
Lorsque vous achetez un certificat, vous avez accès à tous les supports de cours, y compris les devoirs notés. Une fois le cours terminé, votre certificat électronique sera ajouté à votre page de réalisations. Vous pourrez alors l'imprimer ou l'ajouter à votre profil LinkedIn.
Une aide financière est-elle disponible ?
Oui, pour certains programmes de formation, vous pouvez demander une aide financière ou une bourse si vous n'avez pas les moyens de payer les frais d'inscription. Si une aide financière ou une bourse est disponible pour votre programme de formation, vous trouverez un lien pour postuler sur la page de description.