BA1 PlannerCommencer gratuitement

Introduction à la programmation (CS-107)

Introduction à la programmation (CS-107), cours de première année en Informatique à l’EPFL, donné par Sébastien Doeraene, Jamila Sam (5 crédits). Sur BA1 Planner : 14 fiches de révision et 70 flashcards.

Programme, semaine par semaine

S1

Environnement de travail et premiers pas

1.1 JDK, JRE et machine virtuelle Java · 1.2 Environnement de développement (Eclipse) · 1.3 Cycle édition → compilation → exécution · 1.4 Structure minimale d'un programme et méthode main

S2

Variables, types primitifs et affichage

2.1 Variables et types primitifs · 2.2 Opérateurs arithmétiques et affectation · 2.3 Conversions de type (cast, promotion) · 2.4 Affichage et lecture au clavier (Scanner)

S3

Structures de contrôle et expressions logiques

3.1 Instructions conditionnelles if / else · 3.2 Instruction switch · 3.3 Boucles for, while, do-while · 3.4 Opérateurs logiques et évaluation paresseuse

S4

Types avancés : tableaux et chaînes

4.1 Tableaux : déclaration, initialisation, parcours · 4.2 Tableaux multidimensionnels · 4.3 La classe String et ses méthodes · 4.4 Boucle for-each et longueur

S5

Modularisation : méthodes et fonctions auxiliaires

5.1 Définition et appel de méthodes · 5.2 Paramètres et passage par valeur · 5.3 Valeur de retour et type void · 5.4 Portée des variables et surcharge

S6

Algorithmes et mise en pratique

6.1 De l'énoncé à l'algorithme · 6.2 Décomposition en sous-problèmes · 6.3 Parcours et accumulation sur les tableaux · 6.4 Tests et mise au point

S7

Introduction à la programmation orientée objet

7.1 Classes et objets · 7.2 Attributs et méthodes d'instance · 7.3 Instanciation avec new et références · 7.4 La référence this

S8

Encapsulation, constructeurs et comparaison d'objets

8.1 Encapsulation et modificateurs de visibilité · 8.2 Constructeurs et surcharge · 8.3 Accesseurs et mutateurs · 8.4 Comparaison d'objets : == vs equals, toString

S9

Héritage et bases du polymorphisme

9.1 Héritage avec extends · 9.2 Le mot-clé super · 9.3 Redéfinition (override) de méthodes · 9.4 Hiérarchie de classes et classe Object

S10

Polymorphisme, typage et modificateurs

10.1 Type statique et type dynamique · 10.2 Liaison dynamique des méthodes · 10.3 Transtypage et instanceof · 10.4 Modificateurs abstract et final

S11

Interfaces et membres statiques

11.1 Déclaration et implémentation d'interfaces · 11.2 Interfaces multiples et découplage · 11.3 Attributs et méthodes statiques · 11.4 Méthodes statiques et par défaut dans les interfaces

S12

Packages, organisation du code et limites numériques

12.1 Notion de package et import · 12.2 Organisation d'un projet · 12.3 Limites des types entiers (débordement) · 12.4 Limites des types réels (précision des flottants)

S13

Gestion des exceptions

13.1 Notion d'exception et pile d'appels · 13.2 try / catch / finally · 13.3 Exceptions vérifiées et non vérifiées · 13.4 throw, throws et exceptions personnalisées

S14

Révisions et synthèse

14.1 Synthèse : du procédural à l'objet · 14.2 Erreurs fréquentes à l'examen · 14.3 Lecture et trace de code · 14.4 Conception d'une petite hiérarchie de classes

Fiche de révision : semaine 1

L’essentiel

- Java est **compilé puis interprété** : `javac` produit du *bytecode* (`.class`), que la JVM exécute. C'est ce qui rend le langage portable.

- **JDK** (kit de développement, contient le compilateur) ⊃ **JRE** (environnement d'exécution) ⊃ **JVM** (machine virtuelle).

- Tout code Java vit dans une classe. Le point d'entrée est obligatoirement :

```java

public static void main(String[] args)

```

- Le fichier doit porter **exactement** le nom de la classe publique qu'il contient : `Bonjour.java` pour `public class Bonjour`.

- Java est **sensible à la casse** : `main` et `Main` sont deux identifiants différents.

- Chaque instruction se termine par un point-virgule ; les blocs sont délimités par des accolades.

Formules

À savoir

Erreurs classiques

Quelques flashcards

Quelle est la signature exacte du point d'entrée d'un programme Java ?

`public static void main(String[] args)`

Que produit la compilation d'un fichier `.java` ?

Un fichier `.class` contenant du bytecode, exécuté par la JVM.

Différence entre JDK et JRE ?

Le JDK contient le compilateur et permet de développer ; le JRE ne fait qu'exécuter.

Que vaut `7 / 2` en Java, et pourquoi ?

`3` : deux opérandes entiers donnent une division entière.

Comment obtenir `3.5` à partir de `7` et `2` ?

Rendre un opérande réel : `7 / 2.0` ou `(double) 7 / 2`.

Que vaut `(int) -3.9` ?

`-3` : le cast tronque vers zéro, il n'arrondit pas.

Coche le cours et la série de Introduction à la programmation chaque semaine, révise avec les fiches et les flashcards, et entraîne-toi sur les questions d’examen corrigées. Les deux premières semaines sont gratuites.

Créer un compte gratuit