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

High Conflict in Law: Personality Disorders and Disputes (edX) EdX
The University of Newcastle, Australia,NewcastleX

High Conflict in Law: Personality Disorders and Disputes (edX)

Law

Learn about the relationship between some personality disorders and high-conflict behaviour. Discover how to deal with high-conflict behaviours and manage conflicts in legal and business disputes. Have you ever been in the position where you need to manage a dispute? Have you encountered people who do not seem to behave in a rational way? How might you respond to stressful, high-conflict scenarios?

Nov 13th 2021
3 Weeks
Communicating and Negotiating in a Dynamic Global World (edX) EdX
Arizona State University,ASUx

Communicating and Negotiating in a Dynamic Global World (edX)

Within this course, you will learn how to better understand and master strategies for interpersonal encounters, including conflict resolution, in multicultural environments. You will also learn how to improve your global mindset and negotiation skills. This course uses a dynamic and engaging approach to develop the skills for effective communication in international business settings. This course will include techniques and methods for handling interpersonal encounters in multicultural environments.

May 17th 2022
5-12 Weeks
Découvrir le marketing (edX) EdX
LouvainX,Université Catholique de Louvain - UCL

Découvrir le marketing (edX)

Décoder les logiques du marketing au travers des actions marketing: le produit, le prix, la distribution et la communication (les « 4P »). Vous allez découvrir les mécanismes à l’œuvre derrière les grandes décisions qui relèvent du marketing opérationnel : la conception d’un produit, la fixation du prix auquel celui-ci sera vendu, la sélection des canaux de distribution pour la vente, le choix des moyens de communication par lesquels l’entreprise va informer ses clients.

Self Paced
Self-Paced
Android: introducción a la programación (edX) EdX
Universitat Politècnica de València,UPValenciaX

Android: introducción a la programación (edX)

Desarrollaremos una aplicación de ejemplo, "Mis Lugares Favoritos", para conocer el entorno de desarrollo de Android y sus elementos. Android es la plataforma libre desarrollada por Google, ampliamente utilizada en multitud de dispositivos como móviles, tabletas, TV, wearables o sistemas empotrados. Su expansión ha sido espectacular, superando en la actualidad al S.O. Microsoft Windows.

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
English for Doing Business in Asia - Speaking (edX) EdX
The Hong Kong University of Science and Technology - HKUST,HKUSTx

English for Doing Business in Asia - Speaking (edX)

Introducing strategies for developing your spoken English communication skills in the context of doing business in Asia. The use of English for doing business in multinational settings is a fact of life for many business people. As Asian economies expand and become more involved in the global economy, a lingua franca – a language used to communicate among groups of people who do not share a mother tongue – is needed to exchange information.

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