Beruflich Dokumente
Kultur Dokumente
Overview:
The Academic Advising System is a research project proposed by Dr. Hamid AlQaheri, chairperson of Quantitative Methods and Information Systems (QMIS) department, College of Business Administration, Kuwait University. The goal of the system was to find and construct a computerized optimization algorithm to assist Kuwait University students in the process of registering courses in each semester. Registering courses is a demanding job that each individual student has to undertake every semester, especially in highly populated universities with limited resources such as Kuwait University. It is a challenging work, because it requires a student to make lots of choices that are interdependent and a change in one may have large consequences on the others. For example, most of the students have a plan for graduation in a fixed number of semesters, and at the same time there are many interdependencies between courses that if not considered, may delay the students planned graduation. Other difficulties arise when there are many time conflicts between the time slots of intended courses for the coming semester. To solve these difficulties and to help the students better concentrate on their core job of studying, our system aims to use the power of computers to guide the students through the best path to graduation. We need a system, which suggests an optimized schedule of courses for each semester throughout the studying period of students in the university. Therefore, the basic requirement of the project was to find the most efficient algorithm that every student supposedly has to implement to reach his/her optimal schedule for each semester. Our solution to this problem is The Academic Advising System. It starts by assigning a major-sheet of courses to each newly entered student based on his/her selected major, and then proposes a clear and optimized graduation road-map for that student through assigning the majorsheet courses to each of his/her remaining semesters. As the student progresses through the program and at the end of each semester when all the final grades are added to the system, it then re-evaluates the road-map and makes necessary adjustments to the suggested courses per semester. Every semester, all of the students would be offered the suggested courses for the coming semester and would be allowed to make their changes to the assigned schedule.
Apparently deciding which courses to register for the coming semester depends on many parameters. Pre-requisite required courses, maximum and minimum allowed credits per semester, and other administrative constraints are examples of system imposed constraints. However, there are other personal factors such as preferences of teachers, influences of friends and work constraints that are examples of criteria that should be considered when setting up a schedule for the coming semester. In our trial, we did not try to resolve all these issues and therefore our system would only provide guiding advises to students rather than a compulsory enforcement. To perform the alleged task, the system has to come up with a blend of both easier and more difficult courses, together with both required and elective courses. It also has to make sure that the more important and urgent courses (courses with the least latency tolerance) are being scheduled as soon as possible. For that purpose, we decided to input the university and department administrative policies as fixed constraints in the system, and then defined two parameters for each course in the major-sheet, Course Priority and Course Difficulty. The main parameters for determining Course Priority are: number of courses that this course is a prerequisite of, maximum semesters that the course may be delayed without delaying the students graduation, and whether the course is a required or an elective one. Course Difficulty on the other hand may be more controversial, because difficulty is a more subjective aspect. For that purpose we gained access to the university databases that store the results gained by students during the past several years. We decided to consider the results obtained by the students, who have taken a course within the last five years range as a guiding factor in determining the average difficulty of that course. It means that the higher the average grades of students who have taken a course in the last five years, the easier the course is, and vice versa. However, this is a very generic and impersonal way of determining a courses difficulty. Other personal factors such as the students academic background and subject preferences may be considered as additional factors in determining the difficulty level of each course. The system determines Course Difficulty and Course Priority for all courses that are left to be taken by the student to fulfill the requirements of his/her major-sheet for graduation. Then, the system should make a critical decision of selecting among those courses concerning both the priority and difficulty of courses. The final result, which is the schedule for all coming semesters, should be balanced in all of the difficulty, priority and density perspectives. By
density we mean that we may not have an overloaded semester, while another semester is quite lightly loaded. To reach a balanced schedule, we calculate the average of each course factor per semester. For instance, we sum the priorities of all remaining courses in the major-sheet and divide it by the number of semesters remained to the students planned graduation. Besides deciding what courses to choose for the coming semester, there are other difficulties in the process of registering those courses such as the availability of courses in the coming semester and the time overlaps of classes. The course availability problem usually occurs because the department authorities, who are assigned to set the courses and number of sections for each course in the following semester, have no fair approximation of the real demand for those courses. Therefore, they sometimes use inaccurate approximations for the number of students and the required sections. To help both the students and the department authority in this regard, we suggested that, after obtaining the approvals from all of the students about their desired courses for the coming semester, the department regards this data as the real demand for the coming semester, and that according to this data the department schedules its faculty members. When the department finalizes its schedule of courses for the coming semester, they can provide that schedule to the system, and it then assigns all students to their required courses based on the available limits of sections and overlapping class times. If there were difficulties in assigning students to their required courses, the system would automatically reevaluate the students schedule and assigns the students in the next most optimal and available course in their graduation path. Finally, the students are again asked to approve their final schedule for the coming semester and to make their required changes.
To find an operating method for the system, we change the problem to an optimization problem by using a Dynamic Programming model as shown in the following figure. Each box in the following model represents the list of planned courses for one semester.
dN
dN-1
di
d1
XN
Term One
XN-1
Term Two
XN-2
...
Xi
Term i
Xi-1 ... X1
Term N
X0
rN(XN,dn)
rN-1(XN-1,dN-1)
ri(Xi,di)
r1(X1,d1)
In this figure: Xi : list of remaining courses for the student to graduation di : Number of remaining terms to graduation ri (Xi , di) : A measurement factor to evaluate the effectiveness of the planed courses list for semester i. We can assume it as the cost of the plan. It could depend on the following factors, where each factor has its own weight: o Number of credit hours o Levels of the assigned courses o Difficulty of assigned courses o Gaps in scheduled classes times o Relativity of the assigned courses to the students major o To reach to the optimal solution, the system needs to assign courses in a way that minimize the cost of each course. But before presenting our model to reach this intended goal, we need to present a set of required basic concepts:
Although practically there is only one majorsheet that is given to each student for his entire studying period, in this system we defined two types of majorsheets for a student, one General Majorsheet and one Majors Majorsheet. The General Majorsheet contains all course categories that are required from all students in a college in Kuwait University. Fresh students when enter Kuwait University, they initially only select their college. At this stage they are only allowed to register in general courses that are shared for all students within that college. Within a period of two to three semesters every student has to decide his/her major. After selecting his/her major, a student is allowed to register in major courses. (Note: there may not be strict restrictions in registering major courses before selecting a major, but practically most of students select their major before taking that majors courses). Also, as time passes the majorsheets, like everything else, get updated and new versions of majorsheets would be assigned to new students. For these reasons, the system assigns the college levels last version of General Majorsheet to a fresh student, and after selecting a major, the last version of Majors Majorsheet would be appended to the students list of courses.
absolutely adjustable according to the policies of the department authorities).This is important in the process of course registration. Because, we need a balanced blend of core required courses and elective courses in every semesters. In each semester we need to assign courses from each of these categories.
This formula depends on the following parameters for choosing the courses from the pool of majorsheet courses:
Required: Every required
formula, if a course is required, required would equal 1, or otherwise 0. The coefficient of 10,000 would guarantee that all required courses would overweight the elective courses.
Total Successors:
prerequisite, the higher the priority of that course would be. Total Successors would determine the urgency of a course to be scheduled earlier. If too many courses are depending on a course, the formula would give a high urgency priority to the course by multiplying the number of dependent courses by the large coefficient of 1000.
Level:
If everything was the same, a course that has a lower course level has a higher
priority. Course levels in Kuwait University are divided as 100 level courses, 200 level courses, and so on. The general understanding of these levels is that 100 level courses should be taken in the first year, 200 in the second year and so on. Therefore, if everything else is the same, a 100 level course has higher priority than a 300 level course, and it should be scheduled earlier than the 300 level courses. We decrement the course level from 900 to reveal the reverse nature of the priority of course level.
At this stage we know the ratios of credits in each large category to total remained credits. We also know exactly how many courses we need in each of the coming semesters. So, to
find how many courses we need to assign from any of the large categories, we multiply that large categorys ratio by the number of required courses in the intended semester. Then, we sum up the multiplication results of all large categories, and compare it with our planned number of courses for the intended semester. If our summation result is larger than required number of courses, we need to decrease courses one by one from large categories assigned number of courses till we reach our planned number of courses. To decide which large category to choose for decreasing number of assigned courses, we pick large categories one by one and calculate the ratio of assigned number of courses to that large category to the total planned courses in the intended semester. Then we calculate the difference between that ratio and the previously calculated ratio of credits of that large category to the total number of majorsheet credits (calculated in step 3). The large category that has the largest ratio difference would be our candidate to decrease its assigned number of courses by one. Similarly, if the summation result is lower than the required courses, we continuously look for the large category with the smallest ratio difference (i.e. the largest negative ratio difference) and add one course to that large category. We continue these operations till we reach our planned number of courses for our intended semester. At this stage, we already know how many courses we need in each of the remaining semesters, and how many courses from each of the large categories we want to pick for those semesters. Now we are ready to construct the real schedule for the student by assigning courses to each of the remaining semesters. 7. Generating a table of courses with a list of attributes: To determine what courses are the best choices to be assigned to each semester, we collect a series of information partly from our database and partly by calculations, and generate a programmatic table with the following attributes: crsID: Academic course ID number crsTtl: Name of the course priority: A measure for comparing the urgency of courses in the students schedule courseScore: Difficulty measure of the course (described in detail above) preReqCourses: An arraylist, containing the prerequisite courses for this course noPreReq: No. of prerequisite courses
sucCourses: An arraylist of courses that this course is a prerequisite for them allSuccessors: An arraylist, that contains all courses that this course is a direct prerequisite or the prerequisite of a course, which is a direct prerequisite for them totalSuccessors: No. of courses in the allSuccessors arraylist largeCat: The large category that this course is part of required: Determines whether a course is required or elective taken: Determines whether the course has been planned or not for one of the remaining semesters. When it equals true, it does not mean that the course has been finished by the student, but it only means that the planning system has found an adequate position for that course to be registered in the following semesters.
termID: The ID number of semester for which the course has been scheduled
To fill in these attributes for all majorsheet courses, we initially fetch part of the attributes directly from the database. crsID, crsTtl, courseScore, preReqCourses, noPreReq, sucCourses, largeCat, and required are either directly obtained from the database records of the student, or by slight manipulation of the data obtained from the database. Then we Prioritize the Majorsheet Courses as described above. Description and calculation methods of priority and required attributes have already been described in detail. However, before finding totalSuccessors we need to fill in the allSuccessors arraylist of all majorsheet courses. To construct the allSuccessors, we pick every course in the majorsheet one by one and add it to the allSuccessors attribute of its direct prerequisite courses. Then we go another step further and add the course to allSuccessors attribute of the prerequisites of those prerequisite courses. We continue this operation till we have added the course to all its predecessors in the majorsheet. 8. Assigning Courses to Remaining Semesters: When we have all the mentioned course attributes already available, we are ready to assign courses to each of the remaining semesters. To do so, for each term, we pick large categories one by one, and we repeatedly search for the courses with the highest priority from that large category to the
number of required courses from that large category, and reserve those courses for the coming term. 9. Average Majorsheet/Semester Course Scores and Maximum Allowed Course Score for semesters: As we mentioned earlier, besides course priority, we defined course score (a measure for difficulty of courses) as a criterion for distributing courses in semesters. Our purpose is to prohibit the system from filling a semester with all difficult courses, while other semesters contain much simpler courses. To apply this extra criterion in our algorithm we need the three mentioned extra parameters. We first calculate Average Majorsheet Course Score which, as its name suggests, is the average of all majorsheet courses course scores. Then, after the system has assigned courses to a semester, we calculate the average of the semesters courses course scores. Then, we compare these two average course scores. If the difference is too large (i.e. Avg. semester course score is much larger than avg. Majorsheet course score), we need to change courses assigned to the intended semester to decrease its avg. semester course score to a satisfactory level. However, to determine the satisfactory level, we need an administratively assigned parameter to determine what does too large avg. semester course score means. This extra parameter is called Max. Allowed Course Score. This factor is calculated by multiplying Avg. Majorsheet Course Score to a static/dynamic coefficient (determined by university/department authorities) to set a maximum for allowed Avg. course scores in semesters. If the difference between Semester Avg. course score and Avg. Majorsheet course score is larger than Max. Allowed Course Score, then we try to replace the courses with the highest course score with other ones with lower course scores. For that purpose, we repeatedly perform the following loop of actions that would ultimately result in our intended goal: a. We first find the course with the highest course score in the semester as our candidate for replacement, and decrease its priority of by 1000. This will give a chance for the next highest priority course in the majorsheet that has not yet been scheduled to become more important (have higher priority) than our candidate, and ultimately replace it in the next steps. b. Then we remove all planned courses for the intended semester.
c. Now, we try to reassign courses to our intended semester. If our candidate for replacement has still higher priority than the next highest priority course, it would be again scheduled for the next semester. In this case we repeat steps (a) to (c) until the second highest priority gets replaced with our candidate course. d. Now again we calculate the difference between avg. semester course score and avg. majorsheet course score, and if the difference was larger than Max. Allowed course Score, we repeat steps (a) to (c) until the difference becomes in the allowed range. Obviously, Max. Allowed Course Score should be assigned high enough that we dont get trapped in an infinite loop.
Term One
Term Two
Term 3
Term 4
Term 5
Term 6
Term 7
Term 8
12
15
16
18
18
18
18
15
5. Now we divide the courses into three Large Categories as follows: (These categories can be modified to improve the performance of the system)
a. Important courses: Including the following categories: i. Analytical Skills (Cat. 2) ii. Information Technology (Cat. 7) iii. Business Core Requirements (Cat. iv. Major Requirements (Cat. 10) v. Support of Major Requirements (Cat 11) b. Semi-Important Courses: Including the following categories: i. Social & Behavioral Studies (Cat. 4) ii. English Lang. Skills + Communication Skills (Cat. 3) c. Non-Important Courses: Including the following categories: i. Humanities (Cat. 5) ii. Physical & Bio. Science + Free Electives (Cat. 6) 6. Therefore: a. Important Courses will have 81 credits = 27 courses b. Semi-Important courses will have 31 credits = 10 courses c. Non-Important courses will have 18 credits = 6 courses 7. Regarding the number of credits in each Large Category and each semester we will have: a. In terms with 15 credits: i. From Important courses: (81*15)/130 = 9.3 credits 3 courses ii. From Semi-Important courses: (31*15)/130 = 3.6 credits 1 course b. In terms with 18 credits we will have: i. From Important courses: (81*18)/130 = 11.2 credits 4 courses ii. From Semi-Important courses: (31*18)/130 = 4.3 credits 1.5 course 8. Then we generated the following table from our findings: Term 1 Term 2 L-Cat 1 L-Cat 2 L-Cat 3 2 1 1 3 1 1 Term 3 3 1 1 Term 4 4 1 1 Term 5 4 2 0 Term 6 4 2 0 Term 7 4 1 1 Term 8 3 1 1
Table 1 The model for taking courses from each Large Category
9. Now we calculate the priorities of all courses in the majorsheet, and then we select for each term the courses with the highest priority in each large category.
10. Now, what the system practically does is that for each semester it sorts the courses according to three different parameters: a. Prerequisite Count: We can only select from courses with 0 prerequisites. b. Large Categories c. Priority (descending) Now we select the sets of courses from each large category and choose the required number of courses from that category according to the model represented in Table 1. 11. If the average difficulty of the set of courses selected for the next semester exceeds our maximum allowed average difficulty, we remove the most difficult course and replace it with the next top course according to the parameters described in step 10. We continue repeating this until our average difficulty goes below the maximum allowed. 12. Before moving to the next semester, we first look up for the immediate successors of the courses scheduled for the current semester and decrement their Prerequisite Count by one.
What we have explained till now was a description about the basic ideas behind the core processes that make up The Academic Advising System. Like most of the multifunctional IT systems, there are numerous other processes that need to be implemented to allow the core process to run seamlessly. These other processes are generally basic input and outputs from the database that make the system a dynamic interactive tool for both students and university administration. These processes, according to the type of users who use them, are divided into Student Processes and Administrative Processes. After logging into the system, the system allows for different processes for users according to their user type.
Student Processes: Student Processes are processes that a student is allowed in his/her
process of registering courses to perform. Student Processes are the following:
Generate Plan: This is the heart of the system. All what we have already described was
steps of Generate Plan process. In each semester, this is the starting point where a student starts his/her interaction with the system. As shown in Fig. 1, the student initially selects number of courses he/she requires to his/her graduation, and then selects Generate Plan button. This button triggers a function call that performs all what we have described above and provides its output as a table that is shown in Figure 2.
As it is apparent from the picture above, the planned courses for the next semester are ordered according to their priority level, and divided by colors to show their level of importance. To change a course, the student can select it by hitting the Change button next to it. As shown in Figure 4, the background of the selected course would become green and a box below our table would appear. This box provides three methods for selecting an alternative course to replace the selected course. Two of them are to replace a Free Course (i.e. a course not listed in the majorsheet, usually from another college or department), and the third is to replace a majorsheet course with the selected course. First option is to replace a Free Course by inputting its course number into the blank box and hit the Add Course button. If that course is a valid course, it would then be replaced with the selected course. The second option is to select from the list of Free Courses that have been taken within the last five years by other students. This list provides extra information about those courses such as RegCount which tells number of students who have taken the course (as a free course) in the past, and the CourseScore of the course, which is its level of difficulty.
However, the most meaningful choice for replacing a majorsheet course is to replace it with another majorsheet course. So, the regular choice would be to hit the Select from Majorsheet button. By clicking that button, as shown in Figure 5, a new list of courses will open up under our plan courses. These courses, which are also colored according to their difficulty level, are a list of courses from the majorsheet that exist in the same large category as the large category of our selected course. Thats because we need to reserve the balance in number of registered courses from each large category. Selecting a course from any of the options described above, would replace it with our selected course, and the plan would again look like Figure 3 (except for the changed course). When the student has made all his/her changes to the planned courses, he/she would hit the Approve Plan button shown in Figure 3. Hitting on that button would open up a blank box (Figure 6) for the student to enter his/her student ID for ensuring that the student willingly has decided to approve his/her plan. Then the student would hit the Approve button, and his/her plan would become finalized, i.e. unchangeable anymore (Figure 7).
When the student select the Change button of any of the scheduled courses, all alternative classes and times would appear to the student to choose from (Figure 9).
This is the final step in the process of registering courses for the students. The last alterations would be treated as the final schedule for the student for the next semester.
Administration Processes:
Since this is a generic system that can be applied to all colleges and departments of Kuwait University, it should allow the administration of those departments and colleges to setup the system according to their policies, and to upload their majorsheets, courses, large categories, and many other administrative options. All these operations are basically database interactions. So, the system should provide the departments administration with web interfaces to interact with the system databases.
Most of the functions of the system administrators are concentrated in the General tab at top of the screen (Figure 10). This tab provides links to all major administrative processes designed in the system. The following sections describe the General tab options processes. There are two major processes performed by the university administration, Majorsheet Management and Student Management. Management here means adding new ones or editing the specifications of the existing ones. However, before managing the majorsheets or students, there are general setup processes that need to be performed to prepare the system to accept majorsheets/students. These initial setup processes are College, Department and Major Management:
Figure 11 show the setup page for editing a colleges information. At the top there is a list of all KUs colleges. By clicking on the Edit button next to each of the colleges, the bottom part shows up and let the administrator to update the colleges information. There is a similar section to add a new college to the system. Similarly, the system allows for adding/editing Departments in another system setup page shown in Figure 12. At the top, you select the college. It automatically opens a table of departments within that college beneath the colleges list. Clicking on the Edit button for each of the departments would open another section that allows for editing the departments information in the system.
Each department contains colleges within it. To add/edit those colleges the system provides a setup page shown in Figure 13. At the top, the administrator selects his intended college and department to open up its majors in the following section. Then by selecting one of the Edit buttons, the bottom section opens up to allow the user to edit the selected majors information.
Majorsheet Management:
Now that we have done the basic setup of the system and we have the building blocks of a university, we start our core setup process by managing majorsheets. We discussed in the Majorsheets and their types section that majorsheets consist of collections of courses called course categories. These categories themselves are composed of sets of single courses. So to manage (add/edit) majorsheets, we need to do two preliminary steps. First we need to manage all courses that will feed course categories, and then we need to manage course categories that, in turn, will feed the majorsheets.
i. Managing Courses:
To define a new course in our system, besides its name, ID and number of credits, we need to identify what college and department the course belongs to, and what are the prerequisite courses of this course. Figure 14 and Figure 15 show the setup page for managing courses and its sections. It starts by selecting the college and department that the course belongs to. This opens up a table of all courses belonging to the selected department. Initially all departments are free from courses, however by adding courses to the departments, the page would look like Figure 14.
Clicking on any of the Edit buttons next to courses, will open up the bottom section, shown in Figure 15, which allows all courses information to be edited except for its Course ID, because its the unique identifier of the course in the system, and to change it you need to delete the course and redefine it from scratch. At the bottom of the page, you need to add/delete prerequisite courses for the selected course by selecting college and department of the prerequisite course. So, its better to start by adding courses with no prerequisites.
In Majorsheets and their types section, we talked about the two types of majorsheets defined in our system, General Majorsheets and Department Majorsheets. Since these two types of majorsheets dont have courses in common, we have divided the course categories and
their management into College Level Categories and Major Level Categories. In the setup page for managing (adding/editing) course categories, the administrator first selects one of the two types of course categories. Besides College/Department information that is obtained from the previous selections, to define a new category, we need to set its name and the number of its required and elective credits. These numbers are among the administrative constraints that together with course categories compose a majorsheet. However, we already know that each course category is formed of a set of courses. So, any new category needs to be edited to append its courses.
Figure 16 shows the College Level Category type selected, while Figure 17 shows the Major Level Category type selected. Selecting any one would open up a list of all university colleges to choose from, but for Major Level Categories to show up, you need to select the department as well. After choosing the intended college/department, an Add New Category option plus a set of all previously added course categories for the selected college/department will show up. College Level categories are course categories that only show up in the General Majorsheets of colleges, while Department Level categories only show up in the Major Majorsheets of the departments majors. Clicking on the Edit button near each of the course categories, would open up a page shown in Figure 18. The main function of this page is to add/delete courses to/from course categories. A new course category is empty of courses at the beginning. So, we select courses from list of all university courses (shown with number 1 in Figure 18) to add to the course
category. To add the course to the course category, we need to hit the Add button that would remove the course from list 1 and add it to list 2 (list of all courses in the course category) in Figure 2. To identify a course as a required course for the majorsheet, we need to select the Required box. Similarly hitting the Delete button would remove the course from List 2 and return it to List 1. The flow of courses between two lists is shown with the red arrows.
As we discussed earlier, we have General and Major Majorsheets, their management is also divided on that basis. In Majorsheet Management page, we first select the college, and then we are asked to select between College Level or Departments majorsheets. Figure 19 shows the screen when college level majorsheets are selected. At the top, all college level majorsheets are shown. By selecting one of them (GeneralMajorsheet1), the following section appears to show all of its course categories. Clicking on Edit Majorsheet at the bottom of page would take us to another page shown in Figure 20.
Figure 20
Similar to what we saw for managing course categories, here also we have two lists of course categories that exchange course categories between them. At the left (list number 1) we have the list of all course categories in the selected college (mentioned at the top of the table), and at the right (list number 2) we see the list of all course categories already added from list number 1. Clicking on Add/Delete button in list 1/list 2 will move the course category between the two lists. At the bottom of list number 1, we have a small list of Large Categories. We discussed earlier that large categories is a higher level categorization of courses into larger categories. Here, before adding a course category to the majorsheet, we set its large category by
selecting one of the options in this drop down list. For our test purposes, we defined our large categories as: Important, SemiImportant, and NonImportant. At the bottom of the page in Figure 20, we see a button named as Finalized. Clicking on this button would finalize the editing of the majorsheet and prohibit the user from making further changes to the majorsheet. This option is added, because the students should only be permitted to access a majorsheet if it would not change during their studying period.
Managing Students:
Adding/Editing Students, setting a major for a student, Unlocking a student Plan, and Scheduling all students are processes categorized as Student Management. The first two processes are absolutely straight forward database interactions. Setting a major for a student will append the Majors majorsheet courses to the list of students courses to be planned by the system. Unlocking a student Plan: When the system initially proposes a set of courses for the next semester to the student, it then allows the student to make adjustments to the plan. After finishing the adjustments, the student would approve his/her plan (See Figure 7). The student no longer can make changes to the plan unless the system administrator unlocks his/her plan using this option. Scheduling All Students: When all students have approved their plans for the next semester (Figure 7), the department authorities will use this data to set a schedule of courses for the next semester and provides this list, with instructors assigned, to our system. At this state, the system administrator would enter his/her ID in the Scheduling All Students setup page to register all students to the available class sections/times (shown in Figure 21).
historical data of past academic records of all Kuwait University students. As described previously, the data from this table is used to assess a rough understanding of the difficulty of courses. To that purpose the data obtained from this table has been further manipulated into other tables and database views that follow. CourseGradeHistory: This is a simplified version of the StudentCourseHistory that extracts the base character of grades obtained by the students through the last five years. For example if the grade in one of the data rows is A-, it will save the base of the grade, letter A, in the GradeChar column. This table is used to find an average grade obtained in the last five years in any one of courses registered by students of the college of business. (Note: this table can be altered to a database view) CourseGradeCount view: This view is constructed using the data stored in CourseGradeHistory table. For each course, it counts number of times students obtained any one of the A, B, C, D, and F grades. It also shows the difficulty score (Grade Weight) that we have planned to assign to any one of these grade characters as follows:
Grade Character A B C D F
CourseScore view: This view shows us the ultimate result intended from obtaining the historical academic records of the Business Schools students. For each course in the CourseGradeHistory view, we sum up GradeWeight GradeCount of all grade characters, and take their average. This will give us the average grade weight (course score) of that course.