[plt-scheme] Prereqs for robotic programming

From: Michael Vanier (mvanier42 at gmail.com)
Date: Tue Feb 17 03:17:34 EST 2009

Anthony Cowley wrote:
> 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.
> Marco,
> 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.
> Anthony

This is very reminiscent of a situation I've found myself in where 
students would ask if I would teach Matlab in one of my programming 
classes, because that's the only programming language/environment they 
"need" and can ever imagine themselves needing to know.  I have always 
replied that I refuse to teach Matlab because it's a terrible language 
and just encourages bad programming habits.  However, the demand 
persisted, and eventually another department stepped up to the plate and 
now teaches an "intro to matlab and Mathematica"-style course, with no 
prerequisites AFAIK.  And that's fine with me.  One of the things I've 
had to get used to is that a large number of students who supposedly 
want to learn how to program also want to remain blissfully ignorant of 
all the important ideas in programming.  So be it -- they're never going 
to become good programmers, and maybe if all they ever write is one-page 
matlab scripts, they don't need to be.


Posted on the users mailing list.