EdX

Software Engineering Essentials (edX)

Software Engineering Essentials (edX)

Learn agile methods, object-oriented programing and best practices for analysis, design, testing and management in software engineering. The world of software engineering requires high flexibility, an influx of new ideas, and the courage to challenge traditional approaches. As a software engineer, you need to know the methods, workflows and tools to handle continuously growing complexity and shortened development cycles. You must be able to work in teams to build high-quality software.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

In this course, we will introduce the basic concepts of object-oriented software engineering. You will learn and apply UML modeling, patterns and project management techniques that are used when developing complex software systems.

This course is interactive. You will watch videos in which we explain critical theory. You will participate in online exercises to practice your knowledge including quizzes, UML modeling with peer reviews, and programming exercises with immediate feedback

What you'll learn

  • Object-Oriented Programming
  • Agile Methods and Prototyping
  • Software Configuration Management
  • Unified Modeling Language (UML)
  • Project Management and Organization
  • Patterns for different phases of a software project

Suggested Readings:
Object-Oriented Software Engineering Using UML, Patterns, and Java (3rd Edition)

Course Syllabus

Introduction
The goal of the introduction is to make yourself familiar with the ideas we’ll explore in this course. Furthermore, we’ll conduct a small survey to get a sense for your existing knowledge.

Week 1: Project Organization and Management
In this week, you will learn the fundamentals of project organization and management, including agile methods.

Week 2: Software Configuration Management
We introduce the six main activates in software configuration management, namely: configuration item identification, promotion management, build-and release management, change management, branch management, and variant management.

Week 3: Object Oriented Programming
Instruction of the four fundamental concepts of object oriented programming: encapsulation, inheritance, polymorphism and abstraction

Week 4: Requirements Analysis
Starting from a specific problem, we show you tools, techniques and modeling diagrams to transform the problem of your client into requirements towards the solution.

Week 5: System Design
Introduction of different activities during system design. We have a closer look at the topics design goals, subsystem decomposition and hardware/software mapping. We will also have a discussion on patterns and antipatterns (e.g. client-dispatcher-server, layer architecture, golden hammer, corncob).

Week 6: Object Design
During the phase of object design you will prepare everything for your implementation. We will make use of inheritance and design patterns to achieve reusability (e.g. strategy and bridge pattern).

Week 7: Testing
Testing is fundamental knowledge of every software engineering. We will show you different types of testing (unit, system, integration & acceptance testing), give you hands-on examples and have a look at testing patterns, such as the mock object patterns ant the concept of dependency injection.

Week 8: Build and Release Management
In this week, you will learn how developers package their code into builds and release the software to users and customers. We will explain the basic idea of continuous integration and continuous delivery.

Exercises:
Each week includes several problems that you should solve, including multiple choice quizzes, drag-and-drop exercises, as well as peer review problems you should assign to your fellow learners.
Additionally, you will have to write source code in Java to given problems, for which you will receive immediate feedback to iteratively improve your solution.

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

Related Courses

Project Management of Engineering Projects: Preparing for Success (edX) EdX
Delft University of Technology,DelftX

Project Management of Engineering Projects: Preparing for Success (edX)

Create your own project plan and learn the importance of the early project phases in achieving project success. People are key! Are you a (project) engineer with a technical background but lack management knowledge? Are you eager to improve project performance and want to expand your knowledge? This business and management course will focus on the necessary project management skills to successfully manage projects.

Sep 24th 2026
5-12 Weeks
Introduction to Linux (edX) EdX
Linux Foundation,LinuxFoundationX

Introduction to Linux (edX)

Never learned Linux? Want a refresh? Develop a good working knowledge of Linux using both the graphical interface and command line across the major Linux distribution families. Develop a good working knowledge of Linux using both the graphical interface and command line, covering the major Linux distribution families.

Self Paced
Self-Paced
Business Communication (edX) EdX
Rochester Institute of Technology,RITx

Business Communication (edX)

Learn how to effectively communicate and build professional relationships through face-to-face, written, and non-verbal communication. Business communication is vital to professional success. You will learn techniques to effectively and succinctly articulate your business ideas to a diverse range of audiences to ensure they understand even the most complex concepts.

Self Paced
Self-Paced
Data Science: Inference and Modeling (edX) EdX
HarvardX,Harvard University

Data Science: Inference and Modeling (edX)

Learn inference and modeling, two of the most widely used statistical tools in data analysis. Statistical inference and modeling are indispensable for analyzing data affected by chance, and thus essential for data scientists. In this course, you will learn these key concepts through a motivating case study on election forecasting.

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
Aplicaciones de la Teoría de Grafos a la vida real II (edX) EdX
Universitat Politècnica de València,UPValenciaX

Aplicaciones de la Teoría de Grafos a la vida real II (edX)

Aprenderemos a modelizar problemas del mundo real mediante su representación con grafos y a resolverlos mediante sus algoritmos asociados. Este curso trata la Teoría de Grafos desde el punto de vista de la modelización, lo que nos permitirá con posterioridad resolver muchos problemas de diversa índole. Presentaremos ejemplos de los distintos problemas en un contexto real, analizaremos la representación de éstos mediante grafos y veremos los algoritmos necesarios para resolverlos.

Self Paced
Self-Paced
A System View of Communications: From Signals to Packets (Part 2) (edX) EdX
The Hong Kong University of Science and Technology - HKUST,HKUSTx

A System View of Communications: From Signals to Packets (Part 2) (edX)

Explore the tradeoffs in designing communication systems like mobile phones, and the engineering tools to handle them. Have you ever wondered how information is transmitted using your mobile phone or a WiFi hotspot? This introductory course seeks to enable you to understand the basic engineering tools used and tradeoffs encountered in the design of these communication systems.

Self Paced
Self-Paced
A System View of Communications: From Signals to Packets (Part 1) (edX) EdX
The Hong Kong University of Science and Technology - HKUST,HKUSTx

A System View of Communications: From Signals to Packets (Part 1) (edX)

Explore the tradeoffs in designing communication systems like mobile phones, and the engineering tools to handle them. Have you ever wondered how information is transmitted using your mobile phone or a WiFi hotspot? This introductory course seeks to enable you to understand the basic engineering tools used and tradeoffs encountered in the design of these systems.

Self Paced
Self-Paced
Visual Presentation (edX) EdX
Rochester Institute of Technology,RITx

Visual Presentation (edX)

Learn how impactful images can enhance your presentation, communication and messaging to impress your audience. Visual elements are critical components in effective communication and presentation. The importance of imagery and how it relates to branding, memory recall, and awareness cannot be underestimated. Whether it’s a document, presentation, or video, using one relevant image can replace an entire section of text and be more impactful.

Self Paced
Self-Paced
UML Class Diagrams for Software Engineering (edX) EdX
KU Leuven University,KULeuvenX

UML Class Diagrams for Software Engineering (edX)

Learn how unified modeling language (UML) class diagrams are created and used to visualize and conceptualize the design of a system. Have you ever wondered how software architects, requirements engineers and business analysts sketch and draw out their plans for a software system? In this computer science course, you will gain an in-depth understanding of Unified Modeling Language (UML) class diagrams, which are used to visually represent the conceptual design of a system.

Self Paced
Self-Paced