Christian Queinnec
Université Paris 6 --- Pierre et Marie Curie
LIP6, 4 place Jussieu, 75252 Paris Cedex -- France
The primary goal of the VideOC project was to conceive an
educational CDROM to teach the C programming language. The VideOC
project was funded by Université Pierre et Marie Curie
(Paris 6) during the scholar year 1998-1999 under the
active sponsorship of UPI (Unité de Pédagogie Informatique) headed
by Ms. Nicole Bernard.
The content of the resulting CDROM
is
available under the Free Documentation License
while the programs written to
fulfill this project are available under the Gnu Public
License version 2 . The
programs and their documentation are written in English while the
content of the CDROM (lectures and exercices) is in French.
Beyond that main goal were a number of secondary goals and/or
additional constraints. The most important constraint of the VideOC
project was to be able to derive, from the same set of description
files:
the entire hierarchy of files/data/programs needed to populate
the CDROM,
the data needed for the runtime of the CDROM (which uses its own
document server, QCM manager etc.),
a book of selected exercises in C,
various printed materials for students in various formats i.e.,
Postscript, PDF, dvi, html.
The CDROM must be playable on Linux and Windows and use well-spread
tools (Netscape or Explorer browsers, Java interpreters).
The first CDROM
was issued on
september 1999, the styles it uses were often prefixed by
videoc. The newest one
, dated september
2000, uses improved styles often prefixed by videoc2000. A
new CDROM (on the Scheme programming language) is in preparation that
uses new still improved styles prefixed by videoscm. These
are the ones which are currently maintained.
1 Software Architecture
The software architecture should make it possible for teachers:
to easily add their own lectures and exercises,
to select the ``teaching track'' i.e., the set of lectures and
exercises to be performed by students,
to generate other kinds of documents (metafiles, lingo, XML, etc.)
to understand the whole architecture since the code obeys to the
principles of GPL.
The software architecture should make it possible for students:
to study with the CDROM at home:
they may perform (compile/test) their exercices,
they may access the documents related to the lecture,
they may validate their home work when going back to the
University.
to study with the CDROM during the hours of lab at the
University (specific teaching tracks exist for these two hours
sessions)
alone,
in groups with some help of teachers.
2 Tools
I wrote or extended the following programs for the VideOC project:
the VideoC server
itself,
written in Java. This jar file contains the sources,
the compiled classes and the documentation. The other Java
utilities (servlets, regular expressions, Muffin and so forth
appear in the other jar files in the top directory of
the CDROM). Due to the often poor size of DOS lines, all these
jar files are gathered in a single
one.
There are a number of individual independent packages that can
be reused in other contexts:
The PS3I package
standing for the Persistent Server-Side Scheme
Interpreter and its own jar file
.
annote tool
Insert annotations into text (or LATEX) files, these
annotations will appear as popup or footnotes depending on the
final rendering of the document.
some styles
Various styles (macros and documentation) for VideOC
documents.
LiSP2TeX
extracts C or Scheme code snippets and inserts them within
LATEX files. See documentation
.
Some existing tools were modified for the VideOC project.
Sometimes these modifications made their way into the original tool.
HEVEA
an excellent LATEX to HTML translator due to Luc Maranget
from INRIA. I stopped using LaTeX2HTML in favor of HEVEA.
xscript
a script-based screen capture utility based on
Xvidcap
1.0.9 written by
Rasca who
diffused it under GPL. Choun-Tong
Lieu and I adapted Xvidcap
to our needs thus yielding to xscript.
The VideOC project also uses a number of other tools or languages:
C (to hack Xvidcap and for the content of the CDROM of course)