The Anatomy of a WWW-Course in Data Structures

Matti Jakobsson
University of Vaasa
P. O. Box 700
65101- Vaasa
Finland
Tel: +358-61-3248441
e-mail:mj@uwasa.fi
internet: //www.uwasa.fi/~mj

Abstract

The course in data structures at the university of Vaasa was organised during the fall 1995 using the World Wide Web in the presentation of course material. This paper analyses the structure of the course and provides some guidelines and suggestions for development of such courses. The WWW was found useful from a number of view points. In our course the course was mostly a repository of course material. The communication and individual learning possibilities were not fully utilised. The course (in Finnish) can be read at http://www.uwasa.fi/~mj/trhome.html.

1. Introduction

This paper is about a course in data structures at the University of Vaasa. The paper describes the structure of the course and demonstrates how internet was used during the course. We analyse here different ways of using WWW (World Wide Web) and HTML-based material in teaching. The course material can be structured in different ways emphasising different dimensions of computer mediated teaching and learning.

We look at the course structure from four angles: (1) The course can be structured as a series of sessions as an itinerary. The structure of the material guides the progress of the course. (2) The course material can on the other hand be structured as an encyclopaedia. The structure and connection of the topics is of major concern - the teacher and students must give the structure for the course. (3) The WWW-material can also act as workbook for the student. Here the main concern is in individual work of the student. The material can be structured as learning events, tests, experimental environments for the individual or for the group. (4) The course can also act as a communication channel for the participants of the course. The students can exchange experiences, ask for help or more information get feedback from the teacher or other students and contact other students maybe even on other similar courses.

The structure of multimedia presentations can be looked from the general structural viewpoint. General structures for multimedia presentations are 1)Linear 2) Hierarchical 3) Graph-like [1].

In this paper we first introduce the content and structure of the course and in subsequent chapters analyse the course from the above four viewpoints. Finally we draw some conclusions and suggest an improved structure for the material.

2. The course

The data structures course at the University of Vaasa is the second course in programming. The students know already the basics of C-programming. This course introduces object oriented programming with examples found in data structures. The students learn also the new programming language C++ with connection to their earlier knowledge in C. The main purpose of this course is not to teach C++, but to use it as a tool in learning data structures and how to use objects and object oriented programming in solving problems of efficient algorithms and information presentation as data structures.

The C++ programming language is introduced as a series of examples. Each example demonstrates some new programming concepts. The concepts are explained shortly - in this phase the students should become "C++-literate" based on their previous knowledge in C. Figure 1 gives an example of a C++-page of the course. The keywords in the source text serve as links (bold and underlined) to the explanations. The new topics of this example are also collected as a separate list on the page. As the links are followed, the hot words on the list are also automatically marked as read.


New concepts

    - Function
    - Prototype of a function 
    - Function call
    - Parameter
    - Return from a function 
    - do - while repetition

-----------------------------------------------------------

#include ...

void read(int tab[], int n);   // function prototype read
int sum(int tab[], int n);   // function prototype sum

main()   // the main program uses functions read and sum
{
        const maxkoko=100;
        int luku;
        cout << "count the sum of integers\n";
        do { 
            cout << "how many integers (less than 100)?:\n";
            cin >> luku;
        } while (luku > maxkoko);

        int taulu[maxkoko];
        
        read(taulu, luku);   // use the function read
        int tulos;

        tulos = sum(taulu, luku);   // use the function sum
        cout << "the sum is " << tulos ;
}

..........

Figure 1. A sample C++-page

A basic problem in any data structures course is how to separate the principles of data structures and algorithms and the implementation as structures in some programming language. The text book used at the course did a good job in making this distinction. The book used on the course was Weiss: Data structures and algorithm analysis using C++ [2]. The author has published versions of the book using Pascal C and C++. This presentation made it suitable as a starting point. The author gave kindly the permission to include links to the C++ code examples on the course pages. The structure of the course followed loosely the progress of the book.

The structure of the data structures pages was generally hierarchical - from the general to the detailed presentation and implementation of the structures and finally implementation as a C++ program..

The structure of the pages is rather straightforward. The pages are organised hierarchically without links between pages on the same level. This was necessary because most of the material was written as the course progressed. We hope to be able to include some links later.

Simple gif-graphics was used to demonstrate some of the structures.

The course pages contained also the weekly exercises. After the exercises some of the students solutions were linked on the pages with comment from the teacher.

A miscellaneous page giving links to other data structured and programming related sites way created and new items were included as the course progressed.

The pages were not meant to be self-contained or replacement for the book. The material was used during lectures and was projected on the screen using a video projector. From the teachers point of view the course material replaced the overhead projector foils and blackboard. The students could read the material any time and also contact the teacher if they experienced some difficulties.

In the following chapters we analyse the course from the four viewpoint given in the introduction and see hoe the course served these purposes.

3. Course as an itinerary

This material was organised as lecture sessions guiding the progress of the student in a more or less linear fashion. The progress of data structures material is generally structured this way. There are of course alternative ways to present the material. Some books give more emphasis on the programming language and present the programming material first others start from the general structures and advance then to the implementation. In a hypertext presentation the student could in principle select where to start. I think, however, that the presentation must be based on selecting the viewpoint - bottom up or top down.

This course is not a complete itinerary, because the path of progression is not given explicitly, there are no alternative paths nor returns to previous material. The structure is hierarchical making it necessary to go back to the general before advancing to the following topic. The navigation buttons of the browser was the more frequently used tool for navigation in this course.

4. Course as an encyclopaedia

WWW is a suitable media for encyclopaedic teaching material. The material can be collected from various sources. Links can be connected to any locations. Doing this you also loose the control of the presentation of the course. Not all the material is presented using the same concepts or same mode or presentation. In exchange you have a possibility to give various viewpoints at the topics.

In a programming oriented course the student can have access to different solutions of the same problem. The teacher has to be cautious not to confuse the student with overwhelming material. In learning new things it is usually fruitful to start from one solution and the a expand it with a set of closely connected material.

This course structure is encyclopaedic in the way that it is structured mainly using the major data structures. Each structure is explained in its own chapter and the structure of the chapters is more or less the same.

We have plans to emphasise this structure in future versions.

The encyclopaedic structure is obviously problematic for a student studying independently. A teacher is needed to give a structure for the course. Otherwise the student may get lost in the details and alternative solutions for some problems.

5. Course as a workbook

The course material can act as source of assignments and exercises. The course can also act as the media for the student to send the solutions to the teacher and also a collection of students solutions (commented by the teacher). This could be a very important source of learning material. Learning how others think and also to see right and wrong solutions can guide to a correct understanding of problems and different approaches to solve the problems.

In this course we have not had any automated assignments nor systems to send the solutions to teachers. Only simple e-mail and news groups were used.

6. Course as communication media

A news group or a mailing list may serve as communication channel for the students and from students to the teacher. In the course the student were encouraged to ask for assistance at the news group. Only few did so. The explanation may be the new media of the public presentation of problems.

7. Conclusions

The WWW-course in data structures was a fruitful experiment in structuring the learning material in small scale. The goal was not to replace the lectures. We hoped to give new options for the student to reach the material and also to utilise modern audio visual equipment. The pages projected on the wall did not replace the blackboard but made it possible to show more details of the programming material.

The possibility to enlarge the presentation (fonts on the browser) when needed was a very nice property, because the classes were given in rooms of different sizes with varying illumination. It was also very easy to produce handouts from the same material only with the change in the font size. It was necessary to hand out most of the pages in paper format. Otherwise it was difficult for the students to follow the lectures.

The HTML - standard was a relatively easy way to produce the material - however better structured editors are needed.

Based on the experiment from the first round we feel that the course material should be developed towards an encyclopaedic structure.

The sketch for the course structure could be as shown in figure 2..


For each structure (list, table, tree, graph,..)
 - illustrative examples
 - basic structure
 - implementation alternatives
 - for each alternative
    - alternative program structures
    - links to implementation in different languages
 - efficiency 
 - practical evaluation and suggestions for application

Figure 2. Suggestion for the hierarchical structure of course material

References