Description du cours
Ce cours traitera, pendant la durée de deux semestres, non seulement les bases de la programmation de sites Web interactifs avec JavaScript, mais également des concepts plus généraux de la programmation tout court, tels qu'ils peuvent être transposés directement dans le contexte d'autres langages et technologies.
JavaScript est un langage de programmation qui est exécuté à l'intérieur d'un navigateur et permet donc de transformer un document HTML / XHTML statique en application interactive. Normalisé sous le nom d'ECMAScript, JavaScript est, en ce qui concerne sa structure et syntaxe, identique à ActionScript, le langage de programmation au sein de Macromedia Flash. Les connaissances conceptuelles enseignées dans ce cours peuvent donc être utilisées dans le contexte de cette technologie.
Ciblé sur la pratique, l'enseignement s'organisera autour des exemples concrets qui représentent les applications les plus courantes de JavaScript / DHTML (dynamic HTML). A part les éléments du langage nous allons donc travailler notamment avec les formulaires, les calques et popups.
Le deuxième semestre traitera des sujets plus avancés comme l'animation et le travail avec XML / AJAX.
Notation
La note finale sera composée de trois éléments :
- Présence et participation au cours (20%)
-
La réalisation de trois devoirs pendant le semestre (30%)
Trois notes par exercice :
3 (résultat plus que demandé)
2 (réussite)
1 (réussite partielle)
Les travaux rendus avec retard ne seront pas acceptés.
-
L'achèvement d'un projet (50%)
Le projet final consistera en la réalisation d'un petit projet qui fait appel à JavaScript, soit en combinant les exercices du semestre dans un contexte commun, soit en produisant un objet propre. En ce qui concerne le choix du projet, vous avez toute liberté : un système de navigation originale, un petit jeux, un système de panier d'achat, etc. - la recherche d'un sujet fait effectivement partie de l'exercice...
Vous pouvez valider plusieurs UE avec un seul projet. (après demande)
Tout retard concernant la proposition de projet ou le projet final se traduira directement en une réduction de la note finale.
Premier semestre
S1S1 (11/10/07) : Introduction générale
S1S2 (18/10/07) : Introduction suite et travail avec formulaires
S1S3 (25/10/07) : Tableau et innerHTML
Exo 1 : Il s'agit de prendre le fichier de base et de tester si l'utilisateur à bien remplit les trois champs. Mais à la place d'avoir un message d'erreur par champ, essayez de collecter les messages dans un tableau (cf. plus haut) et d'afficher les erreurs dans un seul message comme vous pouvez le voir sur la prise d'écran. A envoyer, par email, avant le cours du 8 octobre. Bon travail !
S1S4 (08/11/07) : Répétition et formulaires suite
S1SX (15/11/07) : Formulaires suite et CSS
Exo 2 : Voilà, pour vous donner un petit quelque chose à faire pendant cette période difficile, voilà le deuxième exercice du semestre : créez un petit menu (cf. image) composé de trois éléments de navigation et trois calques qui contiennent des liens. Quand l'utilisateur bouge le curseur sur un élément de navigation, le calque respectif s'affiche. Au départ du curseur, le calque redevient invisible. Ce fichier devrait vous aider. Bon travail !
S1S5 (22/11/07) : Introduction calques, deuxième menu
S1S6 (13/12/07) : Calques suite
Exo 3 : Deux champs sur une page, le premier saisit un texte et le deuxième un chiffre. Le texte est répété sur la page autant de fois que l'utilisateur précise. Dans la variante plus difficile, le texte est attribué d'une couleur aléatoire (Math.random).
S1S7 (20/12/07) : Popups et une première boucle
S1S8 (10/01/08) : Répétition et gallerie d'images
Exo de rattrapage : A partir de ce fichier il s'agit de créer un petit système d'affichage d'actualités. Le contenu du bouton/compteur est mis à jour à chaque clic sur lui et le contenu de la boîte texte avance. Après le dernier message, le système repasse au premier. Si on enlève ou ajoute un élément au tableau des messages, le comptage s'adapte automatiquement. Bon travail !
S1S9 (12/01/08) : Répétition et travail projet (Session de rattrapage, 10-17h)
S1S10 (17/01/08) : Introduction animation et travail projet
- enoyez-le à bernhard point rieder at univ-paris8 point fr ET b at procspace point net
- utilisez un fichier index.html pour le décut du projet
- ajoutez un fichier info.txt avec une petite explication
- joignez une photo de vous !
Deuxième semestre
Le deuxième semestre poursuivra les voies ouvertes par les connaissances acquises au premier semestre. En gardant une perspective toujours très pratique nous allons aborder - entre autres - l'animation, le travail avec les cookies et, en fin de semestre, une technique de chargement de données nommée AJAX (Asynchronous JavaScript and XML). La validation se fera de manière similaire à celle du premier semestre.
S2S1 (12/02/08) : Répétition et résumé du premier semestre
S2S2 (21/02/08) : Animation I
S2S3 (28/02/08) : Animation II
Exo 1 : A partir de la galérie du premier semestre, il s'agit de réaliser une transition d'une image à l'autre par un scrolling. La façon la plus simple pour arriver à cela est de mettre toutes les images sur un seul calque et le faire avancer par des pas de 400px (largeur des images). Il suffit de travailler avec l'opérateur mathématique "modulo" qui calcule le reste d'une division. Ainsi 800 % 400 donne comme réponse 0. Vue que les images ne seront plus en boucle, il faut enlever les éléments de navigation à la première et dernière position (cf. image). Bon travail !
S2S4 (13/03/08) : Cookies I
Exo 1B : Pour ceux qui ont eu des difficultés avec le premier exercice, voilà une deuxième chance. Prenez ce fichier comme point de départ et programmez un changement de la couleur de fond de la page qui va du noir au blanc et de retour. L'exercice resemble beaucoup à celui là.
S2S5 (20/03/08) : Cookies II
S2S6 (03/04/08) : AJAX I
Exo 2 : Prenez notre petite application AJAJ et l'insérer dans un design graphique et interactif "professionnel". Vous avez jusqu'au 16 avril ! Bon travail...
S2S7 (10/04/08) : AJAX II
S2S8 (15/05/08) : AJAJ collaboratif / Introduction à la programmation orientée objet.
S2S9 (22/05/08) : Bibliothèques de développement
S2S10 (29/05/08) : Travail projet
- enoyez-le à bernhard point rieder at univ-paris8 point fr ET b at procspace point net
- le projet doit être hébérgé en ligne (!!!) et envoyé par email
- utilisez un fichier index.html pour le décut du projet
- ajoutez un fichier info.txt avec une petite explication
- joignez une photo de vous !