View Single Post
  #3   Spotlight this post!  
Unread 14-04-2006, 00:49
TimCraig TimCraig is offline
Registered User
AKA: Tim Craig
no team
 
Join Date: Aug 2004
Rookie Year: 2003
Location: San Jose, CA
Posts: 221
TimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to beholdTimCraig is a splendid one to behold
Re: Programming College Courses

I have degrees in both Aeronautical and Mechanical engineering but I'm done mostly software (long story). One thing you need to remember that programming a robot falls into the category of "embedded" software which is quite a bit different that the common garden variety programming taught in most beginning programming classes.

However, having said that, you have to start somewhere. Most of the programming constructs are the same. So my advice would be to take a C or C++ class to start. Don't bother with toy languages like Java or C# that are in vogue now.

When you've learned the basic things like using varibles, loops, etc. Start taking special care to learn how to "fiddle bits" as those are generally very important in embedded programming. Then you can graduate to understanding and using interrupts. From there learn about memory and processor architectures because the kinds of bugs you'll run into are sometimes esoteric. You have to much more understand the type of hardware your program is running on.

The biggest thing to remember is that there are very hard time constraints in most embedded programming. In a regular desktop program if you have a long calculation to do, you just put up the hourglass and tell the user you'll get back to them when you're through crunching the numbers. In an embedded system, you need to monitor what's going on. If you go away to calculate pi to seveal million digits, your robot is going to crash into a wall or IFI is going to shut it down for not tripping the watchdog timer soon enough. You've probably heard from the programmers on your teams about the infamous 26.2 millisecond main loop.
Reply With Quote