Skip to content

Design Problem - Sample School of Programmers


  • Following is just a small level sample problem given to you by a client
  • You have think of all steps from start to end (deployed system)
  • Even before you type your first letter of code, there are many steps in actual software development

The Sample school of programmers needs a new system to track all of its students, professors and courses. It wants to keep track of what courses are offered, who teaches each course and which students are enrolled in those courses. It would also like to be able to track the grades of each of its students across all courses. For each student and professor the school needs to know their address, phone number, name and age.

Each course has a maximum and minimum number of students that they can enrol. If the minimum number of students is not reached then the course will be cancelled. Each course is taught by at least one professor but sometimes may be taught by many.

Professors are salaried employees at the Sample School of programmers and therefore we need to keep track of how much they make each year. If a professor teaches more than 4 courses in a semester then they are granted a one time bonus of $20,000.

Students can be both local or international students and full or part time. A student is considered a part time student if they are enrolled in 1 or 2 courses during any given semester. The maximum amount of courses a student may be enrolled in at one time is 6. Students receive grades from each course, these grades are numeric in the range of 0-100. Any students that have an average grade across all enrolled courses lower than 60% is said to be on academic probation.

NOTE: This system will be reset and updated at the end of each semester


Reference:
[x] Tech with tim