IBM
Introduction to Software Engineering

Heat up your career this summer with courses from Google, IBM, and more for £190/year. Save now.

IBM

Introduction to Software Engineering

Rav Ahuja
Bethany Hudnutt

Instructors: Rav Ahuja +1 more

281,759 already enrolled

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
4.7

(3,504 reviews)

Beginner level

Recommended experience

Flexible schedule
Approx. 14 hours
Learn at your own pace
97%
Most learners liked this course
Gain insight into a topic and learn the fundamentals.
4.7

(3,504 reviews)

Beginner level

Recommended experience

Flexible schedule
Approx. 14 hours
Learn at your own pace
97%
Most learners liked this course

What you'll learn

  • Explain the principles of software engineering, the Software Development Life Cycle (SDLC), and software development tools, technologies, and stacks

  • Differentiate between programming language types and apply basic programming constructs such as loops, conditionals, and functions using Python

  • Summarize key software architecture and design approaches, including common architectural and deployment patterns

  • Outline the roles, skills, and career paths in software engineering

Skills you'll gain

  • Category: Software Design Patterns
  • Category: Software Development
  • Category: Python Programming
  • Category: Software Development Life Cycle
  • Category: Development Environment
  • Category: Programming Principles
  • Category: Software Development Methodologies
  • Category: Software Architecture
  • Category: Software Engineering
  • Category: Software Engineering Tools
  • Category: Engineering Software
  • Category: Computer Programming
  • Category: Systems Architecture
  • Category: Software Documentation
  • Category: Application Development
  • Category: Program Development
  • Category: Object Oriented Programming (OOP)
  • Category: Agile Methodology
  • Category: Unified Modeling Language
  • Category: Software Design

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

16 assignments

Taught in English

Build your subject-matter expertise

This course is available as part of
When you enroll in this course, you'll also be asked to select a specific program.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 6 modules in this course

In this module, you’ll explore the fundamentals of software engineering and what sets it apart from software development. You’ll learn how software engineering roles contribute to building reliable, high-quality systems, and how the Software Development Life Cycle (SDLC) helps structure and streamline projects. You’ll break down each phase of the SDLC, examine how requirements are gathered and documented, and compare key specification documents such as the User Requirement Specification (URS), Software Requirement Specification (SRS), and System Requirement Specification (SysRS). You’ll also evaluate different development models, including Waterfall, the V-model, and Agile, and determine when to use each. As you progress, you’ll become familiar with software versioning, various types of software testing, and the documentation needed throughout the development process. Finally, you’ll identify common roles in software engineering projects.

What's included

14 videos1 reading3 assignments1 plugin

In this module, you will explore the foundational roles of front-end, back-end, and full-stack development in building web and cloud applications. You’ll learn how HTML, CSS, and JavaScript create interactive user interfaces, while server-side operations handle data and support functionality. The module also introduces collaborative development practices such as squads and pair programming. Additionally, you will learn to classify technologies within software architectures, examine key development tools, and gain hands-on experience using an Integrated Development Environment (IDE) to write and execute code.

What's included

11 videos1 reading3 assignments1 app item1 plugin

In this module, you will examine different types of programming languages, including compiled, interpreted, query, and assembly languages, and evaluate their use in various development scenarios. You’ll explore core programming constructs such as variables, control flow, loops, and functions, while learning how to organize code using procedural, modular, and object-oriented approaches. In addition, through hands-on practice, you’ll compare language syntax by writing basic programs in multiple languages. You’ll also use Python to implement programming fundamentals. The module also emphasizes selecting appropriate languages and structures based on performance, portability, and debugging needs.

What's included

8 videos1 reading3 assignments2 app items1 plugin

In this module, you will explore the role of software architecture in managing system complexity and supporting quality attributes such as scalability, reliability, and maintainability. You’ll learn to apply object-oriented analysis and design principles, use modeling tools like UML to visualize system structure and behavior, and create architectural diagrams to represent component interactions. The module also introduces common architectural patterns, such as layered, client-server, and microkernel, and compares application architecture approaches like monolithic, microservices, and serverless. Additionally, you will examine the characteristics of different deployment environments and identify key components required for reliable production deployment.

What's included

9 videos1 reading3 assignments1 plugin

In this module, you will explore the diverse roles, responsibilities, and career paths within the field of software engineering. You’ll learn to differentiate between software engineers and developers, analyze typical workdays, and identify the key technical and soft skills needed for success. The module examines current job market trends and growth prospects, outlines various job titles and responsibilities, and helps you map roles to real-world project contexts. You’ll also consider professional ethics in software engineering, applying established codes of conduct to real-life scenarios.

What's included

10 videos1 reading3 assignments1 plugin

The final module of this course includes both the final, graded assessment and a project. The assessment consists of 20 multiple-choice questions. For the final project, you will apply what you’ve learned by analyzing a real-world job posting and demonstrating your ability to connect course concepts to practical career opportunities.

What's included

2 readings1 assignment1 app item1 plugin

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructors

Instructor ratings
4.7 (948 ratings)
Rav Ahuja
Rav Ahuja
IBM
57 Courses3,894,335 learners
Bethany Hudnutt
Bethany Hudnutt
IBM
3 Courses393,282 learners

Offered by

IBM

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

4.7

3,504 reviews

  • 5 stars

    77.25%

  • 4 stars

    17.49%

  • 3 stars

    3.09%

  • 2 stars

    0.93%

  • 1 star

    1.22%

Showing 3 of 3504

RP
5

Reviewed on Sep 11, 2024

HT
4

Reviewed on Dec 10, 2023

SA
5

Reviewed on May 21, 2024

Frequently asked questions