Unit name | Software Engineering Discipline and Practice |
---|---|
Unit code | COMSM0166 |
Credit points | 30 |
Level of study | M/7 |
Teaching block(s) |
Teaching Block 2 (weeks 13 - 24) |
Unit director | Professor. Chitchyan |
Open unit status | Not open |
Units you must take before you take this one (pre-requisite units) |
COMSM1201 Programming in C |
Units you must take alongside this one (co-requisite units) |
COMSM0085 Overview of Software Tools COMSM0086 Object-Oriented Programming with Java |
Units you may not take alongside this one |
None |
School/department | School of Computer Science |
Faculty | Faculty of Engineering |
Why is this unit important?
This unit teaches students the key theoretical foundations for the design, development, and delivery of software systems, on the one hand, and emphasizes project management, agile delivery, cross-team communication, and cooperation on the other. The unit provides both theoretical knowledge and practical experience of software development, preparing graduates for real-world software development ecosystems. It introduces students to software development methodologies and best practices, furnishing them with knowledge and skills for the creation of scalable and maintainable software. Additionally, it cultivates collaboration, communication, and problem-solving skills, vital in this team-based industry.
This unit further provides students with a broad overview of the key challenges in software engineering, cutting edge research on various aspects of it, its current role in modern society, as well as various career paths within the Software Engineering domain. In essence, this unit equips our students with the theoretical knowledge for becoming software engineers and provides an opportunity to practice the translation of this knowledge within a development project, making them well-rounded and employable professionals in the field.
How does this unit fit into your programme of study?
This unit provides a practical setting for integrating the programming skills and software tools learned across other units (e.g., C, Java, Software Tools) in this program. It hones appreciation of Software Engineering as an engineering discipline: i.e., use of science-based methods (such as object-oriented modelling and design, usability measures, etc.) in developing software solutions for use by people. It provides an opportunity to practice this engineering approach through development, testing, and project management tasks, as well as appreciate the current research and practice challenges and trends. This unit bridges the gap between the theory and practice of software engineering, making students versatile and highly competent professionals in the computing domain.
An overview of content
This unit focuses on the following topics:
How will students, personally, be different as a result of the unit
This unit will give students a real grounding in theoretical knowledge about Software Engineering principles and how they can be applied to develop software. The students will gain practical experience of undertaking project development and delivery, learn to communicate with other developers, utilise modern software engineering tools, and appreciate the impact of changing requirements and user feedback on the software development and delivery process. They will also learn about the wide variety of professional paths available within the Software Engineering domain and start to identify the specific directions and topics of particular interest to their own careers.
Learning Outcomes
On successful completion of this unit, the students will be able to:
How you will learn
Teaching will be delivered through a combination of synchronous lectures and asynchronous teaching materials (including reading, written materials, slides, audio/videos narrations, and group work) and in-person practical workshops in the lab.
Delivery of the unit takes a problem-based approach, with all teaching activities designed to support students in developing theoretical knowledge and practical skills focused on the Software Engineering topics set for each week. Students are set clearly defined tasks and must select and apply a range of previously presented approaches in order to successfully address each task. These practical objectives include topics such as:
In addition, talks from current practitioners and researchers from the Software Engineering domain in various companies and countries will give our students an opportunity to appreciate wider societal, professional, and research challenges in Software Engineering.
The described approach reflects the characteristics of this subject which, by its very nature, requires a very practical, team-based, applied and hands-on mode of teaching and learning.
Time will be allocated at each weekly lab for continuously developing the students’ projects and receiving feedback from the teaching staff. Additional support sessions will be provided during weeks 9-11 to assist students with completing their coursework.
The examination provides an efficient mechanism to assess the students’ theoretical knowledge of the fundamental techniques, modelling notations and practices of software engineering, as well as of the management and collaboration principles, and high-level understanding of the challenges and careers in software engineering.
The coursework assessment provides an opportunity to assess students’ practical skills and abilities when applied to a longer-term software development project delivery challenge with a significant scale and complexity.
Tasks which help you learn and prepare you for summative tasks (formative):
Teaching will take place over the first 9 weeks of the term (excluding reading week), with coursework support
sessions in weeks 10-11 and project demo sessions taking place in week 12. During the taught phase of the unit, students will progress through a series of workshops that consist of:
a) Structured theory and application tasks, each with specific outputs and objectives related to the theoretical content of the previous lecture. Reference solutions are provided for most of these tasks, so that students may assess their own progress and determine when they have successfully achieved the objectives of a task;
b) Meeting some current Software Engineering practitioners and discussing current practices, research and challenges faced by software engineering professionals;
c) Collaborative sessions, where the students will define and develop their projects. The students will be supported during these sessions with exercises and feedback to facilitate their project development. Group work will also be encouraged.
Completion of these formative tasks will provide students with the skills and knowledge required to pass the assessments. Additionally, the projects and codebase developed over this period will comprise a major part of the coursework-based assessment.
Tasks which count towards your unit mark (summative):
This unit has two elements of assessment:
When assessment does not go to plan
The students eligible for re-assessment will undertake a new individual coursework task.
The re-assessment task will require students to demonstrate their comprehension of key software engineering concepts covered in the unit's theoretical content and show their ability to apply these concepts within a software development context.
A two-week period will be allocated for students to complete their re-assessment task and submit all associated software engineering artifacts, such as models and code commits.
To support students during the re-assessment period, TA-led office hours will be held twice a week. These sessions will provide students with opportunities to seek guidance, clarification, and assistance with the re-assessment task.
If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.
If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMSM0166).
How much time the unit requires
Each credit equates to 10 hours of total student input. For example a 20 credit unit will take you 200 hours
of study to complete. Your total learning time is made up of contact time, directed learning tasks,
independent learning and assessment activity.
See the University Workload statement relating to this unit for more information.
Assessment
The assessment methods listed in this unit specification are designed to enable students to demonstrate the named learning outcomes (LOs). Where a disability prevents a student from undertaking a specific method of assessment, schools will make reasonable adjustments to support a student to demonstrate the LO by an alternative method or with additional resources.
The Board of Examiners will consider all cases where students have failed or not completed the assessments required for credit.
The Board considers each student's outcomes across all the units which contribute to each year's programme of study. For appropriate assessments, if you have self-certificated your absence, you will normally be required to complete it the next time it runs (for assessments at the end of TB1 and TB2 this is usually in the next re-assessment period).
The Board of Examiners will take into account any exceptional circumstances and operates
within the Regulations and Code of Practice for Taught Programmes.