General Description of
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.
Université Paris 6 --- Pierre et Marie Curie
LIP6, 4 place Jussieu, 75252 Paris Cedex -- France
The content of the resulting CDROM
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
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.
the entire hierarchy of files/data/programs needed to populate
- 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).
1 Software Architecture
The software architecture should make it possible for teachers:
The software architecture should make it possible for students:
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.
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
- to study with the CDROM during the hours of lab at the
University (specific teaching tracks exist for these two hours
- in groups with some help of teachers.
I wrote or extended the following programs for the VideOC project:
Some existing tools were modified for the VideOC project.
Sometimes these modifications made their way into the original tool.
the VideoC server
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
There are a number of individual independent packages that can
be reused in other contexts:
- 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
extracts C or Scheme code snippets and inserts them within
LATEX files. See documentation
The VideOC project also uses a number of other tools or languages:
an excellent LATEX to HTML translator due to Luc Maranget
from INRIA. I stopped using LaTeX2HTML in favor of HEVEA.
a script-based screen capture utility based on
1.0.9 written by
diffused it under GPL. Choun-Tong
Lieu and I adapted Xvidcap
to our needs thus yielding to xscript.
C (to hack Xvidcap and for the content of the CDROM of course)
- Caml (to hack HEVEA)
- CSS (Cascading Style Sheet)
- Emacs Lisp (for all editing work)
- Java (and
including some packages such as gnu.regexp de
gnu.getopt de Aaron
- Muffin (to debug HTTP
requests and to program the CDROM local server)
- Perl (to compute words index, to chop files into slices)
- PIC (for some figures)
- Scheme (for teaching tracks)
Some papers were written (in French) to describe the results of the
Another, more theoretical, paper entitled
Influence of Browsers on
Evaluators describes the use of
continuations within the VideOC server.
Among the many missing things are:
how to play/render the result of xscript that is, animation
(use SMIL ?)
- finish the QCM manager (to be run on client or server side)
- adapt the style files to generate PDF
- write editing tools for teachers to ease writing lectures,
exercices and QCM (use Lyx ?)
- a tool to import whole sites and configure the CDROM local
server's caching tables.
- write a better installer for the CDROM local server.
As said in the preamble, everything can be downloaded
Download the various styles and tools (annote) in source
(around 500K) or rpm
form (around 500K).
Download the xscript
tool in source
(around 666K) or rpm
form (around 150K).
Download the LiSP2TeX tool as an .rpm
This document was translated from LATEX by