Software Engineering (saylor.org)

Offered by Saylor.org,
Software Engineering (saylor.org)

Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software.

The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process notably from the fact that real-world software is much larger and more complex.

Upon successful completion of this course, the student will be able to:

Demonstrate mastery of software engineering knowledge and skills, and professional issues necessary to practice software engineering.
Discuss principles of software engineering.
Describe software development life cycle models.
Learn principles of software modeling through UML as a modeling language.
Identify major activities and key deliverables in a software development life cycle during software requirements and analysis, software design, and software testing.
Apply the object-oriented methodology in software engineering to create UML artifacts for software analysis and requirements, software design, and software testing.
Apply project management concepts in a software engineering environment to manage project, people, and product.
Participate as an individual and as part of a team to deliver quality software systems.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introducción a la Ingeniería del Software (edX) EdX
Universidad Autonoma de Madrid,UAMx

Introducción a la Ingeniería del Software (edX)

Conoce las distintas fases de desarrollo por las que pasa un proyecto informático, así como las actividades de gestión necesarias para lograr finalizar el proyecto con éxito. ¿Alguna vez te has preguntado qué es y para qué sirve la Ingeniería de Software? ¿Quieres saber por qué es tan necesaria esta disciplina y por qué se utiliza tanto en entornos tecnológicos? ¿O cuál es el motivo de que muchos proyectos informáticos no finalizan en tiempo y coste o con la calidad deseada?

Self Paced
Self-Paced
Software Engineering: Introduction (edX) EdX
The University of British Columbia,UBCx

Software Engineering: Introduction (edX)

Learn how to apply engineering principles, such as Agile, to build a full-stack software system. You will learn software engineering principles that are applicable to the breadth of large-scale software systems. The course explores topics such as agile development, REST and Async programming, software specification, design, refactoring, information security, and more.

Self Paced
Self-Paced
Software Architecture (Coursera) Coursera
University of Alberta

Software Architecture (Coursera)

The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development.

Jul 27th 2026
4 Weeks
Introducción a UML (Coursera) Coursera
Universidad de los Andes

Introducción a UML (Coursera)

Bienvenidos a este curso de introducción al Lenguaje de Modelado Unificado, o UML por su sigla en inglés. Este curso surge como respuesta a la necesidad de los ingenieros de software de desarrollar la habilidad de abstraer y representar en un modelo problemas o soluciones. Esta habilidad es especialmente importante en el mundo del software donde las tecnologías son tan cambiantes. Un modelo te provee una forma de comunicar y validar un entendimiento, independiente de la tecnología en la que construirás una solución.

Aug 3rd 2026
4 Weeks
Introduction to Computer Science II (saylor.org) Saylor Academy
Saylor.org

Introduction to Computer Science II (saylor.org)

This course is a continuation of the first-semester course titled CS101: Introduction to Computer Science I. It will introduce you to a number of more advanced Computer Science topics, laying a strong foundation for future academic study in the discipline. We will begin with a comparison between Java—the programming language utilized last semester—and C++, another popular, industry-standard programming language.

Self Paced
Self-Paced
C++ Programming (saylor.org) Saylor Academy
Saylor.org

C++ Programming (saylor.org)

In the first unit, we will learn the mechanics of editing and compiling a simple program written in C++. We will begin with a discussion of the essential elements of C++ programming: variables, loops, expressions, functions, and string class. Next, we will cover the basics of object-oriented programming: classes, inheritance, templates, exceptions, and file manipulation. We will then review function and class templates and the classes that perform output and input of characters to/from files. This course will also cover the topics of namespaces, exception handling, and preprocessor directives. In the last part of the course, we will learn some slightly more sophisticated programming techniques that deal with data structures such as linked lists and binary trees.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced
Leadership Principles for Software Engineers (Coursera) Coursera
Advancing Women in Tech

Leadership Principles for Software Engineers (Coursera)

Learn real-world software engineering management skills to succeed and impress in your first (or next) management role at elite engineering organizations. NANCY WANG, Director of Engineering and General Manager of AWS Data Protection Services and Founder, Advancing Women in Tech (AWIT), shares with you the engineering skills cultivated at AMAZON (the #2-ranked company in the Fortune 500), with supplemental practices from GOOGLE and MICROSOFT. Develop the skills and mental models that the world's best engineering managers apply to attract and retain world-class engineering talent.

Aug 2nd 2026
3 Weeks
Introduction to Java Programming: Writing Good Code (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Self Paced
Self-Paced
Introduction to Object-Oriented Programming with Java (Coursera) Coursera
LearnQuest

Introduction to Object-Oriented Programming with Java (Coursera)

Introduction to OO Programming with Java is course 2 of the Core Java Specialization. After completing this course, you'll be able to create simple Java classes that exhibit the principle of Encapsulation, to import other classes for use, to work with Strings, print output and use advanced math functions. We'll begin with a brief refresher on necessary concepts from Object-Oriented Programming.

Aug 3rd 2026
4 Weeks
Visual Basic Programming: Classes and Collections (Coursera) Coursera
LearnQuest

Visual Basic Programming: Classes and Collections (Coursera)

This course is the third course in a series that aims to prepare you for a role working as a programmer. In this course, you will be introduced to the four main concepts in programming: Advanced String Operations and Dates, Modeling Classes, Development of Classes and Collections. Labs will allow the students to apply the material in the lectures in simple computer programs designed to re-enforce the material in the lesson.

Jul 27th 2026
4 Weeks