Indirizzo di studi: Informatica e sistemi di comunicazione
Specializzazione: Ingegneria del software
Modulo: Informatique de base

Descrizione del corso

Tornare al modulo Programmierung

  • Obiettivi

    Objectifs généraux :

    • Dans la rigueur syntaxique et sémantique du langage de programmation étudié, maîtriser les constructions (et leur compositionnalité) portant sur : (a) les données (types, expressions, opérateurs, tableaux...); (b) le contrôle (if, switch, loops, methods, exceptions...); (c) l'orienté-objet (encapsulation, héritage et polymorphisme, classes abstraites et interfaces, expressions lambda...)
    • Prédire le déroulement d'un programme (compréhension de code, suivi pas à pas, représentation du contenu mémoire au fil des étapes)
    • Utiliser judicieusement les constructions du langage pour écrire un programme devant présenter un certain comportement
    • Réfléchir de façon abstraite, avec logique, en distinguant spécification et implémentation, et en s'aidant de formalismes adéquats (esquisses, pseudo-code, ...)
    • Concevoir et développer une solution à un problème simple au moyen d'un programme, en s'aidant d'un environnement de développement

    A la fin du cours, l'étudiant sait :

    • Décrire les étapes du développement d'un programme informatique, les outils et fichiers impliqués
    • Utiliser un environnement de développement et un debugger pour l'écriture, l'exécution et le test d'un programme Java
    • Expliquer la notion de type et faire la distinction entre un type primitif et un type référence
    • Déclarer et manipuler des variables
    • Utiliser les opérateurs arithmétiques, logiques et relationnels pour former des expressions
    • Ecrire des instructions conditionnelles (branchement et sélection)
    • Utiliser les instructions itératives dans des algorithmes simples
    • Déclarer, créer et utiliser des tableaux
    • Définir et invoquer des méthodes
    • Générer, traiter et propager des exceptions là où c'est nécessaire
    • Ecrire un programme qui lit/écrit des fichiers texte
    • Ecrire une classe, créer des instances (objets) et les utiliser
    • Expliquer et utiliser correctement les champs et méthodes statiques
    • Expliquer et exploiter la notion d'héritage
    • Travailler avec des classes abstraites et des interfaces
    • Utiliser la généricité
    • Choisir le moyen de définir des classes (internes, anonymes...)
    • Utiliser les expressions lambda
    • Expliquer les représentations des nombres (int, float) et leurs limitations
  • contenuto

    Constructions Java associées aux données

    • Types primitifs, littéraux, variables locales, affectation
    • Expressions et opérateurs (précédence, associativité), calculs et typage
    • Modèles de nombres, limitations (illustration en lien avec la cryptographie RSA)
    • Tableaux (aussi multi-dimensionnels), types références, alias
    • Création et manipulation des chaînes de caractères (String)

    Constructions Java associées au contrôle

    • Blocs, if-else, switch, boucles (while, do-while, for), imbrications
    • Méthodes et fonctions (entête vs corps, passage de paramètres, déclaration vs appels)
    • Exceptions (propagation, génération, traitement)

    Programmation orientée objet en Java

    • Classe et objet
    • Encapsulation. Packages et contrôle d'accès
    • Modificateurs private/public, final
    • Héritage, polymorphisme
    • Membres statiques
    • Classes abstraites, interfaces
    • Classes internes. Classes anonymes. Expressions lambda
    • Généricité

    Bases de programmation et savoir-faire du développeur (quelques aspects)

    • Notion de langage, identificateurs, keywords, variables, instructions...
    • Développement : étapes, outils utilisés, fichiers impliqués, environnement intégré
    • Utilisation d'un environnement de développement (IntelliJ IDEA: debugging, refactoring...)
    • Erreurs de compilation vs exceptions durant l'exécution
    • Entrées/sorties, lecture/écriture séquentielle de fichiers texte
    • Quelques bonnes pratiques de codage/programmation

Metodo d'insegnamento e volume di lavoro

Insegnamento frontale (esercizi inclusi)
30 periodi
lavori pratici / laboratorio
66 periodi
Travail personnel
99 periodi

Titolo del corso

Anno di validità
2024-2025
Anno del piano degli studi
1o anno
Semestre
autunno
Programma
francese,bilingue
Indirizzo di studi
Informatica e sistemi di comunicazione
Lingua d'insegnamento
tedesco
ID del corso
B1C-PROG-S
Livello
Tipo di corso
fondamentale
Formazione
Bachelor

Metodi di valutazione

  • prove in itinere prove scritte, lavori pratici / valuatazione delle relazioni di laboratorio, Ev. tests courts non annoncés

Metodo di calcolo della nota del corso

Note_Théorie = Moyenne pondérée des travaux écrits et des éventuelles autres évaluations. Ajustement_TP = éventuel ajustement (positif ou négatif) lié à l'évaluation des TPs. Note_Cours = Note_Théorie + Ajustement_TP.

Docente/i e/o coordinatore/i

Serge Ayer, Frédéric Bapst, Beat Wolf