Skip to content

Commit 01471bb

Browse files
authored
Move notebooks (#36)
* Move notebooks * fix url * index * fix conf * doc * add plan * fix doc * fix issues * conf * fix minor things
1 parent 421cb58 commit 01471bb

35 files changed

+808
-449
lines changed

CHANGELOGS.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
Change Logs
22
===========
33

4-
0.3.0
4+
0.3.1
55
+++++
66

7-
* :pr:`24`: ajout d'exercices venant de sdpython/ensae_teaching_cs
7+
* :pr:`24`, :pr:`25`, :pr:`26`, :pr:`27`, :pr:`28`, :pr:`29`,
8+
:pr:`30`, :pr:`31`, :pr:`32`, :pr:`33`, :pr:`34`, :pr:`35`,
9+
:pr:`36`: ajout d'exercices venant de sdpython/ensae_teaching_cs
810
* :pr:`22`: ajout d'un exemple sur le Mathador
911
* :pr:`21`: refactoring

_doc/api/tools.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,9 @@ profiling
2626

2727
.. automodule:: teachpyx.tools.profiling
2828
:members:
29+
30+
RenderJsDot
31+
+++++++++++
32+
33+
.. autoclass:: teachpyx.tools.nb_helpers.RenderJsDot
34+
:members:

_doc/articles/2023-09-06-ensae.rst

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
2023-09-06 : ENSAE
2+
==================
3+
4+
**Notions à maîtriser**
5+
6+
* éléments de bases du langages (boucles, listes, tests, fonctions)
7+
* classes (attributes, méthodes, opérateurs, héritages)
8+
* graphes, arbre
9+
* numpy (opérations standard, broadcasting)
10+
* format de données (JSON, XML, HTML, csv)
11+
* tests unitaires (package unittest, git, pull request)
12+
* algorithmes
13+
* tri fusion
14+
* recherche dichotomique
15+
* graphes (composantes connexes, Kruskal)
16+
* programmation dynamique (chemin plus court dans un graphe, distance d'édition)
17+
* problème NP-complet tels que le voyageur de commerce
18+
19+
**Notions non abordées**
20+
21+
Elles le seront en seconde année et non en première année : manipulation de données, pandas, machine learning.
22+
23+
**Evaluation**
24+
25+
1 TD noté. Les classes seront abordées et un problème algorithmique.
26+
Voir aussi les précédents énoncés : :ref:`l-exams`.
27+
28+
**Ressources**
29+
30+
* Ce site : `sdpython.github.io/doc/teachpyx/dev/ <https://sdpython.github.io/doc/teachpyx/dev/>`_
31+
* :ref:`l-book-python`
32+
* exercices sur le langage :ref:`l-python`
33+
* exercices sur des algortihmes :ref:`l-algo`
34+
* examens passés :ref:`l-exams`
35+
* Site plus tout-à-fait maintenu `www.xavierdupre.fr <http://www.xavierdupre.fr>`_
36+
* `Plan suivi en 2022
37+
<http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx3/questions/route_1A_2022.html#seance-1-7-9-introduction-dictionnaire>`_
38+
* `Des aspects plus mathématiques d'algorithmes <https://sdpython.github.io/doc/mlstatpy/dev/>`_

_doc/articles/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Collections d'articles inclassables
55

66
.. toctree::
77

8+
2023-09-06-ensae
89
2023-08-09-hermionne
910
2023-08-03-code-jam
1011
2022-12-07-cartopy

_doc/c_data/nb_array.ipynb

Lines changed: 13 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -846,14 +846,14 @@
846846
{
847847
"cell_type": "markdown",
848848
"metadata": {},
849-
"source": [
850-
"## Exercice 1 : Echiquier et Crible d'Erathosthène"
851-
]
849+
"source": []
852850
},
853851
{
854852
"cell_type": "markdown",
855853
"metadata": {},
856854
"source": [
855+
"## Exercice 1 : Echiquier et Crible d'Erathosthène\n",
856+
"\n",
857857
"* Exercice 1-A Echiquier: Créer une matrice échiquier (des 1 et des 0 alternés) de taille 8x8, de deux façons différentes\n",
858858
" * en vous servant de slices \n",
859859
" * en vous servant de la fonction [tile](http://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html#numpy.tile)\n",
@@ -2298,29 +2298,17 @@
22982298
"* [Un tutoriel bien fait et très complet sur numpy](http://gael-varoquaux.info/scipy-lecture-notes/intro/numpy/index.html). L'un des auteurs n'est autre que Gaël Varoquaux qui sera présent pour la séance 3. Voir aussi la [partie optimisation](http://gael-varoquaux.info/scipy-lecture-notes/advanced/mathematical_optimization/index.html) "
22992299
]
23002300
},
2301-
{
2302-
"cell_type": "markdown",
2303-
"metadata": {
2304-
"collapsed": true
2305-
},
2306-
"source": [
2307-
"## Eléments de réponses pour les exercices"
2308-
]
2309-
},
2310-
{
2311-
"cell_type": "markdown",
2312-
"metadata": {},
2313-
"source": [
2314-
"### Exercice 1 (Echiquier et Crible d'Erathosthene)"
2315-
]
2316-
},
23172301
{
23182302
"cell_type": "markdown",
23192303
"metadata": {},
23202304
"source": [
2305+
"## Eléments de réponses pour les exercices\n",
2306+
"\n",
2307+
"### Exercice 1 (Echiquier et Crible d'Erathosthene)\n",
2308+
"\n",
23212309
"* Exercice 1-A Echiquier: Créer une matrice échiquier (des 1 et des 0 alternés) de taille 8x8, de deux façons différentes\n",
23222310
" * en vous servant de slices \n",
2323-
" * en vous servant de la fonction [tile](http://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html#numpy.tile)\n"
2311+
" * en vous servant de la fonction [tile](http://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html#numpy.tile)"
23242312
]
23252313
},
23262314
{
@@ -2509,13 +2497,8 @@
25092497
"cell_type": "markdown",
25102498
"metadata": {},
25112499
"source": [
2512-
"### Exercice 2 (marches aléatoires)"
2513-
]
2514-
},
2515-
{
2516-
"cell_type": "markdown",
2517-
"metadata": {},
2518-
"source": [
2500+
"### Exercice 2 (marches aléatoires)\n",
2501+
"\n",
25192502
"Simulez (**en une seule fois!**) 10000 marches aléatoires de taille 1000, partant de 0 et de pas +1 ou -1 équiprobables \n",
25202503
"\n",
25212504
"* Faites un graphe représentant la racine de la moyenne des carrés des positions (=cumul des pas à un instant donné) en fonction du temps\n",
@@ -2621,7 +2604,7 @@
26212604
"# we use argmax on the boolean array to get the first True value\n",
26222605
"first_hits = (np.abs(walks[hits_the_bound, :]) > bound).argmax(axis=1)\n",
26232606
"titles.append(f\"Mean crossing time:{first_hits.mean():1.2f}\")\n",
2624-
"ax[1].set_title(\"\\n\".join(titles))"
2607+
"ax[1].set_title(\"\\n\".join(titles));"
26252608
]
26262609
},
26272610
{
@@ -2667,13 +2650,8 @@
26672650
"cell_type": "markdown",
26682651
"metadata": {},
26692652
"source": [
2670-
"### Exercice 4 (simulation, régression, estimation par maximisation de la vraisemblance)"
2671-
]
2672-
},
2673-
{
2674-
"cell_type": "markdown",
2675-
"metadata": {},
2676-
"source": [
2653+
"### Exercice 4 (simulation, régression, estimation par maximisation de la vraisemblance)\n",
2654+
"\n",
26772655
"* On commence par simuler la variable $Y = 3 X_1 -2 X_2 +2 + \\epsilon$ où $X_1,X_2,\\epsilon \\sim \\mathcal{N}(0,1)$ \n",
26782656
"* On souhaite ensuite retrouver les coefficients dans la [régression linéaire](http://fr.wikipedia.org/wiki/R%C3%A9gression_lin%C3%A9aire) de $Y$ sur $X_1$ et $X_2$ dans un modèle avec constante, par la méthode des Moindres Carrés Ordinaires. On rappelle que la forme matricielle de l'estimateur des MCO est $\\hat{\\beta} = (X'X)^{-1}X'Y$\n",
26792657
"* Enfin, $Y$ étant normale, on souhaite estimer ses paramètres par maximisation de vraisemblance:\n",

_doc/c_resume/conseil_programmes.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,13 @@ On écrit la fonction qui vérifie cela.
6666

6767
::
6868

69-
def somme_double (liste) :
69+
def somme_double(liste) :
7070
return 1.0 * sum(liste)
7171

72-
def test_somme_double () :
72+
def test_somme_double() :
7373
y = somme_double([ 1 ]) / 2
74-
if y == 0 : raise Exception ("valeur > 0 attendue")
74+
if y == 0:
75+
raise Exception("valeur > 0 attendue")
7576

7677
if __name__ == "__main__" :
7778
test_somme_double()
@@ -89,7 +90,8 @@ s'attend à ce qu'elle retourne ce type de résultat.
8990
File "conseil.py", line 10, in <module>
9091
test_somme_double()
9192
File "conseil.py", line 7, in test_somme_double
92-
if y == 0 : raise Exception ("valeur > 0 attendue")
93+
if y == 0:
94+
raise Exception("valeur > 0 attendue")
9395
Exception: valeur > 0 attendue
9496

9597
Trucs et astuces

0 commit comments

Comments
 (0)