- UCAS course code
- GG14
- UCAS institution code
- M20
Course unit details:
Software Engineering 1
Unit code | COMP23311 |
---|---|
Credit rating | 10 |
Unit level | Level 2 |
Teaching period(s) | Semester 1 |
Available as a free choice unit? | No |
Overview
This course covers many aspects of software engineering and contains much essential information about working with a large codebase authored by many programmers, most of whom are not around.
Pre/co-requisites
Unit title | Unit code | Requirement type | Description |
---|---|---|---|
Introduction to Programming 1 | COMP16321 | Pre-Requisite | Compulsory |
Introduction to Programming 2 | COMP16412 | Pre-Requisite | Compulsory |
Aims
This unit aims to help students appreciate the reality of team-based software development in an industrial environment, with customer needs, budget constraints and delivery schedules to be met. Through hands-on experience with an industry-strength development toolkit applied to a large open source software system, students will gain an appreciation of the challenges of green and brownfield software development, along with an understanding of the core software engineering concepts that underpin current best practice. Students will have the core skill set needed by a practicing software engineer, and will be ready to become productive and valuable members of any modern software team.
Assessment is based on:
- Two team-based exercises, making changes to the open source system used in the course unit. Together these contribute towards 60% of the total course unit mark.
- Two individual coursework exercises together contributing towards 10% of the mark for the course unit.
- A multiple choice examination, at the end of the semester. This contributes towards 30% of the total course unit mark.
Learning outcomes
-
make use of industry standard tools for version management, issue tracking, automated build, unit testing, code quality management, code review and continuous integration.
-
write unit tests to reveal a bug or describe a new feature to be added to a system, using a test-first coding approach.
-
explain the value of code reviews, and to write constructive and helpful reviews of code written by others.
-
make use of basic Git workflows to coordinate parallel development on a code base and to maintain the quality of code scheduled for release.
-
explain the role of software patterns (design and architectural) in creating large code bases that will be maintainable over the long term.
-
explain why code that is easy to test is easy to maintain, and make use of test code smells in identifying and correcting design flaws (design for testability).
-
apply basic software refactorings to maintain or improve code quality.
-
explain the challenges inherent in cost estimation for software development, and create defensible estimates with the help of work breakdown structures.
Syllabus
|
Teaching and learning methods
Lectures
1 introductory lecture in semester 1, week 1.
Workshops
One 2 hour workshop each week. In these sessions, you will gain practical, hands-on experience of the techniques being taught.
Team Study Sessions
Two 1 hour sessions per week. In these sessions you will:
- Work with your team on the team coursework
- Meet your industrial mentor (2 sessions per team)
- Get your team coursework marked in a face-to-face interview (3 sessions per team).
Offline Study
A number of off-line study activities and readings are provided, that build on and consolidate the topics covered in workshops. These are compulsory and are assessed in the coursework and exam.
Employability skills
- Analytical skills
- Group/team working
- Innovation/creativity
- Leadership
- Project management
- Oral communication
- Problem solving
- Written communication
Assessment methods
Method | Weight |
---|---|
Written exam | 30% |
Practical skills assessment | 70% |
Feedback methods
Staff and TAs will be on hand to provide face-to-face informal feedback during workshops and team study sessions.
The RoboTA system will provide continuous feedback on aspects of the team marking system, using the Jenkins continuous integration system.
TAs will also provide written and verbal feedback on coursework, once marking is complete.
Recommended reading
COMP23311 reading list can be found on the Department of Computer Science website for current students.
Study hours
Scheduled activity hours | |
---|---|
Lectures | 1 |
Practical classes & workshops | 64 |
Independent study hours | |
---|---|
Independent study | 35 |
Teaching staff
Staff member | Role |
---|---|
Suzanne Embury | Unit coordinator |
Additional notes
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.
course textbook https://software-eng.netlify.app/