Narrative
When computers first appeared in school classrooms, the focus on computer use was programming. In the 1970's and 1980's, schools like mine provided telephone access to a system-wide time-sharing computer and then began to purchase microcomputers and Apple II computers. When I was a kid, I learned to program in BASIC and assembly language by using these computers. The skills I developed during this period were formative in fostering an understanding of computer science and programming fundamentals. By contrast, today's computer curriculum appears primarily focused on clicking around in commercial applications. Students are tasked with creating a Microsoft Word document using Clip-art, a presentation slide using Microsoft Powerpoint, and a webpage using Microsoft Frontpage. Rather than teaching students to develop an understanding of computers, it teaches students merely to be consumers of commercial computer software. This may be playing a role in the shortage of students who choose to study computer science. A curriculum, organized as a programming club, devoted to exploring Free and Open-Source Software (FOSS) and computer programming, could give students an opportunity to participate in a community where the computer user is a vital participant in the development and extension of a software project.
In parallel with the world of commercial software, there exists a separate dimension of Free and Open-Source Software. Most of us are already using some FOSS and don't know it. The networking code in modern versions of Microsoft Windows is based on Free Software. Most websites we connect to use the Apache Webserver. Apple's MacOS X is based extensively on FOSS.
Free Software refers to preserving the freedom of computer users to modify and extend the computer programs they use. The term "Free Software" was coined by Richard Stallman, a computer visionary who began programming in a time when people openly shared the computer code that they wrote. He was horrified by the rise of commercial software in which the source code is kept secret and only binary, executable versions of software are distributed. This means that the computer user is only allowed to run the software and not to modify it to work in their local circumstances or extend it when additional functionality is needed. It also makes it impossible to inspect software in order to independently assess the quality of the software. Most importantly, it discourages the user from becoming a participant in the software development cycle: users can't learn programming by working on some aspect of the application or continue development if the company decides to quit marketing the software.
For the past four years, I have sponsored a programming club for students in Amherst schools based on using Free and Open-Source software. Our club was operated by two parents that were unable to secure teacher participation. We used several software packages to explore programming in ways that students could easily inspect and interact with each other's programs and with a rich library of open-source code. The particular packages we chose to explore were in response to students' interests and represent an emergent curriculum based on helping the students find and use available resources to meet their goals. We used the
LambdaMOO server to create a text-based virtual world called "Muppyville" in which students could extend the virtual world, creating new places to visit and objects with various interactive capabilities. With
Netlogo, we explored a vast library of simulations, which we initially modified and extended and, eventually, used as the basis for new simulations. Finally, we wrote web-pages in HTML by hand and practiced interacting with files on a unix server.
Our programming club used an emergent curriculum driven primarily by student interest, but also had four basic learning goals. First, we wanted students to begin experiencing basic programming concepts, like variables, typing, inheritance and recursion. Both LambdaMOO and Netlogo were excellent for this goal, as they have rich libraries of existing software and many tutorials available for getting started. Second, we wanted students to visualize connections between the real world and the virtual world. By creating a virtual world, students experienced the challenge of describing the real world in rich, compelling ways. Also, since Netlogo is extensively used to create explicit models of scientific and social phenomena, there are many models available for inspection and it provided ideas for student to create their own models of real phenomena. Third, we wanted students to become familiar with text-based electronic interaction within a small community who all knew each other, before joining larger electronic communities populated by strangers. In particular, we sought to help students recognize the signs of cyber-bullying and to learn to take appropriate responses. LambdaMOO worked extremely well for this. Finally, we wanted students to begin to see the underpinnings of familiar, but opaque, technologies. Letting the students create their own hand-written web-pages allowed the students to see a web-page from a richer perspective and to de-mystify the interactions of servers, clients, and file-transfer protocols.
I propose that we form similar clubs at elementary, middle, and high-schools throughout the Pioneer Valley. Each club should have the support of two club coordinators, one of whom should be a technology professional (either faculty, grad-student, or other computer professional) and the other a teacher willing to monitor the students' activities and coordinate the activities of the group -- funding would be requested to offer small stipends to support these individuals. By meeting 1-2 hours per week during evenings or weekends, groups should be able to find computer labs in schools, community colleges, and universities that will allow the groups to meet regularly and provide access to the necessary software. A mailing list, supplemented by monthly or quarterly meetings of the club coordinators, would ensure coordination among the groups.
The club coordinators should not need extensive preparation or aim to offer comprehensive expertise in the software students will be exploring. There are many software examples and tutorials that students can draw from. The goal of the coordinators will be to model and enthusiastically encourage students to both try things out and see what happens and to use tutorials and other programs as guides for how to accomplish what they want in programming. A series of three training sessions would be offered to club coordinators where the director would model the programming club environment and give the coordinators a chance to get started in advance of the students. Stipends would be provided for attending the training session and to provide support for an hour of preparation each week during the club's activity.
Each club will receive a kit of inexpensive parts to construct a server with software that will be supported remotely, but be extensible by the club members. The server will allow each club to run a text-based virtual world and a web-server where student-created artifacts can be posted and shared. A central server will also be provided that will provide links and support to the distributed club servers and provide common resources that can be shared by all of the groups. A distribution of software will be provided to be installed on each club's server that will be maintained and updated through the central server, to ensure security issues are managed appropriately. The servers will allow additional software to be installed and managed by the students in pursuit of their club's goals.
Clubs at different age levels will be able to have different missions, consistent with an emergent curriculum. The older students will contribute to providing the technology platform for students at the lower levels, while students at the lower levels will focus more on exploration and interaction. High school students will build their server from parts and compile and install applications from source-code and maintain transcripts of up-to-date software for distribution to the club's servers. Middle school students might build their own server or largely have it build by the club's advisors depending on their level and focus on creating virtual world models and puzzles and share them through web-authoring. Elementary school students will primarily explore the models and puzzles created by the middle-school students and explore electronic communication.
A goal of the computing clubs should be to externalize the productivity of the club by building interesting resources and artifacts that can be shared within the schools where the clubs are based. Teachers in the club can help provide coordination with other teachers and the events taking place in school classrooms and curriculum. For example, students could create a "virtual world visit" to the setting of a story or an important place in history, develop and share Netlogo models of science topics relevant to units being studied; or author a set of webpages for the school, parents, or the community. These "artifacts" can serve as models among clubs and be used to recruit new students into the club.
Finally, depending on the interests of students, there are
thousands of additional FOSS projects that could be explored by the programming clubs. For nearly everything that can be done with a computer, there are FOSS programs available to do it. Helping students discover the world of FOSS software that can be leveraged to accomplish any goal students want to accomplish can be very empowering and help students see beyond the limitations of the software they can "afford".
The award is requested to hire a half-time coordinator to organize the scheduled activities of the clubs. This coordinator will maintain correspondence with participants to schedule training and monthly meetings, maintain informational webpages about the program, order and purchase supplies and refreshments, and monitor the activities of the clubs.
Salary is requested for the Director to recruit teachers and computer professionals, conduct the training sessions, and provide technical expertise in support of the clubs' activities.
Stipends are requested for teachers and computer professionals for training, preparation and operation of the clubs. Training stipends of $500 per participant will be provided for 3 training sessions. Yearly stipend are estimated at $25/hour for one hour of weekly preparation and two hours weekly to operate the clubs.
Budget
| Cost | Rationale |
|---|---|
| $30,000.00 | 0.5 FTE coordinator |
| $3,000.00 | Kits to construct 10 mini-servers |
| $10,000.00 | training stipends for club coordinators |
| $60,000.00 | yearly stipends ($3k/person/year for 28 weeks plus monthly meetings at 1-2 hours per meeting and 1 hour prep) |
| $10,000.00 | additional compensation for faculty Director |
| $5,000.00 | Refreshments for monthly meetings |




