Adaptive Web-Based Learning for Students with Diverse Backgrounds: Case Study in a Introductory Programming Language Course

Chris Wild
Department of Computer Science
Old Dominion University
Norfolk, VA 23529-0162
(757) 683-4679
wild@cs.odu.edu

Abstract

The beginning programming sequence in the Computer Science Department at Old Dominion University attracts students from a wide variety of backgrounds including transfer students from community colleges, graduate students lacking a computer science degree, computer professionals looking to advance their career, regular students, who may or may not have had a programming course in high school, and, increasingly, students attending the university through a variety of distance learning programs. This paper describes an adaptive web-based implementation of a learning strategy called the spiral model.

The objectives of the spiral model are to support exploration of the subject matter based on competency, personal preference, interest and background to any depth without requiring the instructor to define explicit navigational paths. The model provides for flexible navigation of the subject matter in order to match a particular student’s background and to adapt the presentation of the subject material to that student. The instructor provides a road map and a set of goals, which guides the student’s exploration. The subject matter and learning tasks are organized around the integration of a set of skills needed to solve problems at different levels of understanding.

We report the results of using a web-based implementation to assist in the teaching of the first two programming courses during the spring and fall 1998 semesters.

Keywords: adaptive learning, web-based education, learning by problem solving

Preference: Talk or Poster

Adaptive Web-Based Learning for Students with Diverse Backgrounds: Case Study in a Introductory Programming Language Course

Chris Wild
Department of Computer Science
Old Dominion University
Norfolk, VA 23529-0162
(757) 683-4679
wild@cs.odu.edu

 

1. Introduction.

Despite almost continuous revision and refinement, the introductory programming language sequence is a source of frustration for many students with as many as a third of the class failing to achieve a satisfactory level of competence for further study. One of the major problems is tremendous diversity of background among the student population. This paper describes a learning model, called the Spiral Model, which is intended for a student population with widely varying backgrounds. It also describes an implementation of this model using web-based technology (Active HTML pages, JAVA applets, JavaScript, CGI Scripts, and Relational Databases). This implementation is being used in a pilot study for the introductory programming language sequence at Old Dominion University for the spring and fall 1998 semesters.

Section two describes the environment at Old Dominion University and the relevant particulars of the programming sequence and characteristics of the student population. Section 3 introduces the Spiral Model of Learning. This is followed by a description of the current implementation of this model. Section 5 discusses experiences to date in the beginning programming sequence. Finally areas for future work are described.

2. Environment at ODU

The introductory programming course sequence consists of three courses that teach programming principles using the C++ language. The switch from PASCAL to C++ as the introductory programming language was made in the spring of 1995. C++ supports principles of Object Oriented Programming and it is popular in the software industry as the basis for new systems development. However it was recognized at that time that C++ is a complicated language which would be difficult for novice programmers. The first course introduces programming concepts but not object oriented design. The second course focuses on object-oriented design and problem solving principles. The final course in the programming sequence covers data structures and algorithm analysis. Each of the first two courses has a required teaching lab to help students in applying the material learned in class to the solution of programming problems. Class sizes (per semester) for the three courses are approximately 200 in the first course, 80 in the second course and 50 in the third course. The numbers are larger in the first course because it is taken by engineering students as a required programming course.

This course sequence is attended by professional programmers who desire a formal degree as part of their career path, graduate students pursuing a Master’s degree in Computer Science but who have an undergraduate degree in an unrelated field, transfer students who have taken an introductory programming course at another institution but using a different programming language as well as traditional college freshmen. Even among the freshmen, there is a great variety of programming backgrounds, with some students already quite proficient in computer programming (although usually in a language other than C++) and those who have never programmed before. In addition, there is a trend towards distance learning in our university in order to reach non-traditional students who are already working and want to change careers or upgrade skills. It is this great diversity of background that makes this sequence challenging to teach.

In addition to the diversity of student backgrounds, the highly technical nature of programming also makes it difficult to master. To design, implement, compile and test even a small program requires a wide array of specific knowledge and skills ranging from the syntax and semantics of the programming language to problem solving strategies, software design principles, and proficiency in the use of computer software tools such as editors, compilers and debuggers. For some students, even logging into and using an unfamiliar computer system is a challenge. Therefore programming courses almost always include a required laboratory component where students get to practice the art of programming. In this Learning-by-Doing mode, the student should be encouraged to explore the subject domain and to connect their knowledge and skills into appropriate mental models of the subject (which will change as they mature). This exploration is a personal journey tempered by their background, interests and goals.

 

2. Spiral Instructional Model

The activity of programming computers is fundamentally an exercise in problem solving. The program represents the solution to some problem and the execution behavior of that program becomes a means to judge, unemotionally, the success of the problem solution. Because of the unsympathetic demands of the software development environment, the failure to produce a correctly executing program often leads to anxiety and confusion about which aspect of the problem solving process led to that failure. Problem solving is characterized by the integrated use of a set of skills, each of which contributes towards the overall solution. The role of each skill in the overall process forms a conceptual model of the problem solving activity. The complexity of computing systems in general and software development environments in particular means that this learning process will take place with only an incomplete understanding of the many skills necessary to complete a given programming task. In fact the existence of different competence levels among practitioners is characteristic of a field in which expertise is gained over many years of learning, improving skills and integrating those skills into more and more sophisticated conceptual models and theories.

When learning a complex subject, it is often desirable, and even necessary, to use conceptual models that are inaccurate or overly simplistic in some particulars. Since problem-solving skills are best honed by doing, a student needs to acquire a certain minimal set of competence in that set of skills necessary to perform a group of problems in the domain of study. The spiral instructional model organizes the subject material into a series of Competency Circles that allow the student to tackle a given set of problems. Thus the learning process is driven by a need-to-know in order to solve a given set of problems with a given set of skills and conceptual models. It is the instructor’s role to define the Competency Circles and to define a series of problem solving activities through which the student will navigate towards increased competency.

Figure 1 shows a simplified view of the Spiral Model for an introductory programming course.

 

In this figure, the Competency Circles are divided into five major skill sets (Semantics, Syntax, Design, Implementation Skills (style, testing, debugging) and tool usage). Each larger circle indicates an increased set of skills and/or a more sophisticated conceptual model that allows the solution of a more complicated set of problems. This figure is simplified in the following ways.

  1. It shows the circles of competence are strictly increasing. In general, these circles need not have a subset/superset relationship but could overlap or be disjoint.
  2. It shows that the set of skills stays the same for all circles. It is more realistic that some skill sets will not be needed at the lower levels of competence. Also not all skills learned earlier will be required to solve more complicated problems. This is one of the reasons that different instructors will approach the same subject in different orders, choosing different problem sets that match the order in which skills and models are learned.

Competency circles define goals set by the instructor which the student is expected to meet. These goals can correspond to the mastery of specific skills or the understanding of a particular conceptual model needed to perform a certain set of problems within the domain. A competency circle can be an individual exercise, a chapter in the textbook, or a semester project.

While the competency circles represent expected competence, each individual student will have an achieved level of competence that can be mapped into the spiral model as shown in figure 2.


Each arrow shows the achieved competence of the student in some subtopic. Because of the diversity in the backgrounds, one student may be over-competent in some areas while under-competent in others. For example, a computer professional may have excellent planning and testing skills but be deficient in principles of object oriented design because their earlier formal education was based on a different programming model. In this case, the fastest way to achieve competency might be to learn the object-oriented model by analogy to existing mental models. In this particular case, the student has only mastered the innermost competency circle but shows a mature understanding of many subtopics and would be able to attempt problems several levels beyond his/her current competence with a little study in the areas of deficiency.

While competency circles are based on need-to-know, students are also driven by desire-to-know. In fact, desire to know, although often unplanned, represents a significant learning opportunity. The spiral model supports desire to know by providing convenient navigational paths in any subject matter or skill from a given level of competence to a higher level one. In addition, the student can spiral into a lower level of competence in order to fill in gaps in their competence or to reinforce previously learned material. The ability to move between levels of competence inspired the name Spiral Model.

3. Web-based Implementation of Spiral Model

In our initial implementation, we envision four roles: author, instructor, teaching assistant and student. The author is responsible for creating instructional material for the course. This material will be the core of an electronic textbook, organized along the principles outlined below. The instructor is responsible for organizing the instructional material into a particular course given to a specific set of students. Presumably the instructor organizes the material based on his or her instructional style and the needs and capabilities of the particular class. The instructor is free to use and adapt the material provided by the author and can supplement this material with that of his/her own. The instructor is responsible for setting the objectives for a particular course. The teaching assistant is responsible for analyzing the progress of the students and providing feedback to the instructor about each student’s performance. The student is responsible for the real job of learning. Figure 3 shows the major subsystems and databases used in the current implementation.

Topics Database: The subject material is organized as a set of information topic explanations, learning tasks, examples, and tests implemented as HTML pagelets. Each item in the database is indexed in the following ways:

In addition, each entry has the URL of the actual content material. In order to address different audiences, there may be several explanations of the same topic, each suitable for a different background or learning style. For the fall 1998 semester, we have adopted a format for explanation pages, which provides hyperlinks to other explanations of the same topic but at different levels, hyperlinks to additional examples and hyperlinks to related learning tasks. Since all thesis hyperlinks go through the webpage synthesis engine, all material in the subject database related to this topic is available from a given page, even those pagelets that have been added later.

Curriculum: Defines competency circles by gathering topics into a problem solving skill set. The curriculum is defined as HTML web pages with hyperlinks to associated information from the topics database. Each HTML page can correspond to a chapter in a traditional textbook, to a lecture that might be drawn from several information sources or to exercises and projects for the student. Such curriculum material can be generated by the author based on an understanding of the subject material or by the instructor based on personal instructing style, an understanding of student population, goals of the academic program, and institutional policies. The current implementation uses regular the anchor tag in HTML to reference the synthesis CGI script with a query string giving the parameters of the data base search in the topics database. For example, to refer to a learning task pagelet on while loops in C++ you would use the following HTML tag

<a href="synthesis.cgi?topic=loops&subtopic=while&type=LearningTask"> while loops </a>

The actual pagelet returned depends on the synthesis engine (to be described later on). One of the advantages of the current implementation is that the instructor can design the curriculum without being aware of the specific material in the topics database. New material can be added at any time. Since the hyperlink is to a CGI script instead of an html page, new material can be accessed from existing links as soon as it is available.

Student Profile: is divided into two parts, one static and one dynamic. The static part consists of personal information about the student (name, e-mail, student ID, background) as well as personal preferences and computing environment.

The dynamic student profile records the student’s progress in the subject, keeping detailed information about pagelets visited and the results of learning tasks and tests. Learning tasks use JavaScript to evaluate student responses and to evaluate progress. The results of this evaluation are communicated to a CGI script when the task is done and that is recorded in the student’s dynamic database.

Web Page Synthesizer: This is the heart of the adaptive learning system. The current implementation of this component uses a rather straightforward algorithm in choosing which material to present next. The fields in the query string of the HTML anchor tag are used to query the subject database. If multiple entries are found, a web page listing all choices is shown with an indication of which pagelets the student has already visited. We plan to investigate ways to automate the choice of the next page to show the student based on an assessment of the student’s current progress.

AutoLinker: In order to provide quick access to any topic referenced on any page, we have built an auto linker which takes every topic in the subject database and replaces every reference to that topic by a hyperlink to the topic. The automatic linking of topics is done periodically on every HTML page in the website. The primary advantage of autolinking is that the web author or instructor is not burdened with manually linking topics with their references. Also topic explanations added after a page referencing that topic will be linked to the newly added page without the original author being aware of the new addition. In addition to this autolinking service, we provide for a search engine over the entire website and a glossary of terms.

4. Experiences

In the spring of 1998 a prototype version of the webtutor was developed to help students in the beginning programming course. This version lacked the synthesis engine, but included the dynamic student database and a site map that showed the student’s progress in the course. It utilized a primitive version of the spiral model. Since it was being developed during the running of the course, its use was strictly voluntary. A summary of the statistics gathered over the semester indicates that 164 people registered to use the site. Of these, 134 were current students in the class, 6 were former students and the rest were just curious about the site (there was no password protection on the site). One disappointing statistic was that only 67 people logged in again after the initial registration, but those that did, visited the site an average of four more times. There were 45 pages of information developed that were visited 21 times on the average. At least one student achieved an excellent level of achievement on 70% of the pages (there was no penalty or reward for performance). The level of difficulty of each page was also assessed (by choosing the appropriate submit button when the page was finished). The students reported that 18% of the pages were difficult, 51% were OK, 27% were easy and 4% were a waste of time. Because of the voluntary nature of the website, students did not use their real names and no attempt to correlate website usage with performance in the course.

A full implementation of the spiral model is planned for the fall 1998 semester and a web-based course will be offered as an alternative to the traditional lecture version of the second programming course (also being offered that semester). This version will demonstrate the ability to address students with different backgrounds by providing a variety of materials tailored to specific backgrounds. It will support the spiral model by providing easy navigation up and down levels of competence and it will tie explanations to learning tasks and a large set of examples appropriate to different backgrounds. A detailed audit trail of the student’s path through the website will be made to study how the spiral model is being used. Since the use of the website will be a required part of the course, the progress of each student will be evaluated and both test results and student surveys will be made. Since several graduate and transfer students are planning to take the web-based course, a comparison of the experiences of students in the traditional course and the web-based course will therefore be possible.

(NOTE TO REVIEWERS: if this paper is accepted, we plan to present the results from the fall semester at the conference. The website can be accessed from the following URL http://www.cs.odu.edu/~wild).

5. Future Work

The version as implemented for the fall 1998 has a simple synthesis engine. Basically it queries the topic database to find material matching the query string in the HTML hyperlink, queries the student dynamic database to find which material the student has visited and displays the results of these queries to the student. The student then decides what to do next. As the amount of material grows, this will place an increasing burden on the student and may lead to confusion about what is the next reasonable course of action. One of the areas for future work is to add a diagnosis program that will make appropriate choices for the student based on an analysis of the student’s background, progress and learning goals. This facility could be expanded to include advice on how to proceed at any point, particularly when the student first logs in (thus answering the question: What do I do next?). The use of student models and individualized diagnosis by computer is controversial (1,2). However, we plan to look at a diagnosis system based on stereotypical students. Diagnosis will involve categorizing the student into one of several well-defined categories. Each category will contain its own learning strategy, lesson plan, explanations, learning tasks, etc. The instructor will prepare appropriate curriculum and associated competency circles for each class of stereotypical students.

The current system uses JavaScript embedded in the HTML page for automatic and instantaneous evaluation of the student on learning tasks. Such evaluation is currently limited to multiple choice questions and simple fill-in-the-blank learning tasks. However, programming is a creative art that synthesizes a complex technical solution. Since there are theoretically an arbitrary number of solutions to any given problem, it is often difficult to provide extensive personal feedback to the student on the art of programming. Automated programming understanding is area that has received much attention (3) and it may be possible to adapt some of that work to automatically evaluate the programming skills of the student.

The protocol between a browser and a web server is essentially episodic. Each access to the web site is a separate episode with limited state information kept between episodes. The current implementation attempts to inject a degree of continuity by recording and reporting progress. However more sophisticated methods of dialog management would be desirable. We plan to investigate how current research in dialog management can be adapted to a web-based course.

Another area in which we have begun investigation is the use of user input capture during a problem solving session and the subsequent replay of this input by the instructor who can analyze the problem solving strategies of the student by virtually "looking over the shoulder" of the student.

6. Conclusions

Although the system described in this paper was developed to address the diversity of background for students taking the beginning programming sequence at Old Dominion University, we believe that the ability to handle diverse backgrounds and learning styles will become increasingly important as more adults seek out additional education throughout their lives. This paper described the spiral model of learning which blends need to know within a circle of competence with a desire to know. This model and its implementation are designed to handle students with widely varying backgrounds and learning styles.

References

  1. A comparison of three learning strategies in intelligent tutoring systems, Claude Frasson and Esma Aimeur, J. Educational Computing Research, Vol. 14(4), pp. 371-383, 1996.
  2. Non-diagnostic intelligent tutoring systems: Teaching without student models, Leo Gugerty, Instructional Science, Vol 25, pp. 409-432, 1997.
  3. An Intelligent tutoring system for introductory C language course, J.S. Song, S.H. Hahn, K.Y. Tak, J.H. Kim, Computers Educ, Vol 28(2), pp. 99-102, 1997.