### CSE101 - Computer Programming (2022-2023)

Computer programming (CSE101) introduces
students (with or without previous
programming experience) to the fundamentals
of computer programming
in Python, with applications across the
sciences. In this course, students will
explore fundamental algorithms and data
structures, up to and including binary
trees, using a mixture of procedural,
recursive, and object-oriented techniques.
Upon completion of this course, students
will have a solid foundation in the culture
and practice of modern programming,
and the basic skills to solve real-world
problems using efficient, well-written programs
and open-source tools. These foundations
will be extended and completed
in CSE 102 and CSE 103.

Computer programming (CSE101) introduces students (with or without previous programming experience) to the fundamentals of computer programming in Python, with applications across the sciences. In this course, students will explore fundamental algorithms and data structures, up to and including binary trees, using a mixture of procedural, recursive, and object-oriented techniques. Upon completion of this course, students will have a solid foundation in the culture and practice of modern programming, and the basic skills to solve real-world problems using efficient, well-written programs and open-source tools.  These foundations will be extended and completed in CSE102 and CSE103.

### CSE102 - Computer Programming (2022-2023)

the continuation of the previous semester’s
course (CSE101). We will continue
to lay the foundations of modern computer
science, while developing more
sophisticated programming techniques
in Python. At the end of this course,
students will have the fundamental analytical
and programming skills to solve
everyday problems in the sciences more
efficiently and effectively. They will also
be prepared to continue learning other
and the theoretical foundations of computer
science itself.

### CSE103 - Introduction to Algorithms (2022-2023)

An algorithm is a sequence of instructions that allows us to solve a problem using a finite number of steps.  As such, algorithms are the procedures that we use to “compute”. We study algorithms to know what can actually be computed, in theory and in practice, and to find out how efficiently it can be done.

Introduction to Algorithms (CSE103) is an initiation into the art and science of algorithms.  This course will train students in how to think about algorithms, how to solve a wide range of problems by means of a number of algorithmic techniques, how to rigorously compare different algorithms and predict their performance, and how it is possible to formally prove that a program implementing an algorithm is correct.

### CSE104 - Web Programming (2022-2023)

Web Programming (CSE 104) est une introduction aux langages, outils, et technique spécifiques au développement d'applications web. Le cours est orienté fortement sur la pratique de la programmation, avec une focalisation sur les bases de HTML/CSS, le langage JavaScript, ainsi qu'une introduction à la programmation sur serveur avec PHP.
En suivant ce cours, les étudiants acquièrent une compréhension solide sur la construction de site web modernes, dynamique, et "responsive", en suivant les standards actuels. A la fin du cours, les étudiants sont en mesure de programmer leur propres sites web dynamiques à partir de "zéro" et peuvent présenter un exemple de projet complet qu'ils auront réalisés.

Web Programming (CSE 104) introduces the languages, tools, and techniques specific to develop web-based applications. This is a hands-on practical course focusing on HTML/CSS and JavaScript language, as well as introducing server programming with PHP.
In following this course, students will develop a solid understanding of contemporary, dynamic and responsive website development following the current standards. At the end of the course, students will be able to program from scratch their own dynamic website, and will be able to demonstrate their ability through a project they will be developing.