Thesis
Thesis
by
William S. Gilley
MASTER OF SCIENCE
in
Computer Science
May 8, 2001
Blacksburg, Virginia
ABSTRACT
Due to the rapid proliferation of the World Wide Web (WWW) in recent years,
many educators are now seeking to improve the effectiveness of their instruction by
providing interactive, web-based course material to their students. The purpose of this
thesis is to document a set of eight online learning modules created to improve the
effectiveness of learning the fundamentals of Computer Science. The modules are as
follows:
1. Algorithms - Definition and specification of algorithms, with a comparison and
analysis of several sorting algorithms as examples.
2. Artificial Intelligence - Overview of current applications in this discipline.
3. Data Structures - Explanation of basic data structures, including an introduction to
computer memory and pointers, and a comparison of logical and physical
representations of commonly used data structures.
4. Machine Architecture - Explanation of data storage, gates and circuits, and the
central processing unit.
5. Number Systems - Discussion of number representation and arithmetic in number
systems other than the decimal number system, with a focus on binary numbers
and binary arithmetic.
6. Operating Systems - Explanation of the purpose of operating systems and the
major components that make up an operating system.
7. Programming Languages - Explanation of the fundamental concepts in procedural
programming languages.
8. Software Engineering - Introduction to software life cycle models and an
overview of the procedural and object-oriented paradigms.
ii
Each module consists of a set of lessons and review questions written in HyperText
Markup Language (HTML). Embedded in these pages are various interactive
components implemented as Flash animations or Java applets. The modules currently
reside on the Computer Science courseware server of Virginia Polytechnic Institute and
State University (Virginia Tech) and can be viewed at the following WWW site:
http://courses.cs.vt.edu/csonline/.
iii
ACKNOWLEDGEMENTS
First of all, I want to thank my Lord and Savior Jesus Christ who is my constant
refuge and strength (Psalm 62:7-8). Second, I want to thank my mother and father for
their wisdom in sending me to Virginia Tech to study and their help throughout my years
of graduate school. Third, I want to thank Dr. Balci for working as my advisor and
giving me much wise counsel during the past two years of graduate school. I also want to
thank Dwight Barnette and Dr. Lee for their ideas and guidance as I designed various
online modules. Fourth, I want to thank Rob Adams and Emre Tunar who actually
programmed most of the animations and applets I designed. Fifth, I want to thank Dr.
Nance for sitting on my committee at the last moment and for his insightful criticisms.
And last, I want to thank the Bakers who graciously had me in their home nearly every
week to eat so that I would not die from my diet of Ramen noodles.
iv
TABLE OF CONTENTS
ABSTRACT ........................................................................................................................ii
ACKNOWLEDGEMENTS ............................................................................................... iv
LIST OF FIGURES..........................................................................................................viii
1 INTRODUCTION ...................................................................................................1-1
1.1 STATEMENT OF THE PROBLEM ...................................................................1-1
1.2 STATEMENT OF THE OBJECTIVES...............................................................1-3
1.2.1 Providing Access to the Modules via the WWW.........................................1-3
1.2.2 Teaching the Topics in an Interactive, Animated Manner ...........................1-3
1.2.3 Reusing Existing Material............................................................................1-4
1.2.4 Implementing Independent, Extendable Modules........................................1-5
1.3 OVERVIEW OF THE THESIS ...........................................................................1-6
2 RELATED WORKS ................................................................................................2-1
2.1 MULTIMEDIA LEARNING MATERIAL FOR NON-CS COURSES .............2-1
2.1.1 Essential Chemistry Flash Animations ........................................................2-1
2.1.2 Explorations QuickTime Animations ..........................................................2-2
2.1.3 Environmental Science RealMedia Animations ..........................................2-2
2.1.4 SABLE Applets............................................................................................2-2
2.2 MULTIMEDIA LEARNING MATERIAL FOR CS COURSES .......................2-3
2.2.1 PACER .........................................................................................................2-3
2.2.2 The HyperLearning Center...........................................................................2-3
2.2.3 Operating Systems 85349.............................................................................2-4
2.2.4 The Analytical Engine Online......................................................................2-4
2.3 ARCHIVES OF MULTIMEDIA RESOURCES.................................................2-5
3 PROJECT TOOLS AND TECHNOLOGY.............................................................3-1
3.1 HARDWARE TOOLS.........................................................................................3-1
3.2 SOFTWARE TOOLS ..........................................................................................3-1
3.2.1 Dreamweaver 2.0 .........................................................................................3-1
3.2.2 Flash 4.0 .......................................................................................................3-1
3.2.3 Fireworks 3.0 and Paint Shop Pro 6.0..........................................................3-1
3.2.4 Java...............................................................................................................3-2
v
4 COMPUTER SCIENCE ONLINE MODULES ......................................................4-1
4.1 ALGORITHMS....................................................................................................4-1
4.1.1 Manual Sort Animation................................................................................4-3
4.1.2 Swap Operation Animation..........................................................................4-3
4.1.3 Simple Sort Algorithm Animation ...............................................................4-4
4.1.4 Insertion Sort Algorithm Animation ............................................................4-5
4.1.5 Selection Sort Algorithm Animation............................................................4-5
4.1.6 Sort Quiz Applet ..........................................................................................4-5
4.1.7 Space Efficiency Quiz..................................................................................4-6
4.1.8 Time Efficiency Quizzes..............................................................................4-7
4.1.9 Selection Sort Algorithm Analysis Animation.............................................4-7
4.1.10 Simple/Insertion Sort Analysis Quizzes.......................................................4-8
4.2 ARTIFICIAL INTELLIGENCE ..........................................................................4-9
4.2.1 Humans Versus Computers Animation......................................................4-10
4.2.2 Checkers Applet .........................................................................................4-10
4.2.3 ELIZA Applet ............................................................................................4-11
4.2.4 Eight-Puzzle Applet ...................................................................................4-12
4.2.5 JRec Applet ................................................................................................4-13
4.3 DATA STRUCTURES ......................................................................................4-14
4.3.1 Ordered Arrays Animation.........................................................................4-15
4.3.2 Ordered Linked List Animation .................................................................4-16
4.3.3 Abstract Stack Animation ..........................................................................4-17
4.3.4 Abstract Queue Animation.........................................................................4-17
4.3.5 Queue Applet..............................................................................................4-18
4.3.6 Two-Dimensional Arrays Animation.........................................................4-19
4.3.7 Graph Animation........................................................................................4-20
4.3.8 Bag Abstract Data Type Applet .................................................................4-21
4.4 MACHINE ARCHITECTURE..........................................................................4-22
4.4.1 Data Representation Applet .......................................................................4-23
4.4.2 Simcir Applet .............................................................................................4-24
4.4.3 Latch Animation.........................................................................................4-24
4.4.4 Sum Program/Count Program Animations ................................................4-25
4.5 NUMBER SYSTEMS........................................................................................4-26
4.5.1 Conversion .................................................................................................4-27
4.5.1.1 Binary to Decimal Conversion Animation.............................................4-27
4.5.1.2 Decimal to Binary Conversion Animation.............................................4-29
4.5.1.3 Decimal to Binary Conversion with Fractions.......................................4-29
4.5.2 Binary Arithmetic.......................................................................................4-30
4.5.2.1 Adding Two Binary Numbers Animation..............................................4-30
4.5.2.2 Adding Multiple Binary Numbers Animation .......................................4-30
4.5.2.3 Binary Subtraction Animation ...............................................................4-31
4.5.2.4 Binary Multiplication Animation ...........................................................4-31
4.5.2.5 Binary Division Animation ....................................................................4-32
4.5.3 Complements..............................................................................................4-32
vi
4.5.3.1 Binary Subtraction with 1’s Complement Animation............................4-32
4.5.3.2 Binary Subtraction with 2’s Complement Animation............................4-33
4.6 OPERATING SYSTEMS ..................................................................................4-33
4.6.1 Nursery Game Applet.................................................................................4-34
4.6.2 Process State Diagram................................................................................4-35
4.6.3 Process Scheduling Simulation Applet ......................................................4-36
4.6.4 Mutex Demonstration Applet.....................................................................4-37
4.6.5 Bounded Buffer Demonstration Applet .....................................................4-37
4.6.6 Dining Philosophers Applet .......................................................................4-38
4.6.7 Memory Allocation Applet ........................................................................4-39
4.6.8 Virtual Memory Simulation Applet ...........................................................4-40
4.6.9 Simulation of Page Replacement Algorithms Applet ................................4-41
4.6.10 File System Allocation Applets..................................................................4-42
4.7 PROGRAMMING LANGUAGES ....................................................................4-43
4.7.1 Code Representations Animation...............................................................4-44
4.7.2 Variables and Assignment Animation........................................................4-45
4.7.3 Simple Assignment Machine Applet..........................................................4-46
4.7.4 Data Types Animation ...............................................................................4-46
4.7.5 Selection Exercises.....................................................................................4-47
4.7.6 Loops Demonstration Animation ...............................................................4-48
4.7.7 Call/Trace Power Animations ....................................................................4-48
4.7.8 Parameter Passing Animation ....................................................................4-49
4.7.9 Selection Sort Applet .................................................................................4-50
4.8 SOFTWARE ENGINEERING ..........................................................................4-50
4.8.1 Software Engineering Quiz Applet ............................................................4-51
4.8.2 Waterfall Model Animation .......................................................................4-52
4.8.3 Waterfall Model Review Quiz ...................................................................4-53
4.8.4 The Spiral Model Animation......................................................................4-54
4.8.5 Selection Sort Applet .................................................................................4-54
4.8.6 Abstract Data Type Applets .......................................................................4-54
4.8.7 Inheritance Animation................................................................................4-55
5 CONCLUSIONS AND RECOMMENDATIONS FOR FUTURE WORK............5-1
5.1 CONCLUSIONS..................................................................................................5-1
5.2 RECOMMENDATIONS FOR FUTURE WORK...............................................5-3
BIBLIOGRAPHY ........................................................................................................ Bib-1
VITA ...........................................................................................................................Vita-1
vii
LIST OF FIGURES
viii
Figure 4.42 Memory Allocation Applet........................................................................4-40
Figure 4.43 Virtual Memory Simulation Applet...........................................................4-41
Figure 4.44 Simulation of Page Replacement Algorithms Applet................................4-42
Figure 4.45 File System Allocation Applet...................................................................4-43
Figure 4.46 Code Representations Animation ..............................................................4-45
Figure 4.47 Variables and Assignment Animation .......................................................4-45
Figure 4.48 Simple Assignment Machine Applet .........................................................4-46
Figure 4.49 Data Types Animation ...............................................................................4-47
Figure 4.50 Selection Exercises ....................................................................................4-47
Figure 4.51 Loops Demonstration Animation...............................................................4-48
Figure 4.52 Call/Trace Power Animations....................................................................4-49
Figure 4.53 Parameter Passing Animation....................................................................4-49
Figure 4.54 Selection Sort Applet .................................................................................4-50
Figure 4.55 Software Engineering Quiz Applet............................................................4-52
Figure 4.56 Waterfall Model Animation.......................................................................4-53
Figure 4.57 Waterfall Model Review Quiz...................................................................4-53
Figure 4.58 Spiral Model Animation ............................................................................4-54
Figure 4.59 Inheritance Animation ...............................................................................4-55
Figure 5.1 Handwriting Recognition Examples..............................................................5-2
ix
LIST OF TABLES
x
1 INTRODUCTION
1-1
This thesis documents the work of a year-long project funded by the Center for
Innovation in Learning at Virginia Polytechnic Institute and State University (Virginia
Tech). The purpose of this project was to develop interactive course material for
improving the effectiveness of learning the fundamentals of Computer Science by
utilizing the unique advantages of multimedia and the WWW and attempting to mitigate
their present challenges. During the course of the project, the project team developed
eight web-based learning modules that span the fundamental topics of Computer Science.
The modules are as follows:
1. Algorithms - Definition and specification of algorithms, with a comparison and
analysis of several sorting algorithms as examples.
2. Artificial Intelligence - Overview of current applications in this discipline.
3. Data Structures - Explanation of basic data structures, including an introduction to
computer memory and pointers, and a comparison of logical and physical
representations of commonly used data structures.
4. Machine Architecture - Explanation of data storage, gates and circuits, and the
central processing unit.
5. Number Systems – Discussion of number representation and arithmetic in number
systems other than the decimal number system, with a focus on binary numbers
and binary arithmetic.
6. Operating Systems - Explanation of the purpose of operating systems and the
major components that make up an operating system.
7. Programming Languages - Explanation of the fundamental concepts in procedural
programming languages.
8. Software Engineering - Introduction to software life cycle models and an
overview of the procedural and object-oriented paradigms.
Each module consists of a set of lessons and review questions written in HyperText
Markup Language (HTML). Embedded in these pages are various interactive
components implemented as Flash animations and Java applets. The eight modules now
reside on the Computer Science courseware server of Virginia Tech and can be viewed at
the following WWW site: http://courses.cs.vt.edu/csonline/.
1-2
1.2 STATEMENT OF THE OBJECTIVES
Four main objectives guided the development of the learning modules:
(1) provide access to the modules via the WWW, (2) teach the topics in an interactive,
animated manner, (3) reuse existing material, and (4) implement independent, extendable
modules.
1-3
Figure 1.1 Interactive use of the ELIZA applet
1-4
puzzle applet (see Figure 1.2) in the Artificial Intelligence Module. Locating and
modifying this applet required approximately 20 person hours while developing a similar
applet from scratch would require anywhere from 50 to 100 person hours.
1-5
1.3 OVERVIEW OF THE THESIS
This thesis consists of five chapters. Chapter 1 discusses the advantages and
challenges of developing interactive learning modules for the WWW, discusses the four
objectives we used in developing our modules, and provides an overview of the thesis.
Chapter 2 surveys several related works that are currently accessible on the WWW.
Chapter 3 describes the hardware and software tools used to create the online modules.
Chapter 4 documents the eight modules we created with each subsection corresponding to
one module. The subsections state the learning objectives for the module and describe
the lessons and interactive components embedded in the module. Chapter 5 summarizes
the project, discusses some preliminary student responses to the modules, and makes
recommendations for future work.
1-6
2 RELATED WORKS
In this chapter, we present three areas of related work. First, we examine several
college-level resources outside the field of Computer Science that provide multimedia
learning material. These serve as general examples of what is currently being done to use
technology and the WWW to improve the effectiveness of learning. Second, we examine
several multimedia college-level resources within the field of Computer Science. Third,
we describe four archives of multimedia resources for Computer Science educators.
These archives provide a valuable resource for educators who desire to reuse existing
interactive material to improve the effectiveness of their own instruction.
2-1
2.1.2 Explorations QuickTime Animations
This web site [Arny 2000] provides a collection of 43 QuickTime animations for
illustrating various concepts in astronomy. The animations include narration which is
also displayed as HTML text below the animation. These animations are quite large in
size ranging from 500 KB to 15 MB. They are also non-interactive and tend to be short
in length. For example, the largest animation has a running time of 30 seconds and
covers three sentences of narration. Each animation corresponds to a particular chapter
or topic in Thomas Arny’s astronomy textbook Explorations: An Introduction to
Astronomy. Arny’s web site also includes some labs and quizzes, however, this material
is not directly accessible from the animations.
2-2
Some of the topics covered by the tutorials include measures of central tendency and
dispersion, hypothesis testing, T-distributions, analysis of variance, and linear regression.
Each of the statistics tutorials are linked to a glossary of terms that is displayed in a frame
at the bottom of the screen. Students interact with the applets in a wide variety of ways.
For example, one applet which illustrates the concepts of median and mode displays two
histograms of data. Students are then given the following instructions:
You should see two copies of the histogram. The upper histogram allows you to
drag the red vertical line to help locate the median. Numbers on either side of the
red line show you how many values exist above and below the line. The lower
histogram allows you to move a triangle within the range of the distribution which
acts like a fulcrum for a see-saw. The mean is located at the point where the
histogram is balanced. Use these tools−the red vertical line and the fulcrum−to
find the median and mean of the data.
As the students drag the line and the fulcrum with the mouse, they can see the meaning of
median and mode visually.
2.2.1 PACER
Personally Active Computing Exploration Resource (PACER) [Palakal 1997] is a
WWW instructional supplement to the introductory computing courses at the Indiana
University-Purdue University at Indianapolis Department of Computer Science. PACER
consists of a set of Java applets to illustrate concepts in three areas of computer science:
computer logic, algorithms, and data structures. The applets are presented with minimal
instructions and no explanation of the topic being illustrated. The site also appears to be
incomplete since some of the topic links lead to pages stating that no applets exists for the
selected topic.
2-3
computer systems.” The workbenches consist of 16 Java applets illustrating the
following topics:
• Performance of operating systems,
• Virtual memory,
• Synchronization in centralized operating systems,
• Synchronization in distributed systems,
• Election in distributed systems, and
• Process scheduling.
Each applet is accompanied by a brief introduction to the topic and instructions on using
the applet. The HyperLearning center also provides some tutorial modules on various
computer science topics. These modules are mainly text and graphics, however, some do
link to relevant workbenches in order to illustrate the topic interactively.
2-4
from the parser applet can be executed on the simulator. The site also includes review
quizzes and an interactive game that are implemented with JavaScript.
2-5
3 PROJECT TOOLS AND TECHNOLOGY
In order to develop the eight interactive learning modules, we purchased two
computers and various software tools with funding provided by the Center for Innovation
in Learning at Virginia Tech. These tools are described below.
3-1
design of graphics embedded in module lessons and the design of images used in various
interactive components.
3.2.4 Java
For the creation of applets, we used two different tools. The first tool was the Sun
Microsystems’ Java 2 Software Development Kit (SDK). This SDK is a free download
from Sun and provides all the necessary Java classes for applet development. The second
tool was Microsoft’s Visual J++ 6.0 Standard Edition. This tool provides an integrated
developing environment in addition to Microsoft’s own set of Java classes and virtual
machine.
3-2
4 COMPUTER SCIENCE ONLINE MODULES
This section describes the content of the eight online modules created during the
project. Each subsection corresponds to a single online module and includes a summary
of the lessons and interactive content contained in the module. For the reader’s
convenience, WWW links pointing to the appropriate lessons are included in the
discussion.
4.1 ALGORITHMS
The Algorithms Module consists of 20 lessons that introduce the topic of
algorithms by discussing the characteristics of a good algorithm and comparing several
sorting algorithms to illustrate algorithm efficiency and algorithm analysis. The learning
objectives for the module are as follows:
• Specify simple algorithms using Structured English,
• Sort numbers using Simple, Insertion, and Selection sorts, and
• Compare simple algorithms for space and time efficiency.
Table 4.1 lists each of the lessons in this module and briefly describes the content of each
lesson. The right column of the table indicates any interactive components that are
embedded in the lesson.
4-1
Table 4.1 Lessons in the Algorithms Module
Lessons Interactive Components †
Introduction to Algorithms – discussion of the relationship
• Manual Sort (F)
between algorithms and Computer Science
The Definition of an Algorithm – discussion of five
characteristics of an algorithm
Specifying Algorithms – examples of ways to specify
algorithms
4-2
4.1.1 Manual Sort Animation
This animation illustrates the concept of an algorithm by asking students to sort a
sequence of letters and a sequence of playing cards. They are also asked to record the
steps they used so that another person could perform the same sort. In this way the
students have written their own sorting algorithm before being introduced to the
“official” sorting algorithms later in the module. The animation encourages interactivity
by allowing students to manipulate the letters or playing cards with the mouse (see Figure
4.1). Once the objects are in sorted order, the animation automatically advances to the
next scene.
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/Introduction/index.html
4-3
5 54
5 4
Cell A temp Cell B
Continue
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/BasicOperations/index.html
4-4
Simple Sort Algorithm Now we compare our unsorted cards
1. Get a hand of unsorted cards again. 7 is less than 8, but 5 is less than 7.
2. Repeat steps 3 through 5 until the unsorted hand is empty
Now 5 is our smallest card. 4 is less than
5, so 4 is the smallest. 4 is less than 6,
3. Compare unsorted cards
which makes 4 our smallest unsorted card,
4. Select the smallest unsorted card so we move it to the sorted hand.
5. Move this card to the sorted hand
6. Stop
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/SimpleCardSort/index.html
4-5
Answer” button to watch the applet sort the cards in step-by-step fashion. Since seven
unique numbers are used for the quiz, each sort has over 5,000 possible permutations.
Link: http://courses.cs.vt.edu/csonline/Algorithms/Questions/SortQuiz/SortQuizSelection.html
4-6
# of memory
Algorithm
cells needed
Simple Sort 14
Insertion Sort 7
Selection Sort 8
Check Answers
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/SpaceEfficiency/index.html
4-7
1 2 4 3
MIN
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/WorstCaseSelectionSort/index.html
Insertion Sort
# of comparisons # of swaps
Steps
needed needed
1 3 2
2 2 1
3 1
Check Answers
Link: http://courses.cs.vt.edu/csonline/Algorithms/Lessons/WorstCaseOtherSorts/index.html
4-8
4.2 ARTIFICIAL INTELLIGENCE
The Artificial Intelligence Module consists of 8 lessons that introduce the topic of
artificial intelligence (AI) in computers by surveying several of the major application
domains of AI. These application domains include language processing, visual
processing, game playing, expert systems, and neural networks. The learning objectives
for the module are as follows:
• Understand current applications of AI,
• Recognize the limitations of AI, and
• Compare the human mind to computer intelligence.
Table 4.2 lists each of the lessons in this module and briefly describes the content of each
lesson. The right column of the table indicates any interactive components that are
embedded in the lesson.
4-9
4.2.1 Humans Versus Computers Animation
This animation compares the human mind against computer intelligence to
illustrate the strengths and weaknesses of each. The storage capacity, connection
complexity, and data transfer speed of brains and computers are contrasted, and the
animation ends with the observation that “brains still have an edge over computers.”
While the animation is entertaining, it also teaches students to recognize the types of
tasks that are well suited for the human mind and those that are well suited for a
computer. Students control the pace of the animation using the “Replay” and “Continue”
buttons at the bottom of the animation (see Figure 4.8).
Score
Brain Computer
Storage
Capacity 1 0
Connection
Complexity
Data Transfer
Speed
Total
50 1 replay continue
Link: http://courses.cs.vt.edu/csonline/AI/Lessons/HversusC/index.html
4-10
Figure 4.9 Checkers Applet
Link: http://courses.cs.vt.edu/csonline/AI/Lessons/HversusC/index.html
4-11
Figure 4.10 Eliza Applet
Link: http://courses.cs.vt.edu/csonline/AI/Lessons/HversusC/index.html
4-12
Figure 4.11 Eight-Puzzle Applet
Link: http://courses.cs.vt.edu/csonline/AI/Lessons/GamePlaying/index.html
4-13
Figure 4.12 JRec Applet
Link: http://courses.cs.vt.edu/csonline/AI/Lessons/VisualProcessing/index.html
4-14
Table 4.3 Lessons in the Data Structures Module
4-15
8Item
24679
200 201 202 203 204 205
OurList
Operation: AddListItem(OurList, 8) Reset
Suppose we need to add a number to the middle of the list. To do this, we must
first shift the numbers higher than our new number to the right. Then we add the
new number in the correct position. Perform this operation by adding the new
number in the item box to the list.
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/OrderedListImplementationView/index.html
24678
200 201 202 203 204 205
2
200
275
201
4
275
342
276
6
342
103
343
7 230
103 104
8 Null
230 231
When working with arrays, we discovered two problems. First, we often had to shift many
items to insert a new item in the correct position. Second, the size of our array was limited, so
our list was also limited. The linked list provides a solution to these problems. Let's see how
it works.
replay continue
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/OrderedListImplementationView/index.html
4-16
4.3.3 Abstract Stack Animation
This animation simulates the behavior of an abstract stack data structure.
Students can “push” various shapes onto the stack by dragging them with the mouse to
the top of the stack, and they can “pop” the top shape off the stack by dragging it outside
the stack (see Figure 4.15). The animation instructions also ask students to try
performing an illegal operation such as removing an item that is not on the top of the
stack. Since this action is not allowed, the animation helps students gain a feel for the
behavior of stacks.
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/StacksAbstractView/index.html
4-17
Head Tail
Queue
Now try adding an item to the queue by dragging it into the middle of
the queue or the head of the queue. Notice that these operations are
not allowed. Items can only be added to the tail of the queue.
continue
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/QueuesAbstractView/index.html
4-18
Figure 4.17 Queue Applet
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/QueuesImplementationView/applet.html
4-19
Column
Major
Order
Logical Representation
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/2DArrays/index.html
Adjacency Matrix
A B CD E F
C E
A
B 1 1
C 1 1 1
D D 1 1
E 1 1 1
F 1 1 1 1
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/Graphs/index.html
4-20
4.3.8 Bag Abstract Data Type Applet
This applet simulates the behavior of a bag data structure using an analogy to a
grocery bag and fruit. Using the buttons on the right side of the applet (see Figure 4.20),
students can perform the following operations on the bag:
• Put an item into the bag,
• Get an item from the bag,
• Ask if the bag is empty,
• Ask if the bag is full,
• Grab a random item from the bag,
• Check if the bag has a certain item,
• Determine the total number of items in the bag, and
• Empty the bag.
The purpose of the applet is to demonstrate the concept of an abstract data type.
Therefore, the applet focuses on the behavior of a bag and not its implementation. The
review questions for this lesson direct students to manipulate the bag using the various
operations and then to describe the effect the operations on the bag.
4-21
Figure 4.20 Bag Applet
Link: http://courses.cs.vt.edu/csonline/DataStructures/Lessons/AbstractDataTypes/index.html
4-22
Table 4.4 lists each of the lessons in this module and briefly describes the content of each
lesson. The right column of the table indicates any interactive components that are
embedded in the lesson.
The Central Processing Unit – discussion of the CPU and • Sum Program (F)
machine language with two simple programs • Count Program (F)
Summary – review of the main ideas in Machine
Architecture
† (F) – Flash animation (J) – Java applet
Link: http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/DataStorage/index.html
4-23
4.4.2 Simcir Applet
This applet allows students to build and test simple circuits from a variety of
gates. The applet also allows students to experiment with the behavior of various gates as
they are introduced in the lesson. The screen shot below (see Figure 4.22) shows a 4-bit
decoder in Simcir built from NOT gates and AND gates. Students can interact with the
decoder by using the mouse to change the states of the toggle switches. Students can also
build their own circuits by dragging gates and other components from the tool pallet on
the left and connecting them with mouse clicks. Simcir was reused by permission [Arase
1999] and included in the Machine Architecture module without any modifications.
Link: http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/Gates/index.html
4-24
appropriate line of the truth table is highlighted, and a single corresponding number
travels down the output line of the gate. Both buttons act as toggle switches that
momentarily change the value of their output from 1 to 0.
Remember 1
1
In Out
Output
0 0 1
0 1 1 1
1 0 1
1 1 0
1
In Out
0 0 1
Remember 0
0 1 1
1 1
1
0
1
1
0
stop
Link: http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/Circuits/index.html
4-25
IR PC RAM
ADD 14 6 0 LOAD #2
1 STORE 13
+1 LOAD #5
2
3 STORE 14
4 LOAD 13
5 ADD 14
Decoder MUX 6 STORE 15
7 HALT
8
ALU 9
2 5 10
+ 11
12
13 2
AC Assembly Code 14 5
7 Machine Code 15
Link: http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/CPU/index.html
4-26
appear at the bottom of the animation (see Figure 4.25). Each animation also includes
narration that explains the steps of the problem as the animation progresses.
replay continue
Figure 4.25 Animation controls
4.5.1 Conversion
Three animations in this module deal with the topic of converting numbers
between the binary and decimal number systems. Each of these animations illustrates a
particular technique for performing the conversion.
4
1
+ .25
29.25
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/BinaryToDecimalConversion/index.html
4-27
Table 4.5 Lessons in the Number Systems Module
Lessons Interactive Components †
Introduction to Binary Numbers – discussion of the
relevance of binary numbers to digital computers
Understanding Number Systems – illustration of the decimal
number system
Binary to Decimal Conversion – illustration of converting
• Binary to Decimal Conversion (F)
binary numbers to decimal
Decimal to Binary Conversion – illustration of converting
• Decimal to Binary Conversion (F)
decimal numbers to binary
Converting Fractions – illustration of converting binary
• Conversion with Fractions (F)
fractions to decimal
Binary Arithmetic – comparison of binary and decimal
arithmetic
Binary Addition – discussion of four basic rules of binary
addition
Adding Two Binary Numbers – illustration of binary
• Adding Two Binary Numbers (F)
addition
Adding Multiple Binary Numbers – illustration of adding a
• Adding Multiple Binary Numbers (F)
column of binary numbers
Adding Binary Fractions – illustration of adding binary
numbers with fractions
Binary Subtraction – discussion and illustration of the four
• Binary Subtraction (F)
basic rules of binary subtraction
Binary Multiplication – discussion and illustration of binary
• Binary Multiplication (F)
multiplication
Binary Division – discussion and illustration of binary
• Binary Division (F)
division
Signed numbers – discussion of signed magnitude
representation for binary numbers
4-28
4.5.1.2 Decimal to Binary Conversion Animation
The purpose of this animation is to explain how to convert a decimal number to
its binary equivalent. The animation solves the problem of converting 1110 to 10112 by
the method of repeated division. After each division by two, the remainder is moved to
the bottom of the animation to form the final answer. The screen shot below (see Figure
4.27) shows the first division in the conversion.
First, we divide 11 by
11 ÷ 2 = 5 R 1 2 to find the least
significant digit.
Since 1 is our
remainder, the least
significant digit in
1 our answer is "1".
Answer: _ _ _ _
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/DecimalToBinaryConversion/index.html
Link: http://courses.cs.vt.edu/csonline/NumberSystems/
Lessons/DecimalToBinaryConversionWithFractions/index.html
4-29
4.5.2 Binary Arithmetic
Five animations in this module deal with the topic of binary arithmetic. These
cover the four main arithmetic operations: addition, subtraction, multiplication, and
division. Since the concept of carries is often confusing to students learning binary
addition, one animation is devoted to illustrating how this is done when adding multiple
binary numbers.
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/AddingTwoBinaryNumbers/index.html
4-30
1 Adding the fourth
column generates
1 1 two carries. Since
1 1 1 1 there is no fifth
column, we will
0 0 1 1 1 create one with all
0 0 1 1 0 zeros, and mark the
carries above it.
0 1 1 0 1 Next we write the
0 0 1 0 1 unpaired "1" below
the fourth column.
+ 0 1 1 1 0
1 0 1
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/AddingMultipleBinaryNumbers/index.html
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/Subtraction/index.html
4-31
1 1 1 1
Now we multiply the
× 1 0 1 1 next digit. Since this
1 1 1 1 is the third
multiplication, we
1 1 1 1 0 record two zeros in the
0 0 answer. Notice that
the third digit is "0".
Since any number
multiplied by zero is
zero, we place a row
of zeros as our answer.
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/Multiplication/index.html
1 0 1 . 1
Now we bring down the
1 1 0 1 0 0 0 0 1 . 0 extra zero and compare
the remainder with our
− 1 1 0 divisor. Notice we
1 0 0 1 ignore the radix point in
our comparison. "110"
− 1 1 0 equals "110" so we write
another "1" in the
1 1 0 quotient and subtract.
− 1 1 0 This completes our
division because we have
0 no more digits in the
dividend and no
remainder.
Link: http://courses.cs.vt.edu/csonline/NumberSystems/Lessons/Division/index.html
4.5.3 Complements
Two animations in this module deal with the topic of complements. These
animations illustrate how complements are used to perform binary subtraction in
microprocessors.
4-32
progresses, the decimal values are displayed to the right side of the problem (see Figure
4.34). This allows students to see how subtraction with complements is similar to adding
negative numbers in decimal.
0 1 1 0 1 = 13
Next, we add the
+ 1 0 1 1 0 = −9 negative value we
1 0 0 0 1 1 computed to "01101".
This gives us a result
of "100011".
Link: http://courses.cs.vt.edu/csonline/NumberSystems/
Lessons/SubtractionWithOnesComplement/index.html
0 1 1 0 1 = 13
First, we need to convert
− 0 1 0 0 1 = 9 "01001" to its negative
equivalent in 2's
complement. To do this we
change all the "1"s to "0"s
1 0 1 1 0 and vice versa. Then we
add "1" to the number to
+ 0 0 0 0 1 obtain our negative
equivalent. Notice that the
1 0 1 1 1 most significant digit is
now "1" since the number is
negative.
Link: http://courses.cs.vt.edu/csonline/NumberSystems/
Lessons/SubtractionWithTwosComplement/index.html
4-33
• Understand the purpose of the operating system,
• Distinguish between a resource, a program, and a process,
• Recognize critical resources and explain the behavior of semaphores,
• Describe various memory page replacement algorithms, and
• Describe how files are stored in secondary storage
Table 4.6 lists each of the lessons in this module and briefly describes the content of each
lesson. The right column of the table indicates any interactive components that are
embedded in the lesson.
4-34
toy, or nurse) which is indicated by a blinking red light. Students must then allocate the
desired resource to the baby to appease him. Since resources are limited, students cannot
always keep the nursery quiet. The intention of this applet is to give the students some
idea of how difficult resource allocation can be when resources are limited.
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Resources/index.html
4-35
New Terminated
Current process
blocked on I/O
or an event.
interrupt
admitted exit
Ready OS
Running
scheduler dispatch
I/O or event I/O or event
completion wait
Waiting
step stop restart
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Processes/index.html
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Processes/index.html
4-36
4.6.4 Mutex Demonstration Applet
This applet demonstrates how a semaphore is used in an operating system to
prevent multiple processes from accessing a critical section simultaneously. Processes
are represented by blue disks that slowly paint themselves on the screen in a counter-
clockwise fashion. Each process has a light blue critical section that it does not enter
unless Mutex is “1” (see Figure 4.39). When any process is in its critical section, Mutex
is set to “0” and all other processes block upon reaching their critical sections. When a
process exits its critical section, Mutex is set to “1” again and the next process can
unblock and enter its critical section. Note that Mutex must initially be set to “1” or none
of the processes can enter their critical section. While the simulation is running, students
can pause or run each process and adjust the size of a process’s critical section. This
applet was reused with permission [Magee and Kramer 1999] and included without
modification in this module.
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Synchronization/index.html
4-37
with permission [Magee and Kramer 1999] and included without modification in this
module.
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Synchronization/index.html
4-38
Figure 4.41 Dining Philosophers Applet
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/Deadlock/index.html
4-39
Figure 4.42 Memory Allocation Applet
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/MemoryAllocation/index.html
4-40
Figure 4.43 Virtual Memory Simulation Applet
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/VirtualMemory/index.html
4-41
Figure 4.44 Simulation of Page Replacement Algorithms Applet
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/VirtualMemory/index.html
4-42
Figure 4.45 File System Allocation Applet
Link: http://courses.cs.vt.edu/csonline/OS/Lessons/FileManagement/index.html
4-43
Table 4.7 Lessons in the Programming Languages Module
Lessons Interactive Components †
Introduction to Programming Languages – discussion of
• Code Representations (F)
the evolution of procedural programming languages
Assignment – introduction to the assignment operation and • Variables and Assignment (F)
its syntax • Simple Assignment Machine (J)
Data Types – comparison of five primitive data types • Data Types Animation (F)
4-44
A Simple Tax Program
Plain
English
LOAD Price
Pseudo MULT TAXRATE
Code STOR SalesTax
LOAD Price
Assembly
ADD SalesTax
Code
STOR Total
Machine
Code
Click the labels on the left to view the various representations of this program.
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Introduction/index.html
. . . 19.95 0.045 . . .
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Assignment/index.html
4-45
4.7.3 Simple Assignment Machine Applet
This applet allows students to construct simple programs consisting of assignment
statements and basic mathematical operations. Students can create both variables and
constants and watch the values of the variables change in memory as each statement
executes. By working through the five accompanying exercises, students learn the
appropriate use of variables and constants, the value of using named constants, how
assignment statements are constructed, and how these statements work to modify
variables. The first exercise (see Figure 4.48) requires students to code the Simple Tax
Program that they have seen in the previous lessons.
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Questions/Assignment/applet.html
4-46
type, a pseudocode declaration for the type, and some example operations that can be
performed on the type.
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/DataTypes/index.html
Switch 1 Switch 2
ON ON
Reset
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Selection/index.html
4-47
4.7.6 Loops Demonstration Animation
This animation demonstrates how the loop construct works in procedural
programming languages. The animation traces through a program designed to compute
the average of a list of five grades. The left side of the animation displays the program in
pseudocode with a blue bar indicating the line that is currently executing (see Figure
4.51). The current value of each identifier is displayed above the blue bar. The right side
shows the variables and constants used in the program. As the animation progresses,
these values change according to the program execution on the left. Students can step
through the program or execute it entirely by using the controls at the bottom of the
animation.
Code Data
Integer STUDENTS := 5 grade
Integer count := 1
Real sum := 0 85.0 63.7 94.2 74.6 77.9
Real avgGrade := 0 1 2 3 4 5
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Loops/index.html
4-48
and traces the actual code that performs exponentiation. This trace is similar to the one
found in the Loops Demonstration animation above.
Code Data
Function Power(
x y
Parameter in Integer x,
x: 3 returned Parameter in Integer y ) 3 2
Power returns Integer
answer i
Integer answer := 1
y: 2 Integer i := 0 1 0
While (i < y)
answer := answer * x
i := i + 1
EndWhile
Call Power return answer
EndFunction
step stop
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Subprograms/index.html
Program Subprogram
Integer a := 2
Procedure Swap(
Integer b := 5
Parameter in Integer x,
Parameter in Integer y )
Integer temp := x
Call Swap(a,b)
x := y
y := temp
EndProcedure
Data
2 5 5 5 2
a b x y temp
Our second version of Swap uses pass-by-value for the parameters. When the call to
the procedure is made, the Swap parameters are given their own copy of the value
stored in the procedure call variables. Now we have multiple copies of the same
value, not the same memory location. All the assignments that take place during the
execution of Swap are invisible to the calling program since this program has no way
of accessing the new memory locations. When the Swap procedure completes, the
variables used in the procedure call still have the same value.
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Parameters/index.html
4-49
4.7.9 Selection Sort Applet
This applet allows students to step through the entire Selection Sort program and
watch the values of the program variables change in memory as it executes. The main
window of the applet displays the program code with the current line of code highlighted
(see Figure 4.54). Students can enter up to 10 numbers for the applet to sort. This is
done through a dialog box that appears when the program trace reaches the line of code
for input. During the trace, the Variables window shows the current values of all the
program variables and highlights values accessed by the current line of code. The
Numbers window represents the array of numbers to be sorted. As the sort progresses,
students can watch these numbers shift till the array reaches its final sorted order.
Link: http://courses.cs.vt.edu/csonline/ProgrammingLanguages/Lessons/Programs/index.html
4-50
Procedural Paradigm and the Object-Oriented Paradigm (OOP). The learning objectives
for the module are as follows:
• Recognize the challenge of writing correct software,
• Understand and reproduce the phases of the software life cycle,
• Compare the procedural paradigm with the OOP, and
• Understand the principles of the OOP.
Table 4.8 lists each of the lessons in this module and briefly describes the content of each
lesson. The right column of the table indicates any interactive components that are
embedded in the lesson.
4-51
select from four possible answers using the mouse and submit their answer by clicking
the button at the bottom of the applet (see Figure 4.55).
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/Introduction/index.html
4-52
start
Design
b or c
Specification
prompt
d or e
Software
Modules
Programming V&V
1 6
Button
34 52
4 32 95 0 17
SQL script
database
Main Points:
1. To manage complexity, software is decomposed into
2. Proper management is critical to coordinate development of modules.
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/index.html
Communicated
Requirements
V&V
Requirements V&V
Specification
V&V
Programming Executable
Product Software
Modules
Product
output
Changed
Requirements Sorry, you have 15 misplaced label(s). Check Answers
Next Label
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/Waterfall/index.html
4-53
4.8.4 The Spiral Model Animation
This animation explains the underlying concepts of the Spiral Model life cycle.
The animation begins by describing the four steps that make up a single loop of the
spiral. With each consecutive loop, these steps are repeated resulting in new prototypes
and repeated project risk assessment. The screen shot below (see Figure 4.58)shows
several prototypes that result from development loops in the spiral. The last scene of the
animation shows how the final steps of the Spiral Model correspond to the final three
processes of the Waterfall Model: programming, integration, and delivery.
Cumulative Cost
Progress
through File Edit
Software
Image Help
steps P
Evaluate alternatives,
Determine identify, resolve risks
objectives,
alternatives,
constraints
Operational
Prototype3 prototype
Prototype2
Commitment Prototype1
Review
partition
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/Spiral/index.html
4-54
be viewed as abstract data types that support encapsulation and provide a public interface
for performing operations.
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/OOP/index.html
Figure
location
line color
length area
location fill color
line color location
Line Ellipse Polygon
line color
length eccentricity number of sides
location area area
line color fill color fill color
Circle location location
eccentricity line color line color
area
fill color
location
line color
radius
Link: http://courses.cs.vt.edu/csonline/SE/Lessons/Classes/index.html
4-55
5 CONCLUSIONS AND RECOMMENDATIONS
FOR FUTURE WORK
5.1 CONCLUSIONS
In conclusion, we would like to say a word about the goal of this project to
improve the effectiveness of learning. Although the project did not include a formal
assessment of the online modules, we believe the material does improve the effectiveness
of learning for the following three reasons: (1) accessibility of materials, (2) level of
student engagement, (3) informal student responses.
The first reason we believe the modules improve the effectiveness of learning is
their accessibility. Since the eight learning modules are always accessible to students via
the WWW, they can review information and learn at their own pace outside of class.
Consider the problem of teaching binary arithmetic. During a lecture session, the
professor has a limited amount of time in which to explain and illustrate the rules of
binary arithmetic. Our experience shows that many students will not understand the
example problems that the professor works in class. Often these students will ask for the
problem to be repeated, a request that may not be practical given the time constrains. The
module on binary arithmetic provides a practical solution to this problem. This module
includes five animations illustrating the rules of binary arithmetic, and each animation is
divided into logical sections that the student can repeat. Thus, what was unreasonable in
class is now very reasonable through animation technology.
The second reason we believe the modules improve the effectiveness of learning
is the opportunity for greater student engagement during study. Many of the lessons in
the modules present the material with interactive components that are more engaging than
traditional textbook reading. In the introduction, we cited the example of the ELIZA
applet and its contribution to understanding artificial intelligence in computers. In
addition to this, the AI module also includes an eight-puzzle applet, a checkers applet,
and a handwriting recognition applet. As students interact with these applets, they
develop their own intuition about the meaning of artificial intelligence. They also
encounter unanswered questions that can become the motivation for further inquiry. For
5-1
example, Figure 5.1 below shows the results of three attempts to recognize the numbers
“6” and “1” using the handwriting recognition applet. Clearly, the results of the second
attempt are wrong, but the logical question that follows is, “What exactly went wrong?”
A comparison of the second and third attempts shows that the recognition algorithm is
very sensitive to small bends. Thus, the tiny bends at the top of the two “1” digits make a
significant difference in the outcome. This discovery leads to many more interesting
questions such as “Why is the algorithm so sensitive to bends?” and “How can the
algorithm be improved to avoid this problem?”. This type of inquiry is difficult to
motivate from a textbook or lecture since students cannot immediately test their
hypotheses. The interactive components such as the handwriting recognition applet
encourage students to explore and discover on their own, and we feel this contribution
improves the effectiveness of learning.
5-2
Another important aspect of student engagement is the use of multiple senses in
the learning process. In summarizing their review of video media, Wetzel et al. [1994]
conclude,
The studies reviewed generally support the idea of a benefit to simultaneous
verbal and visual information when they are carefully matched. Combining visual
and verbal information in video presentations generally leads to either equal or
better learning compared to when these sources are given alone.
Similarly, Rieber [2000] cites a study [Mayer and Anderson 1991] in which students
were given the same animation to watch with and without narration. He summarizes the
results by saying,
Students given the animation along with the narration significantly outperformed
students who either in isolation watched the animation or heard the narration or
who heard the narration right before seeing the animation on the problem-solving
tasks. Even more important, the animation without the verbal description was
completely ineffective, as students in this treatment compared equally with
students provided no instruction at all.
These results explain our decision to include narration in many of the animations. The
use of narration seems particularly important, however, in the animations on binary
arithmetic. By explaining each arithmetic technique with narration, students are free to
focus their eyes on the animated illustration rather than explanatory text.
The third reason we believe the modules improve the effectiveness of learning is
the informal responses we have received from students using the modules. Fifty four
undergraduate students enrolled in Intermediate Software Design and Engineering were
asked for their opinion of the SE module which was accessible from the class web site.
The students unanimously agreed that the lessons and animations explaining the
Waterfall Model and the Spiral Model were more helpful than reading the textbook alone.
5-3
existing modules can also be enhanced through the addition of new lessons and
interactive components. Second, many of the interactive components can themselves be
enhanced. One example is the Memory Allocation Applet in the Operating Systems
module. One logical extension to this applet would be the addition of a pause button to
the interface so that students can pause the simulation and compare the current state of
the three memory representations. Third, the review questions can be expanded to
include “concept extension” questions that require the student to think beyond the scope
of the material presented. Consider the question of comparators for sorting. In the
Algorithms module, a numerical comparator is assumed for all the sorting examples.
However, what would need to change in the sorting algorithms if the goal was to sort
names rather than numbers? This questions embodies the principle of concept extension.
The question directs students to apply the knowledge they have learned to a similar yet
different problem.
Some revision work is also needed to maintain the consistency of the lessons and
to improve the clarity of the lessons. The first type of revision is simply a necessary evil
for any web-based entity. Over time the links within the lessons will break and need
updating. In addition, the facts about the current state of computing will become obsolete
and need revision. The second type of revision is more subtle and difficult. This work is
not simply the correction of errors but rather the arduous task of discerning how much
detail to abstract away when explaining new concepts to students. For example, the
lesson on identifiers in the Programming Languages module concludes with the
following statement:
One last note about identifiers: In most programming languages, identifiers are
required to conform to a certain format. For example, the identifiers in this lesson
all began with letters and were composed only of letters and numbers. None of the
identifiers included spaces, and constants were written in UPPERCASE letters.
This is a typical format for identifiers, and we will use this format in the rest of
the lessons.
While this word on the formatting of identifiers is certainly true, it is hardly exhaustive.
The question then becomes, “How much detail should the lesson present?” Where is the
balance between completeness and conciseness, accuracy and abstraction? Clearly, this
type of revision work requires a great deal of careful thought.
5-4
Finally, the opportunity exists for a formal assessment of the learning modules to
determine the various ways that student learning was influenced. Such an assessment
could include more detailed student critiques of the material specifying which lessons and
interactive components were particularly helpful and which were not helpful. This
information would be a valuable guide to help with the revision of the existing modules
and the extension of the work with future modules.
5-5
BIBLIOGRAPHY
Bib-1
JERIC (2000), “ACM Journal on Educational Resources in Computing,”
http://fox.cs.vt.edu/JERIC/index.html
Magee, J. and J. Kramer, (1999), “Concurrency: State Models & Java Programs,”
http://www-dse.doc.ic.ac.uk/~jnm/book/index.html
Pilgrim, C., Y. Leung and D. Grant (1997), “Cost Effective Multimedia Courseware
Development,” In Proceedings of the Conference on Integrating Technology into
Computer Science Education (ITiCSE '97), Association for Computing
Machinery, pp. 45-50.
Bib-2
Schank, R. (1994), “Active Learning through Multimedia,” IEEE Multimedia 1, 1, 69-78.
Wetzel, C., P. Radtke and H. Stern (1994), Instructional Effectiveness of Video Media,
Lawrence Erlbaum Associates, Hillsdale, NJ.
Bib-3
VITA
William Shadwell Gilley, the son of William F. and Pamela M. Gilley, was born
on August 29, 1976, in Lynchburg, Virginia. He graduated from Timberlake Christian
High School in May 1994. He received an Academic Merit Scholarship to attend Central
Virginia Community College and graduated from this institution in May 1996, with his
A.A. degree in Business Administration. Three years later he graduated from Virginia
Tech with his B.S. degree in Computer Science and minors in Mathematics and
Professional Writing and Language. This thesis completes his M.S. degree in Computer
Science from Virginia Tech.
Vita-1