> home
> About
>
Contact Us
>
Editorial Info

> IEEE-USA

    feature

   05.11    


05.11

Path to Licensure: A Bachelor’s Degree in Software Engineering or Computer Science?

By Donald J. Bagert

One of the implications of establishing a licensure path for software engineers that could be used in the United States is the need to obtain an “appropriate” undergraduate degree. The two most likely candidates for such a degree are the Bachelor of Science in Computer Science (BSCS), which generally covers much more software content than hardware, and the Bachelor of Science in Software Engineering (BSSE). This article looks at the effects of selecting each of these degrees if a student might eventually want to be licensed as a Professional Engineer (P.E.).

Background on BSSE

The Bachelor of Science in Software Engineering (BSEE) degree is fairly new to the United States, with the first degree program available in 1996, and no others until 1999. However, things began to steadily increase after that, with 32 programs by 2005, and 48 by 2011.

Meanwhile, ABET (the recognized accreditor in the United States degree programs in computing, engineering and other disciplines) began accrediting software engineering programs under its Engineering Accreditation Commission (EAC) in 2003. The list of accredited U.S. software engineering programs has also steadily grown, from the original group of four in that first year to 21 in 2010.

To be accredited as an ABET/EAC software engineering program, the degree requirements must satisfy both the EAC general criteria for all engineering programs and the program-specific criteria for software engineering. The general criteria state that all engineering program curricula must have:

  • One year of a combination of appropriate mathematics and basic sciences;

  • One-and-a-half years of engineering topics, consisting of engineering sciences and engineering design appropriate to the student's field of study (computer science courses may be used as engineering sciences);

  • A general education component that complements the technical content; and

  • A major capstone design experience

The program-specific criteria state that the curriculum must additionally be such so that software engineering graduates also have the following abilities:

  • To analyze, design, verify, validate, implement, apply, maintain and manage the development of software systems;

  • To appropriately apply discrete mathematics, probability and statistics, and relevant topics in computer science and supporting disciplines to software systems; and

  • To work in one or more significant application domains

Concerning the last bullet: Since, every software product is intrinsically tied to a particular application domain, understanding domain-specific information is essential for the proper development of software in that application area. Some software engineering programs concentrate on a particular application area (e.g., electrical/computer engineering applications at Clarkson University) while others allow the student to pick from a variety of possible application areas (e.g., Rochester Institute of Technology).

Here is an example of a software engineering curriculum that follows the above criteria: 

  • Math: Two semesters of calculus, two courses in discrete math and a probability and statistics course.

  • Basic Science: Two semesters of physics plus one semester of biology or chemistry, all with labs and taken by at least some other science or engineering majors.

  • Engineering Science: Seven computer science courses plus one computer engineering course.

  • Engineering Design: Five software engineering courses covering the engineering process topics listed in the program-specific criteria, plus a two-semester capstone project.

  • Application Domain: Five courses in an application area.

  • General Education: One additional year of courses, including technical writing and oral communication.

Not much flexibility exists here, although the basic sciences could be different and there could possibly be fewer courses in the application area.

Background on BSCS

Compared to the BSSE, the Bachelor of Science in Computer Science (BSCS) degree has been around for quite a while, having first appeared in the United States in the early 1960s. More than a thousand bachelor’s degree programs in computer science exist today, including at virtually every institution in the United States with a medium-to-large enrollment.

In the early 1980s, the Computer Sciences Accreditation Board (CSAB) was formed for the purpose of accrediting computer science programs in the United States, using an accreditation commission (CSAC) not unlike the EAC of ABET.  In the late 1990s, CSAB began serious discussions with ABET (which at the time only accredited applied science, engineering and technology programs) about merging the two organizations. By the early 2000s, the integration of ABET and CSAB was complete, with the new organization keeping the title ABET. The work previously done by CSAC was now done by the Computing Accreditation Commission (CAC) within ABET. The CAC was also expanded over time to include both information sciences (IS) and information technology (IT) programs.

There are now more than 250 ABET/CAC computer science-accredited programs in the United States, virtually all with a Bachelor of Science degree. There are Bachelor of Arts computer science degrees but the ABET/CAC criteria makes it difficult to accredit them and there are computer science programs that choose not seek ABET/CAC approval. Accreditation has not been required to successfully obtain a quality position in the field of computer science, as it has been for those with engineering degrees.

Similar to software engineering, to be accredited as an ABET/CAC Computer Science program, the degree requirements must satisfy both the CAC general criteria for all its programs (CS, IS and IT) as well as the program-specific criteria for computer science. The general criteria state that all curricula accredited by CAC must have:

  • One of year of courses on fundamental and advanced topics in the computing discipline, and

  • Mathematics appropriate to the discipline beyond the pre-calculus.

The program-specific criteria for computer science expand and add to the general criteria as follows:

  • One and one-third years of computer science with:
     

    • Algorithms, data structures, software design, concepts of programming languages and computer organization and architecture;

    • An exposure to a variety of programming languages and systems, and proficiency in at least one high-level language; and

    • Advanced course work to provide depth.
       

  • One year of science and mathematics with:
     

    • A half-year of math that must include discrete mathematics; and

    • A science component with courses for science or engineering majors, including some with an experimental component.

The reason why one and one-third years of computer science is required, as opposed to 1.5 years of engineering topics in EAC, is that some BSCS programs are housed in an academic unit (e.g. College of Arts & Sciences) that limits the courses in the student’s major to one-third of the total four-year curriculum. However, if there is no such restriction (e.g. if CS is housed in a College of Engineering), there may well be additional computer science coursework.

Here is an example of a computer science curriculum that also follows the above criteria:

  • Math: About the same as for software engineering, with linear algebra probably also included.

  • Science: About the same as for software engineering.

  • Computing: Two years of computing courses, including the computer science topics shown above, one computer engineering course and a 1-2 semester capstone (not required by CAC, but often included).

  • General Education: About the same as for software engineering.

This is pretty close to the sample software engineering curriculum above, but keep in mind that the computer science programs have more flexibility; for instance, the program could have 40 hours of major courses, with no capstone. Regardless, the accredited computer science curriculum will have more computer science and less software engineering than its software engineering counterpart, which will also have the application area courses.

Questions to Ask

So what questions should a prospective college student be asking when considering whether to pursue a BSCS or BSSE with the option in mind of becoming a licensed P.E. in the future?  Here are a few suggestions:

  1. Will the engineering licensing board in the state where you want to work accept BSCS and BSSE degrees?  All 55 of the engineering licensing jurisdictions in the United States recognize an ABET/EAC-accredited degree as appropriate for licensure, so an accredited BSSE degree will always be accepted. However, the same is not true for a BSCS degree. Even if it’s accredited by CAC and accepted by a particular state, an additional number of years of work experience is usually required.

  2. How far away is the nearest accredited BSSE program? Only 15 states have accredited BSSE programs, while 47 states have accredited BSCS programs.

  3. How much software engineering content can be taken with this BSCS program?  Software design/engineering is a smaller part of most BSCS degrees than BSSE programs, and often varies widely from school to school. Find out the maximum number of software engineering courses allowed within a particular BSCS curriculum.

  4. How much computer science content can be taken with this BSSE program? A major concern posed by some computing professionals is that the additional software engineering content is added to a BSSE at cost of additional upper-level computer science courses found in a BSCS. Find out the maximum number of possible computer science courses allowed within a particular BSSE curriculum.

  5. How much of the “traditional” engineering sciences are covered in these programs?  Neither EAC nor CAC criteria require a BSSE or BSCS program, respectively, to take engineering sciences such as statics and dynamics, strength of materials, fluid mechanics or thermodynamics, all topics which are part of the Fundamentals of Engineering examination required of most people pursuing a P.E. However, it is possible that a particular BSSE program allows such study under application domains, so asking about this is a good idea.

Conclusion

At some point there may be enough accredited, quality software engineering degree programs so that getting a BSSE degree will be the natural step for a person who wants to eventually become a Professional Engineer in software engineering. However, considering the limited number of Bachelor of Science in Software Engineering programs and their relative “immaturity” compared to their computer science counterparts, pursuing a BSCS might be the right choice for a individuals out looking for a school and program right now.

Back

 


Don Bagert is a Professor of Computer Science at Southeast Missouri State University in Cape Girardeau, Missouri. He is a Senior Member of IEEE, a licensed Professor Engineer in the State of Texas, and is helping with the development of the NCEES Principles and Practices Examination in Software Engineering.

Comments may be submitted to todaysengineer@ieee.org.


Copyright © 2011 IEEE

 

short circuits

Your Engineering Heritage: Titanic, Wireless Communications, and the Popular Delusions of Mass Media

World Bytes: Animal Wildlife Crossings

viewpoints

reader feedback

archives

career articles
policy articles
all articles
2012
Dec Nov Oct Sep
Aug Jul Jun May
Apr Mar Feb Jan
2011
Dec Nov Oct Sep
Aug Jul Jun May
Apr Mar Feb Jan
 
 

archive search

 
 

Comments on this story may be sent directly to Today's Engineer or submitted through our online form.