Information in the Degree Programme Tables may still be subject to change in response to Covid-19

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Informatics 2 - Software Engineering and Professional Practice (INFR08032)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 8 (Year 2 Undergraduate) AvailabilityNot available to visiting students
SCQF Credits20 ECTS Credits10
SummarySoftware Engineering and Professional Practice teaches the practice of small team software development in modern society, equipping students to participate in a startup, modern tech company or a software-dependent research team.

Students will gain experience developing a software system from scratch, using some of the key tools of the trade: analysing requirements, designing and implementing new features, testing, version control.

Professional aspects of Software Engineering - its legal, ethical and social environment, including issues of privacy, security, equality, democracy and intellectual property - will be approached through guest lectures and some practical work.

*** This Course replaces Informatics 2C - Introduction to Software Engineering (INFR08019) from 2020-21***

Course description As students enter this course they team up in groups of two to develop a small-scale software system from scratch using an iterative waterfall process. Over the course of the semester, they consider an incomplete specification to derive and analyse requirements, design their solution from a static and dynamic perspective using UML diagrams, construct and test their solution in Java. There is room for interpretation, creativity, and some of the requirements change along the way. Moreover, there are technical, professional and ethical issues surrounding the problem at hand, on which students will need to reflect.

Included in the experience will be use of industry standard tools for software development (integrated development environments, version control, issue tracking), and key elements of modern development practice, such as code review, peer review, and pair programming.

As students engage in this practical work, the course will contextualise it against the broader themes, both of large-scale software engineering and its academic literature, and of today's urgent professional issues: the legal, ethical and social context in which software and its authors exist. Guest lecturers will speak on technical topics, but also on topics such as privacy, security, equality, democracy and intellectual property - some of which will have a direct impact on students' practical work.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Students MUST have passed: Informatics 1 - Introduction to Computation (INFR08025) AND Informatics 1 - Object Oriented Programming (INFR08029)
Prohibited Combinations Students MUST NOT also be taking Informatics 2C - Introduction to Software Engineering (INFR08019)
Other requirements Only open to 2nd year Informatics students, including those on joint degrees.

Prerequisite knowledge of object oriented programming required.
Course Delivery Information
Academic year 2020/21, Not available to visiting students (SS1) Quota:  None
Course Start Semester 2
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 30, Seminar/Tutorial Hours 4, Supervised Practical/Workshop/Studio Hours 22, Feedback/Feedforward Hours 1, Summative Assessment Hours 2, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 137 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Coursework - 100%

The assignment will involve group work, mainly on software development but also on professional issues. The software development component will consist of 3 parts (1. Requirements, 2. Design, 3. Construction and Testing), with the first two being iterated after receiving formative feedback, and the requirement to maintain the whole solution consistent. Each of the parts will include the group's self-assessment and reflection on their progress, software engineering methods and tools used and how they worked for them. Moreover, the third part will include their writing of technical documentation regarding their solution. The professional issues component will involve the regular writing of blog posts on professional and ethical issues surrounding the rest of the assignment.

Engagement in interaction with peers will be assessed based on the group's peer review of another groups' code and tests, as well as each student's contribution in discussions in the class forum and peer reviews of other groups' professional issues blog posts.

Finally, a majority of correct replies to multiple choice questions online in between lectures will contribute towards a good mark.
Feedback Students will be provided with formative feedback - on both the software development project and the professional issues blog posts to date - after the first two deadlines of the assignment. Moreover, videos of group feedback will be provided. The students will have the opportunity to consider the feedback and improve their work, until the third and last assignment deadline which will be for summative feedback and marks. This third deadline will also consider student engagement in interaction with peers and their replies to multiple-choice questions within the mark.

Formative feedback will also be provided during drop-in lab sessions scheduled irregularly and more frequently as project deadlines are approaching. For the third part of the project, extra support in terms of a bookable 30-minute private meeting with a demonstrator will be made available. Moreover, students will gather peer feedback on their professional issues blogging, and on part of their code and tests from another group. Finally, ongoing support will be provided via an online forum, virtual office hours and email.

No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Explain the modern techniques used in the design and development of large-scale software systems
  2. Apply, evaluate and reflect on these techniques in a small-scale, but realistic scenario
  3. Analyse the professional and ethical implications of software engineering decisions and propose solutions
  4. Comfortably read and write technical documentation.
  5. Constructively engage in interaction with peers.
Reading List
Sommerville 'Engineering Software Products'
ACM code of ethics:
BCS code of conduct:
Additional Information
Graduate Attributes and Skills This course develops a wide range of graduate attributes and skills across several areas:
* Cognitive skills: problem-solving, critical/analytical thinking, handling ambiguity.
* Responsibility, autonomy, effectiveness: independent learning, self-awareness and reflection, creativity, decision- making, organization and time management, flexibility and change management, ethical/social/professional awareness and responsibility.
*Communication: interpersonal/teamwork skills, verbal and written communication.
Special Arrangements Only open to 2nd year Informatics students, including those on joint degrees.

Prerequisite knowledge of object oriented programming required.
Keywordssoftware engineering,professional practice,ethics
Course organiserDr Cristina Alexandru
Tel: (0131 6)51 1739
Course secretaryMs Kendal Reid
Tel: (0131 6)51 3249
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information