Experience on Web-based Laboratories for Two Computer Science Courses in a Historical Black College and University1 May Hou Department of Computer Science Norfolk State University Norfolk, VA 23504, USA Abstract The laboratory classes are particularly important to the students who need hands-on experience to learn the computer concepts, theories and programming techniques. To fulfill such a need, the Computer Science Department at my institution, a historical black university, has been involved in developing web-based, self-paced, laboratory materials. This paper will report the experience gained so far on such development for two totally different computer science subjects, CSC270 Discrete Mathematics and CSC464 Operating Systems. Samples of laboratory assignments will be given in the paper to demonstrate the implementation approach. Collection of student evaluations will also be summarized in the paper to assess the effectiveness of the laboratory development. The paper will be concluded with suggestions for future improvement. Keywords: Laboratory, Web-based, Discrete Mathematics, hands-on experience 1. 1. INTRODUCTION According to the World Book Encyclopedia, a laboratory is ?a place equipped with apparatus for conducting scientific experiments, investigations, and tests?. In this case, the Web and the computer are our apparatus, along with laboratory instruction to guide the students through trials and errors to perfect their understanding of computer concepts, theories, logic, syntaxes etc. The main emphasis of laboratory assignments is to offer a step-by-step explanation and exploration of the solution to a problem in contrast to the traditional homework assignments that directly present the problem, expecting an answer. The major advantage of the Web-based Laboratory is that it allows students to control their own pacing. Students can follow the laboratory manual while conducting the laboratory exercises at the time and in the place of their choosing. Furthermore, they can control and evaluate the progress of their study relative to course lectures and repeat the laboratory exercises until the skills are mastered. The laboratory sessions studied here are developed for Operating Systems and Discrete Mathematics which are two core courses in the Computer Science Department. Familiarity of C++ is a pre-requisite for the Operating Systems, because students are required to use C++ to practice the system concepts and theories for process scheduling, interprocess communication, memory and file management, etc. Laboratory sessions developed for Operating Systems help students overcome the programming difficulties and focus on the logic and concepts of the subjects themselves. Discrete Mathematics, on the other hand, emphasizes the mathematical logic and concepts that lay the foundation for programming languages. Thus, it is difficult to develop laboratory sessions for Discrete Mathematics that do not focus on programming exercises and software exploration. Nevertheless, the laboratory sessions developed here still maintain the traditional value of a laboratory by focusing on hands-on experience and visual demonstration. The following section, Section 2, will give detailed examples to show how those laboratory sessions can be presented to and used by students. The difficulties and the effectiveness of these laboratory sessions will be evaluated based upon students? feedback and the correlation between the lab grade and examination scores. The evaluation results will be summarized in Section 3. The conclusion of the study will be given in the final section, along with suggestions for future development. 2. IMPLEMENTATION APPROACH AND EXAMPLES Any devised Web-based laboratory assignment usually represents a self-contained study unit. It should include an explanation of its specific objective, a complete set of related lecture notes and reference materials, and a detailed step-by-step guide for exploration. Other means such as color visual demonstrations, numerical experiments using packaged software such as MathCad, chat rooms or discussion boards are also valuable to the development of laboratory assignments. They can foster a better environment for learning and enhance better communication with fellow students and the instructor. Two laboratory assignments are presented hereafter as examples to illustrate the implementation approach. The first laboratory assignment is on CPU scheduling which is taken from the Operating Systems class. The second example is taken from Discrete Mathematics, which uses color graphics to facilitate the discussion of set theory. Note that to save space, only the related portions of the laboratory assignments are presented here. 2.1. CPU Scheduling (CSC464) Goal: The average waiting time and turnaround time are important parameters for tuning an operating system. Follow the steps given in this laboratory assignment first to write a C++ code that can randomly generate a set of processes and then to calculate their average waiting time and the turnaround time by using any scheduling algorithm studied in the classroom. Laboratory Assignment: Step 1: Write a C++ program to generate random numbers by using the given rand() function. Step 2: Modify the random generator program so that it can start with a given seed. Step 3: Change the seed to a system clock function so that it can produce different random values for different runs. Step 4: Use the random generator to generate the processes, creation times, lengths, and priorities. Step 5: Store all processes, along with their properties, in an array of process objects. Step 6: Select a process from an array of processes; according to the selected CPU scheduling algorithm, such as: first in first, shortest first, longest first etc. Step 7: Keep track of the waiting time for each process by subtracting the arrival time from the starting execution time. Step 8: Repeat Steps 6-8 until all processes are scheduled. Step 9: Calculate the average waiting time as, (average waiting time) = (waiting times) / (number of processes) Step 10: Compute the turnaround time of each process as, (turnaround time) = (waiting times) + (process length) Step 11: Compute the average turnaround time as, (average turnaround time) = ?(turnaround times) / (number of processes) 2.2. Set Theory (CSC270) Goal: The goal is using the Venn Diagram to study the union of events; particularly, the following formula: Laboratory Assignment: In this semester, 35 students take CSC270, 23 take CSC464 and 43 take CSC169. Among them, 11 students in total take CSC270 and CSC464, 17 in total take CSC169 and CSC270 and 9 in total take CSC464 and CSC169. Only 5 students take all three courses in the same semester. The related Venn Diagrams are shown in Figures 1 to 4. Symbols: CSC464 CSC270 CSC169 Step 1. On one particular day, a common lecture is given to CSC464 and CSC270, how many students at most will show up for this class? Ans. 47, see Fig. 1. The common area has 11 students. Thus, 23 + 35 ?11 = 47 as implied by the formula Step 2. If the common lecture is given to CSC270 and CSC169, how many students at most will show up in the same classroom? How many then for a common lecture of CSC464 and CSC169? Ans. 61 and 57, see Figs 2 and 3. Step 3. How many students take CSC270 and CSC464, but not CSC169? Ans. Since 11 students in total take CSC270 and CSC 464, among them 5 take CSC169, 6 of them then do not take CSC169, see Figs. 1 and 4. Step 4. How many students take CSC 464 and CSC169, but not CSC270? Ans. 9 ? 5 = 4, see Figs. 3 and 4. Step 5. How many students take CSC270 and CSC169, but not CSC 464? Ans. 17 ? 5 = 12, see Figs. 2 and 4. Step 6. How many students who take CSC270 also take another course? How many students then take only CSC270? Ans. 11 students take both CSC270 and CSC 464 and 17 students take both CSC270 and CSC169. However, 5 of them take all three courses. Thus, the number of students take either CSC 464 or/and CSC169 is 11 + 17 ?5 = 23. Thus, the number of students who take CSC270 only is 35 ? 23 = 12. See Figs. 1, 2 and 4. Step 7. How many students who take CSC 464 also take another course? How many students then take only CSC 464? Ans. 11 + 9 ?5 = 15 and 23 ?15 = 8, see Figs. 1, 3 and 4. Step 8. How many students who take CSC169 also take another course? How many students then take only CSC169? Ans. 9 + 17 ? 5 = 21 and 43 ?21 = 22, see Figs. 2, 3 and 4. Step 9. Now, if there is a common lecture for all three courses, how many students at most will show up in the discussion? Ans. The total number is, according Fig. 4, 12 + 8 + 22 + 6 + 4 + 12 + 5 = 69. or based upon the formula Total number of students who take CSC 464: Total number of students who take CSC270: Total number of students who take CSC169: Total number of students who take CSC464 and 270: Total number of students who take CSC 270 and 169: Total number of students who take CSC169 and 464: Total number of students who take all three subjects: Thus, the number of the students who take at least one subject is 23 + 35 + 43 ? 11 ? 17 ? 9 + 5 = 69 3. EVALUATION Laboratory assignments are just part of the entire curriculum that includes other related materials such as class lecture notes, homework assignments, tests and quizzes and their solutions and reference materials. The development of laboratory assignments for CSC270 Discrete Mathematics and CSC464 Operating Systems started in Fall 1994 and in Spring 2001, respectively. Note that the former was posted on the departmental website which is totally monitored by the departmental web administrator. Therefore, the instructor does not have control of the time when the laboratory assignments can be posted on the web. The latter was posted through the commercial course management software, ?Blackboard?. That provides more flexibility and authority to the instructor to determine when and how the laboratory assignments are to be posted. ?Blackboard? also allows the instructor to create the discussion board and the chat room so as to enhance the instructor-student communications. Furthermore, Blackboard keeps track of the number of hits for various course materials. Since the laboratory assignments, CSC270 and CSC464, were developed using different platforms, their evaluations have different focuses and are reported separately in the following consecutive two sections. Section 3.1 focuses on the effectiveness and the acceptance of laboratory assignments of CSC270, from the students? perspective, whereas Section 3.2 evaluates the relative importance of the laboratory assignments in relation to other curriculum modules on the web. 3.1. Evaluation of CSC270 Discrete Mathematics Standard student questionnaires were collected at the end of each semester to survey the acceptance of the laboratory assignments. The laboratory assignments that provide visual demonstration, such as the one presented in Section 2.2, have a high acceptance rate, 95% to 97%. On the other hand, those assignments that require the use of MathCad, have a low acceptance rate. Two other types of project evaluation are performed here to assess the quality and the impact of these laboratory assignments on students? learning. The first evaluation is conducted based upon students? passing rate and the second, based upon the correlation between students? laboratory grades and their final grades. The results presented here are accumulated over a period of 5 semesters. Table 1 shows that the moving average of the passing rate has been increased from 76% to 88% in five semesters. The second evaluation demonstrates a direct impact of the laboratory projects on students? performance in CSC270. Table 2 shows that the correlation coefficient of the average grade of laboratory assignments and that of the final examination of the same student is 0.73. This number indicates that 53 percent of a student?s final examination score can be explained by the performance of his laboratory work. A student will receive a high mark on his final examination if he has successfully performed the laboratory assignments. This evaluation clearly shows that students did benefit from the laboratory assignments. Table 1. Passing Rates; S 94 to S 96 (CSC270) #Passing Students #Total Students #Passing Grades Running Average S94 10 16 63% NA F94 14 17 82% NA S95 11 13 85% 76% F95 11 13 85% 84% S96 15 16 94% 88% Table 2. Laboratory - Final Examination Correlation ? (r = 0.73, r2 = 53%) (CSC270) Lab Average Final Exam Scores 71 54 94 102 85 67 50 43 79 62 66 52 74 88 39 51 58 57 32 51 22 0 47 0 3.2. Evaluation of CSC464 Operating Systems The student questionnaires surveying the effectiveness of different curriculum modules are also collected at the end of semesters. The results are tabulated in Table 3 & 4. This is a result of two semester?s efforts. In the tables, the teacher?s notes are referred to as the teacher?s announcements, hints, answers to students? questions, etc. The reference notes are the web-links to other sites that are related to the course. Table 3. The Results of Student Survey % Disagree % Agree % Strongly Agree The lab assignments are generally interesting to work with 0.12 0.59 0.29 The lab assignments help me understand the subject better 0.04 0.68 0.28 Teacher's notes provide vital information about my class 0.00 0.50 0.50 Teacher's notes are very useful when I miss a class 0.00 0.50 0.50 Teacher's notes are useful even when I attend class 0.04 0.55 0.41 The reference notes are useful supplements to my own notes 0.04 0.73 0.23 The study guides are helpful in preparing for tests 0.05 0.45 0.50 I've gained new knowledge about the subject from the notes and references 0.04 0.55 0.41 Table 4. The Usefulness of Course Modules Labs Tchrs Notes Lecture Notes Overall which resources were the most useful 0.18 0.32 0.50 Table 4 shows that students generally agree the laboratory assignments are interesting (88%) and helpful (96%). Since the laboratory assignments give detailed step-by-step instructions, they can be boring to those advanced students. The next phase of development should then build ?intelligence? into the laboratory assignment so as to make them more adaptive to various levels of learning demand. Table 4 reveals an important fact that the laboratory assignments are important, though they can only play an effective supplementary role to other main course modules such as the teacher?s announcements and lecture notes. 4. CONCLUSIONS The experience reported here certainly has confirmed the belief that the laboratory assignments designed for Discrete Mathematics and Operating Systems at NSU are effective and helpful from the students' perspective. However, the experience also reveals certain areas for future improvement, such as: (1) Build ?intelligent? and ?adaptable? laboratory assignments so that the laboratory materials can be tailored by students to suit their own needs, (2) Avoid using another computer language or package in any laboratory assignment, (3) Use more graphic or visual demonstration in the laboratory assignments, and (4) Conduct the laboratory session before the related lectures so that the true nature of a laboratory ? placing exploration before explanation ? can be preserved. 1 This work was supported by the Norfolk State University's Title III Grant from the Department of Education. Dr. Sandra DeLoatch is the Principal Investigator of the project.