Online software engineering degrees combine computer science with business in order to provide students with a real world perspective of how their computer skills are utilized by organizations. Students in these programs gain problem-solving abilities and technological skills that can prepare them for several careers, including software developer.
Software developers, whether they focus their expertise on applications or systems, have numerous duties in their jobs. These professionals are responsible for working with clients in order to design, develop and deliver the software products they need. The following are examples of what these workers do on a daily basis:
- Design and develop software products
- Test software products for errors and modify them to correct those problems
- Perform maintenance on software systems
- Make recommendations about software systems
- Create performance standards for a software system and determine whether or not a specific product meets those standards
- Work closely with members of the team to ensure that a software product is created and delivered within a certain schedule and budget
- Train users on how a piece of software works
- Document information about a software product to explain it to users
In most cases, software developers can get a job with a bachelor's degree, but some employers do look for workers who have a graduate-level degree. Also, people who are interested in advancing in their careers often earn a master's degree to gain more advanced skills and knowledge.
Coursework in Online Computer and Software Engineering Degree Programs
Students enrolled in online software engineering degree programs learn the process of software development from the conception of an idea to the delivery of the final product. Although the specific curriculum of these programs can vary from school to school, there are courses that can generally be found in computer and software engineering departments. The following are some examples of these common classes.
This course familiarizes students with the intricacies of software systems and the various design methods that professionals use when creating a product. Students in this course may be required to create a software design using different methodologies in order to gain hands-on experience with the material.
Students in this course learn software testing theories and how those concepts are used in the workplace when developing products. Some of the specific topics that may be covered include usability, stress, operational and integration testing techniques. This course may require a project designed to give students experience with the different testing methods.
This class explores different programming languages and how they are used to develop software. Students in this course can expect to learn concepts such as functional programming, programming styles and environments, and implementation strategies. Professors may require that students participate in projects that allow them to use programming languages to see how the course concepts are applied in the workplace.
Students in this course get an overview of how networks are managed and the different techniques for managing computer networks. Students learn the fundamental elements of managing a network, including communication patterns and protocols, as well as the issues that professionals face when they are actually managing different kinds of networks. In order to facilitate experiential learning, professors may require that students manage a network in a team project.
This course teaches students how software is procured and the factors that should be considered during the procurement process. The topics of this course include how to conduct a cost-benefit analysis when considering a specific piece of software, analyze risk associated with a product, and evaluate the factors that can impact the price of software. In addition, students will also learn about the legal issues involved in software procurement, including the rules regarding ownership and use.
As cloud computing becomes an integral part of the computer industry, it's increasingly important for students to understand how the technology works and how it can be used. Students in a cloud computing course study topics such as the architecture of cloud computing, the factors that go into the cost of this technology, disaster recovery and open source software.
In addition, students may also take courses in computer security, programming logic, project management, computer graphics, simulation and web applications. Additional degree requirements may include an internship or completion of a group software project.
Interview With a Computer and Software Engineering Professor
George Riley, the Associate Chair for Graduate Affairs at Georgia Institute of Technology, teaches computer engineering and computer programming. He received his Ph.D. in computer science from Georgia Tech College of Computing in 2001.
What are the skills, interests and personality traits necessary for a student to be successful in a computer and software engineering program?
"Students should have a very deep and basic understanding of how computers actually work at the lowest level (computer architecture). They must have a strong desire to understand 'how things work.'
"Strong attention to details is also necessary to being a good computer engineer or programmer, and the ability to adapt and learn new environments and tools is valuable since we get new software tools almost daily it seems. Personality traits include the ability to work both by yourself -- because often you're given a single software project and you will be the only one working on it -- plus ability to work as a member of medium to large teams, as many software projects are large and complex and require good teamwork."
Why are these qualities important for students to have?
"Writing good high-level C or C++ code for typical programming tasks can be done with little or no basic understanding of what goes on under the covers, but this often leads to poor performance and buggy software due to lack of understanding the lowest level actions within the computer."
What is the most rewarding part of a career in the computer and software engineering field? Why should students pursue a career in this field?
"Virtually every job in any engineering discipline requires the use of, and some programming of, computers. You can be a better engineer if you are able to write programs to help you with mundane tasks. This can be rewarding in the sense that you often can become a world-class expert on some sub-field of computer engineering and often can rise to the top of your team."
Career Outlook for Professionals With Computer and Software Engineering Degrees
According to the U.S. Bureau of Labor Statistics (BLS), jobs for software developers are expected to increase by 22 percent between 2012 and 2022. This growth has been attributed to the increased demand for computer software in areas such as mobile devices, the health care industry and computer security. In addition, businesses are demanding more customized software products for their specific needs, which further increases demand for these workers.
The agency also reports that these workers can command healthy salaries. Systems software developers generally earn within the salary range of $63,250 to $154,800 per year, with the median salary at $102,880 annually, according to 2014 BLS data. Similarly, applications software developers earn a median annual salary of $95,510. The salary range for these professionals is generally between $56,310 and $149,480 per year.
Computer Software Engineering, College Board, https://bigfuture.collegeboard.org/majors/engineering-computer-engineering-computer-software-engineering
Computer Software Engineering Bachelor Degree Information, Study.com, http://study.com/computer_software_engineering_bachelor.html
Software Developers, Bureau of Labor Statistics, Occupational Employment Statistics, 2013, http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm
Software Developers, Systems Software, O*NET, http://www.onetonline.org/link/summary/15-1133.00
Software Developers, Systems Software, O*NET, http://www.onetonline.org/link/summary/15-1132.00
Software Engineering - Computing Degrees & Careers, ACM, http://computingcareers.acm.org/?page_id=12
Software Engineering Degree Online, Colorado Technical University, http://www.coloradotech.edu/degrees/bachelors/it/software-systems-engineering#parentHorizontalTab1
Master of Software Engineering, Penn State World Campus, http://www.worldcampus.psu.edu/degrees-and-certificates/software-engineering-masters/overview
Donald Bren School of Information and Computer Sciences, University of California, Irvine, http://catalogue.uci.edu/donaldbrenschoolofinformationandcomputersciences/#requirements%20for%20bs%20degree%20in%20software%20engineering
Computer Engineering - Graduate Courses, Santa Clara University, http://www.scu.edu/engineering/cse/grad/courses.cfm
MS Software Engineering, Southern Methodist University, http://www.smu.edu/Lyle/Departments/CSE/DegreePlans/MS_SE
Engineers, All Other, Bureau of Labor Statistics, Occupational Employment Statistics, May 2014, http://www.bls.gov/oes/current/oes172199.htm
Software Developers, Systems Software, O*NET, http://www.onetonline.org/link/summary/15-1133.00
Software Developers, Applications, O*NET, http://www.onetonline.org/link/summary/15-1132.00
Software Developers, Systems Software, Bureau of Labor Statistics, Occupational Employment Statistics, May 2014, http://www.bls.gov/oes/current/oes151133.htm
Software Developers, Applications, Bureau of Labor Statistics, Occupational Employment Statistics, May 2014, http://www.bls.gov/oes/current/oes151132.htm