Teaching a Programming Class Online: A Faculty Perspective Samuel Abraham Computer Information Systems Department Siena Heights University Adrian MI 49221 sam@sienahts.edu Track: Internet Course and Curriculum Delivery Teaching a Programming Class Online: A Faculty Perspective Track: Internet Course and Curriculum Delivery Abstract In recent years Internet/Web based online teaching/learning has grown substantially. Many institutions of higher learning are offering online classes in a variety of subjects. While it is acceptable that certain subjects are suitable for online teaching/learning some are very apprehensive about the possibility of teaching programming classes online and are sometimes questioning the validity, and the appropriateness of such classes. Some even argue that face-to-face interaction is necessary to teach programming classes. According to Cooper (1999), if a course is well designed and carefully implemented, online instruction can provide an effective educational environment and can be an enjoyable experience for both students and instructor, particularly if the students are motivated and self-disciplined and the instructor maintains continuous interaction with them. The author has been teaching various Information Technology (IT) related topics including programming classes online for the last five years in various institutions. This paper addresses the details of an introductory Visual Basic class delivered online. Key words: Online teaching, course management tools, discussion forums, study teams, feedback, student participation, assessment, Visual Basic, and student motivation. 1. INTRODUCTION During the last few years Internet/Web based online teaching/learning has grown substantially. Philips (1999) reported that there has been a 38% increase from 1995 to 1999 in the number of institutions using computer technology to deliver courses to students. According to Charp (2000), typical distance learners are those who don't have access to programs, employees who work during scheduled class hours, homebound individuals, self-motivated individuals who want to take courses for self-knowledge or advancement, or those who are unable or unwilling to attend regular classes. Many institutions of higher learning are offering online classes in a variety of subjects. While it is acceptable that certain subjects are suitable for online teaching/learning some are very apprehensive about the possibility of teaching programming classes online and are sometimes questioning the validity, and the appropriateness of such classes. Terry (2001) reported that courses requiring extensive mathematics maybe be difficult to convert to an Internet instruction format. Some even argue that face-to-face interaction is necessary to teach programming classes. As a result of all these developments, educators are faced with a number of challenges and opportunities. The author has been teaching online classes including programming classes for the last five years in various institutions (national, regional, and local), using web based tools. This paper addresses the details of an introductory Visual Basic class delivered online. 2. THE COURSE The author was asked to teach an Introductory Visual Basic class online during the summer of 2001. This was a typical introductory three-semester hour class that lasted for six weeks. The major topics covered in the class were: a. Overview of computer programming b. History of programming languages c. Program development and documentation d. Visual Basic controls e. Variables and constants f. Decisions and conditions g. Looping h. Menus, procedures, and functions i. Arrays j. Sequential and random files. The class size was restricted to 12 students and the course material was organized for a six-week delivery. A detailed syllabus was provided at the beginning of the course that contained all the assignments, point values, due dates, course rules and regulations, late assignment policy and assignment submission guidelines. The syllabus is considered as a contract between the instructor and the students. The instructor with the help of the students formed four study groups/teams with three students in each team. The geographical location of the team members was a major consideration for the creation of these study teams. The assignments for this class were organized around five programs that were due on the last day of each week starting on the second week. During the first week the students were asked to create a quality control sheet to evaluate the programs of their teammates. Students were required to submit a specification, design, and the code for each programming assignment. Students were also required to submit weekly summaries, participate in weekly classroom discussions, and participate actively in their team activities. Kubala (1998) pointed out that each week's assignments must be prepared carefully well before the course begins and you must follow the syllabus vigorously to avoid student confusion. For a five/six week course it is necessary that the lectures, discussion questions, tests/quizzes, and assignments are ready even before the class starts. This will allow the faculty to spend sufficient time on managing discussion, grading student papers/assignments, and preparing weekly feedbacks. In addition to the course calendar, it is very helpful to the students to post a weekly schedule with all the required reading, assignments, and deadlines. I used a Course management system (CMS) to manage the course. This CMS product has capabilities for threaded discussion, grade book features, text/quiz generation, assignment submission, and team management. I normally complete all my lectures before the class starts and make the final adjustments before I post them every week. My deadline policy states that the date and time stamped on the course management system (CMS) are the date and time you submitted your assignment. 2. ONLINE DELIVERY Teaching any online class is quite different from a traditional classroom teaching. In an online classroom the role of the instructor become that of a facilitator. Since no face-to-face interaction is taking place in this environment, it is the responsibility of the instructor to be available to students to answer their questions and to create a faculty presence in the classroom. According to Smith, Ferguson, and Caris (2001), an online instructor has to spend hours online to create an 'online presence", a psychological perception for students that the instructor is out there and is responding to them. This is particularly important in a programming class. The major activities of the Visual Basic online class were: weekly discussion questions (15%), programming assignments (50%), team activities (20%), and weekly summaries (15%). Discussion Questions Every week the instructor posts a number of discussion questions on separate discussion threads. I normally use three questions per week and the students are required to answer these questions before day three using the reading material, student's work experience, and their own independent research. Once they answered these questions by day three, they are also required to respond to the answers of the other students. This can be in the form of another questions, expanding the idea presented, or the presentation of a new idea that can be derived from the original idea. The instructor has to take great care to develop these discussion questions. I use the discussion questions to discuss weekly material to supplement the lectures, ideas to incorporate class material to the workplace, and current events that are related to the class material. I also use separate discussion thread for programming assignment related questions. Student participation is the key to this mode of instruction. In a regular classroom the instructor is always present for the students to ask questions and to solve problems. In a similar manner we need to create an atmosphere in our online classes where students can feel your presence. The discussion forum is the place where that presences need to take place. It is the responsibility of the instructor to guide the students through the discussion so that they are getting the appropriate information. A lot of the learning in an online class actually takes place through active participation and discussion. You need to encourage students to share their (appropriate) work experience with the class so that the whole class will benefit from these experiences. Williams and Peters (1997) pointed out that in an online class, the instructor must shift from the role of content provider to content facilitator, gain comfort and proficiency in using the web as the primary teacher-student link, and learn to teach effectively without the visual control provided by direct eye contact. Under normal circumstances, I will sign-on everyday and try to respond to as many postings as I can. Obviously you cannot respond to all the postings, but you really need to try your best to hit as many as you can. This will give a feeling to the students that you are available and willing to help them. The grades for the discussion questions were based on the quality and the quantity of the student responses. The students were required to post two quality messages/responses on five days in a week. Programming Assignments During the first week of class the students will create a quality control document to evaluate the programs completed by their fellow students. Qualities of a well-developed program are discussed in the class during this week in addition to the lecture about the subject. This is a graded activity and students are required to submit this document at the end of week one. Starting from week two a program is due on day seven every week. The importance of documentation is emphasized and they are required to submit a specification, design, and the code for each program. A separate discussion thread is created for the programming assignment and the students are encouraged to ask questions. Once a question is posted on this thread, anybody who has an answer can post an answer for it. Since the instructor is monitoring the discussion, any modifications to the answers if needed can be posted immediately. Each student is required to write his/her own program together with its specification and design. They are allowed to get ideas from their classmates but the development has to be done individually. It is the responsibility of the instructor to monitor the progress of this developmental procedure. Specification, design, listing, and the out put for each program is graded and a detailed feedback is provided to each student with suggestions to improve, if needed. A copy of the worked out solution is also provided at this time, so that the students can see what was expected from them. Team Activities As stated before, the instructor with the help of the students divided the class into four learning teams. During the first week all the ground rules for team activities were discussed and the students were required to sign a document to acknowledge the understanding of these ground rules. Each student is to develop a specification, design, and the code for each program by day 5 and to submit it in the team folder. Only the team members have access to their team folder. Each team member has to run the program from the teammates and provide the feedback using the quality control document developed during week one. The quality control sheet is a checklist and there is a comment section for this document where they can include comments or recommendation. The author of the program reviews all the comments from his/her teammates and modifies the program and resubmits the program in the team folder. Each student has their own thread and all the activities of that student will take place in this thread. By the end of the week (day 7) the student will submit the completed program to the instructor for grading. During the week the instructor need to monitor the team folder very carefully. The activities in the team folder are graded and it is the responsibility of the instructor to watch for plagiarism at this stage. Since the specification and design are submitted with the program in the team folder with the program, the instructor needs to watch the daily progress of each student. Students will be penalized for not submitting the required documents in time and for submitting evaluations/reviews for their teammates programs. The timely submissions of the programs and the reviews are very important for the success of the team activities. The team activities are graded for the timely submission of the program for the review, submitting the timely review of each teammate's programs, the proper usage of the quality control sheet, and the quality of review provided. Generally the students were very responsible in meeting the deadlines. There were some occasions where the students submitted the program late, or the reviews were not done in time. The instructor must be ready to deal with these individual cases. If these circumstances were discussed in the syllabus you can simply point the student to the syllabus. Weekly Summary Every week students are required to submit a summary of the lessons they have learned during the week. The purpose this summary is to give an opportunity to the student to review the weekly material before the new week's material is presented. There is a length requirement for this assignment and no late summaries are accepted. They are asked to include a summary of the material covered, summary of the discussion, application of the concepts in working environment, research conducted, difficulties faced during the week, and anything else they would like to add. I expect a balanced coverage of all the topics. Weekly summary is graded for the organization of the material, their understanding of the course material, and their ability to summarize the major discussion conclusions. The role of CMS Course management systems (CMS) are software tools that will automate a number of the course delivery and management functions. Blackboard and WebCt are the two major players in the field at the present time. My institution uses Blackboard 5.5 but WebCT has almost the same functions available. The learning curves of these tools are almost the same. Blackboard has a threaded discussion forum, group facilities, test and grade book facilities, chat facility, ability to create announcements, course calendar, file transfer capabilities, e-mail and a number of other features. The discussion forum allows you to sort the messages by author, date, and subject, which is very convenient when you grade participation and the quality of the discussion. The e-mail allows you to send e-mail to the whole class, a group within your class, and individual students. You can create groups in your class for group discussion, file transfer, and e-mail communication and these groups are password protected. Blackboard allows you to create a variety of assessments including true/false, multiple choice, fill-in, and short answer questions. The Course Statistics function in Blackboard allows you to produce a number of reports and graphics of student activities. Blackboard allows you to see what the students see while you develop your course. Blackboard is a server-based product, and all you need is an Internet Browser to access your courses from a Blackboard server. Blackboard still does not have a spell checker. I normally type my lectures and other class material in a word-processing program, spell check it, and then copy and paste it on the Blackboard. Since no spell checker is available, you need to take extra care when typing responses in the discussion forum in Blackboard. I heard that they are incorporating a good text and math editor in version 6.0, with a spell checker. Creating tests/quizzes are very time consuming but some third party software tools are available to make this process a little easier Student Performance Overall the students in my online class performed very well. I started with 12 students in four teams and eleven of them completed the course. Three students received a letter grade of A, four students received a grade of B, three students received a grade of C, and one student received a grade of D. One student dropped the class during week 3. The programs created by my online students were much better than the programs created by my traditional classroom students. 4. LESSONS LEARNED I was teaching programming in a traditional classroom for more than twenty years and was very apprehensive to teach a programming class online. By the very nature of programming, I was a proponent of face-to-face teaching, and I believed that it is impossible to teach programming online. With some reservations, now I believe that programming can be taught online to a certain population very successfully. To be successful one has to provide timely feedback, find ways to motivate students, understand the importance of the content delivery, develop appropriate assignments, manage time wisely, and develop good organization skills. Provide Timely Feedback Students expect immediate feedback from their instructors. This is very true in a programming class. White (2000) reported that the immediacy of the feedback might raise student expectations of instructor availability. Sometimes their expectations are unreasonable and you need to let them know about your policy about feedback. Charp (1999) pointed out that the students appreciate written comments by the instructor and their peers on work in progress. She also pointed out that the interaction between the participants is of crucial importance to the learning process and direct communication with students via discussion board (bulletin board), private e-mail, chats etc. are very effective. I try to answer their questions daily on the discussion folders and normally return their graded programs within forty-eight hours after the deadline. Students also like detailed and specific feedbacks. Motivate Students to Participate in Class Activities Learning is best accomplished when the learner is actively engaged in the process. For online discussion, this means that we want them to be active participants, providing input that will make everybody learn and think (Klemm 1998). Rich communication environments, both synchronous and asynchronous, make it possible for students to interact more effectively with classmates and instructors (Hofstetter, 1999). Facilitating discussion is the duty of the professor who must keep track the involvement of all students and encourage those who are not participating actively to do so (Kroder, Suess, and Sachs, 1998). According to Karayan and Crowe (1997), discussion forums have the ability to cater the needs of all students, to create a sense of community, to help students to think before they respond, and to increase the interaction. Stith (2000) reported a positive correlation between the final grade and the number of messages (articles) read by students in a class. I require my students to participate at least five days out of the seven days and I also require them that the responses must be substantial. I let them know that quality and quantity counts. I often ask them to apply the concepts in their work environment and they often describe examples from work to illustrate the application of the theory. I actively participate in the discussion forum to guide them and if I notice any "slackers" I will send them personal messages to get them involved in the discussion. One of the problems associated with the online environment is the dropout rate. In a six-week class we need to move fast to formulate the teams so that the assignments can be completed in time. If we developed four teams with three members and one or two dropout during week two or three, then we end up with a team of one member. This is not a healthy or encouraging situations. Great care must be taken to avoid these kinds of problems. Plagiarism is a major problem in traditional programming classes and online environment is not any different. In my class students were required to develop a specification and design for their programs and I will compare this with the finished program to observe the natural migration from the speciation to a finished product. Since students are required to post their programs in the team folder for review, the instructor will be able to see the progress. Even though there is no complete solution for this problem, I believe that online environment will allow us to track the programming development better than a traditional classroom. I had less plagiarism problems in my online classes compared with my traditional programming classes. The constant and vigilant presence and observation of the faculty is very important to avoid the problems associated with plagiarism. Understand the Importance of Content Delivery The main purpose of an online programming class is to deliver the content and you need to create your own methods and mechanism to deliver your content. For this class I used discussion, weekly summary, programming projects, and individual writing assignments without any tests or quizzes. For some other classes I use chapter tests, midterms, and finals. I Weekly summaries are an excellent way to close the discussion of the weekly materials. I choose my discussion questions in such a way that everybody in the class have some thing to say about it. Sometimes I will ask them to do some research about the weekly topic and post a one-page summary of their findings. After this research summary is posted, then the actual discussion about that topic will last for two to three days. Normally the discussion questions are linked to the weekly reading and the lectures, and the students need to have a good understanding of the weekly material to participate in the discussion. Here again, the participation and regular involvement of the faculty member is essential. Be Creative in Developing Assessment, Feedback, Grading, etc Distance learning has, by its nature, introduced several new success indicators. Written communication can be an indicator of growth and learning by using a studied approach to that communicator's progression in grammar, organization and development. The use of threaded discussion also provides a point of evaluation through an analysis of the types of questions posed, the types of responses given, the depth of the observations between teacher and student, and student and student, and the number of posted entries (Wade, 1999). In a programming class we need to evaluate the ability of the student to produce a complete working program, which is fully documented, and I used the activities in the team folder to watch their involvement and progress. I use weekly summary as a review vehicle in which students describe the highlights of the week We need to provide detailed weekly feedback for all assignment and course work. I organize my feedback under the various titles of the assignment like: programming assignment, discussion, participation, team participation and weekly summary. In this document I include the good and the bad about their assignment and their grade for each assignment. I will try my best to do this in a positive tone and with a heavy dose of encouragement. Use Your Time Wisely Online teaching is a very time consuming process. Course preparation, class participation, feedback, assessment, and keeping track the progress of each student will all take a tremendous amount of time. According to Smith, Ferguson, and Caris (2001) web-based distance education classes requires considerably more work, often including hundreds of hours of up-front work to set up the course. I normally spend two hours daily to respond to the discussion, answering their questions, and grading their assignments. I discovered that if your syllabus is well written, then you could save a lot of time by simply pointing them to the right place. Organize Your/Student Files Logically The amount of teaching material and student material is tremendous and you need to organize and manage these materials. You need to develop a good scheme to organize your work so that you can locate the material at a later period if needed. Some institutions require you to keep all the class related material for a period of six months after the class is over. Many of us reuse our material when we teach the same class again and this kind of organization will save a lot of our time. I organize all my announcements, master schedule, weekly schedules, syllabus, and some form letters in a separate folder. I create separate folders for lectures, grade book and weekly feedback. All student work is organized by week, and I have a separate folder for summary, papers, final project, tests, and assignments within this folder. When I download Mary's week 1 summary, I name that file as Mary-week1-summary and save that in the summary folder. I have other folders for PowerPoint presentations (if used), research articles, and a folder to keep some graphics, jokes, and cartoons. Every week I save a copy of the grade book in excel format in the grade book folder. I even keep a printed copy of the grade book after each change for security reasons. You need to create a scheme that is appropriate for you depending on your course and preference. 5. CONCLUSIONS The technology of distance learning continues to influence the practice of education. Distance education is forcing institutions to think about the quality and uniqueness of their offerings (Kearsley, 1998). I have been teaching online programming classes for more than a year now. I was very apprehensive at the beginning but I am gradually changing my mind about this medium to teach programming. I now strongly believe that programming can be taught online very effectively if the clientele is motivated and hardworking. This method of instruction is not well accepted by my traditional age students while the working adult population accepted it wholeheartedly. My experiences showed that if the course is carefully planned and implemented to the right population and the instructor is open to student feedback and continuous improvement, online instruction could be an effective educational environment. Online education is here to stay and faculty members who want to be a part of this experience must be prepared to accept the challenges that are associated with this change. 6. REFERENCES Charp, Sylvia 1999, "Distance Education." T.H.E. Journal, September. Retrieved July 15, 2002, from http://www.thejournal.com/magazine/vault/A2174.cfm Charp, Sylvia 2000, "Distance Learning." T.H.E. Journal, April. Retrieved July 15, 2002, from http://www.thejournal.com/magazine/vault/ A2787.cfm Cooper, Linda 1999, "Anatomy of an Online Course." T.H.E. Journal, February, pp. 45-51. Retrieved July 155, 2002, from http:// www.thejournal.com/magazine/ vault/A2071.cfm Hofstetter, Fred 1999, "Special Report." T.H.E. Journal, June. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A2094cfm Karayan, Silva and Judith Crowe, 1997, "Student Perceptions of Electronic Discussion Groups". T.H.E Journal, April. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A1367.cfm Kearsley, Greg 1998, "Distance Education Goes Mainstream." T.H.E. Journal May. Retrieved July 15, 2002, from http:// www.thejournal.com/ magazine/ vault/A3396.cfm Klemm, W.R., 1998, "Eight Ways to Get Students More Engaged in Online Conferences." T.H.E Journal, July 15. Retrieved August 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A1997.cfm Kroder, L. Stanley, Jane Suess, and David Sachs, 1998, "Lessons in Launching Web-based Graduate Courses." T.H.E. Journal May. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/A2032.cfm Kubala, Tom 1998, "Addressing student needs: Teaching on the Internet." T.H.E. Journal, March. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A2026.cfm Philips, W. Gary, 1999, "The Release of Distance Education at Postsecondary Education Institutions 1997-1988." National Center of Education Statistics. Retrieved on July 15, 2002. http://nces.ed.gov/commissioner/ remarks99/ 12_17_99.asp. Smith, G. Glen, David Ferguson, and Mieke Caris, 2001, "Teaching College Courses Online Vs Fcae-to-Face." T.H.E. Journal, April. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/A3407.cfm Stith, Brad 2000, "Web-Enhanced Lecture Courses Scores Big with Students and Faculty." T.H.E Journal, March. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A2689.cfm Terry, Neil 2001, "Assessing Enrollment and Attrition for the Online MBA." T.H.E. Journal, February. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A3299.cfm Wade, William 1999, "What Do Students Know and How Do WE Know that They Know it." T.H.E. Journal, October. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A2291.cfm White, Cheryl 2000, "Student and Faculty Respond to Online Distance Courses at Grant MacEwan Community College." T.H.E Journal, April. Retrieved July 15, 2002, from http://www.thejournal.com/ magazine/ vault/ A2814.cfm Williams, Vicki and Karen Peters, 1997, "Faculty Incentives for the Preparations of Web Based Instruction." Web-based Instruction, ed. Badrul H. Khan, Englewood Cliffs, NJ: Educational Technology Publications.