.. index:: schedule .. _`sec:organization`: Organization ============ This course is about computer science and artificial intelligence. The main topics are: + python programming tools and methods (~16h) + algorithmic (~16h) focussed on graphs and search problems + deep learning basics (~16h) focussed on forward neural networks with physical informed net applications + reinforcement learning (~16h) focused on Markov decision processes The goal is to give you the fundamentals to build on, these subjects can not be covered in depth in only few hours. Schedule ======== +----------------------------------------------------------+-------------------------------------+------------------------------------+ | TOOLS & METHODS | session | duration | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | course ojectives, general information | 1 | 0.5 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | uv | | 0.5 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | vscode | | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | basics | | 2 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | profiling | 2 | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | testing | | 2 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | useful modules | | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | useful modules | 3 | 2 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | type hints | | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | git | | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | ALGORITHMS | session | duration | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | complexity | 4 | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | recursion | | 3 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | recursion | 5 | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | divide & conquer | | 3 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | dynamic programming | 6 | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | complexity | 7 | 1 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | graphs | | 3 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | ARTIFICIAL INTELLIGENCE | session | duration | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | neural networks | 8-9 | 8 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | physics informed neural networks | 10-11 | 8 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | state models | 12 | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | Markov decision processes | 13 | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | reinforcement learning | 14-15 | 8 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | OTHER | session | duration | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | projects | 1st 1/2 group | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | documentation + lose ends | 2nd 1/2 group | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ | student presentations | 16 | 4 | +----------------------------------------------------------+-------------------------------------+------------------------------------+ In addition to all the non listed demos, below the exercise list (few at the beginning, a lot later on): TOOLS & METHODS Python built-in types + :ref:`student grade data type ` + :ref:`project group data type ` Functions + :ref:`bank account function ` Profiling + :ref:`profiling data size ` + :ref:`memory usage ` Testing: + :ref:`fixture ` + :ref:`project assignment app ` + :ref:`test assignment algorithm ` + :ref:`type of testing ` Useful modules: + :ref:`decorator ` + :ref:`wraps ` + :ref:`cache ` + :ref:`defaultdict ` + :ref:`heapq ` + :ref:`itertools ` Type hints: + :ref:`abstract type first ` + :ref:`abstract type second ` + :ref:`abstract type third ` Protocols: + :ref:`protocol ` Aliases: + :ref:`type alias first ` + :ref:`type alias second ` + :ref:`new type ` ALGORITHMIC Complexity: + :ref:`Matrix product complexity ` + :ref:`Check uniqueness complexity ` + :ref:`Upper triangular system solving complexity ` + :ref:`Fairest assignment complexity ` Recursion: + :ref:`Factorial ` + :ref:`Horner polynomial evaluation ` + :ref:`Laplace determinant ` + :ref:`Permutations ` + :ref:`Cartesian product ` Divide & conquer: + :ref:`Quicksort ` + :ref:`Merge sort ` + :ref:`Bisection insertion ` Dynamic programming: + :ref:`Length of the longest common subsequence ` + :ref:`Longest non-decreasing subsequence ` Graphs: + :ref:`Graph structure ` + :ref:`Graph transpose ` + :ref:`Graph traversal ` + :ref:`Graph Depth First recursive and iterative ` + :ref:`Graph Breadth First and Uniform Cost ` + :ref:`Graph Uniform Cost Search ` + :ref:`Shortest path in DAG ` + :ref:`Topological order ` ARTIFICIAL INTELLIGENCE State models: + :ref:`Magic tram state problem ` + :ref:`Swamp isle state problem ` Markov decision processes: + :ref:`MDP graph (game) ` + :ref:`MDP types/structures ` + :ref:`Expectation ` + :ref:`MDP value (game) ` + :ref:`MDP policy evaluation (game) ` + :ref:`MDP value iteration (game) ` + :ref:`MDP example game ` + :ref:`MDP example magic tram ` + :ref:`MDP example swamp isle ` Reinforcement learning: + :ref:`model-based Monte-Carlo (game) ` + :ref:`model-free Monte-Carlo (game) ` + :ref:`sarsa (game) ` + :ref:`q-learning (game) ` + :ref:`Environment in reinforcement learning ` + :ref:`Reinforcement learning algorithms ` + :ref:`Reinforcement leaning magic tram ` + :ref:`Reinforcement leaning swamp isle ` Forward Neural Networks: + :ref:`Examples regression and multi-class classification ` + :ref:`Number of parameters in a FNN ` + :ref:`Activation functions ` + :ref:`Accuracy evaluation ` + :ref:`Output derivative ` + :ref:`Numpy basics ` + :ref:`Neural network jacobian ` + :ref:`Back-propagation and gradient descent ` + :ref:`FNN example R to R <`ex:ex_fnn_R_to_R`>` Physics Informed Neural Networks: + :ref:`Unary computation graph ` + :ref:`Binary (division) computation graph ` + :ref:`First derivative automatic differentiation ` + :ref:`Higher order derivative automatic differentiation ` .. + tools and methods 1 & 2: :ref:`coding environment `, :ref:`package management `, :ref:`python basics ` .. + tools and methods 3 & algorithmic 1: profiling & complexity .. + tools and methods 4: testing .. + algorithmic 1: recursion .. + algorithmic 2: divide & conquer .. + tools and methods 5 & 6: essential standard modules .. + algorithmic 3 & 4: graphs .. + tools and methods 7: type hints and git .. + algorithmic 5 & 6 & 7: dynamic programming .. + tools and methods 8: documentation