View Single Post
  #2   Spotlight this post!  
Unread 04-10-2009, 12:22
Tristan Lall's Avatar
Tristan Lall Tristan Lall is offline
Registered User
FRC #0188 (Woburn Robotics)
 
Join Date: Aug 2001
Rookie Year: 1999
Location: Toronto, ON
Posts: 2,484
Tristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond reputeTristan Lall has a reputation beyond repute
Re: Computer Science or Computer Engineering?

In a backhanded way, computer science is more like FIRST, because while there's a programming component on every robot, most teams don't do much toward working on electronic hardware design or low-level programming. But "what we do here" isn't a good metric to make this decision.

In a computer science program at a place like Purdue, you will probably have the opportunity to learn programming from a theoretical perspective. (This will almost certainly involve a non-trivial advanced mathematics component.) It's not just a matter of coding, but of formally designing and evaluating programs and algorithms. There's a relatively small amount of time spent on the interface with physical systems.

In computer engineering, by contrast, you're going to receive a bit of the traditional engineering curriculum, focusing on the design of physical things, in addition to learning about programming. Computer engineering shares a lot with electrical engineering, with an eventual goal of working on the design of computerized hardware. The FPGA that underlies the cRIO is a canonical example of what computer engineers work with—it's very literally the intersection of hardware and software.

Software engineering incorporates bits of both, and tries to apply an engineering design perspective to software development. In a sense, that means weighing practical factors against the narrower theory of computer science. Of the three, though, it's probably the best-aligned for a career as a professional software developer (with an eye toward mid-level management, rather than tenured academia). Being an "engineer" rather than just a lowly coder is preferred in some corporate cultures (though the value of that perception is open to debate).

Maybe the easiest thing to do is to check out the upper-year courses in each discipline, and ask yourself which sounds most interesting. Purdue probably publishes a course catalogue online, which should include descriptions.
Reply With Quote