The program is organized in such a way that the student acquires the fundamental skills and concepts of computer science in the required courses. A good range of optional courses spread over two pathways first allows the student to specialize either in software development or the development of Web and mobile applications and also to become familiar with more advanced topics such as graphics, image processing, artificial intelligence, distributed architectures.