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


Introduction to Software Engineering

IBM via Coursera


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, 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 the software engineering field and also hear from industry professionals about what they do on a day-to-day basis.

Professionals in the software engineering field are in great demand and now is a great time to learn more about this exciting domain. Start by enrolling now!


  • SDLC - The Software Development Lifecyle
    • This module provides you with an overview to the field of software engineering. In the first lesson of this module, you will be introduced to the field of software engineering, and learn about the software development lifecycle (SDLC), elements of building high-quality software, and writing requirements. In lesson two you will explore different approaches to building software and different career opportunities related to software development. You will also hear from experienced practitioners in the field and learn how different roles interact and work with each other as a team in order to develop enterprise-level software.
  • Introduction to Software Development

    • This module introduces you to the concepts of application development. In lesson 1 you’ll learn about the differences in front-end and back-end development in web and cloud applications and the technologies used in both. You’ll also learn about how working in teams and pairs can enhance the development process and make it more efficient. In lesson 2 you will explore many of the application development tools that a software engineer uses to write, test, and release code and be introduced to software stacks that support the execution of an application. Finally, in the hands-on lab, you’ll learn how to use an integrated development environment (IDE) to develop and run code.
  • Basics of Programming
    • This module introduces you to the basics of programming. In the first lesson, you will learn about the different categories of programming languages and the scenarios to which each is suited. You’ll also learn how to plan and organize your code effectively. In lesson 2 you will explore basic programming logic and investigate programming concepts such as identifiers, functions, and objects. Finally, in the hands-on lab, you’ll learn how to write simple Python code.
  • Software Architecture, Design, and Patterns
    • In this module, you will learn about the foundations of enterprise software development. Lesson 1 introduces you to software architecture and explains the importance of well-designed architecture. You will also learn about the design process, including structural design, behavioral models, and how you can create unified modeling language (UML) diagrams to communicate a software’s structure and behavior to all team members. You will also consider object-oriented analysis and design (OOAD). In Lesson 2 you will explore a variety of architectural patterns that support the architectural design process in a hands-on activity. Lastly, you will learn about the software production environment and some of the components required for deployment.
  • Job Opportunities and Skillsets in Software Engineering
    • In this module, you will learn about the tasks of a software engineer and what they do on a day-to-day basis. You will discover the hard and soft skills needed to become a successful software engineer. You will also investigate the job outlook for a software engineer, get a clear understanding of different software engineering career paths, and learn about various software engineering job titles and the responsibilities of those roles. You will also learn about the software engineering code of ethics.
  • Final Activity and Quiz
    • This is the final module of the course which contains the final assessment and final project. Both the assessment and the project address topics from all other modules in the course. The final assessment contains a total of 20 multiple choice questions comprised of 4 questions about each module. For the 20-point, peer-reviewed, final project, you will analyze a job posting in light of what you learned in the course. You are also required to review two of your peers’ projects based on the rubric provided.

Taught by

Rav Ahuja, Lin Joyner and Bethany Hudnutt


4.7 rating at Coursera based on 593 ratings

Start your review of Introduction to Software Engineering

Never Stop Learning.

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