Ce cours est une introduction aux systèmes complexes. Nous présenterons certains aspects généraux des systèmes complexes au travers d'exemples choisis et introduirons, selon les besoins, les nouvelles notions mathématiques nécessaires. Chaque sujet fera l'objet d'une introduction sous forme de cours, suivi de séances d'exercices de programmation afin de mettre en application les notions théoriques. Le but de ce cours est d'introduire les systèmes complexes "par la pratique", afin que les étudiant-es puissent s'approprier grâce à l'outil informatique des concepts fondamentaux tels que : complexité, émergence, auto-organisation.