Learning Theory and Styles in Online Computer Science Courses

SISIR RAY

Department of Computer Science and Mathematics

Coppin State University

2500 West North Avenue, Baltimore, MD 21216-3698

UNITED STATES OF AMERICA

ANNE DENTON, CHRIS BESEMAN, KENDALL E. NYGARD

Department of Computer Science

North Dakota State University

1301 Twelfth Avenue North

Fargo, ND 58105-5164

UNITED STATES OF AMERICA

Abstract: Principles derived from the classical taxonomy of Bloom and empirical work on learning styles are used to influence the development of materials for online computer science courses. Active learning elements are also employed. Examples of the materials are given.

Keywords: Online courses, Computer science, Learning theory, Learning styles, Active learning

1 Introduction

Delivery of online versions of computer science courses is increasingly popular. Online systems provide for easy access, support great flexibility in the structuring of the content, and allow students to control their own pace of study. In our development of online versions of fundamental computer science courses, we are actively basing the approaches that we employ on principles of learning theory and knowledge gained from empirical research on learning styles. We also bring elements of active learning into the course development efforts. More specifically, we associate computer science content areas with the classical classifications of the cognitive domain developed by Bloom [1], and also incorporate principles derived from learning styles that originate in the seminal work of Felder and Silverman [4] and are used in a survey format in work of Solomon and Felder [9]. Initially we are developing materials for an online course in computer science problem solving. This is a relatively low level course covering problem solving methods, web development, elementary programming (in Javascript), and fundamental principles of computing systems. Other courses for online delivery will be developed in the near future. Our goal is to develop online learning systems for computer science that are highly effective in the absence of a classroom instructor or tutor.

2 The Bloom Taxonomy

Bloom's Taxonomy of the Cognitive Domain provides a hierarchical arrangement of learning processes. A brief summary of the six levels is given in the table below.

LEVEL / EXPLANATION
Knowledge
/ The learner remembers and recognizes information, ideas, and principles in the basic form in which they were learned.
Comprehension
/ The learner translates, explains, and
interprets information based on prior learning.
Application
/ The learner selects, transfers, and uses information, ideas, and principles in an abstract sense to complete a problem
or task with a minimum of direction.
Analysis
/ The learner distinguishes, classifies, and interrelates the constituent parts of a larger and integrated knowledge structure.
Synthesis
/ The learner originates, integrates, and
combines multiple ideas and principles into a larger assembly that is new to him or her.
Evaluation
/ The learner makes judgments, appraises,
assesses, or critiques the merits and validity of ideas.

Within Computer Science, the taxonomy has been used as a basis for proposals for arranging curriculum, and also for ordering topics within courses. For example, Machanick [7] proposes organizing courses so that they move purposefully and sequentially from factual knowledge and comprehension into topics that involve the more advanced cognitive skills involving analysis and synthesis. In our work, we are interested in using the taxonomy to influence how we structure the materials that we use to support the learning of specific computer science topics online.

3 Learning Styles

Students exhibit various styles in their learning of course content. The Index of Learning Styles [9] is an on-line survey instrument that can be used to develop learning style profiles for individual students or for an entire class. The original model is based on work of Felder and Silverman [4]. These learning styles are arranged in pairs that are in contrast with one another. The styles are summarized as follows:

Active: Active learners favor trying things out working others. / Reflective: Reflective learners favor thinking things through before taking action.
Sensing: Sensing learners favor learning facts, using well established methods, and tend to be practical and careful. / Intuitive: Intuitive learners tend to work fast, are innovative and quickly handle abstract and mathematical concepts.
Visual: Visual learners favor diagrams, pictures, graphs and films. / Verbal: Verbal learners favor spoken and written words.
Sequential: Sequential learners favor working in logical steps that proceed in a linear fashion. / Global: Global learners favor absorbing pieces of material with little concern for interrelationships, and then let the big picture emerge.

Through empirical work with the Felder and Solomon survey, researchers such as Broberg [3] concludes that the learning styles of computer engineering students tend to closely fit the left side of the table, being primarily active, sensing, visual, and sequential learners. When compared with students in general, those studying the computing sciences tend to be much more inclined to be sensing rather than intuitive learners. This profile of learning styles suggests that computer science students tend to build their knowledge base in systematic, organized, and hands-on ways. Although computer science educators often extol the value of abstraction and global thinking, this evidence suggests that such computer science maturity is likely to be built primarily from the mastery of concrete foundational material and active learning approaches.

4 Learner engagement in online systems

Active learning approaches are oriented toward direct student engagement in the material of interest. In computer science, active learning approaches can involve such things as group discussions, team projects, in-class minute papers, and problem-based learning. Although online systems inherently require student initiative, deeply engaging a remote student in active learning presents many challenges, since many of the approaches do not support a direct analog to the classroom setting. Some techniques that we are developing to engage remote students in computer science topics are given below.

  1. Crafting problems that are intrinsically motivating. Once students are past the knowledge and comprehension levels in a topic area, they should be challenged and motivated at the higher cognitive levels of applications, analysis, and synthesis. In so doing, we make an effort to offer problems with one or more of the following characteristics:
  2. An element of surprise, by violating the standard expectations of the learners,
  3. An interactive and authentic experimentation setting, to support direct engagement,
  4. Connections with real rather than contrived problems,
  5. Connections with outside knowledge or experience of the learners.
  6. Develop problems that accommodate and build upon diversity of student experience and background, support multiple perspectives, and lend themselves to alternative learning styles. Most real problems in computer science have many correct answers. For example, many algorithms for searching and sorting will generate the correct ordering of a list, but they differ greatly in their details and in their efficiency. Many problem solutions also lend themselves to visualization techniques, such as color-coded charts that show convergence of a process. Such techniques appeal to visual and sensory learning styles, and help students function at the analysis, synthesis, and evaluation cognitive levels. Most computer science topics lend themselves to an organized and logical sequence. Sequential learners will do well if the material is carefully structured in a logical progression.
  7. Encourage collaborations among multiple remote students, by devising problems with interdependent aspects that allow for solutions to be generated in multiple pieces from multiple contributors. Software engineering projects lend themselves well to this approach. It can also be instructive for students to conduct critical reviews of each others work. Group work tends to be beneficial in developing higher-level cognitive skills, as well as the basic benefits of learning how to work cooperatively with individuals with different personality and ability levels.

5 Knowledge and Comprehension Levels

In computer science, at the knowledge and comprehension levels of Bloom’s taxonomy, the main task is establishing the necessary language to converse about a particular topic. In testing at these levels, multiple choice, true-false, and matching questions are among the most popular questions types. Most current online delivery systems are set up to allow automatic grading for these types of questions.

In computer science we are often able to provide more than a textual listing of facts. We present concepts that are directly related to computer actions visually through screen-captures. The concept of a name-server lookup, for example, is depicted in figure 1. The steps students would take are highlighted. The example provides the students with a simple access to the problem at hand while depicting several more essential details. Note that the demonstration depicts the local server, which means that the students will see close to an identical setting when completing their lab work.

Fig. 1: Visual demonstration of a name server lookup

We also employ digital photographic images to further complement the repository of explanatory material. These are especially valuable for hardware concepts, since they have the potential for representing the material in a way that exactly matches the setting of the lab. Annotations are added to explain goals, highlight student interaction, and focus the student’s attention on relevant points.

In an online setting the images never have to be printed. This eliminates the cost per picture that otherwise is a major factor when including images in educational material. Use of screen captures, furthermore, avoids any initial investment and is thereby suitable for communication from student to instructor as well as from instructor to student. A student who has problems can document the state of his screen for trouble-shooting purposes and send the image to the instructor. This technique can be used to give advice at any education level. It is particularly useful at the application level where students don’t have the detailed instructions that characterize the knowledge level.

6 Application Level

It is in the nature of computer science education that even simple programming tasks require more than repetition of simple facts. It is customary that programming courses move quickly from the knowledge level to the application level. After basic vocabulary has been explained students immediately have to apply their knowledge independently. This step can be overwhelming, and it is often desirable to give students a chance to test their comprehension first. Online delivery is particularly suitable as a means of introducing a comprehension step for easing the transition from knowledge to application. Interactive educational demonstrations were developed that focus entirely on the concept of interest.

Figure 2 shows an example of a loop to calculate a factorial. Students are expected to implement the entire loop. This would confront them with many problems that are peripheral to the concept of iteration, such as where to place semicolons. The demonstration allows them to focus on the concepts involved in loop design, such as the terminating condition. The small scope furthermore allows messages that are targeted at the particular program at hand. Standard compiler messages or run-time error messages are typically hard to understand for beginning programmers and are of no help with infinite loops or logic errors. Figure 2 shows that our specific demonstration is able to point students to logic errors that would typically only be caught in assignments or exams. Note the detailed explanation that could not be achieved in an all-purpose programming environment.

Fig. 2: Demonstration of a loop in Javascript

To understand the loop construct, at the knowledge level the learner must first understand the concepts of assigning variables to values (i = 1), relational operators (i < 5), and increment/decrement operators (i++). It believe that it is beneficial to provide active links back to explanations of these types of fundamental concepts. Also note that the build up of the factorial is shown in a line graph as well as in a program trace. This provides a visual way for the learner to under the action of the loop.

Any specific programming demonstration has potential for doubling as an example of advanced programming later in the course. All programming demonstrations are done in Javascript, which is also the language taught in the course currently under development. Students are given simplified versions of demonstrations as programming projects towards the end of the course. Their experience with using the demonstrations helps in understanding goals. An actual implementation of a new problem requires extensive synthesis skills. The topic of demonstrations are typically simple problems while the implementation requires more advanced concepts such as alerts that only become clear later. Seeing both sides of a problem broadens the perspective of students and prompts them to look at any kind of application from the developer side.

A large part of computer science education focuses on problem solving at the Application level. Any course that involves programming concepts must eventually lead to an application of those concepts. Even standard programming environments provide valuable feedback to students. Making the best use of what is available can often do at least as much to achieve high-quality education as self-developed software. In the context of our introductory course we focused on finding the standard tools that provide the highest quality. Validators are used to ensure proper usage of native html. For best feedback in Javascript programming Mozilla Firefox [5]was chosen as the browser.

Some students explicitly prefer online offerings because of their focus on e-mail-based help. Students can work from anywhere at any time and don’t have to wait with questions until a pre-scheduled meeting. Drawbacks due to spatial separation are not typically a problem since instructors can typically anticipate problems even with little textual information. In extreme cases students quickly build skill to make use of screen captures as visual aids in describing their problems. Traditional labs have benefits but lab hours are typically too short for many students. In computer science, where background knowledge and experience tend to vary broadly even in advanced courses, individualized help is highly important.

7 Analysis Level

Computer science education requires students to not only implement a problem solution but to also analyze its context. For some topics in computer science it can, in fact, be beneficial to let analysis of a problem precede the application of skills. From a software engineering perspective, this order is typically of the software development process and is appropriate to take over the same model for learning. Application of a concept requires detailed understanding of many implementation details that contribute only marginally to the actual concept in question. For example, Figure 3 illustrates a database design problem that illustrates the process of describing relationships among entities. The analysis can then drive implications for an implementation.

Fig. 3: Covering advanced concepts at the analysis level

8 Synthesis Level

An example of synthesis on a technical basis was given in the section on Comprehension. Another example that we employ is in a social and historical context. We ask the remote students to contribute content to a web site on the history and prerequisites of computing. The question we pose is "If you were stranded in a community without computers what would you have teach people to allow them to build a computer". Several threads are pursued. An example of a thread that requires the synthesis of different ideas as well as critical thinking is the role of electricity in computing: While electricity is certainly a prerequisite to modern computers it actually lends itself better to analog technology (an integrating analog computer can be built from capacitors and coils, but not logical units). Historically Charles Babbage faced opposition because his ideas of a mechanical implementation were seen as trivial and old-fashioned. To fully develop the web site that answers the question of interest requires synthesis of knowledge of such things as semiconductors, memory, types of storage, etc. Through building the site, students actively learn computer architecture, the social and historical context of computing, and achieve familiarity with web development techniques, searching the web, and hyperlinking.

9 Evaluation

Proficiency in choosing an appropriate algorithm and design is a high-level goal in computer science education. We introduce students early to the trade-offs involved in their choices. A simple demonstration illustrated in figure 4 captures some of the most central aspects. The algorithms illustrated have differing relative ordering depending on the choice of parameter.

Fig. 4: Empirical comparison of different algorithms

10 Conclusion

We believe that the Bloom taxonomy provides useful guidelines for developing effective online course materials for computer science. Attention to alternative learning styles can also be potentially helpful. Knowing that active learning approaches are of proven effectiveness in the classroom, efforts to incorporate active learning elements in online course delivery are also promising. Experiments to validate our approaches are underway in the current academic year.

References:

[1] Bloom, B.S. (Ed.) Taxonomy of educational objectives: The classification of educational goals: Handbook I, cognitive domain. New York ; Toronto: Longmans, Green 1956

[2] Butz, C., Hua, S., and Maguire, R., A Web-based Intelligent Tutoring System for Computer Programming, the IEEE/WIC/ACM Conference on Web Intelligence, 2004, pp.159-165

[3] Broberg, H., “Student Learning Styles and Web Classes”, in the Teaching Online in Higher Education Online Conference, 2003