.. 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 ` .. + 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