école sciences industrielles & technologies de l information ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT Crédit : 120 ECTS Code DIE20 Niveau d entrée : Bac Niveau de sortie : Bac + 2 EN VAE Diplômes accessibles A U C N A M I DF Public concerné et conditions d accès Cette formation est accessible aux salariés et demandeurs d emploi, de niveau Bac. Maîtriser les connaissances de base en informatique dans les domaines essentiels suivants : programmation, algorithmique, réseau, architecture des ordinateurs et systèmes d exploitation, bases de données et génie logiciel. Stages, projets, mémoire - Un projet de programmation (NFA019, NFA021, NFA024) à la fin de chaque parcours - Un projet de conception et développement logiciel à la fin du cursus Une expérience professionnelle de 2 ans est exigée. Si cette expérience est hors informatique, un stage de 3 mois en informatique est requis. Ce stage est conventionné avec le Cnam et son contenu doit être validé par le responsable du diplôme. Dans le cas d une expérience professionnelle de 2 ans en informatique, un rapport d activité est rédigé. Dans le cas d un stage, un rapport de stage est rédigé. Conditions de délivrance du diplôme - Avoir validé l un des Certificats professionnels CP09, CP16 ou CP48 - Avoir validé les unités NFA031, NFA008, NFA1016 et les cours de l un des trois parcours tel que la moyenne (notes de ces cours) soit supérieure ou égale à 10 sans note inférieure à 8 - Avoir validé les cours restants du cursus avec une note au moins égale à 10 - Justifier d une expérience professionnelle de 2 ans en informatique ou dans un autre domaine, complété dans ce cas par un stage d au moins 3 mois en informatique. Validation par VAE et VES possible. Optimisation de parcours L obtention du certificat professionnel CP04 dispense de la validation des cours (UE) NFA004, NFA016, NFA009 et NFA003 NFA031 Pour plus d information se reporter au site www.cnam-idf.fr. Description de la formation Programmation avec Java : notions de base Conservatoire national des arts et métiers d Ile-de-France NFA008 Bases de données NFA016 NFA032 NFA035 Développement Web (1) : architecture du Web et développement côté client Une option au choix parmi Programmation java Programmation Java : programmation objet Programmation Java : bibliothèques et patterns NFA007 Méthodes pour l'informatisation NFA019 NFA017 Projet systèmes d'information : mise en pratique avec Java Programmation Web Développement Web (2) : sites dynamiques et développement côté serveur NFA083 Réseaux et administration Web NFA084 Graphisme et Web NFA021 NFA022 NFA025 NFA003 NFA024 MVA003 Développement Web (3) : mise en pratique Programmation mobiles Principes et programmation système et réseau pour smart-phones et tablettes tactiles Mise en oeuvre de la programmation de smart-phones et tablettes tactiles Principes et fonctionnement des systèmes d'exploitation Projet application mobile : mise en pratique Outils mathématiques pour l'informatique (Combinatoire, probabilités, ordre, calcul booléen) NFA004 Architecture des machines NFA009 Principes des réseaux informatiques NFA006 Structures de données NFA010 Graphes et optimisation SITI00 / 2015 Analyste programmeur DIE20
NFA018 Gestion de projet informatique NFA032 NFA035 NFA003 NFA013 NFA011 Deux cours au choix (8 crédits) parmi : Programmation Java : programmation objet Programmation Java : bibliothèques et patterns Principes et fonctionnement des systèmes d'exploitation Méthodes pour l'informatisation - compléments Développement d'applications avec les bases de données ANG001 ANG002 Un cours au choix parmi : Parcours d'apprentissage personnalisé en anglais - 1er semestre Parcours d'apprentissage personnalisé en anglais - 2e semestre ANG003 Anglais professionnel - 1er semestre ANG004 Anglais professionnel - 2e semestre NFA036 Projet UA3325 Expérience professionnelle de 2 ans dans le domaine ou 2 ans hors domaine avec rapport 3 Cours également disponible en ligne (Ile-de-France) Cours également disponible en ligne (Région) ECTS : Système européen de transfert et d accumulation de crédits.
NFA031 - Programmation avec Java : notions de base Niveau bac en mathématiques, ainsi qu une maîtrise minimale de l utilisation d un ordinateur et d internet. Acquérir les principaux concepts de base de la programmation ainsi qu une connaissance pratique de la réalisation de programmes en JAVA. Introduction à la notion d application et de programme informatique. Aperçu des différents langages de programmation. Notions de syntaxe, de sémantique et de compilation. Types de base, types tableaux. Références et affectation. Entrées-sorties. Structures de contrôle (conditionnelles et boucles). Sous programmes (fonctions, procédures ou méthodes). Mise en oeuvre de quelques algorithmes fondamentaux. Illustrations par de nombreux exemples. NFA008 - Bases de données Concevoir, mettre en oeuvre et utiliser les bases de données relationnelles, en particulier savoir définir un schéma relationnel par une démarche conceptuelle et maîtriser le langage SQL. Conception et spécification de schémas relationnels - Introduction aux bases de donnée relationnelles - Le modèle entité/association - Le modèle relationnel : Conception et normalisation de schémas relationnels Langages de description et de manipulation de bases de données relationnelles - L algèbre relationnelle - Le langage SQL Pratique d un SGBD relationnel - L environnement SQL2 (tables, vues, contraintes, utilisateurs, etc.) - Programmation avec SQL2 NFA016 - Développement Web (1) : architecture du Web et développement côté client Avoir le niveau des UE NFA008, NFA009 et NFA053. : Dresser un tableau complet de l architecture du WEB et des technologies concernées dans la construction d un site. Apprendre les langages mis en oeuvre coté client. - Introduction générale. Architecture du Web. Internet, intranet, notion de client (navigateur) et de serveur. L hypertexte, lien et URL. Notion de normes et problèmes de validation, le W3C. - Description et structuration des documents Web: le langage (X)HTML - Gestion de la présentation des documents: les feuilles de style CSS. - Notion de protocole: illustration rapide avec les protocoles SMTP, POP et HTTP. - Les formulaires. - Présentation plus détaillée du protocole HTTP. - Très brève introduction au traitement des formulaires coté serveur cgi/php. (La programmation dynamique coté serveur sera vu en détail dans l UE NFA017) - Le dynamisme coté client avec le langage Javascript : présentation générale du langage, gestion des évènements, vérification de formulaire, présentation du DOM, innerhtml... - Quelques spécificités HTML5 - Introduction aux notions d ergonomie et d accessibilité et à la présentation sur différents supports (netbook, smartphone...) - Très brève introduction aux problèmes de sécurité. NFA032 - Programmation Java : programmation objet Avoir suivi NFA031 ou l ancienne UE NFA001 ou avoir le niveau équivalent : savoir réaliser de petits programmes utilisant des boucles, des tableaux et des sous-programmes. Maîtriser les concepts fondamentaux de la programmation objet. Étude de la notion de classe et d objet. Héritage et programmation par extension, redéfinition ou spécialisation. Généralisation, réutilisation, polymorphisme et généricité. Listes chaînées, arbres binaires. Récursivité. Interfaces et exceptions. NFA035 - Programmation Java : bibliothèques et patterns Avoir l UE NFA031 et NFA032 ou le niveau correspondant. (TP et cours) Notion de bibliothèque, API Les entrées/sorties ; flux textes, binaires; fichiers en accès direct et séquentiel. Les collections : listes, ensembles, tableaux associatifs Interfaces graphiques ; utilisation de composants, architecture MVC, initiation à la création de nouveaux composants. Conception des programmes; couches logicielles NFA007 - Méthodes pour l informatisation Fournir les concepts et démarches relatives au processus d informatisation d une application. Les principales phases d informatisation sont étudiées. INTRODUCTION - Définitions et concepts de base - Typologie des systèmes d information - Rôle de l informatique dans l entreprise PROCESSUS D INFORMATISATION - Les méthodes d informatisation - Le cycle de vie d une application - Les systèmes informatiques - Les architectures-types Les démarches d informatisation MÉTHODE SYSTÉMIQUE : MERISE - Démarche MERISE - Règles de gestion, d organisation et techniques - Modèles conceptuel, logique et physique des données et des traitements MÉTHODE A OBJET : UML - Concepts orientés objet - Les cas d utilisation - Le modèle de classes - Le diagramme de séquence - Le diagramme d états transitions NFA019 - Projet systèmes d information : mise en pratique avec Java Il est conseillé d avoir fait les UE NFA001, NFA002 et NFA005. - Maîtriser les concepts fondamentaux en Programmation Orientée Objets avec le langage Java. - Acquérir une méthode de développement d un projet en Système d Information avec Java. - Réaliser le projet en Java avec un des environnements de développement Java (Eclipse, NetBeans, BlueJ), sous Windows et/ou Unix Cette formation a pour objectifs d initier aux différentes étapes de développement d un projet informatique avec UML comme méthodologie et Java comme langage de développement : 1) Analyser : - Établir le cahier des charges et réaliser le dossier d analyse : modélisation conceptuelle, règles de gestion, cas d utilisation en UML 2) Réaliser : - Cette phase consiste en l organisation de l application sous forme de composants (modules ou packages voire classes) réutilisables puis à l implémentation de ces composants après avoir dégagé les différents scénarii d utilisation de l application. Elle comprend les activités suivantes à valider: - Création du modèle logique - Choix des structures de données (tables, listes, fichiers, base des données...) puis implémentation de ces structures. Choix des algorithmes adéquats en fonction de chacune des structures choisies. - Programmation et tests unitaires - Tests finaux en fonction des scénarii d utilisation. NFA017 - Développement Web (2) : sites dynamiques et développement côté serveur Avoir suivi l UE NFA016 et avoir le niveau des UE NFA008, NFA009 et NFA053. Présenter les technologies de la conception de sites dynamiques et de l administration de serveurs WEB. - Rappels sur la description et la manipulation des documents présentés dans un navigateur : (X)HTML, XML. - Introduction à la programmes exécutés «coté serveur» : parmi les langages de script (Perl, PHP, Jsp, Asp, PYTHON,...) dans ce cours nous avons choisi PHP. - Exploitation d une base de données relationnelle. Le cours fait référence principalement à MySQL - Utilisation des cookies et des sessions. - Programmation PHP avancée - Production dynamique de documents. - Notions de sécurité. NFA021 - Développement Web (3) : mise en pratique Avoir obtenu l UE NFA016 et NFA017 ou avoir le niveau correspondant. Concrétiser dans un TP les connaissances et les technologies présentées dans les 2 UE de développement WEB. Apporter une première compétence dans la conception de site WEB. Réalisation et implantation d un site WEB complet : - Pages statiques, pages dynamiques, - Gestion de cookies, sessions - Exploitation de formulaires, - Configuration et exploitation d une base de données, - Envoi de mail, - Configuration et déploiement d un serveur Web, - Déploiement du site sur un serveur personnel. NFA083 - Réseaux et administration Web Réseaux et administration Web Base de la télécommunication, équipements réseaux, protocoles, TCP/IP, internet (architectures, normes, outils), DNS, DHCP Services et protocoles internet pop, Imap, Smtp, Http Référencement Installations linux et serveur Apache,serveur PHP, mysql Maintenance, sauvegardes
NFA084 - Graphisme et Web Étude des concepts fondamentaux de l infographie et apprentissage des logiciels de la chaîne graphique. Concepts fondamentaux de l infographie - Couleur : notion et utilisation, limitations, - Texte & typographie orientée Web, - Images : mode point (bitmap) et vectorielles, concepts, - Formats d images (PNG, GIF, JPG), leurs avantages et inconvénients, optimisation, lequel utiliser et dans quel cas - Charte graphique, logo. Graphisme et Web - Modélisation, charte graphique, chaîne graphique de conception/réalisation, - Navigation/ergonomie, - Conception/production - Notion de retouche photographique et création graphique. Comment améliorer une photo, la traiter afin d optimiser son exploitation dans une page Web. - Création d éléments d interface (boutons, fond de page), composition d images avec les calques. - Notions de dessin vectoriel et typographique. Comprendre les bases de l illustration vectorielle et savoir quand l utiliser. - Dessin d interface (prototypage). Comprendre les bases du dessin d interface par une utilisation conjointe d éléments bitmap (photos) et d éléments vectoriels. - Intégration et production de site. Création de site d après les éléments construits avec les applications précédentes. - Comprendre et mettre en pratique la construction graphique de sites respectant les recommandations de la W3C (XHTML + CSS). - Intégration de la technologie AJAX pour dynamiser l aspect des pages. - Méthodologie de création par l exemple. Photoshop, Illustrator, Fireworks, Dreamweaver ou logiciel libre. NFA003 Principes et fonctionnement des systèmes d exploitation Avoir suivi NFA004 et NFA031 - Rappels fondamentaux d architecture des machines - Fonctions d exécution : chaîne de production de programmes, processus, ordonnancement - Gestion de la mémoire centrale : pagination, mémoire virtuelle - Synchronisation et outils de communication entre processus - Systèmes de gestion de fichiers : partitions, fichiers, répertoires, allocation du disque - Protection : sauvegardes, droits d accès - Exemples des systèmes Linux et Windows NFA022 - Principes et programmation système et réseau pour smart-phones et tablettes tactiles Personne intéressée par la programmation mobile (Niveau Bac). Avoir le niveau des UE algorithmique programmation 1, programmation Web, réseau, base de données de premier cycle. Appréhender les concepts système et réseau pour smart-phones et tablettes tactiles. Comprendre les mécanismes de base des systèmes d exploitation des smart-phones et leurs contraintes particulières. Connaître les principales ressources matérielles disponibles sur téléphones mobiles et les mettre en œuvre (capteurs de position et centrale inertielle, gps, caméra, écran tactile, capteur de luminosité...). Présenter les principaux systèmes d exploitations des smart-phones : Nous nous focaliserons sur essentiellement sur les OS Android et ios, tout en envisageant d autres acteurs du marché tel que Symbian, Windows Mobile Présenter les modèles applicatifs (notion d activité et de services, cycle de vie, modèle de sécurité...) : - Les application Web : HTML5/JavaScript. - Les développements natifs, similarités, différences, comment faire son choix? Présenter les principaux outils de communication des smart-phone, téléphonie, communication data Internet, et leur mise en oeuvre Présenter des capteurs communément embarqués dans les dispositifs mobiles : les différents systèmes, leurs usages ainsi que les grandeurs qu ils mesurent et leur fonctionnement standard. Les équipements des téléphones actuels seront couverts, depuis l appareil photo jusqu au magnétomètre, en passant par la dalle tactile et le système GPS-A. Présenter des outils de simulations et pilotage par interface USB des téléphones réels. NFA025 - Mise en œuvre de la programmation de smart-phones et tablettes tactiles Personne intéressée par la programmation mobile (Niveau Bac). Avoir le niveau des UE algorithmique programmation 1, programmation Web, réseau, base de données de premier cycle. Savoir programmer des applications pour smart-phone ou tablette tactile. Programmation des smart-phones. Étude du système Android, programmation en langage Java. Mise en place de l environnement de développement et des principaux outils (déverminage, profileur, utilisation du Logcat...) Base de la programmation Android : - Programmation d une activité et des principales méthodes liées à son cycle de vie. - Programmation d un service et des principales méthodes liées à son cycle de vie. Mise en œuvre des principaux frameworks : gestion des interfaces graphiques, WebKit, accès aux bases de données, accès aux capteurs... NFA024 Projet application mobile : mise en pratique Avoir suivi ou suivre les UE : - Principes et programmation système et réseau pour smart-phones et tablettes tactiles (NFA022) - Mise en œuvre de la programmation de smart-phones et tablettes tactiles (NFA023) Savoir réaliser et implanter une application Android complète et la déployer. Capacité et compétences acquises Réalisation et implantation d une application Android complète. Déploiement via un serveur Web et via Android Market Enseignement de synthèse et mise en pratique des connaissances acquises par un projet de développement d une application pour smart-phone et tablette tactile. Apprentissage de la conduite d un projet : De l étude à la programmation d application pour smart-phone et tablette tactile. Réalisation d un projet : - Présentation et mise en œuvre des mécanismes de déploiement d une application sur smartphone. - Présentation des services AppStore, Android Market... - Conception et implantation d une application complète. Rendu d un petit «mémoire» et soutenance individuelle du projet : démo, explication et modification de code. MVA003 Outils mathématiques pour l informatique (Combinatoire, probabilités, ordre, calcul booléen) Généralités sur les Ensembles Dénombrements Probabilités combinatoires Relations Calculs booléens Logique Arithmétique NFA004 - Architecture des machines Avoir suivi MVA003 et NFA031. Introduction à l architecture des machines. La notion d architecture externe et interne. Le codage des informations et des nombres. Le monoprocesseur : chemin des données, instruction, adressage, séquencement synchrone et asynchrone. La notion de micro-machine et de micro-programmation. La gestion des hiérarchies de mémoires : concepts de cache Les systèmes d entrées sorties : entrées-sorties programmées, mode canal, processeurs entrées-sorties. Les contrôleurs de périphériques. Les systèmes d interruption. Les bus. Exemples sur la famille des microprocesseurs 8086. NFA006 - Structures de données Notions préliminaires : - Rappel succinct des propriétés et caractéristiques essentielles des supports de mémorisation. - Notion de complexité des algorithmes : mesure d efficacité en fonction de la taille du problème. Les structures de données : - Les structures séquentielles et les structures arborescentes. - Principaux algorithmes liés à ces structures. - Différentes techniques d implantation de ces structures L utilisation des structures : - Principaux algorithmes de tri. - Principes de la recherche d informations. - Utilisation de structures arborescentes pour la recherche.. NFA009 - Principes des réseaux informatiques Avoir le niveau des UE Algorithmique programmation et NFA003 et NFA004. Bases des réseaux et des télécommunications Notion de réseau, représentation de l information, notions d interface. Codage et numérisation. Transmission série parallèle. Exemple du réseau téléphonique commuté. Notions d architecture. Étude détaillée des protocoles de liaison, notion de correction d erreur. Introduction à la notion d architecture en couches. Le modèle TCP/IP, les architectures OSI. Exemples simplifiés de mise en oeuvre. Les réseaux locaux Définitions, notions générales (topologie, méthode d accès, câblage). Le modèle IEEE, notion de méthode d accès. Étude détaillée du protocole CSMA/CD et de la norme IEEE 802. 3. Interconnexion des réseaux Architecture d interconnexion, terminologie. Notion de pont et de routeur, Première approche du routage. Réseaux étendus Structure, notion d opérateur de réseaux. La transmission : SDH. Commutation circuit et paquet Les principales technologies : liaisons spécialisées, ATM, Frame Relay, RNIS, X25... Domaines d application des technologies, offres des
opérateurs français, Internet et réseaux TCP/IP Structure d un réseau routé, mécanismes Internet. Le routeur, protocoles et table de routage. Les protocoles IP, ICMP et TCP. Notion de DNS, DHCP. Administration de réseau, Sécurité Présentation générale de l administration dans un environnement SNMP, notion de MIB. Les grands thèmes de la sécurité, notion de cryptographie à clé privée et publique, signature électronique. Définition du pare-feu (Firewall). Les services de base d un réseau TCP/IP Mécanisme du client-serveur. WEB et HTML, http. Courrier électronique (SMTP). NFA010 Graphes et optimisation Avoir suivi MVA003. Les problèmes combinatoires : généralités, difficultés. Théorie des graphes et algorithmes pour les graphes non valués - Introduction - Représentations des graphes - Parcours des graphes Algorithmes d optimisation dans les graphes valués - Chemins optimaux dans un graphe valué - Application : ordonnancements de projets (méthodes MPM et PERT) - Flots maximaux dans un réseau de transport - Arbres couvrants de poids extrémal - Recherches arborescentes Programmation linéaire - Définition, historique - Approche géométrique de l optimum (sommet) - Méthode algébrique du simplexe NFA018 Gestion de projet informatique Définition des éléments de projet Expression des besoins Conduite des projets Suivi des projets Étude de cas NFA032 - Programmation Java : programmation objet Avoir suivi NFA031 ou l ancienne UE NFA001 ou avoir le niveau équivalent : savoir réaliser de petits programmes utilisant des boucles, des tableaux et des sous-programmes. Maîtriser les concepts fondamentaux de la programmation objet. Étude de la notion de classe et d objet. Héritage et programmation par extension, redéfinition ou spécialisation. Généralisation, réutilisation, polymorphisme et généricité. Listes chaînées, arbres binaires. Récursivité. Interfaces et exceptions. NFA035 - Programmation Java : bibliothèques et patterns Avoir l UE NFA031 et NFA032 ou le niveau correspondant. (TP et cours) Notion de bibliothèque, API Les entrées/sorties ; flux textes, binaires; fichiers en accès direct et séquentiel. Les collections : listes, ensembles, tableaux associatifs Interfaces graphiques ; utilisation de composants, architecture MVC, initiation à la création de nouveaux composants. Conception des programmes; couches logicielles NFA003 Principes et fonctionnement des systèmes d exploitation Avoir suivi NFA004 et NFA031 - Rappels fondamentaux d architecture des machines - Fonctions d exécution : chaîne de production de programmes, processus, ordonnancement - Gestion de la mémoire centrale : pagniation, mémoire virtuelle - Synchronisation et outils de communication entre processus - Systèmes de gestion de fichiers : partitions, fichiers, répertoires, allocation du disque - Protection : sauvegardes, droits d accès - Exemples des systèmes Linux et Windows NFA011 Développement d applications avec les bases de données Introduction aux bases de données relationnelles (rappels) Langages de description et de manipulation de bases de données relationnelles Prolongements possibles (servlet Java) NFA013 Méthodes pour l informatisation - compléments Pré-requis : Connaître les concepts de base d une méthode de conception de systèmes d information. Le processus de développement Architecture d un système d information De l analyse au développement : l apport des outils ANG001 ou ANG002 - Parcours d apprentissage personnalisé en anglais - 1er semestre Auditeurs inscrits dans une formation du Cnam - Améliorer ses compétences en anglais en travaillant à son rythme avec l aide méthodologique d un conseiller. - Se remettre à niveau, consolider ses acquis en anglais général ou professionnel. - Préparer, le cas échéant, le test BULATS requis pour l obtention de certains diplômes du Cnam. Objectifs, contenus et choix des ressources sont déterminés individuellement avec le conseiller en apprentissage selon les besoins, le niveau et les priorités de chacun. ANG003 ou ANG004 - Anglais professionnel Auditeurs déjà inscrits dans un cursus au Cnam - Remise à niveau en anglais de l entreprise en vue de la préparation du test BULAT. - Amélioration des compétences en anglais oral et écrit pour pouvoir, dans l entreprise, travailler avec les clients, téléphoner, participer à des réunions et des séminaires, lire et écrire des lettres et des rapports. Les contenus sont adaptés à chaque niveau NFA036 - Projet Avoir l expérience d un langage de programmation orienté objet Être capable de concevoir et mettre en oeuvre une base de données relationnelle Avoir une connaissance des principaux langages du développement Web ou mobile Avoir une sensibilité à la démarche qualité et au travail collaboratif Mise en oeuvre des mécanises de déploiement d une application Web ou mobile Apprentissage de la conduite d un projet Selon le projet choisi, des éléments complémentaires de cours seront apportés : HTML 5, XML, Android, JavaScript, PHP, Java, UML, SQL