# Tronc CommunINF - Computer Science - S5-S6

Director: Alexandre SAIDI
6 ECTS

## Introduction

Technological advances have enabled the emergence of new computer science professions in the fields of artificial intelligence, data science, web technology, cybersecurity, networks, computer graphics, formal methods and 'optimization. The objective of the department Mathematics-Informatics (MI) is to provide future graduates with the fundamental knowledge. Present at all levels in society, the economy or science, this discipline must be mastered by any engineer or researcher, whatever his field. The department relies on its LIRIS laboratory, whose teams cover almost all current IT activities.

Within the MI department, the Computer Science module of the 1st year aims to provide students with the skills to model a problem, design a resolution algorithm and propose a correct implementation. From problem to solution, this course combines pragmatic, practical and theoretical approaches to computer science. During this course, students will discover the different aspects of designing a program. Through many case studies, we will highlight data structures and algorithms to provide solutions to "IT" problems. Knowing that in Computer Science, there is no single solution, we will have to discover different classes of algorithm and compare them. We will introduce for this purpose the concept of complexity of a program (an estimate of the execution time and the space required).

This module is composed of 3 parts: TC1, TC2 and TC3

## Learning Outcomes

• The TC1 component of this module will address: - Sequential data structures: lists, stacks, queues, vectors, Dictionaries, tuples and sets. - Manipulation of sequential data structures: insertion, search and removal of elements. - Fundamental algorithms: linear and dichotomous searches. - Sorting algorithms. - Binary trees, n-ary - Search algorithms in a tree. - Implementation of balanced trees. - Priority Stack and Queues. - Implementation of graphs. - Graph traversal algorithms. - Dynamic Programming
• The TC2 component of this module will address: - Classes and objects. - Builders and destructors. - Type conversions. - Single inheritance and multiple inheritance. - Aggregation, composition and association (and association class) - Polymorphism. - Exception handling. - Programming by events. - Basic notions of graphic interface design.
• The design of fully functional Web applications requires a set of very specific techniques & technologies, and offers a different vision of computing. This course will provide students wishing to develop their own web application with an introduction to web technologies and related techniques. A website should give the desire and ease of use. As a result, the teaching team will pay particular attention to the design and development of the user interface (the front end) without neglecting the real content and the points of achievement (the back end). The TC3 component of this module introduces the knowledge necessary to design high-performance, attractive and well-referenced websites with an emphasis on web project management, design or HTML5, CSS3 languages ​​as well as JavaScript frameworks.

## Assesment

Final exam et practical activities reports.