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

IBM

Introduction to Software Engineering

IBM via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Are you curious about the lucrative field that is software engineering and how you might be a part of it? This is the course for you! By taking this course, you will gain foundational knowledge of software development, programming, and the many exciting job roles and career paths that the IT industry offers. Learn about the power of the Software Development Lifecycle (SDLC), and modern software development frameworks methodologies like Agile and Scrum. Explore fundamental programming principles and foundations of design, architecture, and deployment. The course offers a number of labs that will help you get important hands-on experience. These include getting started with an IDE, the basics of programming in Python, and Hello World in 10 languages. The field of software engineering is growing at an estimated rate of 22% according to the US Bureau of Labor and Statistics. In addition to aspiring software engineers, front-end, back-end, full-stack developers, and DevOps professionals, this course is also suitable for those in related careers such as Product and Project Managers, IT Managers, Information Developers, UI/UX designers, and others who communicate and interact with software engineers. You will learn about the different job opportunities and possible career paths in software engineering and hear from industry professionals about their daily work. Software engineering professionals are in great demand, and now is the right time to learn more about this exciting domain. Start by enrolling now!

Syllabus

  • The Software Development Lifecycle
    • 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.
  • Introduction to Software Development
    • 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.
  • Basics of Programming
    • 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.
  • Software Architecture, Design, and Patterns
    • 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.
  • Job Opportunities and Skillsets in Software Engineering
    • 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.
  • Final Quiz and Final Project
    • 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.

Taught by

Rav Ahuja, Lin Joyner and Bethany Hudnutt

Reviews

4.7 rating at Coursera based on 4605 ratings

Start your review of Introduction to Software Engineering

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.