diff --git a/bin/main/Student.class b/bin/main/Student.class
index 9bd99ba6fac981c01edaf7849f0708ae815450ba..e6a1fb849f227ed42497e9756b585585b8b16180 100644
Binary files a/bin/main/Student.class and b/bin/main/Student.class differ
diff --git a/bin/test/StudentTest.class b/bin/test/StudentTest.class
index 5d18d0c4c758c0c9c783e9b710462d36cfe16efa..cb647cbfce037e7fde315c93e603f110224ef089 100644
Binary files a/bin/test/StudentTest.class and b/bin/test/StudentTest.class differ
diff --git a/src/main/java/Student.java b/src/main/java/Student.java
index 3f018e120474735e1ac185c427691ae5dd11f9ba..79ebee8ed911182bcdbce50916edf8d9712ef7c4 100644
--- a/src/main/java/Student.java
+++ b/src/main/java/Student.java
@@ -30,7 +30,8 @@ public class Student {
    * @param grade the grade of the added result
    */
   public void addResult(String teachingUnitName, Grade grade){
-    // TODO : add code
+    TeachingUnitResult oneTeachingUnitResult = new TeachingUnitResult(teachingUnitName, grade);
+    this.results.add(oneTeachingUnitResult);
   }
 
   /**
@@ -39,8 +40,7 @@ public class Student {
    */
   @Override
   public String toString() {
-    // TODO : change code
-    return null;
+    return this.firstName + " " + this.lastName;
   }
 
 
@@ -50,8 +50,11 @@ public class Student {
    * @return the grades of the student
    */
   public List<Grade> getGrades(){
-    // TODO : change code
-    return null;
+    List<Grade> listOfGrades = new ArrayList<>();
+    for (TeachingUnitResult oneResult : this.results ) {
+      listOfGrades.add(oneResult.getGrade());
+    }
+    return listOfGrades;
   }
 
   /**
@@ -60,8 +63,14 @@ public class Student {
    * @return the average grade of the student
    */
   public Grade averageGrade() {
-    // TODO : change code
-    return null;
+    Double sumOfGrades = 0.0;
+    int nbOfGrades = 0;
+    for (Grade oneGrade : this.getGrades()) {
+      sumOfGrades += oneGrade.getValue();
+      nbOfGrades += 1;
+    }
+    Grade averageGrade = new Grade(sumOfGrades / nbOfGrades);
+    return averageGrade;
   }
 
   /**
@@ -69,7 +78,11 @@ public class Student {
    * the average grade of the student.
    */
   public void printResults(){
-    // TODO : add code
+    System.out.println(this.toString());
+    for (TeachingUnitResult oneUE : this.results) {
+      System.out.println(oneUE.toString());
+    }
+    System.out.println("Note moyenne : " + this.averageGrade().toString());
   }
 
 
diff --git a/src/test/java/StudentTest.java b/src/test/java/StudentTest.java
index 6adbde72f169c16ecfad8606a90d636b882c5502..e5069bca65e4a2822ed508a7de304ecc88a2b6f6 100644
--- a/src/test/java/StudentTest.java
+++ b/src/test/java/StudentTest.java
@@ -11,7 +11,7 @@ class StudentTest {
   private static final Student jeanMichelBruitage = new Student("Jean-Michel", "Bruitage");
   private static final Student davidGoodenough = new Student("David", "Goodenough");
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @BeforeAll
   static void addResultsToStudents(){
     arnaudLabourel.addResult("Programmation 2", GradeTest.twenty);
@@ -22,14 +22,14 @@ class StudentTest {
     jeanMichelBruitage.addResult("Structures discrètes", GradeTest.twenty);
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testHashCode(){
     assertThat(jeanMichelBruitage.hashCode()).isEqualTo(new Student("Jean-Michel", "Bruitage").hashCode())
             .isNotEqualTo(davidGoodenough.hashCode());
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testEquals(){
     assertThat(jeanMichelBruitage).isEqualTo(new Student("Jean-Michel", "Bruitage"))
@@ -38,14 +38,14 @@ class StudentTest {
             .isNotEqualTo("Jean-Michel Bruitage");
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testToString() {
     assertThat(jeanMichelBruitage.toString()).isEqualTo("Jean-Michel Bruitage");
     assertThat(davidGoodenough.toString()).isEqualTo("David Goodenough");
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testGetGrades() {
     assertThat(arnaudLabourel.getGrades()).isEqualTo(List.of(GradeTest.twenty, GradeTest.twenty));
@@ -53,7 +53,7 @@ class StudentTest {
     assertThat(jeanMichelBruitage.getGrades()).isEqualTo(List.of(GradeTest.ten, GradeTest.twenty));
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testGetAverageGrade() {
     assertThat(arnaudLabourel.averageGrade()).isEqualTo(GradeTest.twenty);
@@ -61,7 +61,7 @@ class StudentTest {
     assertThat(jeanMichelBruitage.averageGrade()).isEqualTo(new Grade(15));
   }
 
-  @Disabled("Disabled until Student is coded")
+  //@Disabled("Disabled until Student is coded")
   @Test
   void testPrintResults() {
     StandardOutputSandbox standardOutputSandbox = new StandardOutputSandbox(arnaudLabourel::printResults);