Explore UCD

UCD Home >

COMP41670

Academic Year 2024/2025

Software Engineering (COMP41670)

Subject:
Computer Science
College:
Science
School:
Computer Science
Level:
4 (Masters)
Credits:
5
Module Coordinator:
Dr 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.

Software engineering focuses on the processes and techniques fundamental to the creation of reliable and robust software systems. This module will cover the main principles of the most important software development processes, from ‘traditional’ plan-driven software engineering to agile methods. It will also cover principles and techniques of software requirements engineering, software design using UML, software testing and refactoring.

This module is 100% continuous assessment, whereby each student will have to work on a substantive software project in groups of 2. The programming language used in the module is Java.
Because not all students may be familiar with the Java programming language, the first 3 weeks of the module will be focusing on refreshing object oriented programming concepts in Java.
If possible, the module will host 2 or 3 panels where practitioners will be invited to describe their experience and opinion on various advanced software engineering topics, such as agile software development, legacy systems, and refactoring.

About this Module

Learning Outcomes:

On successful completion of this module, the student will be able to:
1. Demonstrate an understanding of the methodologies and procedures necessary to a software engineer to manage and develop a software project as part of a team.
2. Demonstrate how to design a complex software system with identification and consideration of functional and non-functional requirements.
3. Outline the design of software components using existing design languages, such as UML.
4. Implement a complex software system as part of a team with regards to division of labour, source control, integration of different components.
5. Perform unit testing and demonstrate an understanding of system testing, and user acceptance testing.
6. Identify and implement suitable refactoring strategies on existing software systems.
e systems.

Student Effort Hours:
Student Effort Type Hours
Autonomous Student Learning

70

Lectures

24

Practical

24

Total

118


Approaches to Teaching and Learning:
The module will adopted a blended approach, where traditional lectures will be combined with active learning activities and a group project.

Requirements, Exclusions and Recommendations

Not applicable to this module.


Module Requisites and Incompatibles
Additional Information:
Object-oriented programming knowledge is a required prerequisite for this module


 

Assessment Strategy
Description Timing Component Scale Must Pass Component % of Final Grade In Module Component Repeat Offered
Individual Project: The individual project is a Java-based project that tests the student's ability to design a complex software system by identifying and considering functional and non-functional requirements. Week 6 Alternative linear conversion grade scale 40% Yes
20
Yes
Group Work Assignment: The Group Project tests the students' ability to Implement a complex software system as part of a team, including the division of labour, source control, and integration of different components. Week 12 Alternative linear conversion grade scale 40% Yes
60
Yes
Exam (In-person): This is an in-class test to assess the student's knowledge of software engineering concepts. Week 12 Alternative linear conversion grade scale 40% Yes
20
Yes

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
• Group/class feedback, post-assessment
• Online automated feedback
• Peer review activities
• Self-assessment activities

How will my Feedback be Delivered?

A variety of feedback will be provided to students. During first 3 Weeks of the module students will be required to complete a Java programming exercise at the end of each week. Feedback will be provided using automated feedback tools (Web-CAT) and will be specifically tailored to help students correct their programming mistakes early. Students will be required to work in group of 2 on a substantive project. At Week 9 students will have the chance to show the lecturer an intermediate release of their project. The lecturer will provide oral feedback to each group to highlight project strengths and problems; this will allow students to fix potential issues before the final project release. In the last 2 weeks of the module there will be 2 invited talks from practitioners. The students will be asked to answer MCQs about the topics covered in the industry talk. At the end of the module the lecturer will provide written feedback about the group project to each group based on an instructional rubric.

Name Role
Professor Chris Bleakley Lecturer / Co-Lecturer
Hafiz Adnan Niaz Tutor

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