JETS Update

Feature Story

Hands On

Extreme Engineer

Hot Topics

JETS Spotlight

Table of Contents


Times Archive

Subscribe to the Times

Submit an Article

Unsubscribe

Contact Us

JETS Sponsors

JETS Challenge

JETS Home

May 2006, Issue #49

Feature Story: Software Engineering

What doesn’t have a computer in it today? A toothbrush? Guess again. One leading manufacturer has actually created an electric toothbrush with an onboard computer that tells you how long to brush or polish your teeth—and even when to change its two circular brush heads. In some kitchens, you will find the refrigerator talking to the microwave to coordinate energy usage during peak demand cycles. Cars have as many as 50 microprocessors on board. It takes more than 4 million lines of code to fly an airplane. Seawolf class submarines have more than 6 million lines of code. Even our cameras have essentially become computers, and new computer and Internet application come online every day.

Blink and you’ll find tiny chips the size of a human hair embedded in all products speeding you through the check out line without even having to remove items from your cart! So it’s no wonder that software engineering is one of the most rapidly growing fields of employment today. Software is literally everywhere…and there’s lots more to come. Ubiquitous is the watchword for this field.

 #1 Best Job in America
The April 12, 2006 Money Magazine special report on “Your Job 2006” picked software engineering as the #1 Best Job in America. The U.S. Bureau of Labor Statistics ranks it as the #5 fastest growing occupation from 2004 to 2014. Excellent compensation, great working conditions, low stress, creativity, and great opportunities for advancement round out a field that is one of the fastest growing today. Average pay is $80,427 including salary and bonus.

What Do Software Engineers Do?
The official definition from IEEE: Software engineers apply the principles and techniques of computer science, engineering, and mathematical analysis to the design, development, testing, and evaluation of the software and systems that enable computers to perform their many applications. More information on job functions and working conditions can be found by visiting the Bureau of Labor Statistics,

Theaters of Operation
Software is used in traditional computer applications—PCs, laptops, mainframes. It’s also used embedded in products—like the toothbrush, car, airplanes, and IPods. Software engineers might develop computer programs or write the programs and modules that run inside products. Then there’s the realm of the Internet and wireless communication.

Among the hottest new areas for software engineers are networks, wireless networks, computer security, health science applications, nanotechnology, biotechnology, and the human genome study. All are heavily computational.

Computing Goes Real Time with Embedded Computers
With most online systems, it’s not life or death if an application goes down or is 10 seconds slow. With real-time embedded processors that’s not necessarily the case. Just think of anti-lock brakes, guidance systems, medical equipment, and radar signals. In many products such as these, software must react to real life inputs before carrying out a function.

A New Generation of Programming
Back in the 1970s it was structured programming. In the ‘80s and ‘90s it became object-oriented design and modeling. Languages like Java and C# reshaped programming with tons of reusable parts and modules to use.  Although Java has less than 60 reserved words, thousands of pre-built components are included in its libaries. These make writing complex software systems easier than ever before.

Software Engineering Aptitudes: What it Takes
Software engineering is a fun, problem solving career for those who like abstract reasoning and are good at sequencing or structuring elements. While building intricate computer graphics algorithms—like those used in video games—is a masterpiece of math, many aspects of software engineering are not highly math intensive.  One of best aptitudes to have is being able to think through programs in your mind. And of course, a strong dose of creativity—“thinking outside the box”—to find a solution to a specific problem or to create new products and services.

 Hot Topics in Software Engineering
The sky’s the limit with software engineering. Here are some cutting-edge subject areas incorporated in software engineering curriculum:

  • real-time & embedded computing; intra-body networks
  • networking; wireless networking; mobile computing and ad-hoc networks; distributed systems
  • hardware-software co-design
  • artificial intelligence, evolutionary computation, distributed constraint reasoning, artificial immune systems
  • machine learning
  • human-centered computing, human-computer interaction, spoken language systems
  • secure voting systems
  • software vulnerability analysis; network security
  • end user programming: human computer interaction (HCI), human centric computing, visual programming environments
  • wireless LAN; Bluetooth; sensor networks; wireless ATM
  • object-oriented technologies; Palm computing
  • context-sensitive and situation-aware computing

 Accredited Programs
Currently there are only 10 ABET accredited programs for software engineering:

Auburn University, Auburn, AL

Clarkson University, Potsdam, NY

Embry-Riddle Aeronautical University - Daytona Beach, Daytona Beach, FL

Florida Institute of Technology, Melbourne, FL

University of Michigan-Dearborn, Dearborn, MI

Milwaukee School of Engineering, Milwaukee, WI

Mississippi State University, Mississippi State, MS

Monmouth University, West Long Branch, NJ

Rochester Institute of Technology, Rochester, NY

University of Texas at Arlington, Arlington, TX

 Another 30 to 40 schools have begun developing programs and may apply for accreditation in the future.

Special thanks to James Cross, Ph.D., Department Chair, Computer Science & Software Engineering at Auburn University for contributing background information for this article.