Bachelor of Science

Online Software Engineering Degree

Learn Java ,python , And C# with an Online Software Engineering Degree

Earn your bachelor’s degree in software engineering and increase your earning potential and opportunities for advancement as you build your career on the cutting edge of technology. Designed with input from industry experts, the B.S. Software Engineering program provides a solid foundation with these key skills:

  • Scripting and programming
  • Web development
  • Mobile application development
  • User experience design
  • Software quality assurance

This software engineering degree enhances your résumé as you enhance your coding knowhow.  It includes multiple industry-recognized certifications from AWS, CompTIA, and ITIL® that are built into the curriculum. These certs can be earned and start opening doors for you even before you complete your degree.

Choose Your Track

This program is all about making you an outstanding software engineer at the enterprise level. It is presented in two tracks for you to choose from, allowing you to become fluent in either Java ,python , And C#. Whichever track you choose, the result will be the same: You’ll know how to program.

Unsure Which Track is Best for You?

Both languages are top industry growth lists and both will be highly valuable in your career. What’s more, learning any programming language lays the groundwork for you to learn other languages in the future, just like learning your third spoken language is much easier than learning your second.

C# is a smart choice for those who want to work in big tech centers, like Seattle, Silicon Valley, Boston, or New York. Large enterprises that use Microsoft infrastructure need developers who are fluent in C#.

Java is an extensively used language, supported by a wide range of devices not only computers and phones but also smart appliances and Internet-connected vehicles.

Software Engineering Courses

The XTU Bachelor of Science Software Engineering online degree program was designed and is regularly updated, with input from the experts in our College of Information Technology Program, ensuring you learn best practices in systems and services, networking and security, scripting and programming, data management, and the business of IT.

Earning a bachelor’s degree designed by industry experts adds theoretical depth to the practical knowledge you already have. The experts who make up our IT Program Council know exactly what it takes for a graduate to be successful in the fast-paced, ever-changing world of software engineering.

The B.S. Software Engineering program is an all-online program. You’ll complete program requirements independently, with instruction and support from XTU faculty. You’ll be expected to complete at least 12 competency units for each 6-month term. Each course is typically three or four units. There’s no limit on the number of units you can complete each term, so the more courses you complete, the quicker you can finish your program.

Network and Security

Network and Security – Foundations introduce learners to the basic network systems and concepts related to networking technologies. Learners will gain skills in applying network security concepts for business continuity, data access, and confidentiality, and in identifying solutions for compliance with security guidance.

Data Management

Data Management Foundations offers an introduction to creating conceptual, logical and physical data models.  Students gain skills in creating databases and tables in SQL-enabled database management systems, as well as skills in normalizing databases. No prerequisites are required for this course

Advanced-Data Management enables learners to extract and analyze raw data. Skillful data management allows organizations to discover and explore data in ways that uncover trends, issues, and their root causes. In turn, businesses are better equipped to capitalize on opportunities and more accurately plan for the future. As organizations continue to extract larger and more detailed volumes of data, the need is rapidly growing for IT professionals who possess data management skills. The skills gained in this course include performing advanced relational data modeling as well as designing data marts, lakes, and warehouses. This course will empower learners with the skills to build business logic at the database layer to employ more stability and higher data-processing speeds. Learners will gain the ability to automate common tasks to summarize and integrate data as they prepare it for analysis. Data Management – Foundation is a prerequisite for this course.

Data Management – Applications cover conceptual data modeling and introduce MySQL. Students will learn how to create simple to complex SELECT queries, including subqueries and joins, and how to use SQL to update and delete data. Topics covered in this course include exposure to MySQL; creating and modifying databases, tables, views, foreign keys and primary keys (FKs and PKs), and indexes; populating tables; and developing simple Select-From-Where (SFW) queries to complex 3+ table join queries. The following course is a prerequisite: Data Management – Foundations.

Scripting and Programming

Scripting and Programming – Foundations introduces programming basics such as variables, data types, flow control, and design concepts. The course is language-agnostic in nature, ending in a survey of languages, and introduces the distinction between interpreted and compiled languages. Learners will gain skills in identifying scripts for computer program requirements and in using fundamental programming elements as part of common computer programming tasks. Learners will also gain an understanding of the logic and outcome of simple algorithms.

Introduction to Programming in Python introduces skills in creating Python scripts with basic programming concepts. Learners will be able to create control flow with functions and loops, and to implement code with packages, modules, and libraries.

Web Development

Web Development Foundations introduces students to web design and development using HTML, XML, and Cascading Style Sheets (CSS), the foundational languages of the web. This course also covers how to troubleshoot problems using developer tools and integrated development environments commonly employed in web development. There are no prerequisites for this course. 

This course covers tools and techniques employed in user interface design, including web and mobile applications. Concepts of clarity, usability, and detectability are included in this course, as well as other design elements such as color schemes, typography, and layout. Techniques like wireframing, usability testing, and SEO optimization are also covered.

Front-End Web Development builds upon web design and development skills to teach students how to organize websites with navigational schemes and create reactive user web interfaces using cascading style sheets (CSS). In this course, students will implement data entry and data storage capabilities in a web design, as well as implement best practices in design, including user-centered design and usability. Web Development Foundations is a prerequisite for this course.

IT Fundamentals

Introduction to IT examines information technology as a discipline and the various roles and functions of the IT department as business support. Students are presented with various IT disciplines including systems and services, network and security, scripting and programming, data management, and business of IT, with a survey of technologies in every area and how they relate to each other and to the business.

Computer Science

The capstone challenges students to integrate skills and knowledge from all program domains into one project.

Data Structures and Algorithms I covers the fundamentals of dynamic data structures, such as bags, lists, stacks, queues, trees, and hash tables, and their associated algorithms. With Java software as the basis, the course discusses object-oriented design and abstract data types as design paradigms. The course emphasizes problem-solving and techniques for designing efficient, maintainable software applications. Students will implement simple applications using the techniques learned. This course has no prerequisites.

Courses in Java Track

View courses specific to the Java track.

Software

This course prepares you to recognize security vulnerabilities in software, to plan interventions to address security vulnerabilities where they exist, and to develop and test these interventions. The course covers topics in Web security, permissions, and identity security; debugging; log file analysis; API security; and encryption and cryptography concepts. 

Hardware and Operating Systems prepares learners for concepts in software engineering by providing a foundation of understanding in computer architecture, the history of computing architectures, and operating systems. Additional topics covered include hardware and software stacks and how to choose appropriate hardware and software solutions to meet both functional and non-functional business requirements.

Java Fundamentals introduces you to object-oriented programming in the Java language. You will create and call methods, design Java classes, and other object-oriented principles and constructs to develop software that meets business requirements. This course requires foundational knowledge of programming including variables, type, program flow and debugging.

Java Frameworks builds object-oriented programming expertise and introduces powerful new tools for Java application development. Students will execute exception handling, Java frameworks, and other object-oriented principles and constructs to develop a complete application including a user interface. This course requires foundational knowledge of object-oriented programming and the Java language.

User Experience Design explores multiple tools and techniques used in user experience design. Students are presented with an in-depth view of activities involved in the design of user experience and have the opportunity to create several deliverables including persona profiles, information architectures, and prototypes of different levels of fidelity. In addition, the course also covers usability testing and the evaluation of quantitative and qualitative data derived from these and other experiments.

Back-End Programming introduces students to creating back-end components of a web application with the support of framework packages. This course also teaches students how to implement database functionality in a web application and how to create web services. This course requires intermediate expertise in object-oriented programming and the Java language.

Software Design and Quality Assurance applies a QA focus to every phase of the software development life cycle. This course investigates best practices for quality analysis, quality planning, and testing strategies as they pertain to the everyday practice of software development. Students will come to understand how their work fits into the bigger picture: how QA, testing, and code-writing practices interact within specific process models; the potential impact of new code on existing code or on other applications; the importance of usability and the influence users have on the ultimate success of an application. Students will explore test plans, test cases, unit tests, integration tests, regression tests, usability tests, and test and review tools.

Mobile Application Development introduces students to programming for mobile devices using a software development kit (SDK). Students with previous knowledge of programming will learn how to install and use an SDK, build a basic mobile application, build a mobile application using a graphical user interface (GUI), adapt applications to different mobile devices, save data, execute and debug mobile applications using emulators, and deploy a mobile application.

Advanced Java refines object-oriented programming expertise and skills. You will implement multithreaded, object-oriented code with the features of Java necessary to develop software that meets business requirements. Additionally, you will determine how to deploy software applications using cloud services. This course requires intermediate expertise in object-oriented programming and the Java language.

Courses in C# Track

View courses specific to the C# track.

Software

Software I – C# builds object-oriented programming expertise and introduces powerful new tools for C# application development. You will learn about and put into action: class design, exception handling, and other object-oriented principles and constructs to develop software that meets business requirements. This course requires foundational knowledge of object-oriented programming. Scripting and Programming: Foundations and Scripting and Programming: Applications are prerequisites for this course.

Software II – Advanced C# refines object-oriented programming expertise and builds database and file server application development skills. You will learn about and put into action lambda expressions, collections, and input/output to develop software with C# that meets business requirements. This course requires intermediate expertise in object-oriented programming and the C# language. The prerequisite for this course is Software I – C#.

This course prepares you to recognize security vulnerabilities in software, to plan interventions to address security vulnerabilities where they exist, and to develop and test these interventions.  The course covers topics in Web security, permissions, and identity security; debugging; log file analysis; API security; and encryption and cryptography concepts. 

Hardware and Operating Systems prepares learners for concepts in software engineering by providing a foundation of understanding in computer architecture, the history of computing architectures, and operating systems. Additional topics covered include hardware and software stacks and how to choose appropriate hardware and software solutions to meet both functional and non-functional business requirements

User Experience Design explores multiple tools and techniques used in user experience design. Students are presented with an in-depth view of activities involved in the design of user experience and have the opportunity to create several deliverables including persona profiles, information architectures, and prototypes of different levels of fidelity. In addition, the course also covers usability testing and the evaluation of quantitative and qualitative data derived from these and other experiments.

Software Design and Quality Assurance applies a QA focus to every phase of the software development life cycle. This course investigates best practices for quality analysis, quality planning, and testing strategies as they pertain to the everyday practice of software development. Students will come to understand how their work fits into the bigger picture: how QA, testing, and code-writing practices interact within specific process models; the potential impact of new code on existing code or on other applications; the importance of usability and the influence users have on the ultimate success of an application. Students will explore test plans, test cases, unit tests, integration tests, regression tests, usability tests, and test and review tools.

Business of IT

In this course, students will build on industry standard concepts, techniques, and processes to develop a comprehensive foundation for project management activities. During a project’s life cycle, students will develop the critical skills necessary to initiate, plan, execute, monitor, control, and close a project. Students will apply best practices in areas such as scope management, resource allocation, project planning, project scheduling, quality control, risk management, performance measurement, and project reporting. This course prepares students for the following certification exam: CompTIA Project+.

Business of IT – Applications examines Information Technology Infrastructure Library (ITIL®) terminology, structure, policies, and concepts. Focusing on the management of information technology (IT) infrastructure, development, and operations, learners will explore the core principles of ITIL practices for service management to prepare them for careers as IT professionals, business managers, and business process owners. This course has no prerequisites.

IT Leadership Foundations is an introductory course that provides students with an overview of organizational structures, communication, and leadership styles specific to information technology in organizations. It also introduces students to some of the power skills that help make successful IT professionals, including time management, problem solving, and emotional intelligence. Students in this course explore their own strengths and passions in relation to the field. There are no prerequisites for this course.

Full Stack Engineering

Version control is critical to maintaining software and enabling scalability solutions. A best practice for any programming project that requires multiple files uses version control. Version control enables teams to have collaborative workflows and enhances the software development lifecycle. This course introduces students to the basics of publishing, retrieving, branching, and cloning. There are no prerequisites for this course.

Information Technology Management

Cloud Foundations introduces learners to real-world issues and practical solutions to cloud computing. This course covers the business value of cloud computing, examining cloud types, the steps to successful cloud adoption, and the effect cloud adoption has on IT service management, as well as the risks and consequences of implementing cloud solutions. This course prepares learners for the AWS Certified Practitioner certification exam. There are no prerequisites for this course.

Software Engineering introduces the concepts of software engineering to students who have completed the core courses in programming and project management. The principles build on previously acquired concepts, switching the emphasis from programming simple routines to engineering robust and scalable software solutions. This course does not cover programming, but it provides an overview of software engineering processes and their challenging nature, focusing on the need for a disciplined approach to software engineering. A generic process framework provides the groundwork for formal process models. Prescriptive process models such as the Waterfall Model and Agile Development are included. This course also introduces the elements and phases of software engineering, including requirements engineering, design concepts, and software quality. There are no prerequisites for this course.

Software Development

JavaScript Programming introduces students to programming with JavaScript, including how to use JavaScript to enhance a website. This course covers how to use existing frameworks, assets, and web content to enhance website functionality, as well as how to use application programming interfaces (APIs) and web services to add data capabilities to web applications. User Interface Design and Development is a prerequisite to this course.

Software Development

Mobile Application Development Using C# introduces students to programming for mobile devices. Building on students’ previous knowledge of programming in C#, this course investigates Xamarin.Forms and how it can be used to build a mobile application. This course explores a broad range of topics, including mobile user interface design and development; building applications that adapt to different mobile devices and platforms; managing data using a local database; and consuming REST-based web services. There are several prerequisites for this course: Software I and II, and UI Design.

JavaScript Programming introduces students to programming with JavaScript, including how to use JavaScript to enhance a website. This course covers how to use existing frameworks, assets, and web content to enhance website functionality, as well as how to use application programming interfaces (APIs) and web services to add data capabilities to web applications. User Interface Design and Development is a prerequisite to this course.

Career Outlook

Become the Expert Software Engineer Your Team Relies On

Software engineers are the creative and technical geniuses behind the applications and programs we can’t live without. A software engineering degree from XTU is key in helping you gain the critical skills and experience you need to thrive in the information sector. Increase your earning potential, boost your résumé with valuable credentials, and find a career you love with the help of a software engineering degree.

The demand has never been higher for skilled software engineers and developers, especially those proficient in Java, python, and C#. In fact, for every qualified software engineer in today’s job market, there are 10 posted job openings. XTU’s online Bachelor of Science in Software Engineering degree program will provide you with everything you need to confidently enter this in-demand career field.

Frequently Asked Questions about Software Engineering at XTU

  • First, there’s system software. System software bridges the gap between hardware and applications, runs behind the scenes to enable device functionality, and is not typically visible to the user.
  • Second is application software. Application software is designed to carry out a specific task or function. Users typically interact with application software through a graphical user interface.
  • Third is programming languages. Software engineers and developers use programming languages, like Java and C#, to write code that directs computer action.

Learning a programming language is a lot like learning a spoken language. No one’s going to say it’s easy, but with time and practice it will get easier and eventually become second nature. That’s just one part of being a software engineer, but it’s a career that people of all backgrounds can pursue.

A software engineer in a lot of ways is a problem solver. They develop software that carries out a specific task or achieves a certain goal. Software engineers might bring their own software ideas to life or collaborate with others to fulfill a larger vision.

Software engineering is consistently ranked as one of the top careers in the U.S. due to the flexibility, autonomy, satisfaction, and competitive pay it provides

The base education required to become a software engineer is typically a bachelor’s degree in software engineering or computer science. Additional certifications can also be earned to expand your skill set and open new opportunities.

As of 2022, the starting salary of a software engineer is about $72,000 per year. Starting salaries can vary greatly by location.