[plt-scheme] Prereqs for robotic programming

From: Anthony Cowley (acowley at gmail.com)
Date: Tue Feb 17 00:54:06 EST 2009

On Feb 16, 2009, at 10:02 PM, Marco Morazan <morazanm at gmail.com> wrote:
> Dear All,
> ...
> Marco: The right tools can, indeed, make writing programs easier by
> eliminating the need for cumbersome syntax (this is what visual
> programming thought it could deliver and has failed to date), but
> these tools do not eliminate the need to design the programs that are
> to be written. It will be a nightmare for students with no programming
> background to implement any motion or sensor-exploiting algorithms.


I think you are overstating things when you predict a "nightmare."

I have seen many successful robotics-centric classes that have brought
in students from
outside of CS, and none have had anything like HtDP as a prerequisite.
While I would love to
see such a thing, and indeed I do, if often indirectly, work towards
such a goal myself as a
roboticist, I think it is far too narrow a view to have such
particular requirements.

These days, one can find many examples of robotics used as a gateway
for programming
education at the intro level, and as an application domain for
Mechanical and Electrical
Engineers at more advanced stages. Setting aside the former, a
typical, realistic, situation
is that the professor will provide a crash course in Matlab
programming for the first few
weeks, if necessary, before diving into a selection of relevant topics
in control theory,
computer vision, robust estimation, and perhaps mechatronics,
depending on the professor. (A
discourse on the finer points of theoretical computer science this is not.)

All of these topics can be covered with non-CS students who have come
in with a weak
programming background, if any. It can indeed be difficult, and one
may balk at the quality
of programming on display, but I think it is an excellent opportunity
to demonstrate the
importance of solid software engineering to an audience that would
quite possibly never
otherwise see it. You should view a robotics class as an opportunity
to reach out to
engineers who see programming as just another tool, and give them a
taste of its depth and
relevance while still covering the material a robotics course must focus on.

In fact, quite often a Mechanical Engineering department, for example,
will offer a robotics
class for ME students (my wife is an ME who does just this). These
classes will seldom
consider software design at all, so if you can inject some of that
into the proceedings, then
you should declare (some measure of) victory.


Posted on the users mailing list.