Unité pédagogique

CPS2 engineering and development

Derniere édition le: 12/01/2024

Modifier

Responsable:

LEFRANCOIS Maxime

Description générale :

This course counts for 6 credits (/30 total for a semester), and is divided in three equally important parts:

  • Everything from the command line
  • Technological foundations of software development
  • System Engineering

Part 1: Everything from the command line. 

The command line interface is an essential tool for computer developers, both for its wealth of available tools and for its ability to increase productivity through the development of ad-hoc scripts.

Many of other courses in the MSc CPS2 track make use of the Shell command line interface, now available on all major operating systems.

The objective of the "Everything on the Command Line" course is for students to master the fundamental concepts of the Shell command line, and to become comfortable with the command line interface for computer development projects.

The following concepts will be covered:

  • the file system
  • input/output streams and command chaining
  • processes
  • scripts and variables

We will go from a simple command to copy a file to a complete script to automate the life cycle of a project.

Part 2: Technological foundations of software development

This course aims to discover the tools and methods that are essential to know in any modern software development project. Students will discover:

  • Concepts involved throughout the development and implementation of software systems
  • Modern tools and methods adapted to the development and implementation of software systems

The following concepts will be covered:

  • Master your working environnement
  • Manage your source code
  • Master your development environment and software dependencies
  • Automate code production
  • Debug, log, test, profile, analyse your software
  • Run your software anywhere with Docker
  • Document, license, publish, maintain your software
  • Integrate and deploy your software continuously

Part 3: System Engineering:

Students will understand and master the software development cycle, software system modeling through the use of the Unified Modeling Language (UML), agile analysis methods, software system design. The following concepts will be covered mainly through practical cases.

  • Introduction to Software Engineering and Agile software engineering methodologies
  • Practical session: a SCRUM learning game
  • UML in a nutshell
  • UML Behavior Diagrams (Use Cases, Activity, State machine, Communication, Sequence)
  • UML Structure Diagrams (Class, Structure, Package, Component, Deployment)

Mots-clés:

Programmation shell commandes Unix DevOps Programmation Web Gestionnaire de version UML Méthodes agiles

Nombre d’heures à l’emploi du temps:

50

Domaine(s) ou champs disciplinaires:

Informatique, Systèmes d'information

Langue d’enseignement:

Anglais

Objectifs d’apprentissage:

A la fin de l’unité pédagogique, l’élève sera capable de : Niveau de taxonomie Priorité
Basic concepts of the Shell command line interface 1. Connaître Essentiel
Mastering the Shell command line development environment 2. Comprendre Important
Know the main Unix functions and commands 3. Appliquer Essentiel
Write simple programs in Shell 7. Créer Important
Understand the concepts involved throughout the development and implementation of software systems 5. Synthétiser Essentiel
To know some modern tools and methods adapted to the development and implementation of software systems 1. Connaître Essentiel
Modeling of Software Systems using UML 3. Appliquer Essentiel
Software Engineering Methods 1. Connaître Essentiel
Agile Development Methods 3. Appliquer null

Modalités d’évaluation des apprentissages:

Part de l'évaluation individuelle Part de l'évaluation collective
Examen sur table : % Livrable(s) de projet : %
Examen oral individuel : % Exposé collectif : %
Exposé individuel : % Exercice pratique collectif : %
Exercice pratique individuel : % Rapport collectif : %
Rapport individuel : %
Autre(s) : 100 %

Programme et contenus:

Type d’activité pédagogique : Contenu, séquencement et organisation