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


If you are curious to learn more about the field of software engineering, this course is for you. No prior knowledge or qualification in programming or software development is necessary. Software Engineers are in great demand and now is a great time to learn more about this exciting career path.

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, this course is also suitable for those in related careers such as Product and Project Managers, IT Managers, Information Developers and others who communicate and interact with software engineers.

This course teaches you about the power of the Software Development Lifecycle (SDLC) and software development methodologies like Agile. Explore fundamental programming principles and foundations of design, architecture, and deployment. Investigate skills 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 from expert and novice software engineers to get a feel for what the job is like from their perspective. After completing this introductory course you will be conversant in the tools, technologies, terminology, processes, and practices in software engineering.


  • 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 42 ratings

Start your review of Introduction to Software Engineering

Never Stop Learning.

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