Sie sind auf Seite 1von 31

The Academic Advising System

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.

Course Registration Algorithm and Basic Concepts


This is a planning system that provides an optimal dynamic graduation plan for students by producing a term by term schedule for the courses to be taken by students. The goal of the system is to provide a per student plan concerning a set of rules that guaranties the fairness of the plan regarding the remaining terms to the student graduation.

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:

Majorsheets and their types:


Majorsheets are bundles of course collections and department policies that students entering each college/department and seeking a degree are required to fulfill. Courses in the majorsheets, as described below, are divided into categories that we use to guide us in the process of course registration for the students. Majorsheets also have some restrictions and constraints that need to be considered in the process of registration. For example, some courses may require that the student has already passed certain amount of credits. These extra constraints are currently hard coded into the system, and they are mentioned in a separate section below.

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.

Categories of major-sheet courses:


Majorsheets of all disciplines in Kuwait University are divided into categories of courses. Each category has some required and some elective courses. Altogether, there is always a specific number of credits that are required to be taken from each of those categories. We used this categorization of courses in the majorsheets as a guiding factor in choosing courses to fill in the semester schedules.

The concept of Large Categories:


By looking at the categories of courses in the majorsheets, we see that there are always some categories that are more important that the others. For instance a category that consists only of required courses is more important than a category that has only elective courses. To regard majorsheet categories in a more applicable manner, we propose to combine the course categories into three to four larger categories. For testing purposes we divided the majorsheet course categories into three large categories: High Priority, Middle Priority, and Low Priority large categories. High priority course categories are those that contain the core required courses of the majorsheet. Middle Priority course categories are those with half required and half elective courses, and Low priority categories contain mostly elective courses. (These categories are

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.

Prioritizing the Majorsheet Courses:


If you are faced with a pool of options to choose from, you have to define a set of criteria according to which you compare your options. To come up with a measurable value for priority we came up with the following formula that would be applied to all majorsheet courses to determine their priorities:
Priority = required * 10000 + Total Successors * 1000 + 900 - level

This formula depends on the following parameters for choosing the courses from the pool of majorsheet courses:
Required: Every required

course has higher priority than every elective course. In this

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:

The higher the number of courses that a course is a direct or indirect

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.

Estimating a measure for Course Difficulty:

To construct a viable course registration algorithm, we cannot ignore the importance of


the difficulty of courses in encouraging students to make changes in their graduation plan. They may push courses forward or backward, or to increase or decrease the course load in a semester according to their personal opinion regarding the difficulty of courses. However, course difficulty is a rather subjective issue and it more depends on the personal abilities and interests of a student than anything else. However, we can use our database data of the results obtained by the previous students who have finished a course in the past academic years, to give us a rough understanding of the difficulty of the course for an average student. For that purpose, we were granted access to the university databases that store the historical records of students in the past five years. We could find every single grade obtained by students in the last five years who have finished any course in Kuwait University. The lower the average grade obtained by past students was regarded a higher difficulty measure for that course. In this way, we assigned scores from 0 10 for grades from A F respectively. To come up with a difficulty score for a course, we multiplied each individual grade, obtained from the historical records, by its respective difficulty score (0 10) and took the average of all the obtained results. We referred this average as courseScore and used it as our measure for difficulty of the course.

The meaning of Next Semester/Coming semester:


These are two terms that have been used interchangeably for several times throughout this report. What we mean here is the semester for which the student is planning to register courses. The meaning of Next Semester depends on the time frame within which the student is registering courses. For example, while the student is studying in the fall semester, he/she intends to register for the spring semester, and similarly when the student is studying in the spring semester, he/she intends to register for the summer or the next fall semester. So, we decided to take the current time as the basic parameter for determining the Next/Coming semester. On that basis, in June, July, August or September (summer vacation) the system sets Next Semester to the next fall, in October, November, December, January or February, the next spring semesters courses would be planned, and during March, Apr, May we have supposed that the student should be planning his summer courses, however, since currently the system does not plan for summer courses, we have set the students to plan for the next fall semester in these months.

Steps in assigning a plan to a student:


Now that we have defined our required basic concepts used in our algorithm, we start explaining the steps involved in our algorithm. Every semester, the scheduling program does the following steps to find an optimum plan for a student: 1. The student initially selects the number of remained courses he/she planned to his/her graduation. (Attention: It is for simplicity that the system allows that students select number of remained terms to their graduation. It may be changed to an administratively imposed constraint to enforce students to a limited number of terms to graduation.) 2. Find number of remained credits from each large category and the total remained credits in the majorsheet. 3. For each large category, find the ratio of its credits to the total remained credits. (described above) 4. Find number of remained courses (not credits) to be taken by the student. 5. Determining number of courses to be assigned to each of the remaining semesters: We start by calculating the average number of credits and courses to be assigned in the remained semesters. Then we assign the average number of courses to each semester. Then, if the total assigned courses exceeded the total remained courses, starting from the last semester (skipping one term in between) we decrement number of courses to be assigned, till we reach to the exact number of total remained courses. Thats because usually the courses taken in the last semesters are the more difficult ones and that require more concentration. Similarly, if we have assigned less than total number of courses, starting from the first semester (skip one term in between) we increment number of courses to be assigned to each semester. On the other hand, as an additional hard coded constraint, if the student is fresh (in his/her first semester) we start by assigning a minimum of four courses for the first semester and five courses for the second semester. Thats to decrease the load on a fresh student. Therefore, we try to decrease the load from the first and last semesters, and to increase it on the middle semesters. 6. Determining Number of courses required from each of the Large Categories:

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.

Describing a sample case:


To better understand the dynamic of the algorithm described above we present a sample case of planning a fresh student entering the College of Business Administration, and step by step provide him a plan for his graduation. 1. First we assume that the student has decided to finish his majorsheet in 8 terms. 2. Then we find the average number of credits per semester: 130/8 = 16.25 3. We consider the following points described above: a. A fresh student should take lower credits/courses than average. We set it to 12 credits/4 courses for first semester and 15 credits/5 courses for the second. b. Students in the final terms also need to have lower weights because of their high course loads. 4. Therefore we set the following model as our guideline (numbers represent credits):

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.

Figure 1: Student selects number of remained semesters to graduation

Figure 2: Suggestive Plan to Graduation for the student

Semester Plan Adjustment/Approval: After the system has generated its


suggestive plan to graduation for the student, the student is allowed to make his/her adjustments to the plan by hitting the Continue button in Figure 2. The system would take the student to the following page which shows the coming semester part of the graduation plan with the possibility to make alterations to the suggested plan (Figure 3).

Figure 3: Editing Next Term's Plan

Figure 4: Selecting an Alternative Course

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.

Figure 5: Alternative Majorsheet Courses

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).

Figure 6: Approving the Plan for the next semester

Figure 7: The final Approved plan

Approving the Scheduled Courses:


After all Students have already approved their planned courses for the next semester, this data would work as the demand function for the department administration to set the courses and classes according to this exact demand function. After they have setup their schedule for the next semester, they would provide a read-only copy of their schedule database table to our system, according to which our system would assign students to their selected courses. Time conflicts and class overloads should be managed at this time. Then, the system would allow students for the last time to see their scheduled courses for the next semester and to make their required alterations to their schedule (Figure 8).

Figure 8: Making adjustments to the Scheduled courses.

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).

Figure 9: Selecting an alternative scheduled cours

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.

Figure 10: General tab

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:

College, Department and Major Management:


These are the basic university level information that needs to be entered by College/Department authority before entering majorsheet information and accepting new students. Generally they are all simple data entry and extraction from the database.

Figure 11: Editing University Colleges

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.

Figure 12: Editing College Departments

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.

Figure 13: Editing Department Majors

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.

Figure 14: Managing a Departments Courses

Figure 15: Editing a Course

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.

ii. Managing Course Categories:


After filling departments with all of their courses, its the time to manage course categories. This is the last system setup stage before managing (adding/editing) majorsheets. As described above, course categories are building blocks of the majorsheets. So, building a majorsheet means selecting a set of course categories that have already been added to the system. So, department authorities need to initially setup a set of course categories that they want to see in their majorsheets.

Figure 16: College Level Cours Categories

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 17: Department Level Categories

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.

Figure 18: Editing a Course Category

iii. Managing Majorsheets:

Figure 19: General Majorsheet of Colleg of Business Administration

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).

Figure 21: Scheduling All Students

Hard coded Assumptions and Constraints:


There are number of hard coded assumptions in the system that need extra care: 1. The number of remaining terms to graduation is currently set manually by the student. It may need to be changed to an administratively defined value, set by the system. 2. The system requires all students to set their major prior to the third semester, or otherwise it does not allow them to register for courses. 3. An average elective course is assumed to have Three credits. 4. Maximum allowed average of credits for the remaining terms to graduation, is set to 24 credits. 5. At least four courses should be taken in the first semester, and five courses should be taken in the second semester. 6. Maximum allowed average course score per semester (described in step 8) is hardcoded in the system.

Important Database Tables:


We already discussed in detail about all functionalities of the system. This explanation has simplified the understanding of the systems database. Knowing the basics of the systems, the majority of the systems tables should be self explanatory. However, there are some tables and database Views that may need more explanation: StudentCourseRecord: This is undoubtedly the most important table in this system. It is the heart of the system and the majority of the database transactions will occur on this table, because it stores all the data related to student manipulations with the system. Immediately after adding a new student to the system, all his/her majorsheet courses would be added to this table. Later on, every semester all the planned courses for the next semester would be stored in this table, and all their granted grades also would be saved subsequently in this table. StudentCourseHistory: This table contains the historical data of the academic records of all past students of the College of Business, Kuwait University. We were granted the access to this data for the testing purposes. It easily can be expanded to include the

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

Grade Weight 0.0 2.5 5.0 7.5 10.0

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.

Das könnte Ihnen auch gefallen