TrainingsLicence généraleComputer scienceCoursesProgramming 2

Bachelor's degree Computer scienceUE Programming 2


This teaching consists of a deepening of the principles and concepts related to programming. It is based on the Java programming language, and therefore addresses in particular the concepts of object-oriented programming but also the functional aspects of programming. Emphasis will be placed on the methodology and good practices to be adopted for proper programming.

  • Polymorphism : interfaces, abstract classes, extension
  • Function-level programming : method pattern, hookups, loops, collections, streams
  • Generic interfaces : consumer, producer, container, functional interfaces
  • Basic design principles : Do not repeat yourself, Single responsability principle, refactoring
  • Methodology : specification, documentation, tests, version control

Professional skills

  • Use several programming paradigms (imperative, functional, object and concurrent approaches) as well as several programming languages.
  • Use a library or framework by consulting its documentation.
  • Know and respect the best practices to adopt in programming in order to create maintainable programs that can be exploited by third parties.
  • Read, analyze and exploit technical documents such as documentation and specifications.
  • Know how to find an error in a program and correct it.
  • Use the tools and techniques of IT project management : development environment, version control, automation of production.

Language used

Main language used by this course: Français.


  • Clean Code : A Handbook of Agile Software Craftsmanship, Robert C. Martin
  • Code Complete, Steve McConnell
  • Refactoring, Martin Fowler
  • Java documentation

Recommended prerequisites

  • Programming 1

Structure and organisation

A project will serve as a guideline for the practical work sessions. It will be evaluated regularly and will count for the final grade.

Volume of teachings

  • Lectures: 15 hours
  • Pratical works: 44 hours

The trainings which use this course