Online degree programs are revolutionizing the way education is delivered in America, but it still has some limitations. Some careers require clinical experience while others may benefit from having hands-on instruction. However, earning a software engineering degree online isn’t a problem.

Computer technology makes it easy to electronically teach software engineering basics, assess student progress, and expand upon specialized skills. Using a variety of communication tools from Skype to Blackboard to Adobe Connect, students can collaborative with their peers and receive immediate feedback from instructors. Assignments can be completed remotely and submitted via email or the web.


Angela wasn’t sure she wanted to commit to a four-year degree and enrolled in an online associate degree program instead. She liked the ability to log on and do her coursework whenever was convenient for her. Before graduation, she decided she liked the software engineering enough to continue on to a bachelor’s degree. Angela spoke to her school’s career counselor who helped her go through the process of transferring to a four-year program.


The online associate degree in software engineering is a two-year program that provides students with the basic knowledge to become software developers. The first year may focus more on general concepts while the second year is devoted to learning specific programming languages. Students often graduated with an Associate of Applied Science in Software Engineering. The table below illustrates a typical associate degree curriculum, but specific courses and requirements will vary by school.

First Semester (Freshman) Credits Overview
Introduction to Computer Science 3 An overview of the key concepts of computer science and an introduction to programming basics.
Business Practices 3.5 Introduction to how computer science applies to modern business practices.
Elementary Database 4.5 An introductory course to database concepts.
Technical Mathematics I 3 First of a two-course series that teaches intermediate algebra and trigonometry and their technical application.
Second Semester (Freshman) Credits Overview
Technical Communications 3 Practical review of how to communicate technical information and data.
Database Systems 4.5 A more in-depth look of database systems.
Matrix Algebra and Problem Solving 3 Overview of matrix theory and linear algebra.
Technical Mathematics II 3 Expands on the technical application of algebra and trigonometry.
Success Planning 2 Provides strategies to map out a successful career.
Third Semester (Sophomore) Credits Overview
Competing for Employment and Promotions 3 Career-focus course designed to assist students in their job search.
Elementary Java 4.5 Introduction to the programming language Java.
Elementary Visual C++ 4.5 Introduction to the programming language C++ with a focus on theory and the use of sample code.
Calculus I 3 First of a two-course series on Calculus theory and practice.
Fourth Semester (Sophomore) Credits Overview
Intermediate Java 4.5 Expands on basic Java skills to reinforce exception handling and event handling. Begins to introduce advanced concepts.
Intermediate Visual C++ 4.5 Provides intermediate C++ programming skills including creating and troubleshooting actual code.
Calculus II 3 Conclusion of Calculus theory and practice.
Administering SQL Database 4 Covers starting, pausing and stopping a SQL server, importing and exporting data and managing security, servers and clients.
Team Building 2 Overview of basic teamwork concepts and team building strategies.


Always fascinated by computers, Jeremy enrolled in a software engineering program right out of high school. After his first two years, he decided to concentrate on security systems software. He completed an internship with a data security firm his senior year and was offered a job by that company upon graduation.


Students may enter into a bachelor’s degree program directly from high school or they may earn an associate degree first before continuing their education in a four-year program. At the junior and senior level, students may gain more freedom to take elective courses and to specialize in a particular area of software development. Although classes will vary by school, the chart below shows what students can typically expect during years three and four of a bachelor degree program.

Fifth Semester (Junior) Credits Overview
Software Process and Project Management 3 Overview of the principles, techniques and tools for model-based project management.
Secure Software System Development 3 Delves into common programming errors and how those can leave software vulnerable to security threats.
Engineering Fundamentals of Computer Systems 4 Introduction to data compression, data storage, digital systems and error detection.
Engineering Elective 3 An engineering class chosen by the student.
General Elective 3 A general education class chosen by the student.
Sixth Semester (Junior) Credits Overview
Software Systems Architecture 4 Overview of software architecture and review of methods to document and evaluate systems.
Applications Elective 3 Class chosen by student that focuses on application software.
Software Process Elective 3 Class chosen by student that focuses on a software process model.
Software Verification and Validation 3 Theory and practice of software testing procedures.
General Elective 3 A general education class chosen by the student.
Seventh Semester (Senior) Credits Overview
Software Engineering Project I 3 The first half of a capstone project related to the student’s academic focus. May focus heavily on conceptualization.
Software Project Management 3 Review of project management methodologies as they relate to software development.
Wireless Mobile Software Development 4 Design and deploy a mobile application for an Android device.
General Elective 3 A general education class chosen by the student.
Eighth Semester (Senior) Credits Overview
Software Engineering Project II 3 The second half of the senior capstone project. May involve implementation, testing and review.
Computer Ethics 3 Ethical implications of computer technology, data collection and store and analysis of developer responsibilities.
Technical Elective (Based on Specialty) 4 A technical elective that allows the student to learn a skill or explore an interest in the technical field but not necessarily aligned with the major.
General Elective 3 A general education class chosen by the student.


Eric already had a bachelor’s degree in software engineering, but his employer wanted him to take on more complex projects. Through a benefit program offered by his employer, Eric was able to receive tuition assistance that allowed him to go back to school for a master’s degree that let him learn advanced skills. After graduation, his company offered him a raise and a promotion.


Students wishing to learn advanced techniques should consider earning an online master’s degree in software engineering. Some master’s programs may cater specifically to career-minded individuals and focus on practical, hands-on learning opportunities. Others are intended to prepare students for doctoral degrees and may have a heavy emphasis on theory. Students should take care to enroll in a master’s degree program that caters to their education and career goals.

While there may be differences from school to school, most programs combine a set of core courses with an individually chosen “track.” These tracks provide the opportunity to specialize and examples of master degree concentrations within software engineering include artificial intelligence, programming languages, and theory and scientific computation.

Concentration tracks will differ significantly depending on the student and institution. However, the following chart illustrates some of the common core courses a software engineering student might take at the graduate degree level.

Master’s Program Core Courses Overview
Software Design Introduces the fundamentals of software design with students designing and implementing a service-oriented project.
Dependable Software Systems In-depth look at software testing and software reliability. Topics may include syntax testing, N-version programming and test execution automation.
Requirements of Engineering and Management Advanced focus on the intersection of engineering, business planning and information systems.
Software Project Management Advanced review of software project management theory and practice.
Fundamentals of Computer Hardware Covers the organization and architecture of all elements of computer hardware, processors, control units and memories.
Information Technology Integration Advanced topics in software measurement, estimation and technology alternatives.

Advanced Software Engineering: Online PhD

While a master’s degree in sufficient for most practical needs, software engineers interested in research or working in academia may need a doctoral degree. Earning an online PhD in software engineering can take up to four years or more of post-master’s degree coursework.

Unlike undergraduate and master’s degree programs, doctoral degrees are highly individualized. Coursework will depend upon the student’s particular interests and specialty. However, all PhD candidates work closely with a faculty advisor as they select courses and prepare a final dissertation project.

Schools with Software Engineering Programs

Degree Level
School Type