30-07-2012, 03:44 PM
New Technologies in Computer Science Education
New Technologies in Computer Science Education.pdf (Size: 230.1 KB / Downloads: 88)
Introduction
Learning and teaching are suffering drastic changes thanks to technology advances in the education field. This is
especially true when talking about computer science. These advances are favoring the emergence of new styles
of learning and teaching [Rei95]. This chapter describes such advances and their impact on education,
particularly computer science, and it also foretells how computer science education will evolve, describing a day
in a 2020 University.
We have identified the following issues related to teaching and learning: lecture (presentation and note taking),
tutoring, courseware, laboratories, grading, search for bibliographical and other pedagogical material resources.
However, the chapter is structured around new technologies, as sometimes a technology has applications in more
than one area. We start by describing the applications of the technology and then the technical aspects of the
technology itself. These are the new technologies we describe:
· Multimedia-conferencing and computer-supported cooperative work.
· WWW and Internet.
· Automatic grading and plagiarism detection.
· Ubiquitous computing.
· Algorithm animators.
· Electronic books.
· Digital libraries.
Then a day in a 2020 University is described and finally some conclusions are presented.
Multimedia-conferencing
Asynchronous communication media (e-mail, news groups, ftp, etc.) has been widely used in the academic
community. In the last years, with the advent of faster networks new synchronous communication media have
appeared. They are usually referred to as multimedia-conferencing systems.
Multimedia-conferencing supports meetings among people in different locations. The simplest systems only
allow unidirectional communication from a source to multiple people. The most advanced ones allow multi-party
conferencing, so that each participant can participate both passively (by simply watching and hearing) and
actively (by speaking). Technologies discussed in this section are part of a wider area: computer-mediated
communication [Rap91] that deals with the interaction between people by means of computers.
Multimedia-conferencing has many applications, although the most important one is tele-teaching or distributed
electronic classrooms. Lectures can be broadcasted via networks (ISDN or Internet), using a multimediaconference
system. For instance, a course can be shared by two or more centers [NEELB94], that is, students can
be located at different centers, and the lecturer can be at any of the centers. Some advantages of multimedia
conferencing are:
2
· It provides support for distant education (via distributed classrooms), so education can reach remote places
[Sal95], providing a new alternative for open universities.
· Courses can be shared among centers [Ped], making possible international/inter-center joint teleclasses
[Aok95].
· It can make easier multidisciplinary curricula.
· It provides new possibilities for students with disabilities as they can save displacements, and they can
advance at their own pace.
· Lectures can be recorded, what allows students repeating some parts of the lecture, or attending it
asynchronously (although in this case without the possibility of interaction).
· Lectures can be enriched with additional annotations (this will be explained further in section 5).
· Another important application is tele-tutoring. This technology enables the possibility of face to face
interaction between a lecturer and a remote student.
There are currently two families of standards: ITU (International Telecommunication Union) and MBONE
[Savetz]. ITU has developed its H.3xx and T.12x recommendations to support multimedia conferencing, both for
circuit switched networks (H.320, H.324) and for packed switched networks (H.323). MBONE
videoconferencing tools [Eri94] are based on IETF (Internet Engineering Task Force) standards and widely used
in the academic community. These tools have been developed in part within the MICE ESPRIT project [Sas95,
Mice] (Multimedia Integrated Conferencing for Europe) and the MERCI project of the Telematics Applications
Program [Hug97, Merci] (Multimedia European Research Conferencing Integration). One of the goals of the
MERCI project is to allow interoperability between both standards.
Multimedia-conference systems provide a set of tools to support real-time interaction. The most common tools
are real-time video, real-time audio and shared white-boards. The first two allow the transmission of video.
White-boards allow the presentation of electronic material to all participants, any of the participants can
contribute, and his contribution is seen by all participants.
Mbone tools are freeware (they can be get at [Merci]) what make them especially attractive for educational
purposes. Next, they are briefly described:
· sdr. A tool for announcing a scheduling multimedia conferences on the Mbone. Using this tool, users can
see what conferences are available as well as to join them. They can also use it to announce conferences.
· Vat and Vic. They are real-time multi-party audio and video conferencing tools. It usually provides audio
for a full videoconference.
· Rat. It is a robust audio tool that it is designed to cope with packet loss and disordered packets.
· Wb. It provides a shared whiteboard on which participants may write, draw and type making all
contributions visible to all participants. It can also import PostScript pages.
· Nt. It is a cooperative editor, where people can edit a document simultaneously.
Lectures can be broadcasted and recorded by means of video and audio conferencing tools, whilst their multiparty
versions support multi-center courses. One of the main problems with conferencing systems is their realtime
requirements. Video is not very problematic as one frame per second can be enough for most occasions and
small delays are not very important. On the other hand audio is more fragile, as it can loose very easily its
coherence (due to late, lost or disordered packets). There are currently robust audio tools as rat, but in the future
with the advent of faster networks, and ATM networks that guarantee bandwidth the situation will improve.
The integration of electronic whiteboards (like wb) in conferencing systems supports the transmission of lecture
material (slides, animations, etc.), but also the lecturer annotations on it. In multi-center courses the different
participants can make annotations of the presented material being these annotations broadcasted to all, thus
supporting discussions between remote participants.
Nowadays, there are conferencing environments, but there are two different standards, and most applications are
not interoperable. In the future, most of these tools will be interoperable, so each participant will be able to
participate with the platform and conferencing environment of his/her choice. White-boards will allow to
transmit the screen of any application, without forcing to save snapshots in a particular format, so the lecturer
will not have to spend any effort in exporting its material to a particular format.
It is possible that in a not very far future, that conferencing systems will remove the frontier between remote and
non-remote lectures, as remote participants will be virtually in the classroom with the same possibilities as a
non-virtual student. Students will be able to enroll in international courses, without moving to the country or city
of the university. Although, there are already completely distant universities, traditional universities will surely
offer the possibility of distant education.
Automatic Grading and Plagiarism Detection
Assignments grading represent a substantial share of the load of many lecturers. There have been many attempts
to diminish this effort while keeping a good quality grading. The automation of project grading involves four
processes: project submission, project grading, plagiarism detection and administrative work. Today,
programming projects are submitted electronically at many universities. In some places the use of the network
only avoids to handle a lot of paper and diskettes. But in other places it is associated to systems that
automatically grade the assignments, store the grades in a database and inform both the instructor and students
about the results. Some of these systems go further and they detect plagiarism. Plagiarism detection is always
interesting, but with automatic grading it becomes mandatory, as the instructor will have little or no contact with
projects.
Automatic grading has different applications, the most obvious one is project grading, but it can also be used for
assessment in electronic books or to evaluate student progress during lectures. This latter application is not yet
used but we think it will be very important in the future. The lecturer will propose exercises during the lecture,
students will solve them and exercises will be graded on the fly. A report will be submitted by the grading
system to each student, with errors found in their exercises. The lecturer will receive a report with statistics about
the exercises, most frequent errors, etc. Thus the lecturer will be able to know which topics have been
understood, general misunderstandings, and how to reorient the lecture depending on the audience. In a near
future, nobody could think about grading without the assistance of these systems.
Without lost of generality we will center on programming projects in the next sections. All the ideas presented
here can be applied to other subjects.
Project Submission
Project submission can take different forms: diskette, e-mail, web forms and ftp. Diskette submissions are very
rudimentary. The approaches using the network will be the only used, probably in the form of e-mail
attachments. Web forms can help the e-mail management as the student can be requested to fill up a web form
that, in response, will generate a key that will be used to identify the e-mail project submission. Alternative
approaches (especially interesting for big projects) are those based on ftp. In this case the student just sends an email
with its username and password (this is not necessary when the grading system runs on the same system
where projects are developed and it has permissions to access the student accounts). Then the grading system
accesses the student account by means of ftp to copy the project.
Project Grading
Automatic grading systems can be based on static and dynamic analysis. Static analysis is concerned with those
aspects that do not require running the program, mainly style of the program and complexity measures.
The analysis of the style of the program guarantees that the student acquires good coding habits. If the style is
analyzed, students will receive some feedback about it, so their style can be improved. Style checkers must find
out the indentation style used (if any), its adequacy and its coherence along the program: indents must be always
of the same length and statements must follow the same pattern of indentation. They must check that blank lines
are used where needed, for instance to separate declarative regions, subprogram declarations, etc. Some standard
comments can be enforced as well; for instance, in Pascal “end” of subprograms can be completed with a
comment with the name of the subprogram, or each parameter can have an accompanying comment telling
whether it is “in”, “out” or “in/out”. The GNU Ada-95 compiler, Gnat, provides an option that enforces a
coherent indentation style. Other elements that must be checked, probably by the compiler, are unused variables,
the use of global variables (there are pedagogical reason to forbid them in the first courses), functions with side
effects, etc.
Complexity measures such as depth of loops and conditionals, number of conditionals, can pinpoint locations of
the program with high complexity, that could be decomposed further. [BBFH95] count different kinds of
statements, reserved words, number of operators, depth of conditionals... all these values are compared with the
developer’s solution in order to estimate the complexity of the student’s solution. Other tools are based on
metrics like McCabe’s metric [McC76].
Dynamic analysis requires running the program to observe its behavior. Some properties of the program can be
measured [JU97]:
· The correctness of the program. It ensures that the program generates the specified output for different
inputs. Programs are run against test data; to check their correctness, software tools can be used. In
[Jac91] it is proposed to construct a compiler using Lex and Yacc to compare the output generated with
the one expected.
· The efficiency of the program. This is achieved by measuring CPU time with different input sizes or
examining the number of times each line of the program is executed.
· Test data coverage. Checking the adequacy of the test data used by each student. Students must learn to
test their programs. This approach provides a way to see how good student test data are.
There several ways to estimate project correctness:
· The instructor writes a set of inputs and their corresponding outputs.
· The instructor writes a version of the programming project.
· When the programming project is a library or set of libraries, the instructor writes a program that
imports and tests student libraries. In this program input parameter are passed to student operations and
their results are compared with the expected output.
In the first two approaches it is necessary to write a program that compares student project outputs with the
outputs of the “golden” version. This program can be an ad hoc one or a general one that can be configured to a
particular project. The user interface must be specified to be able to correct automatically the projects, so all the
projects read input data and write output in the same order and with the same format. In contrast, in the third
approach what is specified is the library interface.
Instructors establish the weights and intervals of the scores for each item to be analyzed. Grades are
automatically obtained and stored in a database that keeps all the information related to each student. The student
receives automatically the grade for the assignment and also a report of the failures.
Students can use the system to check the results of their programs. Thus, they can try to improve them before the
final submission in order to obtain better grades. An inconvenient of this approach is that students could use the
system to debug their programs, so they would not learn to debug by themselves. Although discounting a
percentage of the note per submission can solve it.
Administrative Work
Administrative tasks are the ones related to storing the programming projects and their marks and generating
reports with student marks, statistics and the most frequent errors. Project grades must be stored in a database
together with exam grades. Individual reports are sent to the authors of the project and collective reports to the
instructor. The system checks for deadlines and informs both the student and the instructor if projects are
submitted after the expiration of the deadline. The system can also report on the status of a given student or
group assignment on request by the instructor.