All properties must be protected/private
- name
- grade
- gpa
- courses
- age
- calculateGpa(newGpa)
- sayHello()
- printCourses()
For all properties
Setters should have some validations
- createStudent(...args)
- addStudent(student) - appends student object to students array
- searchStudent(name) - searches students by name
- filterStudentsByGrade(grade) - filters students array by given grade
- filterStudentsByAge(minAge,maxAge) - filters students array by given age range(inclusive)