Avec index #1

Merged
emmanuelito merged 7 commits from avec_index into main 2021-04-11 19:22:32 +02:00
56 changed files with 705 additions and 474 deletions
Showing only changes of commit 18310eed83 - Show all commits

View File

@ -23,7 +23,7 @@ python python/export_docx_to_yaml.py "$ressources" -o "python/export" -r . || di
python python/export_sae_docx_to_yaml.py "$saes" -o "python/export" -r . || die "echec de export_sae_docx_to_yaml.py"
python python/export_yaml_to_latex.py -a -r . || die "echec de export_yaml_to_latex.py"
cd latex
cd latex || die "repertoire manquant: latex"
pdflatex pn_formation
pdflatex pn_formation

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -89,8 +89,8 @@
\newcommand{\listeTitreRessourceIndex}[1]{
\setlength{\tabcolsep}{0.125cm} % Marge des colonnes
\setlength{\extrarowheight}{2pt} % Marge des lignes
\begin{center}
\begin{tabular}[t]{|l|l|l|}
\begin{center}\small
\begin{tabular}[t]{|X|Y|Z|}
\hline {\bfseries Code} & {\bfseries Nom} & {\bfseries Page} \\
\hline
@ -116,8 +116,8 @@
\newcommand{\listeTitreSAEIndex}[1]{
\setlength{\tabcolsep}{0.125cm} % Marge des colonnes
\setlength{\extrarowheight}{2pt} % Marge des lignes
\begin{center}
\begin{tabular}[t]{|l|l|l|}
\begin{center}\small
\begin{tabular}[t]{|X|Y|Z|}
\hline {\bfseries Code} & {\bfseries Titre} & {\bfseries Page} \\ \hline
\forLoop{1}{\value{cptS#1}}{nosae}{ % Pour chaque SAE

View File

@ -17,6 +17,11 @@
\newcolumntype{V}{>{}p{8.45cm}<{}} % 12.825cm
% Pour les tables d'index
\newcolumntype{X}{>{}m{1.2cm}<{}} % Code
\newcolumntype{Y}{>{}p{10.50cm}<{}} % Nom
\newcolumntype{Z}{>{}w{c}{1.0cm}<{}} % No page
% Compteur de ligne pour les tableaux
\newcounter{noligne}
@ -50,7 +55,7 @@
\begin{tabular}[t]{@{}T@{}}%
\forLoop{1}{\value{cptRsae\CODE}}{noligne}{
\xdef\saecode{\csname Rsaecode\CODE\Alph{noligne}\endcsname}
\hyperlink{sae:\saecode}{\textcolor{saeC}{\saecode}}~|
\hyperlink{sae:\saecode}{\textcolor{saeC}{\saecode}}~
{\csname Rsaename\CODE\Alph{noligne}\endcsname}
\tabularnewline %
}

View File

@ -29,6 +29,9 @@
\usepackage{fontawesome}
\usepackage{amssymb}
\usepackage{multicol}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{fancyhdr}
\setlist{leftmargin=1em,topsep=0pt,partopsep=0pt,itemsep=0pt,itemindent=0em}
@ -65,7 +68,9 @@
\urlstyle{rm}
% ********************************************************
\title{Référentiel de formation\\Spécialité : Réseaux et Télécommunications}
\title{Bachelor Universitaire de Technologie\\
Réseaux et Télécommunications\\
Référentiel de formation}
\hypersetup{
pdfinfo={
@ -77,7 +82,7 @@
%\institute{ACD R\&T}
%\date{\today}
%\author{(many people)}%
\author{ACD R\&T}%
% ********************************************************
% Les macros
@ -97,14 +102,57 @@
\input{modeles/affichages.tex}
\input{modeles/tableau_competence.tex}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{ACD R\&T - Référentiel de Formation}
\rfoot{\thepage}
\begin{document}
% Les listes
\renewcommand{\labelitemi}{$\bullet$}
\renewcommand{\labelitemii}{$\circ$}
\maketitle
% \maketitle
\thispagestyle{empty}
\begin{center}
~\\
\vskip 3cm
{\huge
{\em Bachelor Universitaire de Technologie}
\vskip 1cm
Réseaux et Télécommunications
}
\vskip 2cm
{\em Proposition de}
{\huge
Référentiel de formation
}
\vskip 2cm
\includegraphics[height=12mm]{img/logo_IUT_R_T_condense}
\vskip 1cm
{\Large
ACD R\&T
}
\vskip 5mm
\today
\vskip 2cm
\begin{boitepagetitre}
Document de travail formulant les propositions de l'ACD R\&T pour l'ensemble de la formation pour les deux premiers semestres (S1 et S2) de l'année universitaire 2021-2022.
\medskip
Élaboré par les enseignants des départements Réseaux et Télécommunications, sous la direction du groupe de travail constitué de~: Cléo Baras, Jean-Jacques Bascou, Christine Bolou-Chiaravalli, Anne-Sophie Capelle, Michel Gautero, Denis Genon-Catalot, Willy Guillemin, Said Hoceini, Fabrice Peyrard, Marie-Bernadette Piel et Emmanuel Viennet (Président de l'ACD).
\end{boitepagetitre}
\end{center}
\clearpage
% ------ TABLE DES MATIERES (en version draft seulement)
%\ifdef{\draft}{
%\section*{Table des matières}
@ -202,7 +250,7 @@
\section{Abbréviations}
\begin{multicols}{2}
\begin{multicols}{2}\small
\input{synthese/abbreviations.tex}
\end{multicols}

View File

@ -47,9 +47,9 @@ d'équipements et de prise en main des fonctions de base des systèmes
d'exploitation, l'étudiant découvrira les principaux concepts utilisés
dans les réseaux informatiques, et commencera à comprendre le rôle et
les principes des normes et protocoles essentiels des réseaux locaux,
comme Ethernet, \texttt{TCP}/\texttt{IP}, \texttt{DHCP}, \texttt{DNS}.\\
comme Ethernet, \textabbrv{TCP}/\textabbrv{IP}, \textabbrv{DHCP}, \textabbrv{DNS}.\\
On introduira des notions de sécurité informatique (les ressources
associées aux recommandations de l'\texttt{ANSSI}, CyberEdu, CyberMalveillance
associées aux recommandations de l'\textabbrv{ANSSI}, CyberEdu, CyberMalveillance
pourront servir de support).}
% Contenus
@ -62,10 +62,10 @@ pourront servir de support).}
\item
Découverte et prise en main du réseau local
\item
Adressage \texttt{IP}v4 : classes d'adresses, masques naturels, adressage
statique, adressage dynamique (\texttt{DHCP})
Adressage \textabbrv{IP}v4 : classes d'adresses, masques naturels, adressage
statique, adressage dynamique (\textabbrv{DHCP})
\item
Notion de routage, de passerelle et de serveur \texttt{DNS}
Notion de routage, de passerelle et de serveur \textabbrv{DNS}
\end{itemize}
\item
Bases du système d'exploitation
@ -96,4 +96,4 @@ pourront servir de support).}
}
% Mots-clés
\ajoutRmotscles{Réseau, Système d'exploitation, \texttt{TCP}/\texttt{IP}, \texttt{LAN}, Hygiène informatique.}
\ajoutRmotscles{Réseau, Système d'exploitation, \textabbrv{TCP}/\textabbrv{IP}, \textabbrv{LAN}, Hygiène informatique.}

View File

@ -51,9 +51,9 @@ les notions de services rendus et de performance du réseau.}
\item
Approche en couches et encapsulation.
\item
Étude détaillée des protocoles Ethernet, \texttt{ARP}, \texttt{ICMP}.
Étude détaillée des protocoles Ethernet, \textabbrv{ARP}, \textabbrv{ICMP}.
\item
Découverte des protocoles \texttt{IP}v4, \texttt{IP}v6, \texttt{ICMP}v6, \texttt{TCP}, \texttt{UDP} et des
Découverte des protocoles \textabbrv{IP}v4, \textabbrv{IP}v6, \textabbrv{ICMP}v6, \textabbrv{TCP}, \textabbrv{UDP} et des
protocoles applicatifs.
\item
Topologies de réseaux.
@ -69,11 +69,11 @@ Des éléments relatifs à la sécurité et aux risques informatiques et
réseaux seront progressivement introduits au travers des différents
contenus étudiés afin que ces éléments deviennent une préoccupation
routinière. Les éléments de cybersécurité pourront être abordés via des
exemples tels que l'\emph{arp-spoofing}, la prise d'empreintes via \texttt{ICMP},
exemples tels que l'\emph{arp-spoofing}, la prise d'empreintes via \textabbrv{ICMP},
des captures, la génération et analyse de trames. Des liens avec les
aspects sécurité informatique et réseaux mentionnés en R101 seront
également faits.
}
% Mots-clés
\ajoutRmotscles{Architecture en couches, Topologies, Protocoles, Modèle \texttt{TCP}/\texttt{IP}.}
\ajoutRmotscles{Architecture en couches, Topologies, Protocoles, Modèle \textabbrv{TCP}/\textabbrv{IP}.}

View File

@ -46,10 +46,10 @@ quant à elle renforcée à travers la mise en place et la configuration de
matériels actifs comme des commutateurs, la gestion de la sûreté de
fonctionnement du réseau local Ethernet (\emph{spanning tree}) et la
participation à la sécurisation du système d'information dont il est le
support (segmentation physique et virtuelle (\texttt{VLAN})). Ces deux
support (segmentation physique et virtuelle (\textabbrv{VLAN})). Ces deux
compétences s'appuient sur la compréhension des mécanismes intrinsèques
aux réseaux locaux Ethernet : adressage \texttt{MAC}, commutation/routage de
niveau 2, \texttt{ARP}, passage d'un type de support physique à un autre,
aux réseaux locaux Ethernet : adressage \textabbrv{MAC}, commutation/routage de
niveau 2, \textabbrv{ARP}, passage d'un type de support physique à un autre,
changements de débit, \ldots{}\\
Elle contribue aussi à la compétence ``Créer des outils et applications
informatiques pour les R\&T'' (RT3) à travers la découverte du poste
@ -66,20 +66,20 @@ client et de son environnement logiciel.}
\item
Normalisation Ethernet 802 (802.1, 802.2, 802.3).
\item
Commutation Ethernet : apprentissage des adresses \texttt{MAC}, diffusion,
Commutation Ethernet : apprentissage des adresses \textabbrv{MAC}, diffusion,
Broadcast.
\item
Différents équipements actifs : commutateur, routeur\ldots{}
\item
Configuration d'un réseau segmenté en \texttt{VLAN}, lien multi-\texttt{VLAN},
communication inter-\texttt{VLAN}.
Configuration d'un réseau segmenté en \textabbrv{VLAN}, lien multi-\textabbrv{VLAN},
communication inter-\textabbrv{VLAN}.
\item
Redondance et détection de boucles dans un réseau commuté: \texttt{STP},
\texttt{RSTP}\ldots{}
Redondance et détection de boucles dans un réseau commuté: \textabbrv{STP},
\textabbrv{RSTP}\ldots{}
\end{itemize}
Sur chaque thème, faire le lien avec les notions de cybersécurité
abordées en R101.
}
% Mots-clés
\ajoutRmotscles{Réseaux locaux, Ethernet, Commutateurs, Routeurs, \texttt{VLAN}, 8021Q, 8021P, \texttt{STP}, \texttt{RSTP}.}
\ajoutRmotscles{Réseaux locaux, Ethernet, Commutateurs, Routeurs, \textabbrv{VLAN}, 8021Q, 8021P, \textabbrv{STP}, \textabbrv{RSTP}.}

View File

@ -53,7 +53,7 @@ transmission.}
passante,\ldots{} ) à partir de mesures
et d'analyse des signaux
\item
Prolongement possible : recettage, certification \texttt{LAN}.
Prolongement possible : recettage, certification \textabbrv{LAN}.
\end{itemize}
}

View File

@ -51,13 +51,13 @@ permettra aux étudiants de relier ces systèmes au monde extérieur.}
Codage des nombres, des caractères, des images.
\item
Fonctions logiques - Logique combinatoire et séquentielle - Notion
d'\texttt{ALU}.
d'\textabbrv{ALU}.
\item
Structure d'un processeur - Différents types de mémoires.
\item
Périphériques et entrées-sorties (par ex : \texttt{GPIO}, liaison série).
Périphériques et entrées-sorties (par ex : \textabbrv{GPIO}, liaison série).
\end{itemize}
}
% Mots-clés
\ajoutRmotscles{Nombres binaires, Codage, Fonctions logiques, Processeur, \texttt{ALU}.}
\ajoutRmotscles{Nombres binaires, Codage, Fonctions logiques, Processeur, \textabbrv{ALU}.}

View File

@ -52,11 +52,11 @@ navigateur Web.}
\item
Utilisation avancée d'un navigateur Web
\item
Structure d'un site Web : client-serveur, arborescence, \texttt{URL}
Structure d'un site Web : client-serveur, arborescence, \textabbrv{URL}
\item
Structure d'une page : langage à balise, mise en forme et feuilles de
styles (notions élémentaires
de \texttt{CSS}), notions de \emph{responsive design}
de \textabbrv{CSS}), notions de \emph{responsive design}
\item
Contenu d'une page : éléments multimédia, encodage des caractères
\item
@ -66,4 +66,4 @@ navigateur Web.}
}
% Mots-clés
\ajoutRmotscles{Web, \texttt{HTML}, \texttt{CSS}, Client/serveur, Codage de l'information.}
\ajoutRmotscles{Web, \textabbrv{HTML}, \textabbrv{CSS}, Client/serveur, Codage de l'information.}

View File

@ -31,7 +31,7 @@
% Le descriptif
\ajoutRancrage{Le Projet Personnel et Professionnel (\texttt{PPP}) des semestres 1 et 2 de la
\ajoutRancrage{Le Projet Personnel et Professionnel (\textabbrv{PPP}) des semestres 1 et 2 de la
première année de B.U.T. permet à l'étudiant :
\begin{itemize}
\item

View File

@ -47,7 +47,7 @@ Dans le cadre de cette ressource transversale, l'étudiant devra :
\begin{itemize}
\item
Utilisation avancée du courriel : création d'une adresse générique,
utilisation du \texttt{CC} et du \texttt{CCi}.
utilisation du \textabbrv{CC} et du \textabbrv{CCi}.
\item
Utilisation d'outils collaboratifs adaptés (par ex : Mattermost,
Slack, MSTeams, Google Drive,
@ -55,7 +55,7 @@ Dans le cadre de cette ressource transversale, l'étudiant devra :
\end{itemize}
\item
Organiser son travail et celui de l'équipe à partir d'outils de
planification (Gantt, \texttt{PERT})
planification (Gantt, \textabbrv{PERT})
\item
Prendre sa place dans une équipe en connaissant les différents rôles
d'une équipe projet

View File

@ -48,7 +48,7 @@ Elle contribue aussi à la compétence ``Créer des outils et applications
informatiques pour les R\&T'' (RT3) à travers la découverte du poste
client et de son environnement logiciel.\\
On introduira des notions de sécurité informatique (les ressources
associées aux recommandations de l'\texttt{ANSSI}, CyberEdu, CyberMalveillance
associées aux recommandations de l'\textabbrv{ANSSI}, CyberEdu, CyberMalveillance
pourront servir de support)}
% Contenus
@ -56,17 +56,17 @@ pourront servir de support)}
\vspace{-5pt}
\begin{itemize}
\item
Protocole et adressage \texttt{IP}v4\&6.
Protocole et adressage \textabbrv{IP}v4\&6.
\item
Traduction d'adresses (\texttt{NAT}/PAT).
Traduction d'adresses (\textabbrv{NAT}/PAT).
\item
Routage statique et routage dynamique (\texttt{OSPF}).
Routage statique et routage dynamique (\textabbrv{OSPF}).
\item
\texttt{TCP}, \texttt{UDP}.
\textabbrv{TCP}, \textabbrv{UDP}.
\item
Politiques de filtrage \texttt{ACL}.
Politiques de filtrage \textabbrv{ACL}.
\end{itemize}
}
% Mots-clés
\ajoutRmotscles{Plan d'adressage, Routage état de lien, Stratégies de filtrage, \texttt{CIDR}, \texttt{VLSM}, Agrégation de routes, \texttt{IP}v6, \texttt{NDP}.}
\ajoutRmotscles{Plan d'adressage, routage état de lien, stratégies de filtrage, \textabbrv{CIDR}, \textabbrv{VLSM}, agrégation de routes, \textabbrv{IP}v6, \textabbrv{NDP}.}

View File

@ -52,18 +52,18 @@ client et de son environnement logiciel.}
\vspace{-5pt}
\begin{itemize}
\item
Gestion des systèmes de fichiers (volumes, droits, types de fichiers).
Gestion des systèmes de fichiers (volumes, droits, types de fichiers)
\item
Gestion de processus et services.
Gestion de processus et services
\item
Gestion de ressources utilisateurs (comptes, quotas).
Gestion de ressources utilisateurs (comptes, quotas)
\item
Scripts pour l'automatisation de séquences de commandes.
Scripts pour l'automatisation de séquences de commandes
\item
Utilisation de fichiers de traces (logs).
Utilisation de fichiers de traces (logs)
\item
Initiation et mise en oeuvre d'infrastructures de virtualisation et/ou
de conteneurisation.
de conteneurisation
\end{itemize}
}

View File

@ -39,14 +39,14 @@
\ajoutRancrage{Cette ressource apporte les connaissances et compétences de base
nécessaires à la mise en oeuvre des services réseaux dans un système
d'information\\
Les services abordés sont des services essentiels à tout système
d'information tels que le \texttt{DNS}, le \texttt{DHCP} ou le transfert de fichiers pour
les configurations d'appareils réseaux pour n'en citer que quelques-uns.
Cette découverte des premiers protocoles applicatifs permettra également
de sensibiliser les étudiants aux risques de sécurité liés à la
configuration de ces services\\
Les services abordés sont des services essentiels à tout SI tels que le
\textabbrv{DNS}, le \textabbrv{DHCP} ou le transfert de fichiers pour les configurations
d'appareils réseaux pour n'en citer que quelques-uns. Cette découverte
des premiers protocoles applicatifs permettra également de sensibiliser
les étudiants aux risques de sécurité liés à la configuration de ces
services\\
On introduira des notions de sécurité informatique (les ressources
associées aux recommandations de l'\texttt{ANSSI}, CyberEdu, CyberMalveillance
associées aux recommandations de l'\textabbrv{ANSSI}, CyberEdu, CyberMalveillance
pourront servir de support).}
% Contenus
@ -54,25 +54,23 @@ pourront servir de support).}
\vspace{-5pt}
\begin{itemize}
\item
Rappels sur les protocoles de transport (\texttt{TCP}, \texttt{UDP}).
Rappels sur les protocoles de transport (\textabbrv{TCP}, \textabbrv{UDP})
\item
Utilisation de ssh pour l'accès distant.
Utilisation de ssh pour l'accès distant
\item
Principe, installation, configuration et tests des services :
\begin{itemize}
\item
\texttt{DHCP};
\item
\texttt{DNS} (fonctions de base);
\item
\texttt{HTTP};
\item
\texttt{TFTP}, \texttt{FTP};
\item
\texttt{NTP}.
\end{itemize}
\item
\textabbrv{DHCP}
\item
\textabbrv{DNS} (fonctions de base)
\item
\textabbrv{HTTP}
\item
\textabbrv{TFTP}, \textabbrv{FTP}
\item
\textabbrv{NTP}
\end{itemize}
}
% Mots-clés
\ajoutRmotscles{Protocoles et ports applicatifs, Services, Systèmes d'exploitation.}
\ajoutRmotscles{Protocoles et ports applicatifs, services, systèmes d'exploitation.}

View File

@ -38,11 +38,11 @@
de mise en œuvre d'un système téléphonique d'entreprise. Il permettra
d'aborder les différents types de téléphonie (hors téléphonie mobile)
utilisés de nos jours, que ce soit sur un réseau dédié (téléphonie
analogique, numérique) ou un réseau partagé (\texttt{ToIP}). Une découverte des
analogique, numérique) ou un réseau partagé (\textabbrv{ToIP}). Une découverte des
services téléphoniques utiles à la communication dans l'entreprise sera
réalisée, ainsi qu'une première approche des réseaux publics existants.\\
En fonction du contexte local, on pourra orienter l'étude vers un réseau
téléphonique mixte (\texttt{TDM}/\texttt{IP}) ou \texttt{ToIP}.}
téléphonique mixte (\textabbrv{TDM}/\textabbrv{IP}) ou \textabbrv{ToIP}.}
% Contenus
\ajoutRcontenudetaille{
@ -58,7 +58,7 @@ téléphonique mixte (\texttt{TDM}/\texttt{IP}) ou \texttt{ToIP}.}
\item
Architectures des réseaux publics et privés (commutation,
signalisation, services, normes de câblage,
\texttt{PoE}).
\textabbrv{PoE}).
\item
Installation d'un système téléphonique d'entreprise
(insertion/raccordement de postes, connexion au
@ -72,4 +72,4 @@ informatique.
}
% Mots-clés
\ajoutRmotscles{\texttt{IPBX}, \texttt{PABX}, \texttt{TDM}/\texttt{IP}, Postes et services téléphoniques, Visiophonie, Plan de numérotation, Réseaux téléphoniques publics.}
\ajoutRmotscles{\textabbrv{IPBX}, \textabbrv{PABX}, \textabbrv{TDM}/\textabbrv{IP}, Postes et services téléphoniques, Visiophonie, Plan de numérotation, Réseaux téléphoniques publics.}

View File

@ -56,7 +56,7 @@ modifications ces signaux vont subir dans un système télécom.}
\item
Représentations temporelles et fréquentielles des signaux ; Analyse
spectrale de signaux réels (par ex:
audio, WiFi, \texttt{ADSL}, etc.).
audio, WiFi, \textabbrv{ADSL}, etc.).
\item
Influence de la fonction de transfert d'un système sur un signal (par
ex: audio, numérique, \ldots).

View File

@ -62,4 +62,4 @@ en téléphonie, ou en télécommunications numériques.}
}
% Mots-clés
\ajoutRmotscles{Numérisation, Échantillonnage, Quantification, Acquisition/restitution, \texttt{CAN} et \texttt{CNA}.}
\ajoutRmotscles{Numérisation, Échantillonnage, Quantification, Acquisition/restitution, \textabbrv{CAN} et \textabbrv{CNA}.}

View File

@ -40,15 +40,14 @@
% Le descriptif
\ajoutRancrage{Le professionnel R\&T traite un grand nombre de données (par ex:
l'annuaire des utilisateurs du réseau ou l'état des équipements
informatiques). Elles peuvent servir à configurer ou à administrer les
informatiques). Elles peuvent servir à configurer et à administrer les
services réseau d'une entreprise (RT1) ou à alimenter les pages d'un
site Web (RT3). Il est donc amené à stocker, organiser, gérer, protéger
des données provenant de différentes sources (thématiques du
\href{https://pix.fr/competences}{PIX}), mais aussi à les traiter en
développant différents outils informatiques pour ses besoins personnels
ou pour son équipe (RT3). Plus largement, il contribue activement à
l'exploitation et à la maintenance du système d'information de
l'entreprise.\\
des données provenant de différentes sources (thématiques du PIX,
cf.~https://pix.fr/competences), mais aussi à les traiter en développant
différents outils informatiques pour ses besoins personnels ou pour son
équipe (RT3). Plus largement, il contribue activement à l'exploitation
et à la maintenance du système d'information de l' entreprise.\\
Cette ressource introduit les éléments fondamentaux des systèmes de
gestion de base de données. Elle présente différentes alternatives
technologiques pour le stockage et le codage de l'information, en
@ -63,13 +62,13 @@ langages et des scripts spécifiques qui seront introduits.}
Stockage et accès aux données :
\begin{itemize}
\item
Système de gestion de données (relationnel/non relationnel);
système de gestion de données (relationnel/non relationnel);
\item
Structuration des données: fichiers (\texttt{CSV}, \texttt{JSON}), exemples de sources
ouvertes (\emph{open data}), \emph{web scraping};
structuration des données: fichiers (\textabbrv{CSV}, \textabbrv{JSON}), exemples de sources
ouvertes (open data), web scraping;
\item
Sensibilisation à la réglementation française et internationale
(\texttt{CNIL}, \texttt{RGPD}).
sensibilisation à la réglementation française et internationale
(\textabbrv{CNIL}, \textabbrv{RGPD}).
\end{itemize}
\item
Base de données relationnelles :
@ -84,7 +83,7 @@ langages et des scripts spécifiques qui seront introduits.}
Interrogation de données, ajout et modification de données.
\end{itemize}
\item
Lecture d'une documentation technique (\texttt{UML}, diagramme de classes)
Lecture d'une documentation technique (\textabbrv{UML}, diagramme de classes)
\end{itemize}
L'utilisation de l'anglais est préconisée dans la documentation du code.
}

View File

@ -37,14 +37,15 @@
% Le descriptif
\ajoutRancrage{Le professionnel R\&T est amené à développer différents outils
informatiques à usage personnel ou interne à l'équipe (RT3). Ces outils
peuvent traiter des données complexes, viser des fonctionnalités
multiples et être développé en équipe : il est alors nécessaire - pour
le professionnel R\&T - de structurer son travail, tant sur les
variables manipulant les données, les fichiers qui les sauvegardent ou
les restaurent, que sur l'organisation (arborescence) de son projet. La
ressource introduit ses éléments structurels en contribuant à
l'acquisition des apprentissages critiques mentionnés précédemment.}
informatiques à usage personnel ou interne à l'équipe (compétence
RT3-Programmer). Ces outils peuvent traiter des données complexes, viser
des fonctionnalités multiples et être développé en équipe : il est alors
nécessaire - pour le professionnel R\&T - de structurer son travail,
tant sur les variables manipulant les données, les fichiers qui les
sauvegardent ou les restaurent, que sur l'organisation (arborescence) de
son projet. La ressource introduit ses éléments structurels en
contribuant à l'acquisition des apprentissages critiques mentionnés
précédemment.}
% Contenus
\ajoutRcontenudetaille{
@ -52,35 +53,35 @@ l'acquisition des apprentissages critiques mentionnés précédemment.}
\begin{itemize}
\item
Structure d'un programme : arborescence de fichiers, modules et
packages.
packages
\item
Contexte d'exécution : programme principal \emph{vs} script.
Contexte d'exécution : programme principal vs script
\item
Structure complexe de données :
\begin{itemize}
\item
Listes \texttt{2D}, tableaux associatifs/dictionnaires;
listes \textabbrv{2D}, tableaux associatifs/dictionnaires
\item
Notion de classes (instance, attributs, méthodes).
notion de classes (instance, attributs, méthodes)
\end{itemize}
\item
Manipulation de fichiers avancée :
\begin{itemize}
\item
Fichiers structurés (\texttt{XML}, \texttt{CSV}, \texttt{JSON}, YAML);
fichiers structurés (\textabbrv{XML}, \textabbrv{CSV}, \textabbrv{JSON}, YAML)
\item
Gestion de l'arborescence par le code;
gestion de l'arborescence par le code
\item
Lecture/écriture de fichiers structurés;
lecture/écriture de fichiers structurés
\item
Notion de sérialisation;
notion de sérialisation
\item
Notion de persistance des données.
notion de persistance des données
\end{itemize}
\item
Initiation aux expressions régulières.
Initiation aux expressions régulières
\item
Introduction au traitement des erreurs.
Introduction au traitement des erreurs
\end{itemize}
L'utilisation de l'anglais est préconisée dans la documentation du code.
}

View File

@ -48,7 +48,7 @@ Il doit en appréhender tous les éléments : il doit aussi bien connaître
les protocoles de communication du Web que veiller à la sécurité de
ceux-ci. Il doit également pouvoir accéder, traiter et afficher des
informations provenant de différentes sources de données telles que des
\texttt{SGBD}, des \texttt{API} ou des fichiers structurés. La présente ressource
\textabbrv{SGBD}, des \textabbrv{API} ou des fichiers structurés. La présente ressource
contribue de fait aux apprentissages critiques mentionnés précédemment.}
% Contenus
@ -56,31 +56,31 @@ contribue de fait aux apprentissages critiques mentionnés précédemment.}
\vspace{-5pt}
\begin{itemize}
\item
Introduction au protocole \texttt{HTTP}.
Introduction au protocole \textabbrv{HTTP}.
\item
Mise en forme de pages Web :
\begin{itemize}
\item
Balises \texttt{HTML} avancées;
Balises \textabbrv{HTML} avancées;
\item
Structure d'une page avec son \texttt{DOM};
Structure d'une page avec son \textabbrv{DOM};
\item
\texttt{CSS} avancé ou \emph{Framework};
\textabbrv{CSS} avancé ou \emph{Framework};
\item
Initiation au dynamisme côté client (JavaScript, jQuery, \ldots).
\end{itemize}
\item
Scripts côté serveur.
\item
Éléments d'interaction client-serveur (requête \texttt{HTTP}, \texttt{URL}, formulaire).
Éléments d'interaction client-serveur (requête \textabbrv{HTTP}, \textabbrv{URL}, formulaire).
\item
Interrogation d'un \texttt{SGBD} ou d'une \texttt{API}.
Interrogation d'un \textabbrv{SGBD} ou d'une \textabbrv{API}.
\item
Sensibilisation à la sécurisation de sites : failles \texttt{XSS}/\texttt{XSS}
stockée/injections \texttt{SQL}.
Sensibilisation à la sécurisation de sites : failles \textabbrv{XSS}/\textabbrv{XSS}
stockée/injections \textabbrv{SQL}.
\end{itemize}
L'utilisation de l'anglais est préconisée dans la documentation du code.
}
% Mots-clés
\ajoutRmotscles{Web, Développement, Algorithmes, \texttt{SGBD}, \texttt{API}, Sécurité, Environnement client-serveur.}
\ajoutRmotscles{Web, Développement, Algorithmes, \textabbrv{SGBD}, \textabbrv{API}, Sécurité, Environnement client-serveur.}

View File

@ -53,7 +53,7 @@ contexte professionnel technique.}
téléphonique, visioconférence,
réunion, débat).
\item
Présenter son parcours professionnel à l'oral et à l'écrit (\texttt{CV}, lettre
Présenter son parcours professionnel à l'oral et à l'écrit (\textabbrv{CV}, lettre
de motivation, entretien).
\item
Analyser des problèmes et proposer des solutions.
@ -63,7 +63,7 @@ contexte professionnel technique.}
Développer le vocabulaire technique des domaines cibles.
\item
Extensions possibles : télécollaboration, télétandem, parcours
international, dispositif \texttt{EMILE}.
international, dispositif \textabbrv{EMILE}.
\end{itemize}
}

View File

@ -81,4 +81,4 @@ Les activités notamment proposées dans cette ressource sont :
}
% Mots-clés
\ajoutRmotscles{\texttt{CV}, Lettre de motivation, Entretien de recrutement, Stage, Alternance.}
\ajoutRmotscles{\textabbrv{CV}, Lettre de motivation, Entretien de recrutement, Stage, Alternance.}

View File

@ -57,7 +57,7 @@ l'exploitation d'algorithmes mis en œuvre via un outil informatique.}
Convergence d'une suite (opérations sur les limites)
\end{itemize}
\item
Vecteurs en \texttt{2D} et \texttt{3D}
Vecteurs en \textabbrv{2D} et \textabbrv{3D}
\begin{itemize}
\item
Définitions

View File

@ -36,7 +36,7 @@ conscient, averti et responsable. L'hygiène informatique et les bonnes
pratiques de l'usage du numérique sont des connaissances que doivent
maîtriser et appliquer les étudiants avant d'aller en stage/alternance
en entreprise, où ils devront respecter la charte informatique imposée
par la \texttt{DSI}. A plus long terme, en tant que professionnels des services
par la \textabbrv{DSI}. A plus long terme, en tant que professionnels des services
informatiques de l'entreprise, ils auront à leur tour à charge de
sensibiliser les utilisateurs et de leur faire connaître et accepter la
charte de bon usage des moyens informatiques.}

View File

@ -19,7 +19,7 @@ On pourra faire un focus particulier sur les points suivants:
\item
Sécurité numérique : sauvegardez vos données régulièrement;
\item
Appliquez les mises à jour de sécurité sur tous vos appareils (\texttt{PC},
Appliquez les mises à jour de sécurité sur tous vos appareils (\textabbrv{PC},
tablettes, téléphones\ldots), et ce,
dès qu'elles vous sont proposées;
\item
@ -40,10 +40,10 @@ On pourra faire un focus particulier sur les points suivants:
sur l'usage d'un faux point d'accès WiFi et de collecter des
identifiants de réseaux sociaux, \ldots;
\item
Analysez les trames non chiffrées des protocoles (\texttt{TELNET}, \texttt{FTP}, \texttt{SMTP},
\texttt{POP}, \texttt{IMAP}, \texttt{RTP}, \ldots) avec Wireshark,
en extraire des champs significatifs avec Analyse/Follow/\texttt{TCP} Stream
(ou \texttt{HTTP} Stream). On peut utiliser
Analysez les trames non chiffrées des protocoles (\textabbrv{TELNET}, \textabbrv{FTP}, \textabbrv{SMTP},
\textabbrv{POP}, \textabbrv{IMAP}, \textabbrv{RTP}, \ldots) avec Wireshark,
en extraire des champs significatifs avec Analyse/Follow/\textabbrv{TCP} Stream
(ou \textabbrv{HTTP} Stream). On peut utiliser
un site Web (création personnelle ou sur Internet) contenant un
formulaire d'enregistrement
(ex: \url{http://www.supportduweb.com/signup.html});
@ -57,7 +57,7 @@ On pourra également utiliser les supports :
Cybermalveillance:
\url{https://www.cybermalveillance.gouv.fr/bonnes-pratiques}
\item
\texttt{MOOC} \texttt{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\textabbrv{MOOC} \textabbrv{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\end{itemize}
}

View File

@ -14,11 +14,11 @@ On pourra faire un focus particulier sur les points suivants:
\item
L'arnaque au faux support technique;
\item
Les attaques en déni de service (\texttt{DDoS});
Les attaques en déni de service (\textabbrv{DDoS});
\item
Chantage à l'ordinateur ou à la webcam prétendus piratés;
\item
L'escroquerie aux faux ordres de virement (\texttt{FOVI});
L'escroquerie aux faux ordres de virement (\textabbrv{FOVI});
\item
La défiguration de site Internet;
\item
@ -46,7 +46,7 @@ On pourra également utiliser les supports:
Cybermalveillance:
\url{https://www.cybermalveillance.gouv.fr/bonnes-pratiques}
\item
\texttt{MOOC} \texttt{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\textabbrv{MOOC} \textabbrv{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\end{itemize}
}

View File

@ -39,7 +39,7 @@ d'une bonne hygiène informatique, en découvrant :
\item
les dépassement de tampon;
\item
les usurpations diverses (\texttt{ARP}, \texttt{DNS}, \ldots);
les usurpations diverses (\textabbrv{ARP}, \textabbrv{DNS}, \ldots);
\item
les écoutes de réseau.
\end{itemize}
@ -50,7 +50,7 @@ On pourra également utiliser les supports :
Cybermalveillance:
\url{https://www.cybermalveillance.gouv.fr/bonnes-pratiques}
\item
\texttt{MOOC} \texttt{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\textabbrv{MOOC} \textabbrv{ANSSI}: \url{https://secnumacademie.gouv.fr/}
\item
Malette CyberEdu:
\url{https://www.ssi.gouv.fr/entreprise/formations/secnumedu/contenu-pedagogique-cyberedu/}

View File

@ -14,25 +14,25 @@ caractéristiques de consommation d'énergie des équipements du réseau.}
\ajoutESdescription{
Il s'agit de comprendre l'agencement des briques réseaux (accès au
réseau Internet, Box en général), des équipements (routeur, switch,
firewall, WiFi), des terminaux (\texttt{PC}, smartphone, imprimantes, consoles de
jeux, media-center, \texttt{NAS}, \ldots) et des protocoles (\texttt{IP}, \texttt{DHCP}, \texttt{DNS}, Mail,
firewall, WiFi), des terminaux (\textabbrv{PC}, smartphone, imprimantes, consoles de
jeux, media-center, \textabbrv{NAS}, \ldots) et des protocoles (\textabbrv{IP}, \textabbrv{DHCP}, \textabbrv{DNS}, Mail,
Web, \ldots) qui permettent leur fonctionnement.\\
On peut s'appuyer sur le réseau domestique de chaque étudiant avec une
Box d'accès Internet (\texttt{xDSL}, \texttt{FO}), ou bien une maquette TP avec un routeur
Box d'accès Internet (\textabbrv{xDSL}, \textabbrv{FO}), ou bien une maquette TP avec un routeur
de sortie accédant à Internet via les ressources informatiques du
département.On peut caractériser simplement l'adressage \texttt{IP}v4 dynamique,
le masque de sous-réseaux, la passerelle par défaut, les serveurs \texttt{DNS}.\\
On peut également faire paramétrer un adressage \texttt{IP}v4 statique sur un
département.On peut caractériser simplement l'adressage \textabbrv{IP}v4 dynamique,
le masque de sous-réseaux, la passerelle par défaut, les serveurs \textabbrv{DNS}.\\
On peut également faire paramétrer un adressage \textabbrv{IP}v4 statique sur un
poste client.On peut s'appuyer sur les commandes de base:
\texttt{ipconfig}, \texttt{ifconfig}, \texttt{ip}, \texttt{ping},
\texttt{arp}, \texttt{traceroute}, \texttt{arp-scan}
(\emph{ArpCacheWatch} sous Windows) pour lister les adresses \texttt{MAC}
(\emph{ArpCacheWatch} sous Windows) pour lister les adresses \textabbrv{MAC}
présentes dans le réseau local.\\
On peut faire découvrir les outils pour connaître son adresse \texttt{IP}
On peut faire découvrir les outils pour connaître son adresse \textabbrv{IP}
Publique :
\url{https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer}.\\
Enfin, on pourra initier les étudiants les plus avancés à l'usage de la
distribution Linux Kali en \texttt{VM} avec l'outil \texttt{nmap} pour découvrir
distribution Linux Kali en \textabbrv{VM} avec l'outil \texttt{nmap} pour découvrir
(en interne) les ports ouverts sur les équipements du réseau local
domestique. Bien expliquer que l'usage de cet outil de test de
pénétration doit être réalisé en respectant l'éthique.

View File

@ -5,9 +5,9 @@
\nouvelexemple{Concevoir un réseau informatique pour une manifestation évènementielle}
\ajoutESproblematique{L'objectif est d'être capable d'installer un réseau informatique avec
l'interconnexion de switches, un routeur d'accès Internet (\texttt{FO} ou \texttt{4G}), un
l'interconnexion de switches, un routeur d'accès Internet (\textabbrv{FO} ou \textabbrv{4G}), un
point d'accès WiFi, savoir effectuer la segmentation du réseau,
configurer le plan d'adressage (statique/\texttt{DHCP}) et le routage,
configurer le plan d'adressage (statique/\textabbrv{DHCP}) et le routage,
installation des postes clients (Windows, Linux) pour les utilisateurs.}
\ajoutESdescription{
@ -15,7 +15,7 @@ Il s'agit de répondre au cahier des charges, savoir dimensionner les
puissances électriques de l'installation réseau et télécom, savoir
dimensionner les équipements du réseau, assurer l'interconnexion d'une
installation temporaire, garantir la sécurité des ports des switchs,
utiliser des \texttt{VLAN} distincts (\emph{data}, \emph{management}), mettre en
utiliser des \textabbrv{VLAN} distincts (\emph{data}, \emph{management}), mettre en
place une politique sécurisée de mots de passe (utilisateurs,
équipements), savoir monitorer les éléments actifs et observer le trafic
sur réseau, savoir diagnostiquer les dysfonctionnements.

View File

@ -22,7 +22,7 @@ d'en permettre leur administration dans l'avenir.\\
Une fois le réseau fonctionnel, définition d'un poste comme point
d'administration. Ce poste dispose d'un accès à une interface de
commande (console et ssh sur routeur et switch) et d'une interface
capturant le trafic sur lien inter-\texttt{VLAN}. Possibilité d'analyser les flux
capturant le trafic sur lien inter-\textabbrv{VLAN}. Possibilité d'analyser les flux
sur grâce aux outils de capture des trames (Tcpdump, Wireshark).\\
En synthèse, l'étudiant sera confronté à :
\begin{itemize}
@ -31,7 +31,7 @@ En synthèse, l'étudiant sera confronté à :
\item
Construction (sertissage) des câbles et recettes de conformité.
\item
Déploiement et configuration d'un \texttt{LAN} multi-réseaux, multi-\texttt{VLAN}.
Déploiement et configuration d'un \textabbrv{LAN} multi-réseaux, multi-\textabbrv{VLAN}.
\item
Déploiement des postes clients communicants.
\item

View File

@ -6,8 +6,8 @@
\ajoutESproblematique{Il s'agit de configurer un RaspberryPI pour que l'on puisse le
programmer sans avoir à toujours y brancher un écran et un clavier mais
en y accédant simplement en \texttt{SSH}, peu important le réseau sur lequel il
est connecté. On peut placer sur le Raspberry une \texttt{LED} qui s'allumerait
en y accédant simplement en \textabbrv{SSH}, peu important le réseau sur lequel il
est connecté. On peut placer sur le Raspberry une \textabbrv{LED} qui s'allumerait
et pour les plus avancés une photoRésistance (avec un pont diviseur
entre photorésistance et une résistance de 10kOhms) pour récupérer la
valeur de la luminosité ambiante.}
@ -19,19 +19,19 @@ Les étapes à réaliser seraient les suivantes :
\begin{itemize}
\item
Connecter un Raspberry PI avec un clavier un écran et récupérer son
adresse \texttt{MAC}.
adresse \textabbrv{MAC}.
\item
Changer le login et le mot de passe par défaut.
\item
Activer \texttt{SSH} sur le Raspberry PI. Récupérer l'adresse \texttt{IP} en \texttt{DHCP}. Voir
comment accéder en \texttt{SSH}.
Activer \textabbrv{SSH} sur le Raspberry PI. Récupérer l'adresse \textabbrv{IP} en \textabbrv{DHCP}. Voir
comment accéder en \textabbrv{SSH}.
\item
Débrancher le Raspberry PI et le brancher sur un autre réseau
ailleurs. Puis utiliser les commandes
\texttt{SSH} pour retrouver l'adresse de la carte sur le nouveau réseau et
\textabbrv{SSH} pour retrouver l'adresse de la carte sur le nouveau réseau et
communiquer avec elle.
\item
Utiliser via \texttt{SSH} le Raspberry PI pour allumer la \texttt{LED} qui est connectée
Utiliser via \textabbrv{SSH} le Raspberry PI pour allumer la \textabbrv{LED} qui est connectée
et pour les plus avancés récupérer
la valeur du capteur (Photorésistance) pour évaluer la luminosité dans
la pièce où on a placé la carte.

View File

@ -52,7 +52,7 @@ L'évaluation s'appuiera sur tout ou partie des éléments suivants :
\item
rapport de mesures;
\item
\texttt{QCM} sur les mesures;
\textabbrv{QCM} sur les mesures;
\item
grille de suivi du travail;
\item

View File

@ -8,7 +8,7 @@
(atténuation, bande passante, catégorie ou norme) et/ou analyser un
schéma de câblage cuivre, de caractériser par des mesures le support
cuivre (retard de propagation, atténuation, continuité, échos, bruit,
perturbations, identifier un défaut) voire de certifier un câblage \texttt{LAN}
perturbations, identifier un défaut) voire de certifier un câblage \textabbrv{LAN}
cuivre afin de comprendre les principaux critères de choix d'un support
et/ou de savoir présenter des résultats à un client ou un collaborateur.\\
L'étudiant saura mobiliser les compétences pour réaliser des mesures ou
@ -41,7 +41,7 @@ Exemples de mise en oeuvre :
\item
Mesure temporelle (échelon, sinus), retard de propagation,
atténuation,échos (réflexion), perturbations,
(\texttt{GBF}, oscillo, câble);
(\textabbrv{GBF}, oscillo, câble);
\item
Vérifier la conformité par rapport à un cahier des charges, une norme,
ou une réglementation, comme
@ -71,7 +71,7 @@ On pourra s'appuyer sur:
\item
rapport de mesures ;
\item
\texttt{QCM} sur les mesures;
\textabbrv{QCM} sur les mesures;
\item
grille de suivi du travail;
\item

View File

@ -8,7 +8,7 @@
de mesure et/ou de mettre en place une liaison optique et/ou d'analyser
la structure d'une liaison optique, de caractériser par des mesures le
support fibre optique (crayon optique, sonde d'inspection, photométrie,
identifier un défaut, \ldots) voire de certifier un câblage \texttt{LAN} fibre
identifier un défaut, \ldots) voire de certifier un câblage \textabbrv{LAN} fibre
optique. L'étudiant pourra ainsi comprendre les principaux critères de
choix d'un support et/ou de savoir présenter des résultats à un client
ou un collaborateur.\\
@ -54,7 +54,7 @@ On pourra s'appuyer sur:
\item
rapport de mesures;
\item
\texttt{QCM} sur les mesures;
\textabbrv{QCM} sur les mesures;
\item
grille de suivi du travail;
\item

View File

@ -8,7 +8,7 @@
de mesure et/ou de mettre en place une liaison radio et/ou d'analyser la
structure d'une liaison radio, de caractériser par des mesures le
support radio (atténuation, effet des interférences, \ldots) voire de
certifier un câblage \texttt{LAN}. L'étudiant pourra ainsi comprendre les
certifier un câblage \textabbrv{LAN}. L'étudiant pourra ainsi comprendre les
principaux critères de choix d'un support et/ou de savoir présenter des
résultats à un client ou un collaborateur.\\
L'étudiant saura mobiliser les compétences pour réaliser des mesures ou
@ -53,7 +53,7 @@ On pourra s'appuyer sur:
\item
rapport de mesures ;
\item
\texttt{QCM} sur les mesures;
\textabbrv{QCM} sur les mesures;
\item
grille de suivi du travail;
\item

View File

@ -17,7 +17,7 @@ rédiger un compte-rendu de mesure.}
L'entreprise demande à l'étudiant de caractériser par des mesures un ou
plusieurs types de supports (retard de propagation, atténuation,
continuité, échos, bruit, perturbations, identifier un défaut) voire de
certifier un câblage \texttt{LAN} (cuivre, fibre, radio) afin de comprendre et
certifier un câblage \textabbrv{LAN} (cuivre, fibre, radio) afin de comprendre et
comparer les principaux critères de choix d'un support et/ou de savoir
présenter des résultats à un client ou un collaborateur.\\
L'étudiant devra s'appuyer sur ses connaissances, notamment les concepts
@ -50,9 +50,9 @@ Exemples de mise en oeuvre :
\item
sur un support cuivre : mesure temporelle (échelon, sinus), retard de
propagation, atténuation,échos
(réflexion), perturbations, (\texttt{GBF}, oscillo, câble);
(réflexion), perturbations, (\textabbrv{GBF}, oscillo, câble);
\item
sur un support \texttt{FO} : soudure, crayon optique, sonde d'inspection,
sur un support \textabbrv{FO} : soudure, crayon optique, sonde d'inspection,
photométrie;
\item
sur un support radio : atténuation,\ldots{}
@ -70,7 +70,7 @@ On pourra s'appuyer sur:
\item
rapport de mesures ;
\item
\texttt{QCM} sur les mesures;
\textabbrv{QCM} sur les mesures;
\item
grille de suivi du travail;
\item

View File

@ -36,13 +36,13 @@ Le contenu du site pourra par exemple :
Un affichage en anglais de tout ou partie pourra être envisagé.\\
Une attention particulière sera portée sur les contenus eux-mêmes qui
pourront par exemple être travaillés de concert avec les enseignants de
communication, d'anglais, de \texttt{PPP} et d'informatique.\\
communication, d'anglais, de \textabbrv{PPP} et d'informatique.\\
La réalisation pourra éventuellement utiliser un système de gestion de
contenu (CMS, par exemple Wordpress).\\
Le travail pourra être intégré au portfolio de l'étudiant.
}
\ajoutESformes{TP, projet, séminaire de traces dans le cadre du \texttt{PPP}.}
\ajoutESformes{TP, projet, séminaire de traces dans le cadre du \textabbrv{PPP}.}

View File

@ -63,7 +63,7 @@ différentes étapes :
\item
de sites web ;
\item
d'\texttt{API}, par exemple l'\texttt{API} Google pour cartographie permettant de
d'\textabbrv{API}, par exemple l'\textabbrv{API} Google pour cartographie permettant de
traiter des données de géolocalisation,
ou des sources ouvertes;
\item

View File

@ -26,7 +26,7 @@
\ajoutSac{AC0211}{Mesurer et analyser les signaux}
\ajoutSac{AC0212}{Caractériser des systèmes de transmissions élémentaires et découvrir la modélisation mathématique de leur fonctionnement}
\ajoutSac{AC0213}{Déployer des supports de transmission}
\ajoutSac{AC0214}{Connecter les systèmes de \texttt{ToIP}}
\ajoutSac{AC0214}{Connecter les systèmes de \textabbrv{ToIP}}
\ajoutSac{AC0215}{Communiquer avec un client ou un collaborateur}
\ajoutScompetence{RT3-Programmer}{\niveauA}
@ -50,7 +50,7 @@ documente et analyse sa trajectoire de développement en mobilisant des
traces, des preuves issues de l'ensemble des mises en situation
professionnelle (SAÉ) qu'il a vécues.\\
Le portfolio est un élément structurant des formations en Approche Par
Compétence (\texttt{APC}). En effet, le portfolio :
Compétence (\textabbrv{APC}). En effet, le portfolio :
\begin{itemize}
\item
soutient l'apprentissage par la constitution d'un dossier de traces
@ -83,9 +83,9 @@ professionnelle vécues (SAÉ), le portfolio nécessite la mobilisation et
la combinaison de ressources telles que l'expression et la
communication. Et parce que cette démarche portfolio repose sur une
démonstration par l'apprenant de sa professionnalisation, le portfolio
s'appuie nécessairement sur le \texttt{PPP} en tant que ressource.\\
s'appuie nécessairement sur le \textabbrv{PPP} en tant que ressource.\\
Aussi, parallèlement à ses objectifs traditionnels issus de l'expérience
acquise dans le cadre du DUT, le \texttt{PPP} devra, tel un fil conducteur,
acquise dans le cadre du DUT, le \textabbrv{PPP} devra, tel un fil conducteur,
permettre à l'étudiant d'être guidé dans la compréhension et
l'appropriation de son cursus de formation, ainsi que dans la
méthodologie d'écriture du portfolio.\\

View File

@ -55,8 +55,8 @@ fournir à la structure un réseau fonctionnel et structuré.}
\item
Maquette du projet
\item
Dossier ou rapport décrivant l'architecture physique, les \texttt{VLAN},
l'adressage \texttt{IP}, les principaux points
Dossier ou rapport décrivant l'architecture physique, les \textabbrv{VLAN},
l'adressage \textabbrv{IP}, les principaux points
de vérification du projet, des captures de trafic et différents
scénarios permettant de valider les
contraintes du cahier des charges (scénarios de routage, d'accès aux
@ -67,4 +67,4 @@ fournir à la structure un réseau fonctionnel et structuré.}
}
% Mots-clés
\ajoutSmotscles{Adressage \texttt{IP}, \texttt{VLAN}, \texttt{VTP}, routage inter-\texttt{VLAN}, \texttt{NAT}, \texttt{PAT}, \texttt{ACL}, \texttt{DNS}, \texttt{HTTP}, \texttt{SSH}, routage (vecteur de distance / état de lien), \texttt{PXE}, \texttt{TFTP}.}
\ajoutSmotscles{Adressage \textabbrv{IP}, \textabbrv{VLAN}, \textabbrv{VTP}, routage inter-\textabbrv{VLAN}, \textabbrv{NAT}, \textabbrv{PAT}, \textabbrv{ACL}, \textabbrv{DNS}, \textabbrv{HTTP}, \textabbrv{SSH}, routage (vecteur de distance / état de lien), \textabbrv{PXE}, \textabbrv{TFTP}.}

View File

@ -2,7 +2,7 @@
% Exemple de SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvelexemple{Construction de réseau routé (statique/dynamique), routage inter-\texttt{VLAN} : approche matérielle ou virtuelle}
\nouvelexemple{Construction de réseau routé (statique/dynamique), routage inter-\textabbrv{VLAN} : approche matérielle ou virtuelle}
\ajoutESproblematique{\vspace{-5pt}
\begin{itemize}
@ -13,7 +13,7 @@
Élaborer une méthode efficace pour tester progressivement la
configuration réalisée.
\item
Construire un réseau local virtuel \texttt{VLAN}.
Construire un réseau local virtuel \textabbrv{VLAN}.
\item
Intercepter un trafic entre 2 ordinateurs et identifier le chemin
utilisé.
@ -24,7 +24,7 @@
\ajoutESdescription{
L'objectif est de construire un réseau local de niveau 2 (commutation)
et 3 (routage) en introduisant le concept de réseau local virtuel
(\texttt{VLAN}). Le réseau répondra à un besoin d'entreprise ``simple'', par ex:
(\textabbrv{VLAN}). Le réseau répondra à un besoin d'entreprise ``simple'', par ex:
le réseau d'une entreprise localisée dans 3 villes différentes. Un outil
d'émulation est utilisé avec production d'un projet enregistrable pour
que l'exercice puisse être construit progressivement au fur et à mesure
@ -32,10 +32,10 @@ des séances. L'étudiant doit s'organiser pour construire par étapes son
réseau et surtout vérifier à chaque étape que l'ajout qu'il vient
d'effectuer permet au réseau de toujours fonctionner.\\
Développement et configuration d'une architecture de réseau d'entreprise
simple composée de 6 \texttt{VLAN} et 3 routeurs.\\
simple composée de 6 \textabbrv{VLAN} et 3 routeurs.\\
Équipements réseau : 4 switches et 3 routeurs.\\
Extension possible : effectuer du \texttt{VRF}, ajouter des tunnels, introduire
un \texttt{NAT}, effectuer du filtrage sur un \texttt{VLAN} spécifique.\\
Extension possible : effectuer du \textabbrv{VRF}, ajouter des tunnels, introduire
un \textabbrv{NAT}, effectuer du filtrage sur un \textabbrv{VLAN} spécifique.\\
Préconisations :
\begin{itemize}
\item
@ -59,7 +59,7 @@ Préconisations :
\item
Vérification d'une interconnexion complète.
\item
Vérification de la sécurisation/isolement d'un \texttt{VLAN} vis à vis des
Vérification de la sécurisation/isolement d'un \textabbrv{VLAN} vis à vis des
autres postes clients.
\item
Démontrer à l'aide d'un document le respect du cahier des charges,

View File

@ -14,7 +14,7 @@ Sa mission consiste à :
dotée de services réseaux et
de règles de sécurité.
\item
Mettre en place une \texttt{DMZ} pour héberger les serveurs publics de
Mettre en place une \textabbrv{DMZ} pour héberger les serveurs publics de
l'entreprise.
\item
Configurer l'accès à Internet.
@ -26,17 +26,17 @@ Sa mission consiste à :
\ajoutESdescription{
L'objectif de cette SAÉ est de mettre en œuvre un réseau d'entreprise
basé sur une architecture segmentée en \texttt{VLAN} qui intègre différents
services réseaux. Certaines applications serveur (\texttt{HTTP}, \texttt{DHCP}, \texttt{SSH})
basé sur une architecture segmentée en \textabbrv{VLAN} qui intègre différents
services réseaux. Certaines applications serveur (\textabbrv{HTTP}, \textabbrv{DHCP}, \textabbrv{SSH})
seront à installer et à configurer par l'étudiant et d'autres seront
préalablement configurées (\texttt{DNS} notamment).\\
Le concept de \texttt{DMZ} sera abordé et les mécanismes de translation d'adresse
préalablement configurées (\textabbrv{DNS} notamment).\\
Le concept de \textabbrv{DMZ} sera abordé et les mécanismes de translation d'adresse
statique et dynamique seront traités. L'initiation au filtrage de flux
sera également amenée au travers de cette séquence d'apprentissage.\\
Un outil d'émulation est préférable à une solution matérielle afin que
l'exercice puisse être construit progressivement au fur et à mesure des
séances. Les logiciels d'émulation comme GNS3, VIRL, EVE-NG peuvent être
utilisés et complétés avec VirtualBox ou \texttt{VM}ware. Il faut aussi que ces
utilisés et complétés avec VirtualBox ou \textabbrv{VM}ware. Il faut aussi que ces
outils soient mis à disposition des étudiants pour qu'ils puissent
continuer le projet en dehors des heures encadrées.\\
L'étudiant doit adopter une approche de type projet et découper son
@ -47,26 +47,26 @@ résultats de commandes, acquisition de trames\ldots) obtenus devront
L'infrastructure réseau est volontairement simple afin que l'étudiant
puisse se concentrer sur des concepts fondamentaux. Cette architecture
est constituée de 2 commutateurs d'accès (L2), d'un commutateur de
distribution (L3) qui assure le routage inter-\texttt{VLAN} et d'un routeur
passerelle qui fait office de pare-feu. Les services réseaux \texttt{HTTP}, DNS,
\texttt{DHCP} et \texttt{SSH} sont installés sur des machines virtuelles.\\
distribution (L3) qui assure le routage inter-\textabbrv{VLAN} et d'un routeur
passerelle qui fait office de pare-feu. Les services réseaux \textabbrv{HTTP}, DNS,
\textabbrv{DHCP} et \textabbrv{SSH} sont installés sur des machines virtuelles.\\
A partir du cahier des charges fourni, l'étudiant sera amené à réaliser
différentes activités dont voici quelques exemples :
\begin{itemize}
\item
Plan d'adressage.
\item
Création des \texttt{VLAN}.
Création des \textabbrv{VLAN}.
\item
Routage inter-\texttt{VLAN}.
Routage inter-\textabbrv{VLAN}.
\item
Mise en place de \texttt{VM}.
Mise en place de \textabbrv{VM}.
\item
Accès à Internet.
\item
Configuration du serveur \texttt{DHCP}, \texttt{SSH} et \texttt{HTTP}.
Configuration du serveur \textabbrv{DHCP}, \textabbrv{SSH} et \textabbrv{HTTP}.
\item
Ajout d'entrées au serveur \texttt{DNS}.
Ajout d'entrées au serveur \textabbrv{DNS}.
\item
Configuration du pare-feu (une règle de filtrage).
\end{itemize}
@ -77,7 +77,7 @@ encadrées, l'étudiant ou l'équipe, sera confronté aux formes
pédagogiques suivantes :
\begin{itemize}
\item
Création d'un réseau segmenté en \texttt{VLAN} avec mise en place d'une \texttt{DMZ} et
Création d'un réseau segmenté en \textabbrv{VLAN} avec mise en place d'une \textabbrv{DMZ} et
de services réseaux
\item
Élaboration d'une méthode efficace pour tester progressivement la
@ -98,14 +98,14 @@ pédagogiques suivantes :
\begin{itemize}
\item
un utilisateur interne à l'entreprise peut-il bénéficier des
services \texttt{HTTP}, \texttt{DNS} et \texttt{DHCP} internes et
services \textabbrv{HTTP}, \textabbrv{DNS} et \textabbrv{DHCP} internes et
se connecter à Internet.
\item
un utilisateur lambda peut-il accéder au serveur \texttt{HTTP} de
un utilisateur lambda peut-il accéder au serveur \textabbrv{HTTP} de
l'entreprise depuis Internet ?
\item
l'administrateur réseau de l'entreprise peut-il gérer les
équipements à l'aide d'une connexion \texttt{SSH}
équipements à l'aide d'une connexion \textabbrv{SSH}
dans l'entreprise et hors de l'entreprise ?
\end{itemize}
\item

View File

@ -21,9 +21,9 @@ embarqué quand le bootloader (U-boot) est accessible. La mise en oeuvre
comprend :
\begin{itemize}
\item
Démarrage réseau (\texttt{PXE}) pour charger un bootloader (\texttt{PXE} Linux).
Démarrage réseau (\textabbrv{PXE}) pour charger un bootloader (\textabbrv{PXE} Linux).
\item
Configuration d'un serveur \texttt{TFTP} (\texttt{tftpd-hpa}).
Configuration d'un serveur \textabbrv{TFTP} (\texttt{tftpd-hpa}).
\item
Modification du fichier de configuration pour choisir le mode
(utilisation normale / installation).
@ -46,8 +46,8 @@ encadrées, l'étudiant ou l'équipe, sera confronté aux formes
pédagogiques suivantes :
\begin{itemize}
\item
Mise en place un serveur \texttt{TFTP} et permettre aux machines clientes de
démarrer sur le réseau (\texttt{PXE}) pour
Mise en place un serveur \textabbrv{TFTP} et permettre aux machines clientes de
démarrer sur le réseau (\textabbrv{PXE}) pour
récupérer une image du système d'exploitation.
\item
Élaboration d'une méthode efficace pour tester progressivement la

View File

@ -2,34 +2,34 @@
% Exemple de SAE
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\nouvelexemple{Analyse de lignes \texttt{ADSL}}
\nouvelexemple{Analyse de lignes \textabbrv{ADSL}}
\ajoutESproblematique{Les lignes \texttt{ADSL} peuvent être perturbées par des signaux parasites créés
\ajoutESproblematique{Les lignes \textabbrv{ADSL} peuvent être perturbées par des signaux parasites créés
par exemple par une alimentation défectueuse ou un moteur d'ascenseur
avec des problèmes de \texttt{CEM}. Ces perturbateurs peuvent entraîner une
déconnexion totale d'une ligne \texttt{ADSL} voir de toutes les lignes d'un
avec des problèmes de \textabbrv{CEM}. Ces perturbateurs peuvent entraîner une
déconnexion totale d'une ligne \textabbrv{ADSL} voir de toutes les lignes d'un
immeuble. L'analyse spectrale et la recherche de ces perturbateurs est
donc une fonction du maintien en condition opérationnelle de ces lignes.}
\ajoutESdescription{
La SAÉ porte sur l'analyse d'un signal \texttt{ADSL} dans le domaine spectral et
La SAÉ porte sur l'analyse d'un signal \textabbrv{ADSL} dans le domaine spectral et
pourra comporter jusqu'à 5 parties :
\begin{itemize}
\item
Affichage de la \texttt{FFT} d'un signal \texttt{ADSL} ou \texttt{ADSL}2+. On donnera par exemple
Affichage de la \textabbrv{FFT} d'un signal \textabbrv{ADSL} ou \textabbrv{ADSL}2+. On donnera par exemple
le signal sous forme d'un fichier
Excel (une colonne pour le temps et une pour l'amplitude, soit 2
vecteurs) et l'étudiant devra afficher
la \texttt{FFT}.
la \textabbrv{FFT}.
\item
Détermination de la largeur de la bande montante et descendante
(changement de valeur de la \texttt{DSP}).
(changement de valeur de la \textabbrv{DSP}).
\item
Détermination de la norme \texttt{ADSL} ou \texttt{ADSL}2+ (en fonction de la largeur de
Détermination de la norme \textabbrv{ADSL} ou \textabbrv{ADSL}2+ (en fonction de la largeur de
bande descendante).
\item
Calcul de puissance de la bande montante et descendante (intégration
de la \texttt{DSP}).
de la \textabbrv{DSP}).
\item
Recherche d'un perturbateur électromagnétique : on donnera une autre
capture avec un perturbateur
@ -37,7 +37,7 @@ pourra comporter jusqu'à 5 parties :
fréquence de ce perturbateur dans le
spectre.
\end{itemize}
Le travail pourra s'appuyer sur une librairie pour calculer la \texttt{FFT} (par
Le travail pourra s'appuyer sur une librairie pour calculer la \textabbrv{FFT} (par
ex : \texttt{numpy} en Python) et une autre pour l'affichage d'une
courbe (par ex : \texttt{matplotlib} en Python).
}

View File

@ -25,9 +25,9 @@ Les exemples de signaux à étudier pourront être de type :
\item
téléphonie portable;
\item
réception \texttt{TV} : \texttt{DVB-S} ou \texttt{DVB-T};
réception \textabbrv{TV} : \textabbrv{DVB-S} ou \textabbrv{DVB-T};
\item
réception \texttt{FM} ou \texttt{DAB}.
réception \textabbrv{FM} ou \textabbrv{DAB}.
\end{itemize}
}

View File

@ -27,7 +27,7 @@ Les exemples de numérisation à comparer pourront être :
\item
de type audio en téléphonie;
\item
de type audio avec une qualité \texttt{HiFi};
de type audio avec une qualité \textabbrv{HiFi};
\item
de type codec G711.
\end{itemize}

View File

@ -35,7 +35,7 @@ la SAé pourra être mise en oeuvre avec différentes étapes :
\item
Utilisation d'une machine virtuelle ou accès à distance aux
ressources (par ex : ferme ESX,
Proxmox, Guacamole, Docker, \ldots), partage par clés \texttt{USB}
Proxmox, Guacamole, Docker, \ldots), partage par clés \textabbrv{USB}
\item
Installation ou utilisation d'un serveur web non chiffré (type Nginx
ou Apache)
@ -49,7 +49,7 @@ la SAé pourra être mise en oeuvre avec différentes étapes :
\item
Algorithmique (script serveur, dépôt de codes)
\item
Technologie Web (\texttt{HTML}, \texttt{CSS})
Technologie Web (\textabbrv{HTML}, \textabbrv{CSS})
\item
Base de données avec manipulation de données (ajout, suppression,
modification)

View File

@ -40,7 +40,7 @@ la SAÉ pourra être mise en oeuvre avec différentes étapes :
\item
Utilisation d'une machine virtuelle ou accès à distance aux
ressources (par ex : ferme ESX,
Proxmox, Guacamole, Docker, \ldots), partage par clés \texttt{USB}
Proxmox, Guacamole, Docker, \ldots), partage par clés \textabbrv{USB}
\item
Installation ou utilisation d'un serveur web non chiffré (type Nginx
ou Apache)
@ -54,7 +54,7 @@ la SAÉ pourra être mise en oeuvre avec différentes étapes :
\item
Algorithmique (script serveur, dépôt de codes)
\item
Technologie Web (\texttt{HTML}, \texttt{CSS})
Technologie Web (\textabbrv{HTML}, \textabbrv{CSS})
\item
Base de données avec manipulation de données (ajout, suppression,
modification)
@ -75,7 +75,7 @@ la SAÉ pourra être mise en oeuvre avec différentes étapes :
\item
Site fonctionnel et dynamique
\item
Données manipulées dans une \texttt{BDD} (ajout, suppression, modification)
Données manipulées dans une \textabbrv{BDD} (ajout, suppression, modification)
\item
Documentation technique, informative
\item

View File

@ -26,7 +26,7 @@
\ajoutSac{AC0211}{Mesurer et analyser les signaux}
\ajoutSac{AC0212}{Caractériser des systèmes de transmissions élémentaires et découvrir la modélisation mathématique de leur fonctionnement}
\ajoutSac{AC0213}{Déployer des supports de transmission}
\ajoutSac{AC0214}{Connecter les systèmes de \texttt{ToIP}}
\ajoutSac{AC0214}{Connecter les systèmes de \textabbrv{ToIP}}
\ajoutSac{AC0215}{Communiquer avec un client ou un collaborateur}
\ajoutScompetence{RT3-Programmer}{\niveauA}
@ -77,9 +77,9 @@
Dossier ou rapport d'étude\\
Prototype ou montage\\
Présentation orale avec diaporama\\
Et / ou \texttt{QCM}\\
Et / ou \textabbrv{QCM}\\
Et / ou grille de suivi
}
% Mots-clés
\ajoutSmotscles{Réseaux locaux, \texttt{LAN}, Programmation, Cybersécurité.}
\ajoutSmotscles{Réseaux locaux, \textabbrv{LAN}, Programmation, Cybersécurité.}

View File

@ -6,13 +6,13 @@
\ajoutESproblematique{Le réseau informatique domestique est une « petite » instance d'un
réseau d'entreprise (par exemple, box, points d'accès wifi, réseaux du
CROUS, modem, \texttt{4G}, ordinateurs, téléphonie, objets connectés).\\
CROUS, modem, \textabbrv{4G}, ordinateurs, téléphonie, objets connectés).\\
Dans cette SAÉ, l'étudiant devra comprendre l'agencement des briques
télécoms (accès au réseau), des équipements (routeur, switch, firewall,
WiFi), des terminaux (\texttt{PC}, smartphone, \ldots) et des protocoles (IP,
\texttt{DHCP}, \texttt{DNS}, Mail, Web, \ldots) qui permettent le fonctionnement de son
WiFi), des terminaux (\textabbrv{PC}, smartphone, \ldots) et des protocoles (IP,
\textabbrv{DHCP}, \textabbrv{DNS}, Mail, Web, \ldots) qui permettent le fonctionnement de son
réseau domestique.\\
Il devra également reconnaître les \texttt{OS} des différents appareils connectés
Il devra également reconnaître les \textabbrv{OS} des différents appareils connectés
à ce réseau et décrire leurs caractéristiques, notamment en termes de
sécurité.}

View File

@ -55,7 +55,7 @@ l'hygiène informatique en contexte professionnel.
\ajoutESmodalite{\vspace{-5pt}
\begin{itemize}
\item
Une maquette autonome, réelle ou virtuelle, d'un réseau de \texttt{PME},
Une maquette autonome, réelle ou virtuelle, d'un réseau de \textabbrv{PME},
intégrant des vulnérabilités et des
outils permettant de les exploiter.
\item

View File

@ -53,3 +53,18 @@
{}
{}
\makeatother
% Les mots "abbréviations"
\def\textabbrv{\textsc}
% Boite pour page de titre
\definecolor{mycolor}{rgb}{0.122, 0.435, 0.698}
\newmdenv[innerlinewidth=0.5pt, roundcorner=4pt,linecolor=mycolor, innerleftmargin=6pt,
innerrightmargin=6pt,
innertopmargin=6pt,
innerbottommargin=6pt,
leftmargin=15mm,
rightmargin=15mm
]{boitepagetitre}

View File

@ -1,372 +1,372 @@
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ACL}} & Access Control List\\
\makebox[1.5cm][r]{\textabbrv{ACL}} & Access Control List\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ADSL}} & Asymmetric Digital Subscriber Line\\
\makebox[1.5cm][r]{\textabbrv{ADSL}} & Asymmetric Digital Subscriber Line\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ALU}} & Arithmetic and Logic Unit\\
\makebox[1.5cm][r]{\textabbrv{ALU}} & Arithmetic and Logic Unit\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ANSSI}} & Agence nationale de la sécurité des systèmes d'information\\
\makebox[1.5cm][r]{\textabbrv{ANSSI}} & Agence nationale de la sécurité des systèmes d'information\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{API}} & Application Programming Interface\\
\makebox[1.5cm][r]{\textabbrv{API}} & Application Programming Interface\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{APC}} & Approche Par Compétence\\
\makebox[1.5cm][r]{\textabbrv{APC}} & Approche Par Compétence\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ARP}} & Address Resolution Protocol\\
\makebox[1.5cm][r]{\textabbrv{ARP}} & Address Resolution Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{BDD}} & Base De Données\\
\makebox[1.5cm][r]{\textabbrv{BDD}} & Base De Données\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CAN}} & Convertisseur Analogique-Numérique\\
\makebox[1.5cm][r]{\textabbrv{CAN}} & Convertisseur Analogique-Numérique\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CC}} & Copie Carbone\\
\makebox[1.5cm][r]{\textabbrv{CC}} & Copie Carbone\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CCi}} & Copie Carbone invisible\\
\makebox[1.5cm][r]{\textabbrv{CCi}} & Copie Carbone invisible\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CEM}} & Compatibilité ÉlectroMagnétique\\
\makebox[1.5cm][r]{\textabbrv{CEM}} & Compatibilité ÉlectroMagnétique\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CNA}} & Convertisseur Numérique-Analogique\\
\makebox[1.5cm][r]{\textabbrv{CNA}} & Convertisseur Numérique-Analogique\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CNIL}} & Commission Nationale de l'Informatique et des Libertés\\
\makebox[1.5cm][r]{\textabbrv{CNIL}} & Commission Nationale de l'Informatique et des Libertés\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CIDR}} & Classless Inter-Domain Routing\\
\makebox[1.5cm][r]{\textabbrv{CIDR}} & Classless Inter-Domain Routing\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CSS}} & Cascading Style Sheets\\
\makebox[1.5cm][r]{\textabbrv{CSS}} & Cascading Style Sheets\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CSV}} & Comma-Separated Values\\
\makebox[1.5cm][r]{\textabbrv{CSV}} & Comma-Separated Values\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{CV}} & Curriculum Vitae\\
\makebox[1.5cm][r]{\textabbrv{CV}} & Curriculum Vitae\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DDoS}} & Distributed Denial of Service\\
\makebox[1.5cm][r]{\textabbrv{DDoS}} & Distributed Denial of Service\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DHCP}} & Dynamic Host Configuration Protocol\\
\makebox[1.5cm][r]{\textabbrv{DHCP}} & Dynamic Host Configuration Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DMZ}} & DeMilitarized Zone\\
\makebox[1.5cm][r]{\textabbrv{DMZ}} & DeMilitarized Zone\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DNS}} & Domain Name System\\
\makebox[1.5cm][r]{\textabbrv{DNS}} & Domain Name System\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DOM}} & Document Object Model\\
\makebox[1.5cm][r]{\textabbrv{DOM}} & Document Object Model\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DSI}} & Direction des Systèmes d'Information\\
\makebox[1.5cm][r]{\textabbrv{DSI}} & Direction des Systèmes d'Information\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DSP}} & Densité Spectrale de Puissance\\
\makebox[1.5cm][r]{\textabbrv{DSP}} & Densité Spectrale de Puissance\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DAB}} & Digital Audio Broadcasting\\
\makebox[1.5cm][r]{\textabbrv{DAB}} & Digital Audio Broadcasting\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DVB-S}} & Digital Video Broadcasting Satellite\\
\makebox[1.5cm][r]{\textabbrv{DVB-S}} & Digital Video Broadcasting Satellite\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{DVB-T}} & Digital Video Broadcasting Terrestre\\
\makebox[1.5cm][r]{\textabbrv{DVB-T}} & Digital Video Broadcasting Terrestre\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{EMILE}} & Enseignement d'une Matière par l'Intégration d'une Langue Etrangère\\
\makebox[1.5cm][r]{\textabbrv{EMILE}} & Enseignement d'une Matière par l'Intégration d'une Langue Etrangère\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{FFT}} & Fast Fourier Transform\\
\makebox[1.5cm][r]{\textabbrv{FFT}} & Fast Fourier Transform\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{FM}} & Frequency Modulation\\
\makebox[1.5cm][r]{\textabbrv{FM}} & Frequency Modulation\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{FO}} & Fibre Optique\\
\makebox[1.5cm][r]{\textabbrv{FO}} & Fibre Optique\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{FOVI}} & Faux Ordres de Virements Internationaux\\
\makebox[1.5cm][r]{\textabbrv{FOVI}} & Faux Ordres de Virements Internationaux\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{FTP}} & File Transfer Protocol\\
\makebox[1.5cm][r]{\textabbrv{FTP}} & File Transfer Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{GBF}} & Générateur de Basses Fréquences\\
\makebox[1.5cm][r]{\textabbrv{GBF}} & Générateur de Basses Fréquences\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{GPIO}} & General Purpose Input/Output\\
\makebox[1.5cm][r]{\textabbrv{GPIO}} & General Purpose Input/Output\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{HiFi}} & High Fidelity\\
\makebox[1.5cm][r]{\textabbrv{HiFi}} & High Fidelity\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{HTML}} & HyperText Markup Language\\
\makebox[1.5cm][r]{\textabbrv{HTML}} & HyperText Markup Language\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{HTTP}} & Hypertext Transfer Protocol\\
\makebox[1.5cm][r]{\textabbrv{HTTP}} & Hypertext Transfer Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ICMP}} & Internet Control Message Protocol\\
\makebox[1.5cm][r]{\textabbrv{ICMP}} & Internet Control Message Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{IMAP}} & Internet Message Access Protocol\\
\makebox[1.5cm][r]{\textabbrv{IMAP}} & Internet Message Access Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{IP}} & Internet Protocol\\
\makebox[1.5cm][r]{\textabbrv{IP}} & Internet Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{IPBX}} & Internet Protocol Private Branch eXchange\\
\makebox[1.5cm][r]{\textabbrv{IPBX}} & Internet Protocol Private Branch eXchange\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{JSON}} & JavaScript Object Notation\\
\makebox[1.5cm][r]{\textabbrv{JSON}} & JavaScript Object Notation\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{LAN}} & Local Area Network\\
\makebox[1.5cm][r]{\textabbrv{LAN}} & Local Area Network\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{LED}} & Light-Emitting Diode\\
\makebox[1.5cm][r]{\textabbrv{LED}} & Light-Emitting Diode\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{MAC}} & Media Access Control\\
\makebox[1.5cm][r]{\textabbrv{MAC}} & Media Access Control\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{MOOC}} & Massive Open Online Course\\
\makebox[1.5cm][r]{\textabbrv{MOOC}} & Massive Open Online Course\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{NAS}} & Network Attached Storage\\
\makebox[1.5cm][r]{\textabbrv{NAS}} & Network Attached Storage\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{NAT}} & Network Address Translation\\
\makebox[1.5cm][r]{\textabbrv{NAT}} & Network Address Translation\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{NDP}} & Neighbor Discovery Protocol\\
\makebox[1.5cm][r]{\textabbrv{NDP}} & Neighbor Discovery Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{NTP}} & Network Time Protocol\\
\makebox[1.5cm][r]{\textabbrv{NTP}} & Network Time Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{OS}} & Operating System\\
\makebox[1.5cm][r]{\textabbrv{OS}} & Operating System\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{OSPF}} & Open Shortest Path First\\
\makebox[1.5cm][r]{\textabbrv{OSPF}} & Open Shortest Path First\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PABX}} & Private Automatic Branch Exchange\\
\makebox[1.5cm][r]{\textabbrv{PABX}} & Private Automatic Branch Exchange\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PAT}} & Port Address Translation\\
\makebox[1.5cm][r]{\textabbrv{PAT}} & Port Address Translation\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PC}} & Personnal Computer\\
\makebox[1.5cm][r]{\textabbrv{PC}} & Personnal Computer\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PERT}} & Program Evaluation and Review Technology\\
\makebox[1.5cm][r]{\textabbrv{PERT}} & Program Evaluation and Review Technology\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PME}} & Petite et Moyenne Entreprise\\
\makebox[1.5cm][r]{\textabbrv{PME}} & Petite et Moyenne Entreprise\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PoE}} & Power over Ethernet\\
\makebox[1.5cm][r]{\textabbrv{PoE}} & Power over Ethernet\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{POP}} & Post Office Protocol\\
\makebox[1.5cm][r]{\textabbrv{POP}} & Post Office Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PPP}} & Projet Professionnel et Personnel\\
\makebox[1.5cm][r]{\textabbrv{PPP}} & Projet Professionnel et Personnel\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{PXE}} & Pre-boot eXecution Environment\\
\makebox[1.5cm][r]{\textabbrv{PXE}} & Pre-boot eXecution Environment\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{QCM}} & Questionnaire à Choix Multiples\\
\makebox[1.5cm][r]{\textabbrv{QCM}} & Questionnaire à Choix Multiples\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{RGPD}} & Règlement Général pour la Protection des Données\\
\makebox[1.5cm][r]{\textabbrv{RGPD}} & Règlement Général pour la Protection des Données\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{RSTP}} & Rapid Spanning Tree Protocol\\
\makebox[1.5cm][r]{\textabbrv{RSTP}} & Rapid Spanning Tree Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{RTP}} & Real-Time Transport Protocol\\
\makebox[1.5cm][r]{\textabbrv{RTP}} & Real-Time Transport Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{SGBD}} & Système de Gestion de Bases de Données\\
\makebox[1.5cm][r]{\textabbrv{SGBD}} & Système de Gestion de Bases de Données\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{SMTP}} & Simple Mail Transfer Protocol\\
\makebox[1.5cm][r]{\textabbrv{SMTP}} & Simple Mail Transfer Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{SQL}} & Structured Query Language\\
\makebox[1.5cm][r]{\textabbrv{SQL}} & Structured Query Language\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{SSH}} & Secure SHell\\
\makebox[1.5cm][r]{\textabbrv{SSH}} & Secure SHell\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{STP}} & Spanning Tree Protocol\\
\makebox[1.5cm][r]{\textabbrv{STP}} & Spanning Tree Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{TELNET}} & TELecommunication NETwork\\
\makebox[1.5cm][r]{\textabbrv{TELNET}} & TELecommunication NETwork\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{TCP}} & Transmission Control Protocol\\
\makebox[1.5cm][r]{\textabbrv{TCP}} & Transmission Control Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{TDM}} & Time Division Multiplexing\\
\makebox[1.5cm][r]{\textabbrv{TDM}} & Time Division Multiplexing\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{TFTP}} & Trivial File Transfer Protocol\\
\makebox[1.5cm][r]{\textabbrv{TFTP}} & Trivial File Transfer Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{ToIP}} & Telephony over Internet Protocol\\
\makebox[1.5cm][r]{\textabbrv{ToIP}} & Telephony over Internet Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{TV}} & TéléVision\\
\makebox[1.5cm][r]{\textabbrv{TV}} & TéléVision\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{UDP}} & User Datagram Protocol\\
\makebox[1.5cm][r]{\textabbrv{UDP}} & User Datagram Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{UML}} & Unified Modeling Language\\
\makebox[1.5cm][r]{\textabbrv{UML}} & Unified Modeling Language\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{URL}} & Uniform Resource Locator\\
\makebox[1.5cm][r]{\textabbrv{URL}} & Uniform Resource Locator\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{USB}} & Universal Serial Bus\\
\makebox[1.5cm][r]{\textabbrv{USB}} & Universal Serial Bus\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{VLAN}} & Virtual Local Area Network\\
\makebox[1.5cm][r]{\textabbrv{VLAN}} & Virtual Local Area Network\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{VLSM}} & Variable-Length Subnet Masking\\
\makebox[1.5cm][r]{\textabbrv{VLSM}} & Variable-Length Subnet Masking\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{VM}} & Virtual Machine\\
\makebox[1.5cm][r]{\textabbrv{VM}} & Virtual Machine\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{VRF}} & Virtual Routing Forwarding\\
\makebox[1.5cm][r]{\textabbrv{VRF}} & Virtual Routing Forwarding\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{VTP}} & VLAN Trunking Protocol\\
\makebox[1.5cm][r]{\textabbrv{VTP}} & VLAN Trunking Protocol\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{xDSL}} & x Digital Subscriber Line\\
\makebox[1.5cm][r]{\textabbrv{xDSL}} & x Digital Subscriber Line\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{XML}} & eXtensible Markup Language\\
\makebox[1.5cm][r]{\textabbrv{XML}} & eXtensible Markup Language\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{XSS}} & cross-Site Scripting\\
\makebox[1.5cm][r]{\textabbrv{XSS}} & cross-Site Scripting\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{2D}} & deux Dimensions\\
\makebox[1.5cm][r]{\textabbrv{2D}} & deux Dimensions\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{3D}} & trois Dimensions\\
\makebox[1.5cm][r]{\textabbrv{3D}} & trois Dimensions\\
\end{tabular}
\begin{tabular}{rp{6.5cm}}
\makebox[1.5cm][r]{\texttt{4G}} & 4th Generation\\
\makebox[1.5cm][r]{\textabbrv{4G}} & 4th Generation\\
\end{tabular}

View File

@ -12,8 +12,10 @@ from tools import caracteres_recalcitrants
__LOGGER = logging.getLogger(__name__)
class Ressource():
class Ressource:
"""Modélise une ressource lorsqu'elle est extraite d'un yaml"""
__LOGGER = logging.getLogger(__name__)
def __init__(self, fichieryaml):
@ -24,9 +26,9 @@ class Ressource():
except:
Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}")
def to_latex(self, modele=Config.ROOT+"/python/pn/modele_ressource.tex"):
def to_latex(self, modele=Config.ROOT + "/python/pn/modele_ressource.tex"):
"""Génère le code latex décrivant la ressource"""
modlatex = get_modele(modele) #"pn/modele_ressource.tex")
modlatex = get_modele(modele) # "pn/modele_ressource.tex")
# if self.ressource["code"] == "R107":
# print("ici")
@ -34,7 +36,7 @@ class Ressource():
# Préparation des coeffs
ajoutcoeff = "\\ajoutRcoeff{%s}"
coeffRT = []
for comp in ['RT1', 'RT2', 'RT3']:
for comp in ["RT1", "RT2", "RT3"]:
if comp in self.ressource["coeffs"]:
coeffRT.append(ajoutcoeff % (str(self.ressource["coeffs"][comp])))
else:
@ -43,20 +45,29 @@ class Ressource():
# Préparation des ac
ajoutac = "\\ajoutRac{%s}{%s}"
compRT = []
for accomp in ['RT1', 'RT2', 'RT3']:
for accomp in ["RT1", "RT2", "RT3"]:
comps = []
if accomp in self.ressource["acs"]:
for no_ac in range(len(self.ressource["acs"][accomp])): # les ac de la comp
for no_ac in range(
len(self.ressource["acs"][accomp])
): # les ac de la comp
code_ac = self.ressource["acs"][accomp][no_ac]
comps.append( ajoutac % (code_ac, DATA_ACS[accomp][code_ac]) )
comps.append(ajoutac % (code_ac, DATA_ACS[accomp][code_ac]))
compRT.append("\n".join(comps))
# Préparation des sae
ajoutsaes = "\\ajoutRsae{%s}{%s}" # nom, intitule, code_latex
ajoutsaes = "\\ajoutRsae{%s}{%s}" # nom, intitule, code_latex
saesRT = []
for (i, sae) in enumerate(self.ressource["sae"]): # in range(len(self.apprentissages)):
code_latex = string.ascii_uppercase[int(sae[-2])-1] + string.ascii_uppercase[int(sae[-1])-1]
saesRT.append(ajoutsaes % (sae, get_officiel_sae_name_by_code(sae))) # , code_latex))
for (i, sae) in enumerate(
self.ressource["sae"]
): # in range(len(self.apprentissages)):
code_latex = (
string.ascii_uppercase[int(sae[-2]) - 1]
+ string.ascii_uppercase[int(sae[-1]) - 1]
)
saesRT.append(
ajoutsaes % (sae, get_officiel_sae_name_by_code(sae))
) # , code_latex))
saes = "\n".join(saesRT)
ajoutprerequis = "\\ajoutRprerequis{%s}{%s}"
@ -66,7 +77,9 @@ class Ressource():
else:
liste = []
for (no, mod) in enumerate(self.ressource["prerequis"]):
liste.append(ajoutprerequis % (mod, get_officiel_ressource_name_by_code(mod)))
liste.append(
ajoutprerequis % (mod, get_officiel_ressource_name_by_code(mod))
)
prerequis = "\n".join(liste)
# préparation du contexte
@ -81,31 +94,31 @@ class Ressource():
# contexte = remove_ligne_vide(contexte)
# préparation du contenu
contenu = self.ressource["contenu"] #supprime les passages à la ligne
contenu = self.ressource["contenu"] # supprime les passages à la ligne
if contenu:
if self.ressource["code"] == "R112":
print("ici")
contenu = md_to_latex(contenu)
chaine = ""
chaine = TemplateLatex(modlatex).substitute(code=self.ressource["code"],
nom=self.ressource["nom"],
heures_formation=self.ressource["heures_formation"],
heures_tp=self.ressource["heures_tp"],
coeffRT1=coeffRT[0],
coeffRT2=coeffRT[1],
coeffRT3=coeffRT[2],
compRT1=compRT[0],
compRT2=compRT[1],
compRT3=compRT[2],
saes=saes,
motscles=self.ressource["motscles"] + ".",
prerequis=prerequis,
contexte=contexte,
contenu=contenu,
)
chaine = TemplateLatex(modlatex).substitute(
code=self.ressource["code"],
nom=self.ressource["nom"],
heures_formation=self.ressource["heures_formation"],
heures_tp=self.ressource["heures_tp"],
coeffRT1=coeffRT[0],
coeffRT2=coeffRT[1],
coeffRT3=coeffRT[2],
compRT1=compRT[0],
compRT2=compRT[1],
compRT3=compRT[2],
saes=saes,
motscles=self.ressource["motscles"] + ".",
prerequis=prerequis,
contexte=contexte,
contenu=contenu,
)
# chaine = chaine.replace("&", "\&")
# Supprime les \\tighlist ajoutés par pypandoc
chaine = chaine.replace("\\tightlist\n", "")
@ -121,24 +134,28 @@ def contient_abbr(chaine):
for mot in DATA_ABBREVIATIONS[lettre]:
if mot in chaine:
mots.append(mot)
mots = sorted(mots, key=lambda m: len(m), reverse=True) # les mots triés par nbre de carac décroissant
mots = sorted(
mots, key=lambda m: len(m), reverse=True
) # les mots triés par nbre de carac décroissant
return mots
def ajoute_abbr_latex(chaine):
"""Parse la chaine latex pour ajouter les abbréviations"""
mots = chaine.split(" ")
for (i, mot) in enumerate(mots):
abbrs = contient_abbr(mot)
if abbrs:
mots[i] = mots[i].replace(abbrs[0], "\\texttt{" + abbrs[0] + "}")
mots[i] = mots[i].replace(abbrs[0], "\\textabbrv{" + abbrs[0] + "}")
chaine = " ".join(mots)
if "/IP" in chaine:
chaine = chaine.replace("/IP", "/\\texttt{IP}")
chaine = chaine.replace("/IP", "/\\textabbrv{IP}")
return chaine
class SAE():
class SAE:
"""Modélise une saé (chapeau) lorsqu'elle est extraite d'un yaml"""
__LOGGER = logging.getLogger(__name__)
def __init__(self, fichieryaml):
@ -149,41 +166,42 @@ class SAE():
except:
Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}")
def to_latex(self, modele=Config.ROOT+"/python/pn/modele_sae.tex"):
def to_latex(self, modele=Config.ROOT + "/python/pn/modele_sae.tex"):
"""Génère le code latex décrivant la ressource"""
modlatex = get_modele(modele) #"pn/modele_ressource.tex")
modlatex = get_modele(modele) # "pn/modele_ressource.tex")
# Préparation des coeffs
ajoutcoeff = "\\ajoutScoeff{%s}"
coeffRT = []
for comp in ['RT1', 'RT2', 'RT3']:
for comp in ["RT1", "RT2", "RT3"]:
if comp in self.sae["coeffs"]:
coeffRT.append(ajoutcoeff % (str(self.sae["coeffs"][comp])))
else:
coeffRT.append("")
# Préparation des ac
ajoutac = "\\ajoutSac{%s}{%s}" # nom, intitule, code latex
ajoutac = "\\ajoutSac{%s}{%s}" # nom, intitule, code latex
compRT = []
for accomp in ['RT1', 'RT2', 'RT3']:
for accomp in ["RT1", "RT2", "RT3"]:
comps = []
if accomp in self.sae["acs"]:
for no_ac in range(len(self.sae["acs"][accomp])): # les ac de la comp
for no_ac in range(len(self.sae["acs"][accomp])): # les ac de la comp
code_ac = self.sae["acs"][accomp][no_ac]
comps.append( ajoutac % (code_ac, DATA_ACS[accomp][code_ac]) )
comps.append(ajoutac % (code_ac, DATA_ACS[accomp][code_ac]))
compRT.append("\n".join(comps))
# Préparation des ressources
ajoutressources = "\\ajoutSressources{%s}{%s}"
resRT = []
for (i, res) in enumerate(self.sae["ressources"]): # in range(len(self.apprentissages)):
resRT.append(ajoutressources % (res, get_officiel_ressource_name_by_code(res)))
for (i, res) in enumerate(
self.sae["ressources"]
): # in range(len(self.apprentissages)):
resRT.append(
ajoutressources % (res, get_officiel_ressource_name_by_code(res))
)
ressources = "\n".join(resRT)
# préparation du descriptif
descriptif = self.sae["description"]
if descriptif == "Aucun":
@ -201,30 +219,33 @@ class SAE():
livrables = md_to_latex(livrables)
chaine = ""
chaine = TemplateLatex(modlatex).substitute(code=self.sae["code"],
titre=self.sae["titre"],
heures_encadrees=self.sae["heures_encadrees"],
heures_tp=self.sae["tp"],
heures_projet=self.sae["projet"],
coeffRT1=coeffRT[0],
coeffRT2=coeffRT[1],
coeffRT3=coeffRT[2],
compRT1=compRT[0],
compRT2=compRT[1],
compRT3=compRT[2],
description=descriptif,
ressources=ressources,
livrables= livrables,
motscles = self.sae["motscles"] + ".",
)
chaine = TemplateLatex(modlatex).substitute(
code=self.sae["code"],
titre=self.sae["titre"],
heures_encadrees=self.sae["heures_encadrees"],
heures_tp=self.sae["tp"],
heures_projet=self.sae["projet"],
coeffRT1=coeffRT[0],
coeffRT2=coeffRT[1],
coeffRT3=coeffRT[2],
compRT1=compRT[0],
compRT2=compRT[1],
compRT3=compRT[2],
description=descriptif,
ressources=ressources,
livrables=livrables,
motscles=self.sae["motscles"] + ".",
)
# chaine = chaine.replace("&", "\&")
chaine = chaine.replace("\\tightlist\n", "")
chaine = ajoute_abbr_latex(chaine)
return chaine
class ExempleSAE():
class ExempleSAE:
"""Modélise un exemple de SAE lorsqu'elle est extraite d'un yaml"""
__LOGGER = logging.getLogger(__name__)
def __init__(self, fichieryaml):
@ -235,15 +256,17 @@ class ExempleSAE():
except:
Ressource.__LOGGER.warning(f"Pb de chargement de {fichieryaml}")
def to_latex(self, modele=Config.ROOT+"/python/pn/modele_exemple_sae.tex"):
def to_latex(self, modele=Config.ROOT + "/python/pn/modele_exemple_sae.tex"):
"""Génère le code latex décrivant la ressource"""
modlatex = get_modele(modele) #"pn/modele_ressource.tex")
modlatex = get_modele(modele) # "pn/modele_ressource.tex")
# préparation du descriptif
description = self.exemple["description"]
if not description:
description = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['titre']} n'a pas de description")
ExempleSAE.__LOGGER.warning(
f"{self.exemple['titre']} n'a pas de description"
)
else:
description = md_to_latex(description)
@ -259,7 +282,9 @@ class ExempleSAE():
problematique = self.exemple["problematique"]
if not problematique:
problematique = ""
ExempleSAE.__LOGGER.warning(f"{self.exemple['titre']} n'a pas de problematique")
ExempleSAE.__LOGGER.warning(
f"{self.exemple['titre']} n'a pas de problematique"
)
else:
problematique = md_to_latex(problematique)
@ -272,43 +297,52 @@ class ExempleSAE():
modalite = md_to_latex(modalite)
chaine = ""
chaine = TemplateLatex(modlatex).substitute(titre=self.exemple["titre"],
description=description,
formes=formes,
problematique = problematique,
modalite=modalite
)
chaine = TemplateLatex(modlatex).substitute(
titre=self.exemple["titre"],
description=description,
formes=formes,
problematique=problematique,
modalite=modalite,
)
# chaine = chaine.replace("&", "\&")
chaine = chaine.replace("\\tightlist\n", "")
chaine = ajoute_abbr_latex(chaine)
return chaine
def md_to_latex(contenu):
"""Réalise la conversion markdown to latex avec pypandoc"""
contenu = contenu.replace("\n", "\n\n") # corrige les suppressions de ligne à la relecture du yaml
contenu = contenu.replace(
"\n", "\n\n"
) # corrige les suppressions de ligne à la relecture du yaml
contenu = pypandoc.convert_text(contenu, 'tex', format='md',
extra_args=['--atx-headers'])
contenu = pypandoc.convert_text(
contenu, "tex", format="md", extra_args=["--atx-headers"]
)
contenu = contenu.replace("\r\n", "\n")
lignes = contenu.split("\n\n") # Détecte les sauts de ligne
lignes = contenu.split("\n\n") # Détecte les sauts de ligne
for (i, ligne) in enumerate(lignes):
if i < len(lignes)-1:
if lignes[i].strip().startswith("\\") == False and \
lignes[i].startswith(" ") == False and \
lignes[i+1].strip().startswith("\\") == False and \
lignes[i+1].startswith(" ") == False and \
lignes[i].strip().endswith("\\\\") == False:
lignes[i] = lignes[i] + "\\\\" # ajoute un passage à la ligne latex
if i < len(lignes) - 1:
if (
lignes[i].strip().startswith("\\") == False
and lignes[i].startswith(" ") == False
and lignes[i + 1].strip().startswith("\\") == False
and lignes[i + 1].startswith(" ") == False
and lignes[i].strip().endswith("\\\\") == False
):
lignes[i] = lignes[i] + "\\\\" # ajoute un passage à la ligne latex
contenu = "\n\n".join(lignes)
# contenu = caracteres_recalcitrants(contenu)
contenu = remove_ligne_vide(contenu)
lignes = contenu.split("\n") # pour debug
lignes = contenu.split("\n") # pour debug
if contenu.startswith("\\begin{itemize}"):
contenu = "\\vspace{-5pt}\n" + contenu # ajout d'un offset en cas de liste à puces
contenu = contenu.replace("\\\\"*2, "\\\\")
contenu = (
"\\vspace{-5pt}\n" + contenu
) # ajout d'un offset en cas de liste à puces
contenu = contenu.replace("\\\\" * 2, "\\\\")
return contenu
@ -317,18 +351,18 @@ def get_matrices_ac_ressource(saes, ressources, sem):
les_codes_acs = [code for comp in DATA_ACS for code in DATA_ACS[comp]]
nbre_acs = len(les_codes_acs)
saesem = saes[sem] # les saé du semestre
saesem = saes[sem] # les saé du semestre
ressem = ressources[sem] # les ressources du semestre
nbre_saes = len(DATA_SAES[sem])
nbre_ressources = len(DATA_RESSOURCES[sem])
if len(saesem)!= nbre_saes or len(ressem) != nbre_ressources:
if len(saesem) != nbre_saes or len(ressem) != nbre_ressources:
__LOGGER.warning(f"Pb => il manque des saes/ressources au {sem}")
matrice = [[False] * (nbre_saes + nbre_ressources) for i in range(nbre_acs)]
for (i, s) in enumerate(saesem): # pour chaque SAE
for comp in s.sae["acs"]: # pour chaque comp
for (i, s) in enumerate(saesem): # pour chaque SAE
for comp in s.sae["acs"]: # pour chaque comp
for (j, ac) in enumerate(DATA_ACS[comp]): # pour chaque ac
if ac in s.sae["acs"][comp]: # si l'ac est prévue dans la ressource
k = les_codes_acs.index(ac)
@ -337,65 +371,82 @@ def get_matrices_ac_ressource(saes, ressources, sem):
for (i, r) in enumerate(ressem): # pour chaque ressource
for comp in r.ressource["acs"]: # pour chaque comp
for (j, ac) in enumerate(DATA_ACS[comp]): # pour chaque ac
if ac in r.ressource["acs"][comp]: # si l'ac est prévue dans la ressource
if (
ac in r.ressource["acs"][comp]
): # si l'ac est prévue dans la ressource
k = les_codes_acs.index(ac)
matrice[k][i+nbre_saes] = True
matrice[k][i + nbre_saes] = True
return matrice
def get_matrices_coeffs(saes, ressources, sem):
"""Calcule la matrice AC vs sae + ressource pour un sem donné et la renvoie"""
comps = ['RT1', 'RT2', 'RT3']
comps = ["RT1", "RT2", "RT3"]
saesem = saes[sem] # les saé du semestre
saesem = saes[sem] # les saé du semestre
ressem = ressources[sem] # les ressources du semestre
nbre_saes = len(DATA_SAES[sem])
nbre_ressources = len(DATA_RESSOURCES[sem])
if len(saesem)!= nbre_saes or len(ressem) != nbre_ressources:
if len(saesem) != nbre_saes or len(ressem) != nbre_ressources:
__LOGGER.warning(f"Pb => il manque des saes/ressources au {sem}")
matrice = [[None] * (len(comps)) for i in range(nbre_saes + nbre_ressources)]
for (i, s) in enumerate(saesem): # pour chaque SAE
for (j, comp) in enumerate(comps): # pour chaque comp
for (i, s) in enumerate(saesem): # pour chaque SAE
for (j, comp) in enumerate(comps): # pour chaque comp
if comp in s.sae["coeffs"]:
matrice[i][j] = s.sae["coeffs"][comp]
for (i, r) in enumerate(ressem): # pour chaque ressource
for (j, comp) in enumerate(comps): # pour chaque comp
for (j, comp) in enumerate(comps): # pour chaque comp
if comp in r.ressource["coeffs"]: # pour chaque ac
matrice[i+nbre_saes][j] = r.ressource["coeffs"][comp]
matrice[i + nbre_saes][j] = r.ressource["coeffs"][comp]
return matrice
def get_matrices_volumes(saes, ressources, sem):
"""Calcule la matrice AC vs sae + ressource pour un sem donné et la renvoie"""
format = ['CM/TD', 'TP', 'Projet']
format = ["CM/TD", "TP", "Projet"]
saesem = saes[sem] # les saé du semestre
saesem = saes[sem] # les saé du semestre
ressem = ressources[sem] # les ressources du semestre
nbre_saes = len(DATA_SAES[sem])
nbre_ressources = len(DATA_RESSOURCES[sem])
if len(saesem)!= nbre_saes or len(ressem) != nbre_ressources:
if len(saesem) != nbre_saes or len(ressem) != nbre_ressources:
__LOGGER.warning(f"Pb => il manque des saes/ressources au {sem}")
matrice = [[0] * (len(format)) for i in range(nbre_saes + nbre_ressources)]
for (i, s) in enumerate(saesem): # pour chaque SAE
formation = s.sae["heures_encadrees"] if not isinstance(s.sae["heures_encadrees"], str) else 0
for (i, s) in enumerate(saesem): # pour chaque SAE
formation = (
s.sae["heures_encadrees"]
if not isinstance(s.sae["heures_encadrees"], str)
else 0
)
tp = s.sae["tp"] if not isinstance(s.sae["tp"], str) else 0
matrice[i][0] = formation - tp
matrice[i][1] = tp
matrice[i][2] = s.sae["projet"] if not isinstance(s.sae["projet"], str) else 0
for (i, r) in enumerate(ressem): # pour chaque ressource
formation = r.ressource["heures_formation"] if not isinstance(r.ressource["heures_formation"], str) else 0
tp = r.ressource["heures_tp"] if not isinstance(r.ressource["heures_tp"], str) else 0
formation = (
r.ressource["heures_formation"]
if not isinstance(r.ressource["heures_formation"], str)
else 0
)
tp = (
r.ressource["heures_tp"]
if not isinstance(r.ressource["heures_tp"], str)
else 0
)
matrice[i + nbre_saes][0] = formation - tp
matrice[i + nbre_saes][1] = tp
return matrice
def str_matrice(matrice, saes, ressources, sem):
"""Renvoie une chaine de caractère affichant la matrice"""
les_codes_acs = [code for comp in DATA_ACS for code in DATA_ACS[comp]]
@ -412,61 +463,82 @@ def str_matrice(matrice, saes, ressources, sem):
valeurs = ("" for i in range(nbre_saes + nbre_ressources + 1))
trait = "-" * len(ligne.format(*valeurs))
valeurs = [""] + [s.sae["code"] if s.sae["code"] else "????" for s in saesem] +\
[r.ressource["code"] if r.ressource["code"] else "????" for r in ressem] + [""] * (nbre_saes - len(saesem) + nbre_ressources - len(ressem))
valeurs = (
[""]
+ [s.sae["code"] if s.sae["code"] else "????" for s in saesem]
+ [r.ressource["code"] if r.ressource["code"] else "????" for r in ressem]
+ [""] * (nbre_saes - len(saesem) + nbre_ressources - len(ressem))
)
valeurs = tuple(valeurs)
chaine += ligne.format(*valeurs) + "\n" + trait + "\n"
for (j, ac) in enumerate(les_codes_acs):
valeurs = [ac] + [("X" if matrice[j][i] == True else "") for i in range(nbre_saes + nbre_ressources )]
valeurs = [ac] + [
("X" if matrice[j][i] == True else "")
for i in range(nbre_saes + nbre_ressources)
]
valeurs = tuple(valeurs)
chaine += ligne.format(*valeurs) + "\n"
chaine += trait + "\n"
return chaine
def cesure_contenu(contenu, long_max = 30):
def cesure_contenu(contenu, long_max=30):
chaine = "\\rotatebox[origin=c]{90}{\n"
chaine += "\\begin{tabular}{ll}\n"
contenu_cesure = []
while contenu:
indice_espace = contenu.find(" ", long_max)
if indice_espace<0:
if indice_espace < 0:
contenu_cesure.append(contenu)
contenu = ""
else:
contenu_cesure.append(contenu[:indice_espace])
contenu = contenu[indice_espace+1:]
contenu = contenu[indice_espace + 1 :]
chaine += " \\\\ ".join(contenu_cesure)
chaine += "\\end{tabular} }"
return chaine
def rotation_entete_colonne(contenu, pos="l"):
chaine = "\\rotatebox[origin=" + pos + "]{90}{"
chaine += contenu + "}"
return chaine
def to_latex_matrice_acs(matrice, saes, ressources, sem):
"""Renvoie le tableau latex affichant la matrice"""
les_codes_acs = [code for comp in DATA_ACS for code in DATA_ACS[comp]]
nbre_acs = len(les_codes_acs)
lettresem = "A" if sem=="S1" else "B"
lettresem = "A" if sem == "S1" else "B"
saesem = saes[sem] # les saé du semestre
ressem = ressources[sem] # les ressources du semestre
nbre_saes = len(DATA_SAES[sem])
nbre_ressources = len(DATA_RESSOURCES[sem])
nbre_colonnes = nbre_saes + nbre_ressources + 2
longueur = 4
chaine = "\\begin{tabular}[c]{|lp{%scm}|" % str(longueur) + "c|"*(nbre_saes) + "c|"*(nbre_ressources) + "}" + "\n"
chaine += "\\hline \n" # % (nbre_saes + nbre_ressources+1)+ "\n"
chaine = (
"\\begin{tabular}[c]{|lp{%scm}|" % str(longueur)
+ "c|" * (nbre_saes)
+ "c|" * (nbre_ressources)
+ "}"
+ "\n"
)
chaine += "\\hline \n" # % (nbre_saes + nbre_ressources+1)+ "\n"
# l'entete
chaine += " & & "
chaine += "\multicolumn{%d}{c|}{\\textcolor{saeC}{\\bfseries SAÉs}}" % (nbre_saes) + "\n"
chaine += (
"\multicolumn{%d}{c|}{\\textcolor{saeC}{\\bfseries SAÉs}}" % (nbre_saes) + "\n"
)
chaine += " & "
chaine += "\multicolumn{%d}{c|}{\\textcolor{ressourceC}{\\bfseries Ressources}}" % (nbre_ressources) + "\\\\ \n"
chaine += (
"\multicolumn{%d}{c|}{\\textcolor{ressourceC}{\\bfseries Ressources}}"
% (nbre_ressources)
+ "\\\\ \n"
)
chaine += "\\cline{3-%d}" % (nbre_colonnes)
chaine += " & & "
# les noms des SAE et des ressources
@ -509,12 +581,18 @@ def to_latex_matrice_acs(matrice, saes, ressources, sem):
nom_comp = DATA_COMPETENCES[comp]["nom"]
niveau = list(DATA_COMPETENCES[comp]["niveaux"].keys())[0]
couleur = "\\textcolor{compC" + string.ascii_uppercase[noc] + "}"
chaine += "\\multicolumn{%d}{|l|}{\hyperlink{comp:%s}{%s{\\bfseries %s - %s }}} \\\\" % (nbre_colonnes, comp, couleur, comp, nom_comp.replace("&", "\&"))
chaine += "\\multicolumn{%d}{|l|}{\small Niveau 1 - %s} \\\\" % (nbre_colonnes, niveau.replace("&", "\&"))
chaine += (
"\\multicolumn{%d}{|l|}{\hyperlink{comp:%s}{%s{\\bfseries %s - %s }}} \\\\"
% (nbre_colonnes, comp, couleur, comp, nom_comp.replace("&", "\&"))
)
chaine += "\\multicolumn{%d}{|l|}{\small Niveau 1 - %s} \\\\" % (
nbre_colonnes,
niveau.replace("&", "\&"),
)
chaine += "\\hline \n"
for (k, ac) in enumerate(DATA_ACS[comp]):
chaine += couleur + "{" + ac + "}" + " & " + "\n"
chaine += "\\begin{tabular}{p{%scm}} " % (str(longueur-0.2))
chaine += "\\begin{tabular}{p{%scm}} " % (str(longueur - 0.2))
chaine += "\\tiny{" + DATA_ACS[comp][ac] + "}"
chaine += "\\end{tabular} & \n"
@ -526,7 +604,9 @@ def to_latex_matrice_acs(matrice, saes, ressources, sem):
chaine += " & "
croix = []
for (j, r) in enumerate(ressem): # pour chaque SAE
croix.append("$\\times$" if matrice[indice_ac][nbre_saes + j] == True else "")
croix.append(
"$\\times$" if matrice[indice_ac][nbre_saes + j] == True else ""
)
chaine += " & ".join(croix) + "\\\\ \n"
# if k < len(DATA_ACS[comp]) -1:
# chaine += "\\cline{2-%d}" % (nbre_saes+ nbre_ressources+3)
@ -552,18 +632,24 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
else:
return " "
comps = ['RT1', 'RT2', 'RT3']
comps = ["RT1", "RT2", "RT3"]
lettresem = "A" if sem == "S1" else "B"
saesem = saes[sem] # les saé du semestre
ressem = ressources[sem] # les ressources du semestre
nbre_saes = len(saesem)
nbre_colonnes = len(comps) + 2
chaine = "\\begin{tabular}[c]{|rp{6cm}|" + "c|" * 2 + "c|" + "c|"*(len(comps)) + "}" + "\n"
chaine += "\\hline \n" # % (nbre_saes + nbre_ressources+1)+ "\n"
chaine = (
"\\begin{tabular}[c]{|rp{6cm}|"
+ "c|" * 2
+ "c|"
+ "c|" * (len(comps))
+ "}"
+ "\n"
)
chaine += "\\hline \n" # % (nbre_saes + nbre_ressources+1)+ "\n"
# le début
chaine += " & & " + "\\multicolumn{3}{c|}{\\bfseries Volumes} \n"
chaine += " & " + "\\multicolumn{3}{c|}{\\bfseries Coefficients} \n"
@ -579,7 +665,14 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
for (i, comp) in enumerate(comps): # pour chaque SAE
contenu = "\\begin{tabular}{p{5cm}}\n"
couleur = "\\textcolor{compC" + string.ascii_uppercase[i] + "}"
contenu += couleur + "{\\bfseries " + comp + "} - " + DATA_COMPETENCES[comp]["nom"].replace("&", "\&") + "\\\\ \n"
contenu += (
couleur
+ "{\\bfseries "
+ comp
+ "} - "
+ DATA_COMPETENCES[comp]["nom"].replace("&", "\&")
+ "\\\\ \n"
)
niveau = list(DATA_COMPETENCES[comp]["niveaux"].keys())[0]
contenu += " \\small Niveau 1 - " + niveau.replace("&", "\&") + "\n"
contenu += "\\end{tabular}\n"
@ -590,21 +683,34 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
chaine += "\\hline"
chaine += "\\hline"
chaine += "\multicolumn{%d}{|l}{\\textcolor{saeC}{\\bfseries SAÉs}}" % (nbre_colonnes) + "\n"
chaine += (
"\multicolumn{%d}{|l}{\\textcolor{saeC}{\\bfseries SAÉs}}" % (nbre_colonnes)
+ "\n"
)
chaine += "\\\\ \n"
chaine += "\\hline "
# le nom des SAE
for (i, s) in enumerate(saesem): # pour chaque SAE
chaine += "\\textcolor{saeC}{" + s.sae["code"] + "} & " + "\n"
chaine += "\\begin{tabular}{p{5.7cm}} \\tiny{" + s.sae["titre"] + "} \\end{tabular} & \n"
chaine += (
"\\begin{tabular}{p{5.7cm}} \\tiny{"
+ s.sae["titre"]
+ "} \\end{tabular} & \n"
)
chaine += str_volume(matrice_vols[i][0]) + " & "
chaine += str_volume(matrice_vols[i][1]) + " & "
chaine += str_volume(matrice_vols[i][2]) + " & "
chaine += " & ".join([str_coeff(matrice_coeffs[i][j]) for j in range(len(comp))])
chaine += " & ".join(
[str_coeff(matrice_coeffs[i][j]) for j in range(len(comp))]
)
chaine += "\\\\ \n"
chaine += "\\hline "
# Les ressources et les coeff
chaine += "\multicolumn{%d}{|l}{\\textcolor{ressourceC}{\\bfseries Ressources}}" % (nbre_colonnes) + "\n"
chaine += (
"\multicolumn{%d}{|l}{\\textcolor{ressourceC}{\\bfseries Ressources}}"
% (nbre_colonnes)
+ "\n"
)
chaine += "\\\\ \n"
chaine += "\\hline "
@ -615,7 +721,9 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
chaine += str_volume(matrice_vols[i + nbre_saes][0]) + " & "
chaine += str_volume(matrice_vols[i + nbre_saes][1]) + " & "
chaine += " & "
chaine += " & ".join([str_coeff(matrice_coeffs[i + nbre_saes][j]) for j in range(len(comp))])
chaine += " & ".join(
[str_coeff(matrice_coeffs[i + nbre_saes][j]) for j in range(len(comp))]
)
chaine += "\\\\ \n"
chaine += "\\hline "
@ -627,7 +735,6 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
total_coeffs_sae = get_total_coeffs_saes(matrice_coeffs, sem)
total_coeffs_ressources = get_total_coeffs_ressources(matrice_coeffs, sem)
chaine += "\\hline "
chaine += "\multicolumn{%d}{|l}{\\bfseries Total}" % (nbre_colonnes) + "\n"
chaine += "\\\\ \n"
@ -647,7 +754,7 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
chaine += "\\\\ \hline "
chaine += "\multicolumn{2}{|r|}{\\bfseries SAÉs + Ressources}"
for i in range(3):
chaine += " & {\\bfseries " + str(total_heures[i]) + "h}"
chaine += " & {\\bfseries " + str(total_heures[i]) + "h}"
for i in range(3):
chaine += " & {\\bfseries " + str(total_coeffs[i]) + "}"
chaine += "\\\\ \\hline"
@ -657,42 +764,100 @@ def to_latex_matrice_coeffs(matrice_vols, matrice_coeffs, saes, ressources, sem)
def get_total_nbre_heures(matrice_heures):
"""Calcul le nombre d'heures total des SAé d'après la matrice"""
sommes = [sum([matrice_heures[i][j] for i in range(len(matrice_heures)) if matrice_heures[i][j]]) for j in range(3)]
sommes = [
sum(
[
matrice_heures[i][j]
for i in range(len(matrice_heures))
if matrice_heures[i][j]
]
)
for j in range(3)
]
return sommes
def get_total_nbre_heures_saes(matrice_heures, sem):
"""Calcul le nombre d'heures total des SAé d'après la matrice"""
nbre_sae = len(DATA_SAES[sem])
sommes = [sum([matrice_heures[i][j] for i in range(nbre_sae) if matrice_heures[i][j]]) for j in range(3)]
sommes = [
sum([matrice_heures[i][j] for i in range(nbre_sae) if matrice_heures[i][j]])
for j in range(3)
]
return sommes
def get_total_nbre_heures_ressources(matrice_heures, sem):
"""Calcul le nombre d'heures total des SAé d'après la matrice"""
nbre_sae = len(DATA_SAES[sem])
sommes = [sum([matrice_heures[i][j] for i in range(nbre_sae, len(matrice_heures)) if matrice_heures[i][j]]) for j in range(3)]
sommes = [
sum(
[
matrice_heures[i][j]
for i in range(nbre_sae, len(matrice_heures))
if matrice_heures[i][j]
]
)
for j in range(3)
]
return sommes
def get_total_coeffs(matrice_coeffs):
sommes = [sum([matrice_coeffs[i][j] for i in range(len(matrice_coeffs)) if matrice_coeffs[i][j]]) for j in range(3)]
sommes = [
sum(
[
matrice_coeffs[i][j]
for i in range(len(matrice_coeffs))
if matrice_coeffs[i][j]
]
)
for j in range(3)
]
return sommes
def get_total_coeffs_saes(matrice_coeffs, sem):
nbre_sae = len(DATA_SAES[sem])
sommes = [sum([matrice_coeffs[i][j] for i in range(nbre_sae) if matrice_coeffs[i][j]]) for j in range(3)]
sommes = [
sum([matrice_coeffs[i][j] for i in range(nbre_sae) if matrice_coeffs[i][j]])
for j in range(3)
]
return sommes
def get_total_coeffs_ressources(matrice_coeffs, sem):
nbre_sae = len(DATA_SAES[sem])
sommes = [sum([matrice_coeffs[i][j] for i in range(nbre_sae, len(matrice_coeffs)) if matrice_coeffs[i][j]]) for j in range(3)]
sommes = [
sum(
[
matrice_coeffs[i][j]
for i in range(nbre_sae, len(matrice_coeffs))
if matrice_coeffs[i][j]
]
)
for j in range(3)
]
return sommes
def str_latex_abbreviations():
"""Renvoie le code latex d'un tableau pour les abbréviations"""
liste = [ [cle, DATA_ABBREVIATIONS[lettre][cle]] for lettre in DATA_ABBREVIATIONS for cle in DATA_ABBREVIATIONS[lettre]]
liste = [
[cle, DATA_ABBREVIATIONS[lettre][cle]]
for lettre in DATA_ABBREVIATIONS
for cle in DATA_ABBREVIATIONS[lettre]
]
nbre_abbreviations = len(liste)
chaine = ""
for i in range(nbre_abbreviations):
chaine += "\\begin{tabular}{rp{6.5cm}} \n"
chaine += "\makebox[1.5cm][r]{\\texttt{" + liste[i][0] + "}} & " + liste[i][1] + "\\\\ \n"
chaine += (
"\makebox[1.5cm][r]{\\textabbrv{"
+ liste[i][0]
+ "}} & "
+ liste[i][1]
+ "\\\\ \n"
)
chaine += "\\end{tabular}\n\n"
return chaine