Introduction to Software Engineering (SWE202c)
Vietnamese title: Nhập môn kĩ thuật phần mềm
Credits: 3
Prerequisites: PRO192

Description:
The course includes two parts:
The first part introduces the use of Generative AI (GenAI) and Large Language Models (LLMs) in modern software development. Students will learn how AI-powered tools can accelerate the software engineering process, from analyzing requirements to generating code, writing tests, debugging, and producing technical documentation.
The second part provides a comprehensive introduction to modern software engineering principles, methods, and practices. The course equips students with the foundational and advanced skills needed to design, develop, test, deploy, and maintain reliable software systems. Learners explore the full software development lifecycle (SDLC), including requirements engineering, architectural and object-oriented design, software construction, quality assurance, and DevOps practices. Emphasis is placed on practical, industry-relevant techniques such as version control, automated testing, API development, and iterative development using Agile. Through a combination of theoretical concepts, hands-on exercises, and real-world case studies, the course prepares students to work effectively in software engineering teams and build scalable, maintainable, and high-quality software products.

Learning outcomes:
Understand and apply Generative AI models across the software development lifecycle—including code generation, testing, debugging, and documentation—while evaluating output quality, integrating GenAI into development workflows, and ensuring ethical, security, and intellectual-property compliance in real-world projects.
understand software modeling principles and apply UML techniques to analyze requirements, design system structure and behavior, create and interpret UML diagrams, and evaluate models for accuracy, completeness, and consistency in real-world software projects.
implement software components following industry coding standards, apply testing techniques to ensure software correctness and reliability, and evaluate code quality through systematic debugging, verification, and validation activities in real-world software projects.
design software systems using appropriate design principles and patterns, plan and manage software projects effectively, coordinate team activities, monitor progress, and ensure project deliverables meet quality, schedule, and resource requirements in real-world settings

Student tasks:
Student must get the certification of Software Engineering Specialization and Generative AI in Software Development course from Coursera to be accepted to the final examination

Tools:

Materials:
description: MOOC 01: Generative AI in Software Development
author: Amazon
publisher: Coursera
note: https://www.coursera.org/learn/generative-ai-in-software-development#modules
description: MOOC 02: Software Engineering: Modeling Software Systems using UML
author: Kenneth W T Leung
publisher: Coursera
note: https://www.coursera.org/learn/software-engineering-modeling-software-systems-using-uml?specialization=software-engineering
description: MOOC 03: Software Engineering: Implementation and Testing
author: Kenneth W T Leung
publisher: Coursera
note: https://www.coursera.org/learn/software-engineering-implementation-and-testing?specialization=software-engineering
description: MOOC 04: Software Engineering: Software Design and Project Management
author: Kenneth W T Leung
publisher: Coursera
note: https://www.coursera.org/learn/software-engineering-software-design-and-project-management?specialization=software-engineering

Assessments:
category: PE
type: Final exam
weight: 50.0
duration: 120'
question_type: CLO1, CLO2, CLO3, CLO4
knowledge_and_skill: 5
grading_guide: All studied courses.
note: by Exam Board
category: TE
type: Final exam
weight: 50.0
duration: 60'
question_type: CLO1, CLO2, CLO3, CLO4
no_question: Multiple choices,Marked by Computer
knowledge_and_skill: 50
grading_guide: All studied courses. Each module of course contributes 2-3 questions.
note: by Exam Board,using computer

Schedule:
session: Offline 1:
Introduction to the online course SWE202c.
MOOC 1: Generative AI in Software Development
Module 1: AI and building software
learning_outcomes: ITU
session: MOOC 1: Generative AI in Software Development
Module 1: AI and building software (Cont.)
Module 2: AI and Digital Transformation
learning_outcomes: U
session: MOOC 1: Generative AI in Software Development
Module 3 : Final project and course wrap up
learning_outcomes: U
session: MOOC 2: Software Engineering: Modeling Software Systems using UML
Module 1: Introduction to Software Engineering
Module 2: Modeling Software Systems Using UML
Module 3: Types of Relationships in Class Diagram
learning_outcomes: U
session: MOOC 2: Software Engineering: Modeling Software Systems using UML
Module 4 : System Requirements Capture and Domain Modeling
Module 5: Use Case Modeling
learning_outcomes: U
session: MOOC 2: Software Engineering: Modeling Software Systems using UML
Module 6: Use Case Specification
Module 7: Non-Functional Requirements
learning_outcomes: U
session: MOOC 3: Software Engineering: Implementation and Testing
Module 1: Introduction to Software Development
Module 2: Software Development Processes
Module 3: Implementation and Defensive Programming
learning_outcomes: U
session: MOOC 3: Software Engineering: Implementation and Testing
Module 4: Debugging and Configuration Management
Module 5: White Box Testing
learning_outcomes: U
session: MOOC 3 :Software Engineering: Implementation and Testing
Module 6: Black Box Testing
Module 7: Acceptance Testing
learning_outcomes: U
session: MOOC 4: Software Engineering: Software Design and Project Management
Module 1: System Analysis and Design
Module 2: State Machine Diagram
learning_outcomes: U
session: MOOC 4: Software Engineering: Software Design and Project Management
Module 3: Design Patterns
Module 4: More Design Patterns
learning_outcomes: U
session: MOOC 4: Software Engineering: Software Design and Project Management
Module 5: Software Quality Assurance
Module 6: Managing Software Development
learning_outcomes: TU