THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2021/2022

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 lectures and some practical work.
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)
Co-requisites
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 2021/22, 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). 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 - during drop-in lab sessions as well as bookable 30-minute private meetings with a demonstrator for each part of the project. 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 'Software Engineering'
Sommerville 'Engineering Software Products'
ACM code of ethics: https://www.acm.org/code-of-ethics
BCS code of conduct: https://www.bcs.org/membership/become-a-member/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
Contacts
Course organiserDr Cristina Alexandru
Tel: (0131 6)51 1739
Email: Cristina.Alexandru@ed.ac.uk
Course secretaryMiss Laura Ambrose
Tel: (0131 6)50 5194
Email: lambrose@ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Prospectuses
Important Information