CSC 299/499 Grinnell College Fall, 2014  
Scribbler 2 Bluetooth
with C
Scribbler 2

Proposal for an Independent Project / Mentored Advanced Project

on Bluetooth Communications with C

This Independent Project / Mentored Advanced Project (MAP) represents Phase 2 of an on-going effort to develop robust 2-way communication between a Linux workstation and a Scribbler 2 robot, based upon the Bluetooth wireless protocol and the Standard C programming language.

To utilize "best practices" for software development, this project will involve four students, so that all work can be done in pairs. Composition of these pairs will change frequently.

In keeping with constraints at Grinnell College, two of the students will be registered for CSC 499, Mentored Advanced Project, and two will be registered as CSC 299, Independent Project. Work for the four students will be similar, regardless of their registration status.


This project has evolved over several semesters.

Summer 2011

In Summer, 2011, Professor Walker worked with four students to develop infrastructure, modules, labs, readings, and programs, so that Scribbler 2 robots could be used as an application area for CSC 161. Various evaluations indicate that the current environment does a good job of introducing CSC 161 students to imperative problem solving, low-level perspectives of memory management and data structures, and programming in C. These curricular materials are being continuously refined, as they are used each semester in the course. External review of this effort suggests the success of this effort in at least three ways:

Fall 2011-2013

From Fall 2011 to the present, work has continued to refine the CSC 161 materials. In particular, two students worked with Professor Walker in Fall 2011 to gather student feedback regarding each reading, lab, and project. This data led to editing and adjusting each component of the course. Further, the final examination for the new CSC 161 contained five questions from the previous version of the course, and student performance was compared. The results showed that students in the new course had mastered the traditional material at the same level as earlier students. Overall, student achievement was not diminished, while motivation and excitement increased. This follow-up work and analysis led to a second peer-reviewed paper:

Fall 2013

Although the programming environment worked well at Grinnell, the infrastructure for the current software in CSC 161 was built upon an extensive framework based on a C++ environment developed at the University of Tennessee at Knoxville. Although this C++ foundation was installed on MathLAN, this material was far from fully portable. To utilize the foundation on a Macintosh, for example. the installation process took about 4.5 hours and involves hundreds of downloaded packages. The installation process on a Windows machine apparently was even more convoluted. This reliance on a C++ foundation greatly limited the use of the current materials beyond Grinnell's MathLAN.

In response, in Fall, 2013, Professor Walker worked with three students to begin the development of a simple, C-based environment for communicating over Bluetooth with Scribbler 2 robots. This new framework would replace the existing C++ infrastructure from the University of Tennessee at Knoxville, because the current C++ materials greatly restrict the portability of our CSC 161 materials and prevent these materials from being used elsewhere. During the semester, this effort made several substantial contributions.

Altogether, the Fall 2013 effort made substantial progress in developing a C-based infrastructure for the use of Scribbler 2 robots in CSC 161.

Spring 2014

With the development of a development version of a C-based infrastructure for the use of robots in CSC 161, spring 2014 sections of CSC 161 have been able to use this new infrastructure in a class setting. The new infrastructure does not have the full functionality desired for the course, but the features implemented have been used extensively. For other desired capabilities, CSC 161 students in spring 2014 have used the old C++-based infrastructure.

Also, during the Spring 2014 semester, inquiries have been received from Harvard about how the system might be ported to their environment using either Linux or Macintosh computers.

Fall 2014 Project Goals

Although the Fall 2013 effort made substantial progress, several additional steps are needed.

Preliminary Schedule

This proposed Independent Project / MAP seeks to tackle each of these steps. Since each of these steps will involve discovery, creativity, implementation, and review, the time for each is unknown. The following outline suggests one possible timeline:

Altogether, with this new C-based infrastructure, materials for CSC 161 would become usable by a broad audience (e.g., outside Grinnell).

In 2013, Professor Walker proposed to Dean Smith that his general scholarship for 2013-2015 has the long-term goal of developing full, 2-way communication with a Scribbler 2 robot using Bluetooth. This work forms the base for his long-term plans for sabbatical leave in 2015-2016 and Senior Faculty Status thereafter.

The Fall 2013 project represented Phase 1 of this effort. The proposed Fall 2014 effort represents Phase 2. It remains to be determined whether Phase 2 will complete the essential infrastructure, or whether additional work will be needed before Professor Walker can move to the next stages of his long-term plan — as approved by the college in June 2013.

Initial References

  1. Fall 2013 Poster on Bluetooth communication
  2. Fall 2013 Paper on insights from Fall 2013 investigation, targeting student developers in the next round
  3. Byte codes for selected Scribbler 2 commands, as documented in Fall 2013
  4. IPRE documentation on "Hacking the Fluke"
  5. Byte code descriptions
  6. Java program with some byte codes included
  7. Textbook: Albert S. Huang and Larry Rudolph, Bluetooth Essentials for Programmers, Cambridge University Press, 2007.

  8. Albert Huang, An Introduction to Bluetooth Programming, available from
    (This Web-based material represents a preliminary version of the book by Huang and Rudolph.)

  9. Joint Task Force on Computing Curricula of the Association for Computing Machinery and IEEE-Computer Society, Computer Science Curricula 2013: Final Report, December 2013.

List of Graded Work and Deadlines

A separate timeline identifies specific work to be completed, including C-based code, software testing materials, documentation, a poster, and [possibly] a paper.


This project can utilize existing Scribbler 2 robots and other equipment related to CSC 161 and past development efforts. Thus, no additional budget is anticipated, beyond ongoing maintenance.

Preliminary Meeting Schedule

This is a group Independent Project / MAP involving four students. Work within this project will take several forms:

An initial listing of activities and a possible semester schedule is available online and will be updated through the semester.

Major Products

This MAP seeks to produce the necessary C-based infrastructure to support Bluetooth communication between MathLAN workstations and Scribbler 2 robots. Since this MAP explores software development in a new context, it is uncertain how much progress can be made within a single semester. Ideally, this MAP would produce the following materials:

A more detailed list of possible products may be found on the preliminary timeline for the MAP.

created 24 April 2013
last revised 18 April 2014
Valid HTML 4.01! Valid CSS!
For more information, please contact Henry M. Walker at