Department: Computer science and communication systems
Specialization: Data Engineering
Module: Basic Computing

Course description

Back Programmation

  • Objectives

    General Objectives

    • In the syntactic and semantic rigor of the programming language studied, master the constructs (and their compositionality) dealing with: (a) data (types, expressions, operators, arrays...); (b) control (if, switch, loops, methods, exceptions...); (c) object-oriented (encapsulation, inheritance and polymorphism, abstract classes and interfaces, lambda expressions...)
    • Predicting the flow of a program (code comprehension, step-by-step follow-up, representation of the memory content over the steps)
    • Use the language constructs judiciously to write a program that must have a certain behavior
    • Think abstractly, logically, distinguishing between specification and implementation, and using appropriate formalisms (sketches, pseudo-code, ...)
    • Design and develop a solution to a simple problem by means of a program, with the help of a development environment
  • Content

    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

Type of teaching and workload

Lecture course (including exercises)
30 periods
Practical exercises / lab work
66 periods
Travail personnel
99 periods

Course specification

Year of validity
2025-2026
Weight
1st year
Semester
Autumn
Program
French,Bilingual
Department
Computer science and communication systems
Language of instruction
French
ID
B1C-PROG-S
Level
basic
Course type
Core
Study program
Bachelor

Evaluation methods

  • Continuous assessment Written work, Practical exercises / Evaluated reports,

Course grade calculation method

Score_Theory = Weighted average of the written work and any other evaluations. Adjustment_TP = Result of the evaluation of the TP translated into tenths of positive or negative points (according to the document given during the first session). Course_Score = Theory_Score + TP_Adjustment.

Intructor(s) and/or coordinator(s)

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