Skip to content
Open

f25 #81

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
:target: https://ci.appveyor.com/project/sdpython/teachpyx
:alt: Build Status Windows

.. image:: https://dl.circleci.com/status-badge/img/gh/sdpython/teachpyx/tree/main.svg?style=svg
:target: https://dl.circleci.com/status-badge/redirect/gh/sdpython/teachpyx/tree/main

.. image:: https://badge.fury.io/py/teachpyx.svg
:target: https://pypi.org/project/teachpyx/

Expand Down
4 changes: 3 additions & 1 deletion _doc/articles/2024/2024-11-31-route2024.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _l-feuille-route-ensae-2024:

2024-11-31 : rappel feuille de route 2024
=========================================

Expand Down Expand Up @@ -26,7 +28,7 @@ Fin des classes puis :ref:`les itérateurs <nbl-practice-py-base-classe_iterateu
Séance 4
++++++++

Nous garderons les dames et l'algortithme minimax pour une autre fois peut être.
Nous garderons les dames et l'algorithme minimax pour une autre fois peut être.
Cette séance à propos de la programmation dynamique.
Le premier exercice consiste à déterminer le nombre minimal de pièces
de monnaie pour écrire un montant et de retrouver la séquence minimale
Expand Down
70 changes: 70 additions & 0 deletions _doc/articles/2025/2025-09-03-ensae.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
2025-09-03 : ENSAE
==================

**Notions à maîtriser**

* éléments de bases du langages (boucles, listes, tests, fonctions)
* classes (attributes, méthodes, opérateurs, héritages)
* graphes, arbre
* numpy (opérations standard, broadcasting)
* format de données (JSON, XML, HTML, csv)
* tests unitaires (package unittest, git, pull request)
* algorithmes
* tri fusion
* recherche dichotomique
* graphes (composantes connexes, Kruskal, ...)
* programmation dynamique (chemin plus court dans un graphe, distance d'édition)
* problème NP-complet tels que le voyageur de commerce

**Notions non abordées**

Elles le seront en seconde année et non en première année : manipulation de données, pandas, machine learning.

**Evaluation**

1 TD noté. Les classes seront abordées et un problème algorithmique.
Voir aussi les précédents énoncés : :ref:`l-exams`.

**Ressources**

* Ce site : `sdpython.github.io/doc/teachpyx/dev/ <https://sdpython.github.io/doc/teachpyx/dev/>`_
* :ref:`l-book-python`
* exercices sur le langage :ref:`l-python`
* exercices sur des algortihmes :ref:`l-algo`
* examens passés :ref:`l-exams`
* :ref:`Plan suivi en 2023 <l-feuille-route-2023>`
* `Des aspects plus mathématiques d'algorithmes <https://sdpython.github.io/doc/mlstatpy/dev/>`_

**Problème**

Comment écrire un algorithme capable de créer une grille de
`sudoku <https://en.wikipedia.org/wiki/Sudoku>`_
ou de `yakazu <https://yakazu-gratuit.fr/academie/regles-du-yakazu/>`_ ?

**Getting Started**

* `cheat sheet python <https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf>`_
* `Anaconda <https://www.anaconda.com/>`_,
`miniconda <https://docs.conda.io/projects/miniconda/en/latest/>`_,
`mamba <https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html>`_
* `Visual Studio Code <https://code.visualstudio.com/>`_
* `git <https://git-scm.com/>`_, `github <https://github.com/>`_
* `notebook <https://jupyter.org/>`_

**Sujets connexes**

* Open source et économie du logiciel...
* Ingéniérie logicielle ou comment produire un logiciel fiable en collaboration...
* Notion de `test unitaire <https://fr.wikipedia.org/wiki/Test_unitaire>`_,
`intégration continue <https://fr.wikipedia.org/wiki/Int%C3%A9gration_continue>`_.

**Demain**

* Intelligence artificielle et puissance de calcul, NVidia
* Objets connectés...
* Quantique...

**Feuilles de routes**

* :ref:`l-feuille-route-ensae-2024`
* :ref:`l-feuille-route-ensae-2025`
72 changes: 72 additions & 0 deletions _doc/articles/2025/2025-11-31-route2025.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
.. _l-feuille-route-ensae-2025:

2025-11-31 : rappel feuille de route 2025
=========================================

Le plan des séances est parfois changé après que celles-ci ont eu lieu.

Suggestions de sujets pour les séances.

Séance 1
++++++++

:ref:`Prises aux dames <nbl-practice-py-base-dame_prise>`

Séance 2
++++++++

Tests unitaires et classes toujours avec les dames

:ref:`Prises aux dames <nbl-practice-py-base-dame_prise>`

Séance 3
++++++++

:ref:`classes pour représenter un graphe <nbl-practice-py-base-classe_tree>`

Fin des classes puis :ref:`les itérateurs <nbl-practice-py-base-classe_iterateur>` et
:ref:`numpy broadcast <nbl-c_data-numpy_broadcast>`.

Séance 4
++++++++

:ref:`Distance d'édition <nbl-practice-years-2023-editdist>`.

A propos de la distance d'édition, voir aussi
:ref:`Distance d'édition <nbl-practice-algo-base-exercice_edit_distance>` ou encore
:ref:`Distance entre deux mots de même longueur et tests unitaires <nbl-practice-algo-base-exercice_editdist>`.

Séance 5
++++++++

* :ref:`burrowswheelerrst`
* :ref:`Code de Vigenère <nbl-practice-algo-compose-vigenere>`

Séance 6
++++++++

* :ref:`Tracer une pyramide bigarrée <nbl-practice-tds-base-pyramide_bigarree>`
* :ref:`Expressions régulières <nbl-practice-py-base-exercice_regex>`,
:ref:`Modules, fichiers, expression régulières <nbl-practice-tds-base-module_file_regex>`
* :ref:`Le voyageur de commerce <nbl-practice-algo-base-tsp_simplifie>` ou
`problème du sac à dos <https://fr.wikipedia.org/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos>`_

Evocation de la :ref:`Recherche à base de préfixes <nbl-practice-years-2023-prefix_search>`
en terme algorithmique.

Séance 7
++++++++

* :ref:`Classe et héritage <nbl-practice-py-base-classe_user_p>`

Séance 8
++++++++

* :ref:`Optimisation de la note moyenne <nbl-practice-years-2023-bareme_note_optimisation>`
* :ref:`Pivot de Gauss <nbl-practice-years-2023-pivot_gauss>`,
cet algorithme est la première étage pour inverser une matrice

TD noté 1h30 en seconde partie.
Classes et un algorithme.
Enoncés des années précédentes :
:ref:`l-exams`.
2 changes: 2 additions & 0 deletions _doc/articles/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ Ou *blog*.
:caption: 2025
:maxdepth: 1

2025/2025-11-31-route2025
2025/2025-09-03-ensae
2025/2025-04-01-route2025
2025/2025-03-01-route2025
2025/2025-01-31-local_llm
Expand Down
3 changes: 0 additions & 3 deletions _doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,6 @@ Le contenu est sur `github <https://github.com/sdpython/teachpyx/>`_.
:target: https://ci.appveyor.com/project/sdpython/teachpyx
:alt: Build Status Windows

.. image:: https://dl.circleci.com/status-badge/img/gh/sdpython/teachpyx/tree/main.svg?style=svg
:target: https://dl.circleci.com/status-badge/redirect/gh/sdpython/teachpyx/tree/main

.. image:: https://badge.fury.io/py/teachpyx.svg
:target: https://pypi.org/project/teachpyx/

Expand Down
2 changes: 1 addition & 1 deletion _unittests/ut_examples/test_numpysex.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def test_numpys(self):

def test_numpys_types(self):
dt = numpy_types()
self.assertEqual(len(dt), 19)
self.assertEqual(len(dt), 17)


if __name__ == "__main__":
Expand Down
3 changes: 1 addition & 2 deletions _unittests/ut_faq/test_faq_numpy.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ class TestFaqNumpy(unittest.TestCase):
def test_missing(self):
pi = math.pi
fpi = to_float32(pi)
if fpi == pi:
raise AssertionError(f"not possible {pi} ? {fpi}")
assert abs(fpi - pi) < 1e-7, f"not possible {pi} ? {fpi}"


if __name__ == "__main__":
Expand Down
2 changes: 0 additions & 2 deletions teachpyx/examples/numpysex.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,9 @@ def numpy_types():
numpy.uint16,
numpy.uint32,
numpy.uint64,
numpy.float_,
numpy.float16,
numpy.float32,
numpy.float64,
numpy.complex_,
numpy.complex64,
numpy.complex128,
]
2 changes: 1 addition & 1 deletion teachpyx/tools/profiling.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ def add_rows(rows, d):
if verbose and logf is not None:
logf(
"[pstats] %s=%r"
% ((clean_text(k[0].replace("\\", "/")),) + k[1:], v)
% (clean_text(k[0].replace("\\", "/")), (*k[1:], v))
)
if len(v) < 5:
continue
Expand Down