Skip to Main Content

SE201

Download as PDF

AI-Driven Software Engineering

SCIS Sch of Computing & Info Sys

Course (UG/PG)

Undergraduate

Offering Unit/Department

Course Description

This course on Generative AI will provide software engineering students with a deep yet accessible understanding of how large language models (LLMs) work, their applications, and how to use them as a tool to design and deploy software efficiently. No prior knowledge of linear algebra, calculus, or machine learning is required.The first part of the course focuses on the foundations of LLMs, covering embeddings, transformer architectures, attention mechanisms, training and inference dynamics, and model behaviour. We will discuss retrieval-augmented generation (RAG) and advanced LLM architectures, as well as the associated use cases that students are likely to encounter in practice.The second part of the course focuses on the responsible use of LLMs as a tool for software engineering. We will investigate the use of AI in eliciting user requirements, generating design documents, and code generation. As part of the DevSecOps pipeline, we will explore how AI can automate documentation tasks, code reviews, unit and integration testing, security auditing, risk assessment, and threat monitoring. Finally, we will investigate autonomous coding agents for code maintenance and optimization. Case studies, practical exercises, and an emphasis on responsible and ethical use of AI accompany these topics.Throughout the course, students will learn the practical impact of cluster and GPU architectures on the design of efficient systems. Students will explore both cloud and self-managed environments, containerization, and modern development tools and frameworks like Triton, TensorFlow, and PyTorch, along with APIs for pre-trained models from various sources.With a mix of theory, hands-on labs, and projects, students will leave the course equipped to critically evaluate and effectively use Gen AI as both a tool and a product of software engineering.

Course Learning Outcomes

Upon completion of the course, students will be able to:

  1. Understand and explain the core concepts of Gen AI: embeddings, architectures, training, and inference used by large language models (LLMs).

  2. Analyse the capabilities and limitations of Gen AI technologies across domains.

  3. Use Gen AI as a tool to efficiently and responsibly engineer software, from eliciting user requirements to drafting design documents, code generation, maintenance, and optimization.

  4. Integrate Gen AI as part of the DevSecOps pipeline, including automated code review and documentation, unit test generation, and security auditing.

  5. Design, develop, and evaluate AI solutions using techniques such as retrieval-augmented generation (RAG) and prompt engineering.

  6. Implement generative AI workflows using contemporary tools and platforms, open-source frameworks, and APIs, such as HuggingFace, OpenAI, and Google Vertex.

  7. Design, develop, and evaluate Gen AI solutions that work efficiently with practical data centre architectures.

  8. Identify ethical challenges associated with Gen AI and develop strategies to mitigate risks in real-world applications.

Discipline-Specific Competencies

Applications Development, Design algorithmic logic for web application interactions, Software development for web applications

SMU Graduate Learning Outcomes

Disciplinary knowledge, Ethics and social responsibility

Grading Basis

GRD - Graded

Course Units

1