Curriculum

Curriculum


text

Curriculum - Computer Science



MTH-1023C - Calculus I
Ce cours permet de comprendre les principes de base du calcul. Il introduit les principales propriétés des droites réelles. Il étudie les limites et la convergence des suites numériques et des fonctions algébriques et transcendantes, leurs limites, leur continuité et leurs dérivées. Il inclut les théorèmes fondamentaux du calcul et étudie les équations différentielles du premier et du

MTH-1013C - Fundamental Structures
This course provides an understanding of the basic logic, set theory basics, relations and their applications in computer science, groups, and their main properties, arithmetic in Z set, polynomials, and rational fractions.

PHY-1012C - Electricity I
This course explores electrical quantities such as voltage, electric current, resistance, power, energy, and their measurement in electrical circuits using Kirchhoff's laws: Ohm's law, mesh law, and knot law. It also covers circuit analysis theorems, including the superposition theorem, and Millman's and Thevenin's models, applied to both passive and active dipoles. 

PHY-1022C - Electromagnetism
This course covers fundamental concepts in electrostatics and electromagnetism. Key topics include Coulomb's law, charge distribution, electrostatic fields and potentials, energy of charge systems, balanced conductors, and capacitors. In electromagnetism, the course explores magnetic field properties, Ampere's theorem, Faraday's law, and Lenz's law.

INF-1022C - Algorithmic and programming 1
This course introduces basic concepts in algorithmics, including defining computer problems, and the role and structure of algorithms. It covers operations and types, such as arithmetic operations, reading and writing, and type presentation. The course also includes control structures (conditional, repetitive, and selective), arrays (structure, declaration, search, and sorting algorithms), and functions.

INF-1012C - Fundamentals of computer science
This course covers the basic concepts of computer science, including the components and hardware architecture of computers, languages (binary, assembly, and high-level), basic software (operating systems) and MS-DOS commands, application software, as well as the relationships between these components.

COM-1011C - French
This course covers the use of adjectives, adverbs, normalization, the use of stative verbs and action verbs in a structured sentence, and punctuation.

COM-1021C - English 1
This course provides a comprehensive overview of vocabulary and grammar rules. It emphasizes reading, listening, as well as both oral and written expression in English. 

GEN-1011C - History of science
This course provides an introduction to scientific philosophy, focusing on the evolution of science according to the approaches of Karl Popper and Thomas Kuhn. It also introduces mathematics and physics in a historical context, based on the epistemological approaches of the Greeks, Popper, and Bachelard.  It presents the history of computing, from programming to artificial intelligence.

GEN-1011C - History of science
This course provides an introduction to scientific philosophy, focusing on the evolution of science according to the approaches of Karl Popper and Thomas Kuhn. It also introduces mathematics and physics in a historical context, based on the epistemological approaches of the Greeks, Popper, and Bachelard.  It presents the history of computing, from programming to artificial intelligence.

MTH-1043C - Calculus II
This course provides an understanding of Taylor's expansion of numerical functions. Introduces the main properties of Riemann's integrals. Studies limits, properties, and the convergence of improper integrals. It includes the study of functions of several real variables, their limits, continuity, and differentiability.


        MTH-1033C - Algebra I
        This course introduces vector space and subspace, the use of matrix techniques to solve linear systems, the properties of a finite family of vectors (independence, spanning sets, and bases), dimension calculation, and natural transformations (homomorphisms) between finite-dimensional vector spaces.


              PHY-1032C - Electricity II
              This course provides the temporal and complex representation needed to calculate the parameters of AC electrical circuits, including current, voltage, and power. It covers the study of electrical sources and energy transportation components.


                    PHY-1042C - Lights and waves
                    The objective of this course is to master the basic concepts of light, including its dual nature as both a wave and a particle, the laws of refraction and reflection, and their applications in fiber optics, as well as the wave behavior of light, including interference and diffraction.


                          INF-1033C - Algorithmic and programming II
                          This course introduces the concepts of compound types (arrays, structures, array sorting), pointers (pointer operations, memory allocation, pointers and arrays, structures and pointers, double pointers), functions (prototyping, passing parameters by value and by address, program decomposition), structures, files, and modular programming.


                                INF-1042C - Computer architecture I
                                This course introduces the concepts of information representation (numerical systems, arithmetic operations, representation of signed numbers, character code), combinatorial logic (basic logic functions, representation of logical functions, simplification of logic functions, combinatorial logic circuits), and sequential logic (flip-flops, recorders, counters). 


                                      COM-1031C - French II
                                      This course explains rational, emotional, and compelling arguments, techniques of concession and refutation, and the expression of logical relations.


                                            COM-1041C - English II
                                            This course focuses on the comprehension of various materials, including articles, reports, news, technical materials, and data sheets. It provides training in reading and listening, and exercises on grammar principles. The course also includes vocabulary building, acquisition and practice of idiomatic language, and techniques for creative and professional writing practice. 


                                                  GEN-1021C - Digital and society
                                                  This course helps students understand the impact of digital technology on modern society, identify key applications of digital data, and assess the advantages and disadvantages of digital technology in daily life.


                                                        MTH-2053C - Algebra II
                                                        This course provides an understanding of the reduction of endomorphisms. Generalize the traditional geometry. Introduces the notion of the scalar product, norms, and distances. It includes the study of the orthogonality of the quadratic forms and the Euclidian spaces.


                                                              MTH-2063C - Numerical analysis
                                                              This course introduces the machine representation of numbers and explains the principles of linear algebra. It covers numerical methods for solving linear and non-linear equations, and presents Lagrangian interpolation along with numerical integration techniques.


                                                                    PHY-2052C - Transmission Lines
                                                                    This course provides a comprehensive study of electromagnetic wave propagation, focusing on Maxwell's equations and their practical applications. It extensively covers transmission lines, including their modeling, propagation characteristics, impedance matching, and reflection analysis. 


                                                                          PHY-2061C - Analog Electronic
                                                                          This course presents the diode and transistor operation and characteristics necessary for the analog functions design. Introduces bipolar transistor polarization in linear mode and in commutation. Studies operational amplifier in linear and non-linear mode. Analyzes and sizes harmonic and relaxation oscillators.


                                                                                INF-2062C - Computer architecture II
                                                                                This course aims to explain the logical foundations of computer systems and how they operate. It analyzes the characteristics of computer architectures and introduces programming based on assembly language.


                                                                                      INF-2052C - Algorithmic and programming III
                                                                                      This course aims to explain algorithm complexity for designing efficient algorithms and to master modular programming concepts and file manipulation in C. It also covers the difference between static and dynamic memory allocation.


                                                                                            INF-2072C - Introduction to networks
                                                                                            This course covers the fundamental components of the Internet. It introduces standard diagnostic tools, network application development, and typical network designs and configurations. 


                                                                                                  COM-2051C - English III
                                                                                                  This course focuses on the comprehension of various materials, including articles, reports, news, technical materials, and data sheets. It provides training in reading and listening, and exercises on grammar principles. The course also includes vocabulary building, acquisition and practice of idiomatic language, and techniques for creative and professional writing practice. 


                                                                                                        GEN-2031C - Business Knowledge
                                                                                                        This course covers several themes: the enterprise and its micro-economic environment, an introduction to human resources management, and management tools and methods. This course covers current business, accounting, and financial issues faced by enterprises and markets in Morocco. It also addresses the major trends that characterize the Moroccan economy.


                                                                                                              GEN-2041C - Ethics and professional responsibility
                                                                                                              This course introduces the concept of accountability and its importance in professional settings. It explores various forms of accountability, such as civic, moral, civil, and penal. It explains the responsibilities of employees, managers, and companies, as well as the importance of adopting responsible professional behavior.


                                                                                                                    MTH-2073C - Calculus III
                                                                                                                    This course aims to master the calculation of double and triple integrals, as well as their applications to calculate areas and volumes. The course also deals with the continuity and the differentiability of the integrals of a parameter. The last part is devoted to the convergence criteria for the numerical series, as well as the series of functions.


                                                                                                                          MTH-2083C - Probabilities and statistics
                                                                                                                          This course introduces probability and statistics theory. It focuses on probability space, conditional probability, and independence (Bayes). It introduces the notions of random variable, expectation, variance, generating function, and examples of usual laws (uniform, Bernoulli, binomial, geometric, Poisson, Normal, Exponential). It tackles inferential statistics, namely, confidence interval and hypothesis.


                                                                                                                                PHY-2071C - Signals and systems
                                                                                                                                This course is divided into two parts. The first part is dedicated to the processing and analysis of signals (sampling, quantization, conversion, and the Z-transform), and the second part is devoted to studying the performance of continuous linear systems using frequency and time domain analysis.


                                                                                                                                      PHY-2081C - Digital electronics
                                                                                                                                      This course presents the main technologies of logic circuits. Provides an understanding of the basic principle and the characteristics of memories. Introduces the architecture and use of programmable components. Studies the functioning of microprocessor and microcontroller


                                                                                                                                            INF-2082C - Introduction to web technologies
                                                                                                                                            The course explains the basics of HTML, CSS, and JavaScript for developing web pages.


                                                                                                                                                  INF-2092C - Introduction to databases
                                                                                                                                                  This course covers the fundamentals of relational algebra and relational databases. It provides a practical introduction to SQL commands, functions, and operators used for storing, retrieving, updating, and displaying data in relational databases. Additionally, it includes an introduction to PHP programming constructs for interacting with relational databases.


                                                                                                                                                        INF-2102C - Operating systems
                                                                                                                                                        The course will cover an introduction to the internal operation of modern operating systems. In particular, the course will cover processes, CPU scheduling, memory management, file systems and shell programming.


                                                                                                                                                              COM-2061C - English IV
                                                                                                                                                              This course focuses on deepening certain grammatical, lexical, and syntactic concepts, as well as assimilating more complex idiomatic expressions.


                                                                                                                                                                    GEN-2051C - Entrepreneurship and innovation management
                                                                                                                                                                    This course essentially covers several main themes: the enterprise and its micro-economic environment, an introduction to human resources management, management tools and methods. This course covers current business, accounting, and financial issues faced by enterprises and markets in Morocco. It also addresses the major trends that characterize the Moroccan economy.


                                                                                                                                                                          GEN-2061C - Health and security at work
                                                                                                                                                                          This course aims to provide knowledge of laws and regulations related to health and safety at work. It raises awareness of workplace health and safety aspects specific to the profession. 


                                                                                                                                                                                INF-3112C - Advanced Databases (oracle)
                                                                                                                                                                                This course introduces the concepts of database management and programming. It builds on the introductory course in databases and includes advanced techniques for storing, retrieving, updating, and displaying data using SQL. Topics covered include functional dependency and normalization, PL/SQL, triggers, views, object-relational modeling, query optimization, storage organization and indexing, transaction processing concepts, and access control.


                                                                                                                                                                                      INF-3131C - Network 1
                                                                                                                                                                                      This course introduces the fundamentals of computer networks, including the evolution of computer networks, network topologies and architecture, and network components and devices. It covers network protocols and communications, network addressing and routing, and data link protocols.


                                                                                                                                                                                            INF-3122C - Switching and routing
                                                                                                                                                                                            This course delves into the complex and vital elements of modern computer networks, covering network design, implementation, management, and optimization, with a primary emphasis on routing and switching technologies.
                                                                                                                                                                                            INF-3152C Object Oriented Programming  JAVA & GUI 2 44 This course provides a basic understanding of object-oriented programming using the Java language and introduces GUI programming.


                                                                                                                                                                                                  INF-3141C - UML
                                                                                                                                                                                                  This course provides an introduction to object-oriented modeling, covering topics such as the importance of modeling, the basics of UML, and modeling static and dynamic views of a computer system.


                                                                                                                                                                                                        INF-3172C - Algorithmics: Principles and fundamentals
                                                                                                                                                                                                        This course covers the fundamentals of Python language,  by presenting the basic Python script (data types and variables), managing conditions and using loops, and manipulating functions and files.


                                                                                                                                                                                                              INF-3161C - Advanced Data Structures
                                                                                                                                                                                                              This course introduces advanced data structures and their basic algorithms, including binary search trees, binary heaps, priority queues, and graphs.


                                                                                                                                                                                                                    MTH-3101C - Introduction to Data Analytics
                                                                                                                                                                                                                    This course covers the basic concepts and techniques of data analysis from both theoretical and practical perspectives. All topics are accompanied by hands-on exercises with implementations of data analysis algorithms using R
                                                                                                                                                                                                                    programming language.


                                                                                                                                                                                                                          MTH-3092C - Operational research
                                                                                                                                                                                                                          This course provides an understanding of modeling by using mathematical programs. Introduces the main properties of linear programming. Studies integer programming and its solving algorithms (Branch and bound and cutting plane). It includes applications specific to transportation and logistics.


                                                                                                                                                                                                                                INF-3202C - Introduction to CyberSecurity
                                                                                                                                                                                                                                The course provides an overview of cyber-security aspects confidentiality integrity availability and traceability to highlight cryptography, network security, software security, and malware defenses. The course gives an understanding of each of these topics while discussing the main strengths and weaknesses of each technology. 


                                                                                                                                                                                                                                      GEN-3081C - Decision making tools
                                                                                                                                                                                                                                      This course covers theoretical knowledge and practical skills for developing managerial decisions based on the application of various methods in a business environment, including the economics study and managerial decision-making process; analysis of the situations requiring decisions; and Study of simple and complex decision-making methods.


                                                                                                                                                                                                                                            GEN-3071C - Design thinking 1
                                                                                                                                                                                                                                            This course aims to present an overview of the design thinking involved at each stage of the design process of an IT project: the methods used to generate and refine creative ideas, the key considerations that help shape them, and the elements of feedback and revision that allow design teams to learn from each piece of work and contribute to future innovations. The course proposes design tools relating to the immersion and empathy phase as well as the analysis phase of the design thinking process


                                                                                                                                                                                                                                                  COM-3071C - English for Engineering I
                                                                                                                                                                                                                                                  The course aims to sharpen students' critical reading skills to better understand and analyze complex written texts on various subjects related to science, business, and academic discussions.


                                                                                                                                                                                                                                                        INF-3212C - Mobile development
                                                                                                                                                                                                                                                        This course focuses on mobile development, covering the Android platform architecture and best practices for developing and deploying native applications using Android Studio. It focuses on UI design, activity lifecycle, data storage, and optimization.


                                                                                                                                                                                                                                                              INF-3261C - Web 1
                                                                                                                                                                                                                                                              This course aims to introduce best practices for developing dynamic web pages using the PHP programming language and Laravel framework. 


                                                                                                                                                                                                                                                                    INF-3222C - Administration and system programming
                                                                                                                                                                                                                                                                    This course provides an in-depth study of system programming concepts, including process management, memory management, file systems, and input/output management. Topics include process synchronization and communication, deadlocks, memory hierarchy, virtual memory, and file system implementation. Emphasis will be placed on proficiency in low-level languages like C, understanding their role in system-level programming, and applying this knowledge to design efficient, reliable, and secure software that interacts closely with hardware components.


                                                                                                                                                                                                                                                                          INF-3231C - Network administration
                                                                                                                                                                                                                                                                          The Network Administration course offers a comprehensive exploration of the principles and practices necessary for managing and maintaining computer networks. The focus is on configuring, managing, and troubleshooting network devices, such as routers and switches, implementing network security measures, and ensuring smooth network operation.


                                                                                                                                                                                                                                                                                INF-3242C - BI & datawarehousing
                                                                                                                                                                                                                                                                                This course explores advanced concepts of Business Intelligence (BI) and Data Warehousing in information systems and decision-making processes. It covers how operational data is used to create data warehouses in the era of big data, applying data mining tools and analytics for insights. Topics include BI strategy, analysis, design, and implementation of BI systems, types of reporting and analytics, enterprise data warehousing, data management systems, decision support systems, knowledge management systems, big data, and data/text mining. Case studies examine application software, web tools, success, limitations, and technical/social issues in BI.


                                                                                                                                                                                                                                                                                      INF-3252C - Language theory and compilation
                                                                                                                                                                                                                                                                                      This course provides an introduction to formal languages and automata theory, covering fundamental concepts such as finite automata, deterministic and non-deterministic finite automata, and regular expressions. It explores the equivalence of different automata models, including those with epsilon transitions, as well as Moore and Mealy machines. The course emphasizes the theoretical foundations necessary for understanding language recognition and the basics of compiler design.


                                                                                                                                                                                                                                                                                            MTH-3112C - Mathematics for engineers II
                                                                                                                                                                                                                                                                                            This course focuses primarily on exact solution methods (for dynamic programming, transportation, assignment, etc.) as well as approximate methods such as tabu search or genetic algorithms. Analysis techniques and software packages will be used to solve the problems faced by business leaders in decision-making environments.


                                                                                                                                                                                                                                                                                                  INF-3272C - Integrated Project I
                                                                                                                                                                                                                                                                                                  This course focuses primarily on the development of software applications, from functional and technical design phases to system implementation. Some software application proposals will be provided by the instructors.


                                                                                                                                                                                                                                                                                                        GEN-3091C - Engineering economics
                                                                                                                                                                                                                                                                                                        This course focuses on helping engineering students make better decisions and solve problems in operations by teaching them economic analysis principles and methods. It aims to assist students in choosing the most economically viable options from various possibilities, aligning closely with microeconomics. 


                                                                                                                                                                                                                                                                                                              GEN-3101C - IT Law
                                                                                                                                                                                                                                                                                                              This course aims to raise students' awareness of legal issues related to computer science. The module consists of: an introduction to the legal system, the Data Protection Act, legal protection of software, and intellectual property.


                                                                                                                                                                                                                                                                                                                    GEN-3111C - Design Thinking 2
                                                                                                                                                                                                                                                                                                                    This element follows design thinking; it will enable students to practice empathy by applying a human-centered approach to design techniques, such as user research, user experience, prototyping, and journey mapping; evaluate group dynamics and improve team performance through tools and processes designed to enhance collaboration and iteration in development; guide teams to leverage a wide range of experiences and professional backgrounds and create a stronger collaborative dynamic to reinforce their approach to innovation.


                                                                                                                                                                                                                                                                                                                          COM-3081C - English for Engineering II
                                                                                                                                                                                                                                                                                                                          The objective of this course is to develop the skills necessary for the TOEFL or TOEIC exam.


                                                                                                                                                                                                                                                                                                                                INF-4302C - Advanced Web Development 
                                                                                                                                                                                                                                                                                                                                This course is designed to deepen the principles and advanced concepts of web development based on JEE technology. It is structured in two parts: the first part focuses on best practices for creating web applications using basic JEE technologies, including applications with server-side page generation and rich applications with dynamic page management. Model/View/Controller will be explored in the context of dynamic web applications, particularly in the Java/J2EE world based on Servlets and JSP/JSTL. The second part covers mastering the basic frameworks of JEE technology for structuring the application using the Struts Framework and automating data persistence and relational object mapping based on the Hibernate Framework.


                                                                                                                                                                                                                                                                                                                                      INF-4522C - Distributed Algorithms and Architectures
                                                                                                                                                                                                                                                                                                                                      This course aims to study the algorithmic techniques and basic principles of distributed algorithms. The module deals with problems raised by distributed systems and their applications (mutual exclusion, distributed election, spanning tree, distributed data management, data transfer protocols, etc.).


                                                                                                                                                                                                                                                                                                                                            INF-4532C - Design Patterns
                                                                                                                                                                                                                                                                                                                                            This course aims to introduce the methods for designing high-quality software applications that are responsive, scalable, reliable, maintainable, and secure. It will involve studying and mastering software patterns, focusing on user interface design, and evaluating software quality.


                                                                                                                                                                                                                                                                                                                                                  INF-4542C - Advanced Software Process
                                                                                                                                                                                                                                                                                                                                                  This course aims to establish the technical foundation of structured models, enabling mastery of tools essential for best practices in software development. It reinforces learning on UML, Java, databases, and project management. The goal is to apply the required methods and technologies in object-oriented development, inspired by the principles of contract-based specification and programming.


                                                                                                                                                                                                                                                                                                                                                        INF-4362C - Internet of Things
                                                                                                                                                                                                                                                                                                                                                        This course allows students to have an in-depth understanding of Internet of Things (IoT) applications. The course will cover all the components of an IoT application from the devices to the Cloud, passing by gateways, edge devices, middlewares, … The students will apply their knowledge in a project by designing a full IoT application using real hardware (Arduino and Raspberry Pis).


                                                                                                                                                                                                                                                                                                                                                              INF-4552C - Integrated Project 2
                                                                                                                                                                                                                                                                                                                                                              This module mainly focuses on developing software applications from functional and technical design phases to the implementation of the system. Some proposals of IT application will be proposed by instructors. Students will have access to two rooms equipped with computer equipment.


                                                                                                                                                                                                                                                                                                                                                                    COM-4091C - English TOEFL
                                                                                                                                                                                                                                                                                                                                                                    The objective of this course is to develop the skills necessary for the TOEFL exam.


                                                                                                                                                                                                                                                                                                                                                                          INF-4282C - Fundamentals of Machine Learning
                                                                                                                                                                                                                                                                                                                                                                          This course provides an in-depth exploration of the mathematical underpinnings of machine learning. Students will engage with core topics such as linear algebra, vector calculus, probability, statistics, and optimization, fostering a rigorous understanding essential for advanced study and application in the field.


                                                                                                                                                                                                                                                                                                                                                                                INF-4292C - NoSQL Databases
                                                                                                                                                                                                                                                                                                                                                                                This course introduces students to the fundamental concepts of NoSQL databases, including their creation, manipulation, and query mechanisms. It provides comprehensive coverage of the four primary types of NoSQL databases: document, KeyValue, column, and graph-oriented databases.


                                                                                                                                                                                                                                                                                                                                                                                      INF-4302C - Advanced Web Development JEE
                                                                                                                                                                                                                                                                                                                                                                                      This course is structured in two parts: the first part focuses on best practices for creating web applications using basic JEE technologies, including applications with server-side page generation and rich applications with dynamic page management. Model/View/Controller will be explored in the context of dynamic web applications, particularly in the Java/J2EE world based on Servlets and JSP/JSTL. The second part covers mastering the basic frameworks of JEE technology for structuring the application using the Struts Framework and automating data persistence and relational object mapping based on the Hibernate Framework.


                                                                                                                                                                                                                                                                                                                                                                                            INF-4312C - Cloud Foundations
                                                                                                                                                                                                                                                                                                                                                                                            This course gives students an overview of the field of Cloud Computing and Virtualization, its enabling technologies, main building blocks, and hands-on experience through projects utilizing public cloud infrastructures (Microsoft Azure) as well as hypervisors.


                                                                                                                                                                                                                                                                                                                                                                                                  INF-4322C - Data Security
                                                                                                                                                                                                                                                                                                                                                                                                  This course covers principles and practices for securing relational database management systems (RDBMS) and their data. Key topics include access control, encryption, authentication, auditing, and security policies for both on-premises and cloud environments. Through hands-on labs and case studies, practical skills in designing and managing database security solutions are developed.


                                                                                                                                                                                                                                                                                                                                                                                                        INF-4332C - Integrated Project II
                                                                                                                                                                                                                                                                                                                                                                                                        The integrated project aims to deepen knowledge by managing a computer project and solving a given problem. This module allows work on issues related to the semester topics. Instructors will propose projects that combine designing and implementing data-driven IT solutions. Various projects will be offered, such as analyzing sentiments on social networks. 


                                                                                                                                                                                                                                                                                                                                                                                                              GEN-4182C - Software Project Management
                                                                                                                                                                                                                                                                                                                                                                                                              The objectives of this course are to give students an overview of project management methodologies, to learn how to properly plan a software project using the Agile principles of flexibility and reactivity, to practice with planification tools such as MS project and Primavera, to work on the implementation of measurements process, and to monitor, report and control a software project.


                                                                                                                                                                                                                                                                                                                                                                                                                    COM-4092C - English  TOEFL
                                                                                                                                                                                                                                                                                                                                                                                                                    The objective of this course is to develop the skills necessary for the TOEFL exam.


                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4312C - Cloud Foundations
                                                                                                                                                                                                                                                                                                                                                                                                                          This course gives students an overview of the field of Cloud Computing and Virtualization, its enabling technologies, main building blocks, and hands-on experience through projects utilizing public cloud infrastructures (Microsoft Azure) as well as hypervisors.


                                                                                                                                                                                                                                                                                                                                                                                                                                INF-4362C - Internet of Things
                                                                                                                                                                                                                                                                                                                                                                                                                                This course provides an in-depth understanding of Internet of Things (IoT) applications. The course will cover all the components of an IoT application from the devices to the Cloud, passing by gateways, edge devices, middlewares, … The students will apply their knowledge in a project by designing a full IoT application using real hardware (Arduino and Raspberry Pis).


                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-4762C - SDN & Network Softwarization
                                                                                                                                                                                                                                                                                                                                                                                                                                      This course covers the principles and practices of Software-Defined Networking (SDN) and Network Softwarization. Students will learn the fundamental concepts of SDN and network softwarization, including the OpenFlow protocol, SDN controllers, and network virtualization. The course will also cover the application of SDN and network softwarization in real-world scenarios, such as data center networks and cloud computing.


                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4732C - Parallel Programming
                                                                                                                                                                                                                                                                                                                                                                                                                                            This module aims to introduce parallel programming and parallel architectures together with algorithmic techniques and principles for designing/developing parallel algorithms.


                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-4292C - NoSQL Databases
                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course introduces students to the fundamental concepts of NoSQL databases, including their creation, manipulation, and query mechanisms. It provides comprehensive coverage of the four primary types of NoSQL databases: document, KeyValue, column, and graph-oriented databases. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-4882C - Integrated Project II
                                                                                                                                                                                                                                                                                                                                                                                                                                                        In this integrated project course, students will apply the skills they have learned in the program. They will work in teams and be tasked with creating the functional and technical design of a scalable e-commerce web application before actually building it.


                                                                                                                                                                                                                                                                                                                                                                                                                                                              GEN-4182C - Software Project Management
                                                                                                                                                                                                                                                                                                                                                                                                                                                              The objectives of this course are to give students an overview of project management methodologies, to learn how to properly plan a software project using the Agile principles of flexibility and reactivity, to practice with planification tools such as MS project and Primavera, to work on the implementation of measurements process, and to monitor, report and control a software project.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                    COM-4091C - English TOEFL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    The objective of this course is to develop the skills necessary for the TOEFL exam.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4312C - Cloud Foundations
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course provides students with an overview of Cloud Computing and Virtualization, including its technologies, main building blocks, and hands-on experience through projects utilizing public cloud infrastructures (Microsoft Azure) as well as hypervisors. 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-4732C - Parallel Programming
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This module aims to introduce parallel programming and parallel architectures together with algorithmic techniques and principles for designing/developing parallel algorithms.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-4772C - Secure Low Level Programming
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course offers a detailed study of security vulnerabilities in low-level programming languages like C/C++ and Assembly. It covers topics such as buffer overflows, stack overflows, heap overflows, and other memory-related vulnerabilities.  The course will also delve into secure programming best practices, including coding standards and design principles, to ensure that security is incorporated into the design phase.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4752C - Wireless and Mobile Networks
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The course introduces the students to the principles of basic communication theory; Basic coding theory; Analog and digital communications; Digital communication links Communication systems and wireless systems, radio propagation issues, channel coding, spread spectrum, and multiple access techniques. Standards such as IS-54, AMPS, D-AMPS, GSM, IS-95, GPRS, and UMTS are presented.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-4762C - SDN & Network Softwarization
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course covers the principles and practices of Software-Defined Networking (SDN) and Network Softwarization. Students will learn the fundamental concepts of SDN and network softwarization, including the OpenFlow protocol, SDN controllers, and network virtualization. The course will also cover the application of SDN and network softwarization in real-world scenarios, such as data center networks and cloud computing.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-4742C - Integrated Project II
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        In this integrated project course, students will have the opportunity to apply the skills they have learned in the program. This module allows work on issues related to all semester topics.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GEN-4182C - Software Project Management
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              The student must demonstrate their academic and technical skills by applying the techniques learned in various modules of network security, operating systems, and applications. This module involves group work and will focus on analyzing, designing, and implementing security solutions for information systems.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    COM-4091C - English TOEFL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    The objective of this course is to develop the skills necessary for the TOEFL exam.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4572C - Software Architecture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course aims to introduce the important aspects of software architecture. High-level building blocks of software will be tackled, taking into consideration software architecture fundamentals, description, and best practices for an effective design. Moreover, various technologies and frameworks such as Spring/JEE, parallel/network programming, and middleware bus services will be put into practice to deploy the designed architectures.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4582C - Blockchain-Oriented Software Engineering
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This module first provides students with a theoretical understanding and background of blockchain’s features, and then highlights, via practical and hands-on labs, its technical capabilities in developing decentralized software applications in several domains (e.g., require sharing confidential data).

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4592C - Software Requirements and Quality
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course introduces contemporary methodologies, techniques, and tools for software requirements and quality assurance. 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4602C - Formal Methods
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course aims to present formal techniques and their use in the development of safety-critical programs. This concerns in particular the principles of formal methods and how to use mathematics (e.g., logic and set theory) to design and, if possible, build computer programs, as well as the techniques for validating and verifying safety and liveness. 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4342C - Big Data Technologies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          The purpose of this module is to learn Big Data technologies for application development using a wide ecosystem of Hadoop tools. The students should respect good practices to design secure and economical Big Data environments.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4612C - Integrated Specialization Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          The integrated specialization project aims to deepen students' knowledge by taking responsibility for managing an IT project and solving a given problem. This module allows students to work on a problem that touches on the modules of semester 8 of the software engineering specialization. More precisely, we focus on the Spring Boot web development framework in its latest version.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-4161C - Financial Management
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Financial reporting and analysis is a course that prepares students to understand business strategy and its financial implications. With a comprehension of accounting concepts, students will be able to explore the world of financial reporting and analysis, including its diverse applications influenced by the interactions of policymakers, management, investors, and employees.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-4171C - Business Games
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course offers an overview of teamwork in business and industry, covering team purposes, team-building processes, conflict resolution, talent management, and team-building activities. It explores team structures, their significance, development, management, and evaluation. Additionally, a business simulation game is used to apply general management, marketing, and strategic decision-making skills to a specific management scenario.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          COM-4101C - English Presentation and Writing Skills
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course focuses on preparing students for academic writing and critical reading, enabling them to write academic essays confidently and competently.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-4342C - Big Data Technologies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          The purpose of this module is to learn Big Data technologies for application development using a wide ecosystem of Hadoop tools. The students should respect good practices to design secure and economical Big Data environments.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-4352C - Cloud Data Warehousing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course starts by giving students a detailed knowledge of the different techniques used to create distributed database systems. The students will then be introduced to the concept of a data warehouse system, and apply the distributed database techniques they learned to implement a distributed data warehouse.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-4362C - Internet of Things
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course allows students to have an in-depth understanding of Internet of Things (IoT) applications. The course will cover all the components of an IoT application from the devices to the Cloud, passing by gateways, edge devices, middlewares, … The students will apply their knowledge in a project by designing a full IoT application using real hardware (Arduino and Raspberry Pis).


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4372C - Machine Learning
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course covers the basic concepts and techniques of both supervised and unsupervised learning from both theoretical and practical perspectives. All topics are accompanied by hands-on exercises with implementations of ML algorithms in R and Python languages.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-4381C - Introduction to Computer Vision
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course introduces the fundamental principles and techniques of computer vision. Topics include geometric primitives and transformations in 2D and 3D spaces, photometry, classical image processing techniques, and statistical models for image classification and segmentation. Through lectures, hands-on assignments, and projects, practical experience is gained in implementing these concepts using graphics libraries. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-4391C - Introduction to NLP 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course is an introduction to natural language processing (NLP), focusing on the fundamental concepts and techniques for analyzing and processing natural language data. The course covers topics such as tokenization, stemming, part-of-speech tagging, parsing, dependency analysis, and named entity recognition, as well as more advanced techniques such as text classification, sentiment analysis, and machine translation. In addition to traditional NLP methods, we will also explore the use of neural networks and recurrent neural networks (RNNs) for NLP tasks, using PyTorch to implement these methods.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-4402C - Integrated Specialisation Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              This module enables students to work on an issue related to the topics covered in the 8th semester. Instructors will propose projects that combine aspects of designing a data-driven IT solution and its implementation. Various types of projects will be offered, such as analyzing sentiments on social networks.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GEN-4121C - HR and  Employability
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    The course will enable students to understand the challenges and practices of management and leadership and implement them in engineering work. Students will understand, analyze, and apply HR processes as an engineer, and collaborate with HR professionals. The course will also prepare students to respond to job offers and be recruited, focusing on understanding the IT job market. This includes using the right tools to write CVs and cover letters and preparing for interviews.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-4131C - PMI Certification
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course prepares for PMI certification, representing a distinction in the job market. It provides practical knowledge, ideas, and professional expertise to meet the increasingly high demands of IT projects.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                COM-4101C - English Presentation and Writing Skills
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course focuses on preparing students for academic writing and critical reading, enabling them to write academic essays confidently and competently.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-4912C - Cloud Administration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      The course aims to provide a comprehensive understanding of building cloud infrastructure with a focus on resource pooling and software-defined infrastructure. Additionally, students will learn about fault tolerance and business continuity in a data center environment.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4922C - Emerging Cloud Technologies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course introduces the students to several recent advances in computer networks that have a significant impact on Cloud computing. This cover will thus cover 5G and 6G, Content-Delivery Networks, Information-Centric Networks, Vehicular Networks, and Mobile-Edge Computing. The course will also cover Blockchain and its potential applications in Cloud.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-4932C - Cloud Middlewares and Software Architecture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course explores cloud middleware and software architecture, covering information systems, client/server architectures, SOA, APIs, and event-driven architectures like Apache Kafka. It examines message-oriented middlewares and ESBs for integrating and managing cloud services. Through projects and case studies, students will design and deploy robust, scalable software architectures with a focus on performance and security. This blend of theory and hands-on experience prepares students for real-world cloud architecture challenges.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-4352C - Cloud Data Warehousing 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course starts by giving students a detailed knowledge of the different techniques used to create distributed database systems. The students will then be introduced to the concept of a data warehouse system, and apply the distributed database techniques they learned to implement a distributed data warehouse.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-4342C - Big Data Technologies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              The purpose of this module is to learn Big Data technologies for application development using wide ecosystem of Hadoop tools. The students should respect good practices in order to design secure and economical Big Data environments.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INF-4942C - Integrated Specialisation Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This integrated project course allows student to apply the skills they acquired so far in the program. The student will work in teams and will be put in a situation where they have to migrate an existing web application to the AWS Cloud. They will have to design a Cloud architecture that is both scalable, highly available, and cost-effective.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-4161C - Financial Management
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Financial reporting and analysis is a course that prepares students to understand business strategy and its financial implications. With a comprehension of accounting concepts, students will be able to explore the world of financial reporting and analysis, including its diverse applications influenced by the interactions of policymakers, management, investors, and employees.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GEN-4171C - Business Games
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course offers an overview of teamwork in business and industry, covering team purposes, team-building processes, conflict resolution, talent management, and team-building activities. It explores team structures, their significance, development, management, and evaluation. Additionally, a business simulation game is used to apply general management, marketing, and strategic decision-making skills to a specific management scenario.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      COM-4101C - English Presentation and Writing Skills
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course focuses on preparing students for academic writing and critical reading, enabling them to write academic essays confidently and competently.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4782C - Applied Cryptography & Blockchain
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course introduces fundamental and practical knowledge of cryptography and its cybersecurity and blockchain technology applications. Topics include conventional encryption, symmetric and asymmetric cryptology, digital signatures, certificates, key exchange, key management, authentication, and blockchain technology. 

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4792C - Operating System Security and Administration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The course reviews existing exploits and the basics of securing operating systems. It then covers standard security measures and their usability implications. Students will learn and apply operating system security concepts by building security policies and countermeasures from scratch.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4832C - Web Pentesting & secure programming
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course teaches the fundamentals of secure programming. An in-depth discussion on various security vulnerabilities in web applications will be taught with a hands-on demo. The course discusses best practices (e.g., coding standards) and design principles for secure programming so that security can be built-in during design time. In this course, students will be able to deploy, attack, and defend modern web applications and implement countermeasures.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4822C - Network Security
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The course covers designing, analyzing, and securing networked systems. Topics include networking basics, cryptography, hacking and patching applications, penetration testing, and securing systems with firewalls and IDS. This prepares students for roles like Cyber Security Engineer, IT Security Analyst, and Cyber Security Analyst.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4802C - Embedded System Security
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This class covers secure embedded systems, exploring security and privacy issues in devices like drones, cars, medical implants, and appliances. The instructor will lecture on pre-selected topics, and students will work in teams of up to three on a semester-long project addressing real-world security issues in embedded systems.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-4812C - Integrated Specialisation Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The course involves group work, where students will apply techniques from network security modules to test their academic and technical skills. The focus of this course is on analyzing, designing, and implementing security solutions for information systems.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GEN-4202C - Information Security Law
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course explores laws, industry practices, and policies related to developing, protecting, and commercializing software, computers, and IT services. The primary focus is on intellectual property and contracts, with additional coverage of international and commercial issues, antitrust law, and current hot topics like apps, cloud, IoT, open source licensing, and the Digital Millennium Copyright Act.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            COM-4101C - English Presentation and Writing Skills
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course focuses on preparing students for academic writing and critical reading, enabling them to write academic essays confidently and competently.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-5622C - Services Oriented Architecture
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course emphasizes the design aspect of service-oriented architecture, focusing on patterns and best practices to ensure quality. The course also covers recent technologies used for deployment, including various technologies for open data interchange, development, and use of web services. Additionally, it covers REST API development and micro-services architectures.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-5632C - Advanced Mobile Development
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  The objective of this course is to introduce the development of cross-platform mobile applications using the React Native Framework supported by Meta/Facebook. Initially, the course focuses on React JS concepts essential for starting programming in React Native. The second part delves into the main features of this Framework, including screen creation (user interfaces), styles, Redux, and the deployment of applications for Android and iOS.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-5641C - Introduction to Virtualization
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course will cover the basics of virtual machines and containers, how CPU, storage, and network are virtualized, and the hardware features that assist virtualization. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-5651C - Containers and Orchestration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              This course gives students an overview of the field of Virtualization, its enabling technologies, main building blocks, and hands-on experience through projects utilizing public cloud infrastructures (Microsoft Azure) as well as hypervisors. This course also covers in detail advanced topics in OS-level virtualization through containers and their orchestration. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INF-5682C - DevOps and Software Industrialisation
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This course aims to master techniques and tools used for software industrialization and DevOps to eliminate repetitive tasks and automate development processes and application delivery. It initially focuses on DevOps practices and the creation of CI/CD pipelines for continuous integration and continuous delivery. The course also emphasizes test automation to evaluate verification and validation theory and practice from a software engineering perspective. Additionally, it explores the history, principles, and techniques of verification and validation across varied software domains. The goal is to apply verification and validation techniques to various software artifacts across the development life cycle for both large and smaller software systems.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-5492C - Augmented and Virtual Reality
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course delves into the theoretical foundations and practical aspects of creating, designing, and implementing augmented reality (AR) and virtual reality (VR) systems. The course covers essential topics such as user perception, intuitive interaction, mitigating VR sickness, and iterative design processes. Students will gain hands-on experience with industry-standard development tools and frameworks, enabling them to conceptualize, develop, and evaluate immersive experiences across various domains, including gaming, education, healthcare, and beyond.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-5502C - Research and development Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                The R&D project aims to develop adaptability in an academic environment, extend the concept of commitment, and foster a strong work ethic. Students will analyze real-life problems using a structured methodology to propose solutions and implement action plans.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-5662C - Front-END web development
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      The objective of this course is to master front-end web development and complete the building blocks for becoming a full-stack web developer. Students will be introduced to the Angular Framework. The course will also cover TypeScript, which forms the foundation of the Angular Framework.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GEN-5121C - HR and  Employability
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            The course will enable students to understand the challenges and practices of management and leadership and implement them in engineering work. Students will understand, analyze, and apply HR processes as an engineer, and collaborate with HR professionals. The course will also prepare students to respond to job offers and be recruited, focusing on understanding the IT job market. This includes using the right tools to write CVs and cover letters and preparing for interviews.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GEN-5131C - PMI Certification
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course prepares for PMI certification, representing a distinction in the job market. It provides practical knowledge, ideas, and professional expertise to meet the increasingly high demands of IT projects.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-5412C - Advanced Big Data technologies
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course presents how Spark can extend the data parallel paradigm to the distributed case. It covers Spark's programming model in detail, highlighting how and when it differs from familiar programming models like shared-memory parallel collections or sequential Scala collections. Through hands-on examples in Spark and Scala, the course addresses important distribution issues such as latency and network communication, and how they can be effectively managed for improved performance.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-5422C - Advanced Business Intelligence
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              The course covers advanced business intelligence (BI) concepts, exploring how to solve business problems using data warehouses and data mining in the era of big data. It includes analysis, design, and implementation of BI systems, discussing reporting, enterprise data warehousing, decision support, and knowledge management systems. Case studies examine application software, web tools, and the success and limitations of BI, alongside technical and social issues.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INF-5431C - ML for NLP
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This course covers topics such as tokenization, stemming, part-of-speech tagging, parsing, dependency analysis, and named entity recognition, as well as more advanced techniques such as text classification, sentiment analysis, and machine translation. In addition to traditional NLP methods, we will also explore the use of neural networks and recurrent neural networks (RNNs) for NLP tasks, using PyTorch to implement these methods.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-5441C - ML for computer vision
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course is an advanced presentation of the techniques of computer vision. Topics include geometric primitives and transformations in 2D and 3D spaces, photometry, classical image processing techniques, and statistical models for image classification and segmentation.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-5451C - ML for graphs
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course aims to provide a comprehensive overview of graph-based machine learning and graph neural networks. It will cover the theoretical foundations and algorithms of graph-based machine learning, as well as the application of graph neural networks for feature extraction, supervised learning, and unsupervised learning. The course will also show how these models can be used to solve real-world problems such as node classification, link prediction, and graph clustering.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-5471C - Network Mining
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course explores Social Network Analysis focusing on Social Network Graphs, Communities Detection, and Closeness between Two Nodes. Students learn graph theory's application to social networks, community detection methods, and measures of node proximity.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-5461C - Data Mining
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course introduces fundamental concepts and techniques of data mining and some parallelization methods used in big data. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-5482C - Design of cloud data-driven applications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course focuses on designing and developing cloud-based applications that rely on large-scale data processing and analysis. Students will learn about the challenges and opportunities of building data-driven applications in the cloud, and gain hands-on experience with tools and techniques for managing, storing, and analyzing large datasets.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-5492C - Augmented and Virtual Reality
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course explores creating immersive virtual and augmented reality experiences. It delves into the theoretical foundations and practical aspects of designing, and implementing augmented reality (AR) and virtual reality (VR) systems. The course covers essential topics such as user perception, intuitive interaction, mitigating VR sickness, and iterative design processes. Students will gain hands-on experience with industry-standard development tools and frameworks, enabling them to conceptualize, develop, and evaluate immersive experiences across various domains, including gaming, education, healthcare, and beyond.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-5502C - Research and development Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              This 8-week course enables final-year engineering students to engage in hands-on scientific research. Students work in groups, focusing on project planning, literature review, data collection, analysis, solution implementation, evaluation, and result dissemination, while emphasizing teamwork, problem-solving, critical thinking, and ethical research considerations.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    GEN-5141C - Data Economy
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This course delves into the Economics of Data, covering Personal Data concepts, rights, and values, including privacy,  and informational self-determination. It explores Personal Data's potential and includes case studies on Big Data's business applications. The course also addresses regulations on Personal Data protection, ensuring legal security for businesses, and building trust between users and companies.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-5151C - Entrepreneurship in AI and Big Data
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course explores digital entrepreneurship, focusing on opportunities, challenges, and techniques. Students will examine key Big Data applications and attend seminars led by Big Data professionals from Morocco, who will present their projects from conception to implementation.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-5651C - Containers and Orchestration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course details advanced topics in OS-level virtualization through containers and their orchestration. Students are expected at the end of the course to be able to understand in detail the internals on how containers work.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-5881C - Network Virtualization
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course covers advanced topics in network virtualization through SDN. Students are expected at the end of the course to be able to understand in detail the internals on how network virtualization work.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-5682C - DevOps and Software Industrialization
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course focuses on mastering techniques and tools for software industrialization and DevOps. It covers DevOps practices, CI/CD pipelines, and test automation for verification and validation. Students will learn to apply these techniques across various software artifacts and domains, enhancing development processes and application delivery.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-5952C - Multimedia Programming
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course gives students detailed knowledge of multimedia systems and how to develop them. They will especially learn the different challenges faced by streaming, live streaming, and conferencing applications.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-5482C - Design of Cloud Data Driven Applications
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course focuses on designing and developing cloud-based applications that rely on large-scale data processing and analysis. Students will learn about the challenges and opportunities of building data-driven applications in the cloud, and gain hands-on experience with tools and techniques for managing, storing, and analyzing large datasets.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-5492C - Augmented and Virtual Reality
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              This course delves into the theoretical foundations and practical aspects of creating, designing, and implementing augmented reality (AR) and virtual reality (VR) systems. The course covers essential topics such as user perception, intuitive interaction, mitigating VR sickness, and iterative design processes. Students will gain hands-on experience with industry-standard development tools and frameworks, enabling them to conceptualize, develop, and evaluate immersive experiences across various domains, including gaming, education, healthcare, and beyond. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INF-5502C - Research and development Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    The “Research and Development Project” is an eight-week course for final-year engineering students to engage in hands-on scientific research. Students work in groups under faculty guidance from project inception to completion. The course covers project planning, literature review, data collection, analysis, implementation, evaluation, and result dissemination, emphasizing teamwork, problem-solving, critical thinking, and ethical considerations. By the end, students gain practical research experience, preparing them for future research and innovation roles.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          GEN-5121C - HR and  Employability
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          The course will enable students to understand the challenges and practices of management and leadership and implement them in engineering work. Students will understand, analyze, and apply HR processes as an engineer, and collaborate with HR professionals. The course will also prepare students to respond to job offers and be recruited, focusing on understanding the IT job market. This includes using the right tools to write CVs and cover letters and preparing for interviews.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GEN-5131C - PMI Certification
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                This course prepares for PMI certification, representing a distinction in the job market. It provides practical knowledge, ideas, and professional expertise to meet the increasingly high demands of IT projects.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      GEN-5241C - Research Methods in Engineering
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      This course provides students with a foundation in research methods used in engineering disciplines. Students will learn the key elements of research design, including formulating research questions, developing hypotheses, and selecting appropriate research methods. They will also learn to collect and analyze data using various techniques like experiments, simulations, and data analysis tools.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            INF-5651C - Containers and Orchestration
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course details advanced topics in OS-level virtualization through containers and their orchestration. Students are expected at the end of the course to be able to understand in detail the internals on how containers work.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  INF-5881C - Network Virtualization
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course covers advanced topics in network virtualization through SDN. Students are expected at the end of the course to be able to understand in detail the internals of how network virtualization work.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        INF-5902C - Data Security and Auditing
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        This course provides a comprehensive understanding of database security fundamentals, covering risk assessment, access control, encryption, authentication, and authorization. Students will gain knowledge in implementing auditing and monitoring, as well as developing and applying best practices for security policies and procedures. The course emphasizes critical thinking, problem-solving, and ethical considerations in the context of database security.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              INF-5842C - Computer hacking forensics investigator 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              This course is designed to provide all the skills needed for successful digital forensics.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    INF-5852C - Security of emergent technology
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    This course explores the future of cybersecurity, including emerging technologies and the challenges they present. It discusses the development of cyber solutions and the associated risks and opportunities. Students will gain a basic understanding of these critical emerging technologies and learn to develop foreign policy/national security strategies, policy options, and risk mitigation plans. The course also focuses on developing professional skills such as strategy development, memo writing, briefing, and basic financial analysis.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          INF-5862C - Cyber Threat Intelligence
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          This course introduces Cyber Threat Intelligence (CTI) and its role in cybersecurity. Students will learn the fundamentals of CTI, including threat intelligence, data loss prevention, mobile endpoint protection, Security Information and Event Management (SIEM), and Security Orchestration, Automation, and Response (SOAR). The course will also cover the skills required for Security Operations Center (SOC) analysts, log analysis, and malware analysis.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                INF-5872C - Ethical hacking and defense
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                In this course, students are introduced to common countermeasures that effectively reduce and/or mitigate attacks. They will also practice using structured knowledge bases to discover vulnerabilities and recommend solutions for tightening network security and protecting data from potential attackers. 


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      INF-5502C - Research and development Project
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      The course involves group work and will focus on analyzing, designing, and developing security countermeasures for information systems. Students will test their research and technical skills by developing and implementing techniques studied in computer security, operating systems, and applications.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GEN-5212C - Security management & governance
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            This course aims to help students identify and prioritize information assets and threats. Students will learn how to define an information security strategy and architecture. Upon completion, students will be able to plan for and respond to intrusions, describe legal and public relations implications of security issues, and present an incident and disaster recovery plan.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GEN-5222C - IT Audit and Risk Management
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  This course is designed to give students an in-depth understanding of security management, governance, and risk management principles, including  IT audit techniques.