Cours Informatique de Base (MM009 )
Version du 6/01/2015
Université Pierre et Marie Curie
F. Hecht, X. Claeys , et M. Chupin
Annee 2014-2015
F. Hecht (Cours)
Mercredi 8h30 – 10h30 Salle 24-25 104
X. Claeys Cours)
Jeudi 8h30 – 10h30 Salle 14-15 105
T.D: X. Claeys, ou M. Chupin (T.D)
voir https://www.ljll.math.upmc.fr/~claeys/MM009.html
Lundi 13h30 – 16h30 salle 16-26 401
Jeudi 13h30 – 16h30 salle 16-26 401
Examen le 17 decembre 2014 de 14h00 a 17h00 en salle 14-24 Salle 305.
Soutenance de Projet: en Salle 16-26 401
|
|
|
Lundi 5/01/15 9h |
SAUVESTRE |
FLORIAN |
Lundi 5/01/15 9h |
HACID |
MARION |
Lundi 5/01/15 9h |
LIN |
GUOCAN |
Lundi 5/01/15 10h |
AMOUSSOUVI |
NICOLAS-LEANDRE |
Lundi 5/01/15 10h |
LLAU |
ARTHUR |
Lundi 5/01/15 10h |
VUTH |
VATTEY |
Lundi 5/01/15 11h |
BROSSETTE |
CAMILLE |
Lundi 5/01/15 11h |
CONRARD |
NICOLAS |
Lundi 5/01/15 11h |
FENAOUI |
KARIMA |
Lundi 5/01/15 12h |
RAVELOJAONA |
STEPHAN |
Lundi 5/01/15 12h |
LANNOO |
PRISCILLA |
Lundi 5/01/15 12h |
ATOUANI |
MOHAMED |
Mardi 6/01/15 9h |
JEAN-PIERRE |
MYRIAM |
Mardi 6/01/15 9h |
SULLET |
ALEXANDRE |
Mardi 6/01/15 9h |
CZABADAJ |
MARTIN |
Lundi 5/01/15 12h30 |
DAANOUN |
KHALID |
Mardi 6/01/15 10h |
ABEIDA |
MOHAMED-MAHFOUDH |
Mardi 6/01/15 10h |
MAAMERI |
NESSMA |
Mardi 6/01/15 11h |
AGBO |
COCOU MARC-AURELE |
Mardi 6/01/15 11h |
AZEVEDO RODRIGUES EPOUSE DELMAS |
KARINA |
Mardi 6/01/15 11h |
LANDAU |
SARAH |
Mardi 6/01/15 12h |
ROTARU |
OANA DIANA |
Mardi 6/01/15 12h |
OBIS |
LAURIANE |
Mardi 6/01/15 12h |
BALESTRIERO |
RANDALL |
Mardi 6/01/15 12h |
DARTHES |
NOE |
Note de la premiere session (non valider) pour info.
Ex: note examen
Pj: Note Projet
CC: note de contrôle continue
Total= max(Ex+Ex,Ex+Partiel)/2 + 3*Pj + CC
Ex/20 |
Pj/20 |
Partiel |
CC/20 |
Total |
N°etudiant |
7,50 |
3,00 |
3,50 |
5,25 |
21,75 |
3266706 |
1,00 |
14,00 |
6,00 |
7,50 |
53,00 |
3303667 |
12,75 |
5,00 |
0,00 |
8,88 |
36,63 |
2807809 |
9,50 |
0,00 |
12,00 |
7,17 |
17,92 |
3060683 |
0,00 |
15,00 |
0,00 |
7,50 |
52,50 |
3362888 |
20,00 |
20,00 |
20,00 |
20,00 |
100,00 |
3402147 |
17,00 |
17,00 |
14,17 |
17,00 |
85,00 |
2901330 |
15,00 |
17,00 |
10,83 |
17,00 |
83,00 |
2906565 |
10,25 |
12,00 |
13,50 |
11,92 |
59,79 |
3103753 |
2,00 |
2,00 |
0,00 |
2,00 |
10,00 |
3204432 |
5,75 |
17,00 |
11,50 |
17,00 |
76,63 |
3402433 |
5,00 |
0,00 |
4,00 |
3,00 |
8,00 |
2965819 |
9,75 |
11,00 |
8,50 |
10,38 |
53,13 |
2706643 |
7,00 |
5,00 |
8,83 |
6,94 |
29,86 |
3062137 |
1,00 |
4,00 |
0,00 |
5,00 |
18,00 |
3366035 |
7,50 |
5,00 |
9,50 |
10,00 |
33,50 |
3060525 |
10,50 |
0,00 |
9,67 |
6,72 |
17,22 |
2807117 |
3,00 |
0,00 |
11,67 |
17,00 |
24,33 |
2900047 |
3,00 |
0,00 |
0,67 |
1,50 |
4,50 |
3303450 |
12,75 |
11,00 |
13,83 |
15,00 |
61,29 |
3401991 |
13,50 |
11,00 |
7,17 |
15,00 |
61,50 |
3000459 |
2,00 |
0,00 |
5,00 |
10,00 |
13,50 |
3401958 |
16,00 |
0,00 |
9,33 |
8,44 |
24,44 |
2704766 |
7,00 |
17,00 |
11,00 |
17,00 |
77,00 |
3100058 |
13,00 |
12,00 |
15,33 |
15,00 |
65,17 |
2900535 |
les notes finales du semestre 1 seront visible dans le fichier : //www.ann.jussieu.fr/~hecht/Notes/S1-MM0091.pdf
Les notes de cours en PDF (version du 23/04/2013)
Les sujets des projets finaux de l'année 2014 :
Evaluation: Les sujets des evaluations précédentes
Notation:
Ecrit /20 = sup (examen ,(partiel+ examen) /2)
CC /20 = Note de TD
Projet /60 = 50% rapport et programme
+ 50% soutenance
Pour les debutants en programmation vous pouvez tester vos
programme avec le site:
Cours de C pour débutants, par Mathias Hiron
Et d'autre site:
http://a.michelizza.free.fr/pmwiki.php?n=TutoCFrench.TutoCFrench
Bien programmer en langage C (Emmanuel Delahaye)
Pour bien comprendre la gestion mémoire
La gestion de la mémoire en langage C
OpenGL:
un support de cours OpenGL (E. Boyer)
un support de cours Robin Vivian Format PDF
Cours OpenGL de l'ESSI par Michel Buffa
Advanced Graphics Programming Techniques Using OpenGL
Outil informatiques utilises sur votre ordinateur:
Si vous avez un ordinateur de type Windows 98, XP, Vista, 7, 8
il faut utiliser l'environnement cygwin qui est le portage des outil unix sur Windows.
voir la page : installation de MingW32.html
Si vous avez un ordinateur de type Unix (Linux, FreeBSD, ....)
il faut installer les paquets suivants:
g++ et les outils de développement
X11 et les outils de développement
curl (outil réseau)
texlive
emacs ou xemacs
bibliothèque OpenGL et les outils de développement
bibliothèque GLUT ou freeglut et les outils de développement
Si vous avez un ordinateur de type apple (OSX)
il faut installer les developper tools qui sont sur les DVD installations avec Xcode
ou sur App Store (Gratuit)
installation MacTeX.mpkg.zip pour latex et Latest TeXShop
Pour Linux,
installer les outils de devellopement :
g++, gcc, make, freeglut-dev
Semaine 1) du 8 au 12 sept.
mercredi: F. Hecht
le systeme unix, les commandes de base de linux
voir par exemple http://www.linux-france.org/article/debutant/debutant-linux.html
Présentation:
- Organisation du cours (mini-projet, partiel, projets, examen, soutenance)
- Site du cours
- Calcul scientifique, C++
- Développement sous UNIX
- Les sous-sujets (Algorithmique, complexité, structure de données, graphes, TeX, OpenGL, automates, analyse lexicale et syntaxique, programmation dynamique)
Début de l'étude
- quelques commandes ls, cat, rm, cd, pwd, vi, emacs
- programme coucou.cpp: compilation et exécution à la main. Utilisation de make coucou
- analyse du programme, #include, using namespace (on y reviendra)
- distribution de la liste des opérateurs, mise à jour.
une premiere commande de compilation du fichier prog.cpp ou prog.cc
make prog
pour lancer le programme fiare
./prog
la liste des operateurs.pdf
Pour installer les outils de devellopement sous Windows, lire
jeudi: X. Claeys
* Rappel rapide sur le programme Hello World et la compilation
* Discussion sur les types de base
* Les entrées sorties standard cin/cout
* Les structures de controle if, switch, while, for
* Quelques mots sur les références
Tous les exemples de programme sont dans:
Semaine 2) du 15 au 19 sept.
Cours de F. Hecht mercredi.
Installation de Mingw32
Introduction des pointeurs, allocation dynamique.
algèbre des pointeurs.
Les passages des arguments par valeurs et par pointeurs.
toutes les exemples sont dans : l'archive s2.tgz
curl -O https://www.ljll.math.umpc.fr/hecht/ftp/InfoBase/s2.tgz
tar zxvf s2.tgz
Sous MINGW:
Pour avoir des commande de base (edit, GetInfoBase) pour le cours.
Copier mon fichier profile_mingw dans .profile dans votre home directory
Cours de X. Claeys Jeudi
* retour sur les pointeurs:
-> relation entre pointeurs et tableaux
-> pointeurs constants/pas constants
-> allocation dynamique de mémoire (avec new)
* déclaration/définition d'une classe
* notion d'instance de classe
* membres d'une classe
* méthodes d'une classe
* mot clé this
* pointeurs sur des objets
* membres statiques
* droit d'accès public/private
* un mot bref sur la compilation separée
(fichier d'entete, compilation avec -c, etc...)
Les exemples de programme sont aussi dans s2
Semaine 3) du 22 au 26 sept.
Cours de F. Hecht Mercredi
Gestion mémoire, la pile et tas,
variable static, global et dynamique.
pour plus de detail lire http://ilay.org/yann/articles/mem/
Compilation sépare
le deboggeur ddd , gdb ou lldb
Liste de operateur de c++ operateurs.pdf
Cours de X. Claeys Jeudi
* notion générale de constructeur/destructeur
* règles de surcharge pour les constructeurs
* constructeur dans le cas de membres nécessitant une allocation dynamique
* constructeur par défaut
* constructeur par recopie
* initialisation des membres constants et des membres de type référence dans l'entète des constructeurs
* notion générale d'opérateur
* surcharge de +
* surcharge de = (avec les chausses-trappes liées à la gestion mémoire)
* surcharge de <<
les exemples sont dans s3 ou s3.zip
Semaine 4) du 29 sep au 4 oct.
Cours de F. Hecht Mercredi,
le mini projet et presentation le sujet : mini-proj1.pdf et
l'archive du fichier du mini projet gl.tgz
Suite de la surchage des operateurs, Desturcteur classe avec gestion mémoire.
Ecriture d'une classe tableau de base.
le probleme de copie par default: creation et affectation
dans une classe une destructeur.
la class A des notes de cours.
utilisation de Gnuplot:
Pour la visualisation d'une courbe, vous utilisez le logiciel gnuplot
la command gnuplot sera du type
gnuplot
plot "data.txt" w l
pour comprendre la stucture du fichier "data.txt"
utilser le help de gnuplot en entrant sous gnuplot
help plot datafile
le fichier "data.txt" doit contenir deux valeur par ligne
qui correspondent aux valeurs de abscisse et de ordonné
discretisé.
Explication de la compilation et execution de gl.tgz
wget http://www.ann.jussieu.fr/hecht/ftp/InfoBase/gl.tgz
tar zxvf gl.tgz # (version du 25/09/2013)
cd gl
editer le Makefile choisir entre Mac, Linux, Windows
attention sous windows:
pour Graphics windows, il faut utiliser la version de CXX de mingw
pour X11 sous windows implique qu'il faut lancer le serveur X11
sous cygwin:
via le menu demarrer->Cygwin-X->XWin Server
remarque: Tous les exemples sont dans le dossier s4 ou compresse s4.zip
- Entrées-sorties fichiers
<entrees_sorties.cpp><entrees_sorties_classe.cpp><mat3.txt>
- Un autre exemple d'instabilité numérique: la méthode des trapèzes.
<trapeze.cc><trapeze2.cc><trapeze3.cc>
- Nombreux exemples de programmation générique (templates).
<liste.cpp><liste_generique.cpp><templates.cpp>
<modulo.hpp><testmodulo.cpp>
<polynome.hpp><polynome.cpp><testpoly.cpp>
<polymodulo.cpp>
Cours de X. Claeys Jeudi,
* quelques mots sur l'utilisation de la classe vector
* lecture écriture de fichiers avec les classes ofstream, ifstream et fstream
* manipulation de chaines de caracteres avec la classe string
* manipulation de flux d'entré-sortie avec les classes ostringstream et istringstream
remarque: Tous les exemples sont dans le dossier s4 ou compresse s4.zip
Semaine 5) du 6 au 10 oct.
Cours de F. Hecht Mercredi,
FIn de la classe A, quelque remarque sur le probleme optimisation
afin ecrire les operation vectoriel effication en introduisant une
classe par type operation.
Indroction des classes RNM pour modelise le operation vectoriel
sur ls tableau,
Debut de PB de complexite
Etude de la complexite d’un algorithme qui fait croitre la taille
un tableau.
Cours de X. Claeys Jeudi,
"Introduction élémentaire à l'affichage graphique avec OpenGL."
les fichiers associés sont dans
Semaine 6) du 13 au 17 oct.
Cours de F. Hecht Mercredi,
Quelques probleme algorithmique tel que
le decalage un tableau (introduction de la dependence temporelle
de variable).
Section 5.3) et inversion d’une fonction entioen (section 5.4)
Cours de X. Claeys Jeudi,
Semaine 7) du 20 au 24 oct.
Cours de F. Hecht Mercredi,
Suite sur l’algorithmiques.
Utilisation du colorige,
Quel que l’algorithmique sur le graphe
Calcul du nombre de composante connexe.
Algorithme de Dijksra (debut)
Cours de X. Claeys Jeudi,
Semaine 8) du 27 oct. au 31 oct.
Cours de Mercredi, (Xavier Claeys)
Cours Jeudi
PARTIEL.
Les programmes associés sont dans s8 ou s8.zip
Semaine 9) du 3 nov. au 7 nov.
Les programmes de la semaine associés sont dans s9 ou s9.zip
Cours de Mercredi, F. Hecht
Algorithme de Dijksra version 1 et 2
Cours Jeudi X. F. Hecht
Introduction a la compilation
Automate, gramaires, interpreteur.
Semaine 10) du 10 nov. au 14 nov.
Cours de Mercredi, F. Hecht
Explication de passage de de l’ecrutire BNF à la programmation.
Une premiere calculette en BNF etendue
Une seconde calculette en bison/yacc.
Cours Jeudi X. Claeys
===================================================================
Le jeudi 13 Novembre (accompagné de l'archive ss-cours-20-11-2014.zip)
===================================================================
Introduction à LaTeX:
* Structure d'un document Latex
\begin{document} .... \end{document}
* La compilation avec Latex
-> latex
-> les differents fichiers d'output
-> pdflatex
-> dvipdf, etc...
* Le sectionnement (\section, \subsection, \paragraph, etc...)
* Changer la fonte (bold, italique) et la taille, sauter une ligne...
* Le système des paquets
* Les équations
-> les "$"
-> les environnements equation, array, etc...
* La numerotation des equations
* Les tableaux
* Les figures en latex
-> inclure des images
-> dessiner avec pstricks
* La bibliographie
-> avec bibitem
-> avec bibtex
Semaine 11) du 17 nov. au 21 nov.
Cours de Mercredi, F. Hecht
dossier s11
Correction de l’exo 3 du partiel voir le fichier CorrectionPartiel3.cpp du dossier S11.
Introcduction de l’encasulable de class virtuel afin de cacher utilisation de
de pointeur sur els instannce de classe virtuel.
voir la class C0 dans C0.cpp pour cache utilisation des pointeur sur le les CVirt pour
modéliser les fonction .
Probleme de la gestion memoire et de l’heritage, introduction de methode de clonage pour
gere facilement la duplication de pointeur (voir fonctionsimple_withcopy.cpp)
Probleme des fonctions C infini, un pemiere cas qui ne marche pas (recursion infini)
voir Cinfty.cpp-boogus, introduction de la notion d’evaluation paresseusse afin de casser
cette recursion : au lieu de construire l’ojbet, on a un fonction qui construit l’objet et de ne
sera appel qu si on a besion de l’objet.
voir le code dans Cinfty.cpp
Pour finir, utilsation de bison / yacc pour definir a gramme et utilse de l’algebre de function
pour genéner a code intermediare (exp_simple.ypp (calculette simple) , un petit language dans exp.ypp
avec l’algebre de fonction definri dans Expr.hpp , un petit exemple de programme executabale est
dans lg.txt.
Cours Jeudi F. Hecht
dans le dossier glplot
Example d’utilsation du petit langage de mecredi pour afin une fonction via
ce langage utlisateur voir glplot/glplot-fexp.cpp
uun autre methode en utilisant le compilateur
voir le script glplot/glplot_exp
dans le dossier install-soft
explication de la procedure d’installation de logiceil.
test sur le logiciel gsl de GNU.
dans le dossier autodiff
Pour finir un petit idee de methode de différencietion automatique direct.
voir node de cote.
Semaine 12) du 24 nov. au 28 nov.
Cours de Mercredi, X. Claeys
Construire un site web.
Cours Jeudi X. Claeys
===========================================================================
Le mercredi 26 Novembre (accompagné de l'archive a télécharger à l'adresse:
https://www.ljll.math.upmc.fr/~claeys/MM009/cours-26-11-2014.zip
===========================================================================
Rudiments de HTML
* Structure HTML d'une page web
* Principe des balises
* Balises classiques:
<h1>, <p>, <div>
* Listes: <ul>, <ol>, <li>
* Tableaux: <table>, <tr>, <td>, <th>
* Placements des images dans une page
* Feuilles de style css
* Identificateurs
* dimensionnement et placement des blocs
===================================================================
Le jeudi 22 Novembre (accompagné de l'archive ss-cours-20-11-2014.zip)
===================================================================
Introduction à la meta-programmation en template