Learn the fundamental concepts and principles of software engineering, a systematic approach used to develop software on time, on budget and within specifications.
You'll engage in sophisticated problem solving using proven software design processes and methodologies. You'll also use varying approaches to developing code and testing software. Key courses in the software engineering curriculum allow students to:
This software engineering program is a hands-on, practical approach to software development, where you'll learn to program in C++, Java and Python; use industry-standard software development and testing tools like Eclipse, Netbeans and OpenGL; and deploy on platforms like Windows, Linux, Mac, tablets, and smartphones.
The online Bachelor of Science in Computer Science program with a concentration in Software Engineering introduces the fundamental concepts and principles of engineering in the field of software development. You'll tackle sophisticated problem solving using software design patterns and design methodologies.
Upon completion of the software engineering degree online program, you'll be able to:
In addition, the software engineering concentration courses will give you the skills you need to:
As a private, nonprofit university, SNHU has one mission - to help you see yourself succeed. The benefits of earning your online software engineering degree at SNHU include:
Due to increasing demand for new applications on mobile devices and tablets, there’s never been a better time to earn your software engineering degree online. With a bachelor’s focused in software engineering, you can pursue roles such as software engineer, software development engineer, programmer analyst and applications developer.
The software development field is growing at a rapid rate, with employment projected to increase 17 percent through 2024. Similar increases are projected for applications developers and systems developers, with 19 percent and 13 percent job growth, respectively.
Courses within the online software engineering program emphasize the design and development of computer software, providing you with the math, science and engineering skills you’ll need for career success. This software engineer degree program requires student to complete core courses (CS-200, IT-201, IT-145, PHY-101 and 101L, DAD-220 and MAT-225) before enrolling in major courses.
This course introduces the role of computer software in a variety of industries. Principles of hardware, software, computation, and algorithm development are introduced. Students learn the fundamentals of basic programming concepts, including data types, variables, control structures, logical expressions, and arrays.
Structured Query Language (SQL) is at the heart of many data systems. In this course, students learn the basics of SQL programming as it relates to data management,data manipulation, and data analysis.
This course provides the hardware/software technology background for information technology personnel. Hardware topics include CPU architecture, memory, registers, addressing modes, busses, instruction sets and a variety of input/output devices. Software topics include operating system modules, process management, memory and file system management. Also included are basic network components and multi-user operating systems. Offered every year.
This course is an introduction to the design, implementation, and understanding of computer programs. The course emphasizes programming as a problem-solving technique in business and engineering applications. Students will write computer code in a logical, structured, and organized manner. The course also covers the key concepts of object orientation, including inheritance, encapsulation, polymorphism and communication with messages. Other topics include classes and objects, base classes and class hierarchies, abstract and concrete classes. Students will learn to write, review and document interactive applications and working with Software Development Kits and Integrated Development Environment tools. Offered every year. This is a programming course and lab intense. Prerequisite or Concurrent: IT 100
Calculus is the mathematical study of change that has widespread applications in science, engineering, economics and business. This course provides a rigorous introduction to single-variable calculus. Topics include limits, continuity, differentiation and integration of algebraic, trigonometric, exponential, and logarithmic functions, applications of derivatives, and integration, including the Fundamental Theorem of Calculus. This course will encourage students to think beyond memorizing formulas and to work towards understanding concepts. Students may not take both MAT 210 and MAT 225 for credit.
Principles of Physics is an algebra based course that explores the major topics in physics, such as motion and forces, gravity and projectiles, energy and work, thermodynamics, vibrations and waves, electricity and magnetism, solids and fluids, light and optics, and atomic and nuclear physics.
This course will use laboratory techniques to study the fundamental principles of physics. Topics such as motion and forces, gravity and projectiles, and energy and work will be covered along with other topics important to physics.
Effective methodologies and models are necessary for developing high quality software. In this course, students learn how to identify and apply appropriate software development lifecycle models and methodologies. All phases of activity within the lifecycle, including analysis, design, development, and testing, are explored with an emphasis on the roles of the contributors within each phase. Software development methodologies are examined with a focus on the application of agile processes.
Learn about data structures and algorithms used for analyzing large volumes of data. Focus on common data structure operations, including searches and sorts.
Learn how to collaborate on a software project. Apply appropriate change control and versioning practices. Use technologies for supporting collaboration on a project in a distributed workforce with remote contributors.
Learn about software engineering testing strategies and practices, and study how software quality assurance techniques are used through the software development life cycle, including requirements analysis, verification and validation, and quality management.
Provide an introduction to computer graphics drawing algorithms and 2-dimensional and 3-dimensional display techniques. Learn the current software and hardware used for computational graphics and visualization.
Examine current and emerging technologies used to develop software systems. Apply advanced-level programming concepts to solve real-world programming problems. Use various programming technologies or platforms to develop advanced-level programming.
Taken in the student's final term, the capstone course is the culminating experience for the Bachelor of Science in Computer Science. Integrate previous coursework and practical experience with a focus on authentic demonstration of competencies outlined by the program. Enhance previously submitted programming projects that demonstrates a level of mastery of the stated outcomes of their degree program in computer science.
A large portion of data analytics focuses on identifying meaningful patterns in data. Using a case studies approach, students will examine effective strategies that blend both hypothesis testing and data-driven discovery methods to identify meaningful data patterns and apply that knowledge to common business problems. Emphasis will be placed on data-mining tasks such as classification, clustering, and sequential pattern discovery.
Introduce students to the major components of the Linux operating system and the basics of the Linux command line. Work with files and directories, archive and compress files, and search and extract data from files using pipes and redirection. Learn how to package Linux commands within a script.
This course develops software systems engineering principles combining object-oriented design principles and methods augmented by computer assisted engineering (CASE) technology. The course involves use of the unified modeling language (UML) and, through the vehicle of a student group project, applies these elements to the system development life cycle. This course is writing intensive, as student project teams are required to submit a comprehensive project report and a PowerPoint presentation. Specialized Systems Development Computer Laboratory intensive and open laboratory intensive. Offered every year. Writing intensive course.
Learn about operating environments used in today's business computing environments, including enterprise level systems down to mobile devices. Gain an understanding of the components in an operating system and how they interact with each other and with system hardware and application software. Explore the importance of writing programs that take full advantage of operating support.
Discrete mathematics is the study of mathematical structures that are fundamentally discrete rather than continuous. That is, in contrast to the real numbers that vary continuously, the objects of study in discrete mathematics take on distinct, separated values. Topics include operations on sets, logic, truth tables, counting, relations and digraphs, functions, trees and graph theory. A significant goal of this course is to improve students' critical-thinking and problem-solving skills.
This is a first course in linear algebra and matrices. Topics include systems of linear equations, linear independence, matrices of linear transformations, matrix algebra, determinants, vector spaces, eigenvalues and eigenvectors. After mastering the basic concepts and skills, students will use their knowledge of linear algebra to model a selection of applied mathematics problems in business, science, computer science and economics.
Elective: Students select 12 credit hours in DAD, DAT, GAM, IT, or ISE with a minimum of 6 credits at the 300 to 400 – level
In this course, students examine the interactions between system hardware, firmware and operating system software through enterprise-scale computer architectural concepts such as clustering, fault tolerance, fail-over, load balancing, and virtualization. Students use these concepts as a foundation for exploration of emerging systems architectures and technologies that may drive the next generations of computing.
This course covers mobile architecture to provide students with the foundations for mobile development. Students build upon mobile architecture for the purpose of mobile programming. The programming allows students to interface with various components of the mobile architecture such as camera, display, sensors.
This course focuses on common security vulnerabilities that are found in software. Students learn techniques and strategies to develop robust and secure code, leveraging secure programming principles.
In this course, students learn to analyze software, and analyze and decompile code to extract design and implementation information. Software engineering is used to re-engineer old code, code that has been previously lost, make new products, enhance the functionality and efficiency of a piece of software, or to bridge data exchange between different databases or operating systems.
Free Elective Credits: 6
Tuition rates for SNHU's online degree programs are among the lowest in the nation. We offer financial aid packages to those who qualify, plus a 30 percent tuition discount for U.S. service members, both full and part time, and the spouses of those on active duty.
*Tuition Rates are subject to change and are reviewed Annually.
No Application Fee, $150 Graduation Fee, Course Materials ($ varies by course)
Southern New Hampshire University is a private, nonprofit institution accredited by the New England Association of Schools and Colleges as well as several other accrediting bodies. More...
*Bureau of Labor Statistics, U.S. Department of Labor, Occupational Outlook Handbook, 2016-17 Edition, Software Developers, on the Internet (visited June 2, 2017). Cited projections may not reflect local and/or short-term economic or job conditions and do not guarantee actual job growth.