diff --git a/pom.xml b/pom.xml
index d9c0c6eb..32cc2565 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,6 @@
junit-tests
tests
1.0-SNAPSHOT
-
11
11
diff --git a/src/main/java/Cohort.java b/src/main/java/Cohort.java
new file mode 100644
index 00000000..ba9f6e49
--- /dev/null
+++ b/src/main/java/Cohort.java
@@ -0,0 +1,47 @@
+import java.util.ArrayList;
+import java.util.List;
+import java.util.LongSummaryStatistics;
+import java.util.Map;
+
+public class Cohort {
+
+ private List students;
+ private Map studentMap; //New map to store students by ID
+
+ public Cohort() {
+ this.students = new ArrayList<>();
+ }
+
+ public double getCohortAverage() {
+ double avg = 0;
+ for (Student student: this.getStudents()) {
+ avg += student.getGradeAverage();
+ }
+ return avg / this.getStudents().size();
+ }
+
+ public void addStudent(Student student){
+ students.add(student);
+ }
+
+ public List getStudents() {
+ return students;
+ }
+
+ public double calculateAverage() {
+ return 0;
+ }
+
+ public Student findStudentById(long id) {
+ for (Student student : students) {
+ if (student.getId() == id) {
+ return student;
+ }
+ }
+ return null;
+ }
+
+ public Student findStudentsById(long id) {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/Student.java b/src/main/java/Student.java
new file mode 100644
index 00000000..67edd703
--- /dev/null
+++ b/src/main/java/Student.java
@@ -0,0 +1,63 @@
+import java.util.ArrayList;
+
+public class Student {
+
+ private long id;
+ private String name;
+ private ArrayList grades;
+
+ public Student(long id, String name) {
+ this.id = id;
+ this.name = name;
+ this.grades = new ArrayList<>();
+ }
+
+ public long getId() {
+ return this.id;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public ArrayList getGrades() {
+ return this.grades;
+ }
+
+ public void addGrade(int grade) {
+ this.grades.add(grade);
+ }
+
+ public double getGradeAverage() {
+ if (grades.isEmpty()) {
+ return 0;
+ }
+ int sum = 0;
+ for (int grade : grades) {
+ sum += grade;
+ }
+ return(double) sum / grades.size();
+ }
+
+ public void updateGrades(int index, int newGrade) {
+ if (index >= 0 && index < grades.size()) {
+ grades.set(index, newGrade);
+ }
+ }
+ public void deleteGrades(int index) {
+ if (index >= 0 && index < grades.size()) {
+ grades.remove(index);
+ }
+ }
+
+ public void deleteGrade(int i) {
+ }
+
+ public int getGrade() {
+ return 0;
+ }
+}
+
+
+
+
diff --git a/src/test/java/CohortTest.java b/src/test/java/CohortTest.java
new file mode 100644
index 00000000..aed17b98
--- /dev/null
+++ b/src/test/java/CohortTest.java
@@ -0,0 +1,44 @@
+import org.junit.Before;
+import org.junit.Test;
+import java.util.ArrayList;
+import java.util.List;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class CohortTest {
+ private Cohort cohort;
+
+ @Before
+ public void setUp() {
+ cohort = new Cohort();
+ }
+
+ @Test
+ public void testAddStudent() {
+ Student student = new Student(80, "John Doe");
+ cohort.addStudent(student);
+ List students = cohort.getStudents();
+ assertEquals(1, students.size());
+ }
+
+ @Test
+ public void testGetStudents() {
+ Student student1 = new Student(80, "John Doe");
+ Student student2 = new Student(90, "Jane Smith");
+ cohort.addStudent(student1);
+ cohort.addStudent(student2);
+ List students = cohort.getStudents();
+ assertEquals(2, students.size());
+ assertTrue(students.contains(student1));
+ assertTrue(students.contains(student2));
+ }
+
+ @Test
+ public void testCalculateAverage() {
+ Student student1 = new Student(80, "John Doe");
+ Student student2 = new Student(90, "Jane Smith");
+ cohort.addStudent(student1);
+ cohort.addStudent(student2);
+ double average = cohort.calculateAverage();
+ }
+}
diff --git a/src/test/java/StudentTest.java b/src/test/java/StudentTest.java
new file mode 100644
index 00000000..a73773a0
--- /dev/null
+++ b/src/test/java/StudentTest.java
@@ -0,0 +1,69 @@
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class StudentTest {
+ private Student student;
+
+ @Before
+ public void setUp() {
+ student = new Student(80, "John Doe");
+ }
+
+ @Test
+ public void testGetId() {
+ assertEquals("John Doe", student.getName());
+ }
+
+ @Test
+ public void testGetName() {
+ assertEquals("John Doe", student.getName());
+ }
+
+
+ @Test
+ public void testAddGrade() {
+ student.addGrade(90);
+ student.addGrade(85);
+ student.addGrade(92);
+ ;
+
+ ArrayList expectedGrades = new ArrayList<>();
+ expectedGrades.add(90);
+ expectedGrades.add(85);
+ expectedGrades.add(92);
+
+ assertEquals(expectedGrades, student.getGrades());
+
+ }
+
+ @Test
+ public void testGetGrades() {
+ ArrayList grades = student.getGrades();
+ assertTrue(grades.isEmpty());
+ }
+
+ @Test
+ public void testGetGradeAverage() {
+ student.addGrade(90);
+ student.addGrade(85);
+ student.addGrade(92);
+
+ }
+
+ @Test
+
+ public void testUpdateGrade() {
+
+ student.addGrade(90);
+ student.addGrade(85);
+ student.addGrade(92);
+ int expectedGrades = 0;
+ assertEquals(expectedGrades, student.getGrade());
+ }
+}