* General Information ** Do you agree to follow GNU policies? Yes ** Package name and version: Classnet Version 1.0 ** Author Full Name : John Warren Slayton juanslayton@dslextreme.com ** URL to home page (if any): http://members.dslextreme.com/users/juanslayton ** URL to sources (if any): http://members.dslextreme.com/users/juanslayton/classnet ** Brief description of the package: This program uses a single computer to poll 20 keyboards, giving all students in a class simultaneous access to the machine. Each student has a designated area of a common projected display in which to work. Activities include real-time competition in addition, subtraction, multiplication and division facts, touch keyboarding, and rudimentary word processing. A further subroutine allows students to check the accuracy of their math calculations when doing written work from a textbook or worksheet. * Code Tarball is at http://members.dslextreme.com/users/juanslayton ** Dependencies: Please list the package's dependencies (source language, libraries, etc.). The source code is written in C. The binary is invoked by a bash shell script. The program runs under Gnu/Linux with modified 2.6.23 kernel. May be used with unmodified kernel, but will not support more than 15 keyboards. svgalib-1.9.25 (for svga branches) vgalib-devel-1.9.25 (possibly needed for compilation/installation) (for svga branches) gcc 4.1.2 GNU Make 3.8 cups (possibly now, probably in the future) ncurses (for ncurses branches) ** Configuration & compilation: Use ./configure and ./make, ./make install ** Documentation: Info documentation is in the tarball. * Licensing: My programming: GPL, GNU FREE DOCUMENTATION LICENSE svgalib: unknown. The LICENSE file in the svgalib-1.9.25 tarball says only: "This package is copyrighted by the people who wrote it. You may do with it whatever you want." * Similar projects: I haven't seen any, although I know that Aivils Stoss is working on something similar with multiple keyboards. There is a fundamental mismatch between what a teacher does and what a computer can do. The computer can be a fairly decent tutor, working with one student at a time. A good supervisor might get two kids working at one machine, but if you try for three, you'll likely wind up with one kid working and two socializing. Teachers, by contrast work with groups of students, thus the mismatch. The major problem with computer aided instruction in the real-world classroom has been to bridge that mismatch. There have been two basic approaches: 1) get a computer for every student, or 2) find the magic management plan to allow rotation through a few machines in the back corner of the room. The first approach has typically been by way of a lab shared by several classes. Both of these approaches have obvious drawbacks. The lab is extremely expensive and requires rigid scheduling that inhibits effective instruction (such as spaced practice for keyboarding). And sad experience has convinced me that the magic management plan does not exist. The present project was developed as a third approach to bridge the gap. It is not a general solution, but it is very useful in lower grade classrooms that are working on basic skills. There is a huge tradeoff in that each student in a 20 member class only gets a single line, rather than a whole screen, but what we get in return is simultaneous access to the program by all students, instantly whenever the teacher wants it, without moving students from their desks or to another room. And it turns out that we can do more with a single screen line than one might think. * Any other information, comments, or questions: Originally written in machine code for the Commodore 64, I later rewrote it in C++ for Gnu/Linux, and finally in C. The earlier versions required me to make special hardware for the keyboards (the immediately preceding version polled the keyboards through the parallel port.) The need to make hardware was a serious impediment to replication of the system. The current program is based on a USB network and completely removes that problem, as no homebuilt interface cards are needed. It is also possible to use at least some wireless keyboards to free up the classroom layout, although it is unclear to me at the moment how many can be used without keyboard interference. Current distros generally have kernels that limit input events to 32. Since USB keyboards generate multiple events (typically two), the number of boards is limited to 15. It is a fairly simple matter to change the evdev.c and input.c files to raise the events to 64, but not very many teachers are going to be able to do it. I hope some day the powers that be will remove this limitation from the vanilla kernel and the distros will follow. Present progamming is developing four branches, two using SVGA, and two using ncurses. Classnet runs 20 keyboards designed to accommodate a whole class; Groupnet runs a reduced set of five, suitable for small groups within a class. Nclassnet and Ngroupnet are the corresponding ncurses versions.