Online Course – Certified Professional Internship in Software Engineering from Google and the Hong Kong University of Science and Technology

Start now Software Engineer. Master the techniques and skills to plan, design, implement, test, and maintain software systems.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

Intermediate level

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • Software testing
  • project management
  • Software Engineering
  • Systems design
  • Project planning

What you will learn in the course

Courses for which the course is suitable

  • Software Engineer
  • Software developer
  • Software project manager
  • Systems Analyst
  • Information Systems Developer
  • QA Specialist (Quality Control)
  • Application developer
  • Development Team Manager
  • Server-side developer
  • Client-side developer

Certification – 3 course series

Software development is not just about coding; it also involves using scientific knowledge and well-defined engineering techniques to produce maintainable, scalable, cost-effective, and time-efficient software products. This certification covers software engineering methodologies, techniques, and tools in planning, defining requirements, designing, implementing, testing, and maintaining large-scale software systems. It combines scientific and technological knowledge with many practical examples and real-life case studies so that students can apply software engineering skills in a real-world development environment.

Purpose of the certification

  • Designed for programmers who are interested in deepening their understanding of the methodologies and techniques involved in software development.
  • Basic principles of object-oriented programming (OOP) are required to attempt the course series.
  • It is recommended to take the courses in the order listed, as they teach software engineering techniques and principles in a graduated manner.
  • This is not a mandatory requirement.

Hands-on Learning Project

Learners will apply various software engineering techniques in planning, defining requirements, designing, implementing, testing, and maintaining large-scale software systems through numerous practical examples and real-life case studies in a realistic development environment.

Details of the courses that make up the specialization

Software Engineering: Modeling Software Systems Using UML

Course 1

  • 28 hours
  • 4.6 (263 ratings)

Course Details

What will you learn?

The Software Development Life Cycle (SDLC) is the process of developing software through planning, requirements analysis, design, implementation, testing, and maintenance. This course focuses on the requirements analysis phase of the SDLC, and you will learn how to use UML models to capture system requirements and improve communication between customers/users and developers. UML is a general visual modeling language for systems. It can be used to highlight different aspects of the system that are of interest to different stakeholders. Data requirements are documented in the domain model, which describes the important concepts of the application domain as classes, associations between them, and constraints on them. Functional requirements are documented in the usage model to describe the interactions between the system and its environment (users, other systems).

UML incorporates current best practices in object-oriented modeling techniques. Basic concepts of object-oriented programming (OOP) are required to attempt the course. It is recommended that the courses be taken in the order listed, as they progressively develop software engineering techniques and concepts, but this is not a mandatory requirement.

Skills you will acquire
  • Category: Project Management
  • Category: Software Engineering
  • Category: Project Planning

Software Engineering: Implementation and Testing

Course 2

  • 19 hours
  • 4.6 (92 ratings)

Course Details

What will you learn?

The Software Development Life Cycle (SDLC) is the software development process that is built around planning, requirements analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phase of the SDLC, and you will examine different software development processes for developing large software systems, and understand the advantages (pros) and disadvantages (cons) of different software development processes. You will also learn defensive programming techniques to prevent software bugs during implementation, and learn how to thoroughly test your system using different types of test cases.

Basic concepts of object-oriented programming (OOP) are required for topics covered in Object-Oriented Software Testing and Security Programming. The implementation is modeled according to UML models generated from the requirements analysis. It is recommended to take the course “Software Engineering: Modeling Software Systems Using UML” before attempting this course, but it is not a mandatory requirement.

Skills you will acquire
  • Category: Software Testing
  • Category: Project Management
  • Category: Software Engineering

Software Engineering: Software Design and Project Management

Course 3

  • 19 hours
  • 4.6 (113 ratings)

Course Details

What will you learn?

The Software Development Life Cycle (SDLC) is the process of developing software based on planning, requirements analysis, design, implementation, testing, and maintenance. This course focuses on the project planning and analysis/design phases of the SDLC, and you will learn about various architectural and design patterns for solving common software design problems. It covers project planning, scheduling, and cost estimation, which are the primary tasks of software project managers.

Basic concepts of object-oriented programming (OOP) are required to understand the various design patterns covered in this course. The system design is based on UML models generated from the requirements analysis. It is recommended to take the course “Software Engineering: Modeling Software Systems Using UML” before attempting this course, but it is not a mandatory requirement.

Skills you will acquire
  • Category: Project Management
  • Category: Software Engineering
  • Category: Systems Design
  • Category: Project Planning