Explore UCD

UCD Home >

COMP41670

Academic Year 2026/2027

Software Engineering (COMP41670)

Subject:
Computer Science
College:
Science
School:
Computer Science
Level:
4 (Masters)
Credits:
5
Module Coordinator:
Assoc Professor Avishek Nag
Trimester:
Autumn
Mode of Delivery:
On Campus
Internship Module:
No
How will I be graded?
Letter grades

Curricular information is subject to change.

COMP41670 examines software engineering practice in an era where AI tools routinely produce the first draft of code. Using Java 21, students learn to design, build, test, and defend non-trivial software systems, and develop the critical judgment to evaluate AI-generated code for correctness, security, and long-term maintainability. The module applies a consistent evaluation framework (the Five Questions: does it compile, is the logic right, are invariants preserved, is the design sound, would it survive review) across object-oriented design (encapsulation, inheritance, SOLID, design patterns), testing and technical debt, security (the OWASP AI risk categories), specification and contracts, and the ethical and legal dimensions of AI-assisted development. Assessment weights individually verified performance — an invigilated code-review exam, a closed-book written exam, and an individual project viva — so AI-assisted coursework builds skill without becoming the sole measure of it. Students complete a team-based software project (teams of 4–5) building a Java system from a written specification, with each member individually defending their design decisions and AI use in a project viva.

About this Module

Learning Outcomes:

On successful completion of this module, the student will be able to:
1. Apply object-oriented design principles — encapsulation, inheritance, the Liskov Substitution Principle, and SOLID — to design and implement well-structured Java classes and systems, correctly identifying and preserving class invariants.
2. Select and apply appropriate design patterns to a given design problem, distinguishing genuine structural need from unnecessary complexity.
3. Critically evaluate AI-generated code for correctness, security, and design quality using a structured evaluation framework, and identify, explain, and correct seeded or naturally occurring defects.
4. Design and implement automated unit and system tests for both human-written and AI-generated code, and assess a codebase for technical debt, proposing remediation strategies.
5. Identify security vulnerabilities characteristic of AI-generated code against the OWASP risk categories, and apply secure design practice, specification, and contract-based design to prevent them.
6. Work effectively within a team to design, build, test, and document a non-trivial software system, and individually justify and defend design decisions and AI-assisted contributions under questioning.
7. Evaluate the ethical, legal, and professional implications of AI-assisted software engineering — data protection, intellectual property, and bias — and apply responsible-AI judgment in practice.

Indicative Module Content:

Week 1: Software engineering in the AI era; AI-assisted development — tools and responsible use.
Week 2: Classes, objects and encapsulation; prompt engineering basics for Java.
Week 3: Inheritance, polymorphism and interfaces; recognising flaws in AI-generated class hierarchies (LSP violations, the IS-A trap).
Week 4: Exceptions, generics and collections; lambdas, streams and AI-assisted debugging.
Week 5: SOLID as a diagnostic grammar; diagnosing SOLID violations in AI-generated code.
Week 6: Design patterns as a working set: creational, structural and behavioural patterns.
Week 7: Specification and requirements in the AI era; prompting as specification.
Week 8: Testing what you didn't write: JUnit 5, test-driven development, coverage limits, mutation testing and auditing generated test suites.
Week 9: Technical debt at machine speed; code smells, refactoring and maintenance at scale.
Week 10: Security in AI-generated code: OWASP Top 10:2025, secure prompting and the software supply chain.
Week 11: Trust calibration: CI/CD, DevOps and quality gates; ethics, intellectual property and professional responsibility.
Week 12: The human layer and module retrospective; optional enrichment on building AI-powered features (not examinable).

UNESCO highlights a set of key competencies that support individuals in their development and support society in achieving the UN Sustainable Development Goals (SDGs). UCD has adapted these competencies and is combining them with others to form a general framework of learning competencies. This module will help you develop the competencies below to the levels specified. 
Learning Competency Additional Information Level

Collaboration

The ability to learn from others; to understand and respect the needs, perspectives and actions of others (empathy); to understand, relate to and be sensitive to others (empathic leadership); to deal with conflicts in a group; and to facilitate collaborative and participatory problem solving. Competent

Critical Thinking

The ability to question norms, practices and opinions; to reflect on one’s own values, perceptions and actions. Proficient

Systems Thinking

The ability to recognize and understand relationships; to analyse complex systems; to think of how systems are embedded within different domains and different scales; and to deal with uncertainty. Competent

Strategic

The ability to collectively develop and implement innovative actions that further sustainability at the local level and further afield. Not addressed

Integrated Problem Solving

The overarching ability to apply different problem-solving frameworks to complex sustainability problems and develop viable, inclusive and equitable solution options that promote sustainable development, integrating the competencies in this list. Not addressed

Self-awareness

The ability to reflect on one’s own role in the local community and (global) society; to continually evaluate and further motivate one’s actions; and to deal with one’s feelings and desires. Novice

Normative

The ability to understand and reflect on the norms and values that underlie one’s actions; and to negotiate values, principles, goals, and targets, in a context of conflicts of interest and trade-offs, uncertain knowledge and contradictions. Competent

Anticipatory

The ability to understand and evaluate multiple scenarios for the future – possible, probable and desirable; to create one’s own visions for the future; to apply the precautionary principle; to assess the consequences of actions; and to deal with risks and changes. Novice

Digital Literacy and Judgement

The ability to access, evaluate, create and communicate information in digital environments; to engage critically, ethically and responsibly with digital technologies and digital information; to understand their opportunities, limitations, risks and impact on individual’s digital identities; and to exercise informed judgement in digital participation and decision-making. Proficient

AI Literacy & Agency

The ability to understand, critically evaluate and responsibly engage with artificial intelligence; to recognise how AI systems are shaped by human values; to assess their ethical, social and environmental implications; and to exercise human judgement, agency and accountability in AI-related contexts. Expert

Wellbeing

Wellbeing is having the resources and skills to meet life's challenges, including attributes such as personal development skills, resilience, stress management, strengths, lifestyle skills, nutrition, physical activity, sleep, alcohol/substance use, academic skills, time management, goal setting, interpersonal skills, group work, communication. Not addressed

The United Nations identified seventeen Sustainable Development Goals (SDGs) as core to the 2030 Agenda for Sustainable Development, and UCD contributes in general to SDG 4 Quality Education. Further SDGs explored within this module if relevant are listed below. A scale of 1 - 5 indicates the extent to which the SDG is covered.


 

Student Effort Hours:
Student Effort Type Hours
Autonomous Student Learning

70

Lectures

24

Practical

24

Total

118


Approaches to Teaching and Learning:
The module adopts a blended approach: traditional lectures are combined with active learning activities, weekly lab work, and a team-based group project. Each week pairs a concepts lecture with an AI-focused counterpart, and a two-hour supervised lab in which students apply the week's material. The labs build a continuously assessed portfolio; the group project (teams of five, Weeks 7-11) produces a working Java system on GitHub with a design report and an AI Usage Log, defended at an individual viva in Week 12. Peer code review, case-based discussion of AI-generated code, and enquiry/problem-based exercises are used throughout.

Use of AI: AI-assisted development tools are an expected part of the module's practice. Students use them in the weekly labs and the group project, and must document that use in the AI Interaction Log (labs) and AI Usage Log (project). AI tools are not permitted in the invigilated Week 5 code-review assessment, the end-of-trimester written examination, or the viva, which verify individual understanding. Full details are set out in the module's Permitted AI Use statement on Brightspace, in line with the University Academic Integrity Policy and the Faculty Guidelines for the Use of AI in Teaching and Learning.

Requirements, Exclusions and Recommendations
Learning Recommendations:

The module uses Java as the programming language. While some students may not be familiar with Java, the first three weeks are dedicated to refreshing object-oriented programming concepts in Java. This suggests that students are expected to understand the core principles of object-oriented programming (like classes, objects, inheritance, polymorphism, etc.) before the module begins, and the initial Java content serves to apply these concepts within that specific language context.


Module Requisites and Incompatibles
Additional Information:
Foundational Object-Oriented Programming knowledge required, and the practical application of software engineering principles to design and implement complex systems, especially within a team context.


 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade Component repeat (in-module) Offered
Practical Skills Assessment: Invigilated, Week 5 lab slot, 60 min. Printed booklet, handwritten, no devices. AI-generated Java, eight seeded faults from the Weeks 1-4 syllabus: identify six, name the principle, write the fix. Week 5 Alternative linear conversion grade scale 40% No
20
No
Viva Voce: Individual 20-minute viva per team (2 staff present), Week 12. Questions directed at each team member on design decisions and AI-assisted code; scales each individual's group-project mark. Week 12 Alternative linear conversion grade scale 40% No
12
No
Portfolio: Ten weekly labs, three tick-off criteria each, checked in session. One lab per student deep-graded at random, plus oral spot-checks. Pass/Fail: pass requires six of ten labs ticked and the deep grade. Week 1, Week 2, Week 3, Week 4, Week 6, Week 7, Week 8, Week 9, Week 10, Week 11 Pass/Fail Grade Scale No
10
No
Exam (In-person): Closed-book, 2-hour exam in the formal exam period. Scenario questions on architectural trade-offs, pattern selection, testing strategy and ethics judgement; marked for reasoning quality, not recall. End of trimester
Duration:
2 hr(s)
Alternative linear conversion grade scale 40% No
40
No
Group Work Assignment: Teams of five, Weeks 7-11. Working Java system on GitHub with attributable commit history, design report and AI Usage Log. Graded on the full rubric range, moderated by each member's viva. Week 7, Week 8, Week 9, Week 10, Week 11 Alternative linear conversion grade scale 40% No
18
No

As part of UCD's student support, under the Additional Consideration policy, extensions may be available for the following assessments in the module: Assignment (including essay/poster), Portfolio, Reflective Assignment, Report(s), and Individual Project.


Carry forward of passed components
No
 

Resit In Terminal Exam
Spring No
Please see Student Jargon Buster for more information about remediation types and timing. 

Feedback Strategy/Strategies

• Feedback individually to students, on an activity or draft prior to summative assessment
• Feedback individually to students, post-assessment
• Group/class feedback, post-assessment

How will my Feedback be Delivered?

Feedback follows each assessment component's rhythm. Lab Portfolio: weekly completeness-check feedback within the following lab session (submission present, AI Interaction Log complete, CI green); written feedback on the one randomly deep-graded submission per student, returned within two weeks; random 2-3 minute oral spot-checks in labs give immediate verbal feedback on the defensibility of a submission. Code-Review Exam: an annotated fault-key and cohort-level performance breakdown by fault category released after marking, with individual scripts returned with marker annotations. Group Project: a non-marked mid-project review in Week 9 gives each team written feedback on GitHub progress and the design-report draft, followed by written rubric-based feedback on the final design report and repository at submission, and an individual viva outcome with marker comments within two weeks of the Week 12 viva session. Written Examination: marks released per University deadlines, with a cohort-level summary of common errors and the marking scheme made available for review.

1. Avishek Nag, Software Engineering Thinking: Judgment, Review, and Craft When AI Writes the Code (course text, distributed via Brightspace).

2. Cay Horstmann, Core Java, Volume 1: Fundamentals 1, Addison-Wesley Professional, 12th edition. (Core Java reference, Weeks 1-4)

3. Ian Sommerville, Software Engineering, Pearson, 10th edition. (Supplementary)

Name Role
Professor Chris Bleakley Lecturer / Co-Lecturer
Asad Ullah Tutor

Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Autumn Computer Aided Lab Offering 1 Week(s) - 1 Mon 13:00 - 14:50
Autumn Computer Aided Lab Offering 1 Week(s) - 2, 4 Mon 13:00 - 14:50
Autumn Computer Aided Lab Offering 1 Week(s) - 3, 7, 9, 10, 11 Mon 13:00 - 14:50
Autumn Computer Aided Lab Offering 1 Week(s) - 5, 6, 12 Mon 13:00 - 14:50
Autumn Lecture Offering 1 Week(s) - Autumn: All Weeks Thurs 11:00 - 11:50
Autumn Lecture Offering 1 Week(s) - Autumn: All Weeks Thurs 15:00 - 15:50