EdX

Software Engineering Basics for Everyone (edX)

Offered by IBM,
Software Engineering Basics for Everyone (edX)

Build the foundation for an in-demand Software Engineering related career. Explore fundamental software engineering principles, processes, architecture, tools, and stacks. Hear from software experts discuss what it takes to be successful.

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

The demand for software engineers doubled according to the “State of Software Engineers” report by the tech specialist Hired. Nearly every industry uses software to accelerate its growth, providing a vast number of opportunities. With the importance of software engineers and the technical skillset required, it isn’t surprising that according to Indeed.com, “The good starting software engineer salary in the US is considered to be $113,211 per year. Competitive starting salaries will vary depending on location and cost of living.”
This course is suitable for anyone wanting to start in a software development related role, including those aspiring to be Software Engineers, IT Product and Project Managers, Scrum Masters, Information Developers, UI/UX Designers, QA Engineers, as well as Sales Executives, and Marketing Managers in the Tech industry. No prior programming experience or degree is required.
This course teaches you about the power of the Software Development Lifecycle (SDLC) and software development methodologies such as Agile. You will explore fundamental programming principles and foundations of design, architecture, and deployment, investigate skills that a software engineer needs and identify job opportunities with hands-on projects. You will also learn about programming basics and software development tools and stacks.
Throughout this course, you’ll hear first-hand experiences from expert software engineers to geta feel for the job and their perspectives. After completing this introductory course, you will be familiar with the software engineering tools, technologies, terminology, processes, and practices.
This course is part of the DevOps and Software Engineering Professional Certificate.

What you'll learn

  • Explain software engineering, Software Development Lifecycle (SDLC), and software development tools, technologies, and stacks.
  • Describe the difference between types of programming languages and create basic programming constructs such as loops and conditions using Python.
  • Outline approaches to application architecture and design, patterns, and deployment architectures.
  • Summarize the skills required in software engineering and describe the career options it provides.

Syllabus

Module 1: SDLC – The Software Development Lifecycle
What is Software Engineering?
Insiders’ Viewpoint: What is software engineering?
Introduction to the SDLC
Activity: Phases in the SDLC
Building Quality Software
Requirements
Software Development Methodologies
Software Versions
Software Testing
Software Documentation
Roles in Software Engineering Projects
Insiders’ Viewpoint: Job Roles in Software Engineering Teams

Module 2: Introduction to Software Development
Overview of the Web and Cloud Development
Learning Front-End Development
The Importance of Back-End Development
Teamwork and Squads
Insiders’ Viewpoint: Teamwork in Software Engineering
Pair Programming
Insiders’ Viewpoint: Pair Programming
Activity: Categorizing Front-end and Back-end Technologies
Introducing Application Development Tools
More Application Development Tools
Introduction to Software Stacks
Hands-on Lab: Getting Started With an IDE
Insiders’ Viewpoint: Tools and Technologies

Module 3: Basics of Programming
Interpreted and Compiled Programming Languages
Comparing Compiled and Interpreted Programming Languages
Query and Assembly Programming Languages
Understanding Code Organization Methods
Insiders’ Viewpoint: Types of languages
Activity: Programming Logic and Organizational Methods
Branching and Looping Programming Logic
Introduction to Programming Concepts Part 1, Part 2
Hands-on Lab: Programming Fundamentals with Python

Module 4: Software Architecture, Design, and Patterns
Introduction to Software Architecture
Software Design and Modeling
Object-Oriented Analysis and Design
Insiders’ Viewpoint: Importance of Design and Software Architecture
Activity: Create an Architectural Diagram
Approaches to Application Architecture
Architectural Patterns in Software
Application Deployment Environments
Production Deployment Components
Insiders’ Viewpoint: Deployment Architecture

Module 5: Job Opportunities and Skillsets in Software Engineering
What Does a Software Engineer Do?
A Day in the Life of a Software Engineer
Skills Required for Software Engineering
Insiders’ Viewpoint: Advice to Future Software Engineers
Insiders’ Viewpoint: Women in Software Engineering
Job Outlook for Software Engineers
Career Paths in Software Engineering
Software Engineering Job Titles
Insiders’ Viewpoint: Career Paths
Activity: Matching Roles with Responsibilities
Software Engineering Code of Ethics

Module 6: Final Quiz

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

Related Courses

Python for Data Science (edX) EdX
University of California, San Diego,UC San DiegoX

Python for Data Science (edX)

Learn to use powerful, open-source, Python tools, including Pandas, Git and Matplotlib, to manipulate, analyze, and visualize complex datasets. In the information age, data is all around us. Within this data are answers to compelling questions across many societal domains (politics, business, science, etc.). But if you had access to a large dataset, would you be able to find the answers you seek?

Self Paced
Self-Paced
How to Code: Complex Data (edX) EdX
The University of British Columbia,UBCx

How to Code: Complex Data (edX)

Learn how to design more complex programs, using new data structures, abstraction, and generative recursion. As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain. By learning how to capture common data and control structures using abstraction, your programs will get shorter and better tested.

Self Paced
Self-Paced
Java Programming Fundamentals (edX) EdX
Galileo University,GalileoX

Java Programming Fundamentals (edX)

Your career as a program developer starts here. Gain entry-level programing skills in Java language, and prepare yourself to handle any task that is required in any programming job. Java is one of the most in-demand programming languages today. This course is designed to provide students the basic skills and knowledge on Java.

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
IoT System Design: Software and Hardware Integration (edX) EdX
Waseda University,WasedaX

IoT System Design: Software and Hardware Integration (edX)

Start developing your own Internet of Things (IoT) system with this exploration of the interaction between software and hardware. This course is designed to teach you how systems are developed using IoT technology. Many engineers and developers tend to focus on a single discipline - either software or hardware. However, in today’s connected age it's critical to have a comprehensive understanding of both disciplines and how they are intertwined.

Self Paced
Self-Paced
Programming for Data Science (edX) EdX
University of Adelaide,AdelaideX

Programming for Data Science (edX)

Learn how to apply fundamental programming concepts, computational thinking and data analysis techniques to solve real-world data science problems. There is a rising demand for people with the skills to work with Big Data sets and this course can start you on your journey through our Big Data MicroMasters program towards a recognised credential in this highly competitive area. Using practical activities you will learn how digital technologies work and will develop your coding skills through engaging and collaborative assignments.

Self Paced
Self-Paced
Introducción a la programación en C: Tipos de datos y estructuras (edX) EdX
Universidad Autonoma de Madrid

Introducción a la programación en C: Tipos de datos y estructuras (edX)

Aprende a programar en C, uno de los lenguajes de programación más usados. En este curso en línea adquirirás los conocimientos necesarios para comenzar a convertirte en un experto en C. Este curso en línea te permitirá aprender los conceptos básicos que te ayudarán a desarrollar las habilidades de programación necesarias para iniciarte en el lenguaje C.

Self Paced
Self-Paced
Introducción a la programación en C: Funciones y punteros (edX) EdX
Universidad Autonoma de Madrid

Introducción a la programación en C: Funciones y punteros (edX)

En este curso aprenderás cómo hacer programas modulares a través de funciones y punteros en el lenguaje de programación C, uno de los más utilizados. Este curso en línea te permitirá aprender más conceptos para ampliar tus habilidades de programación en el lenguaje C. Ahora resolveremos los problemas de forma modular, dividiendo el código en pequeñas partes definidas como funciones.

Self Paced
Self-Paced
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 the Internet of Things (edX) EdX
Universitat Politècnica de València,UPValenciaX

Introduction to the Internet of Things (edX)

This is a preliminary course in which we deal with the basics of electronics and programming using Arduino and ESP boards. Internet of Things (IoT) is the present and the future of technology. Either, if you have none, few or some experience with electronics and you want to develop it projects this course will give you the necessary kick start to start creating amazing devices capable of sensing, controlling physical signals.

Self Paced
Self-Paced
Applied Scrum for Agile Project Management (edX) EdX
University of Maryland, College Park,University System of Maryland - USM,USMx,UMD

Applied Scrum for Agile Project Management (edX)

Learn the project management processes, roles, mechanics, and philosophies behind Scrum, the simplest and most pure approach to managing work at the team level. Version 2 of this course series delivers beyond the original agile certification. It includes updated content, better audit and verified learner experiences, and bonus videos on key topics.

Self Paced
Self-Paced