| CSC 499 | Grinnell College | Fall, 2013 | |
![]() |
Bluetooth Communication with C |
![]() |
|
This Mentored Advanced Project (MAP) seeks 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.
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.
This work has been very successful:
The students, with Professor Walker, published a peer-reviewed paper (33% acceptance rate), A C-based introductory course using robots, presented at the 43rd ACM Technical Symposium on Computer Science Education, March, 2011, Raleigh, North Carolina.
Enrollment in CSC 161 has increased substantially in recent years. Most noticeable is the increase in women taking the course, and some sections of CSC 161 now include over 40% women — a percentage that is roughly 3 times the national average.
Emerging curricular guidelines from the national computing societies (ACM/IEEE-CS) have identified Grinnell's CSC 151/161/207 introductory sequence as being "exemplary" for its introduction of computing at the college level. (See, for example, [3], pp. 287-288.)
Although the current environment works well at Grinnell, the infrastructure for the current software in CSC 161 is built upon an extensive framework based on a C++ environment developed at the University of Tennessee at Knoxville. Although this C++ foundation can be installed on MathLAN, this material is far from fully portable. To utilize the foundation on a Macintosh, for example. the installation process takes about 4.5 hours and involves hundreds of downloaded packages. The installation process on a Windows machine apparently is even more convoluted. This reliance on a C++ foundation greatly limits the use of the current materials beyond Grinnell's MathLAN.
This MAP seeks to provide 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.
With a new C-based infrastructure, materials for CSC 161 would become usable by a broad audience (e.g., outside Grinnell).
Professor Walker has 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. Since he is learning about Bluetooth communication through this period, the path for development is uncertain. Initially, it seems plausible that 1-way communication can be done reasonably simply with socket-based programming. However, 2-way communication likely requires synchronization techniques — a much more complex and subtle technical area.
This MAP will make as much progress toward 2-way Bluetooth communication using C as is possible in a 1-semester project.
Textbook: Albert S. Huang and Larry Rudolph, Bluetooth Essentials for Programmers, Cambridge University Press, 2007.
Albert Huang,
An Introduction
to Bluetooth Programming, available
from http://people.csail.mit.edu/albert/bluez-intro/
(This Web-based material represents a preliminary version of the book by
Huang and Rudolph.)
Joint Task Force on Computing Curricula of the Association for Computing Machinery and IEEE-Computer Society, Computer Science Curricula 2013: Ironman Draft (Version 1.0), February 2013.
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.
This is a group MAP involving three 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.
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 26 April 2013 |
|
| For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |