Software Engineering Large Practical (2014—2015)

Course Description

The Software Engineering Large Practical exposes students to the problems that arise with the design and implementation of large scale computer systems, and to methods of coping with such problems.

Further details can be obtained by visiting the drps page for the course.

Eligibility

Lectures

Discussion Forum

There is a discussion forum for the course located here. You have to be logged into your EASE account.

Grading

There is no exam for this course, assessment is 100% based on the assigned coursework.

Coursework

The coursework will be detailed further in the lectures.

The coursework handout will become available on the 17th of September 2014.

General University and School of Informatics rules for course work

Deadlines

There are two parts, the deadlines are:

Feedback

Announcements

Clarifications

Question:
I'd like to know more information about the difference between the Computer Science Large Practical and the Software Engineering Large Practical so that I can make my course choice.
Answer:

That's a good question. First of all I would suggest coming along to the first lectures of both. You should be able to switch courses up until the end of week one (it's a tad unfortunate that the CSLP will have its first lecture on Friday not leaving much time after that). I should of course also suggest that you speak with your PT, but I'm guessing you already have and they have essentially told you that either is fine.

The two courses do have quite a bit of similarity. In both cases you will be developing some large piece of software (size is relative, we mean large in comparison to the coursework you have done for other individual courses). The difference is what you learn from doing so. The software engineer is concerned with producing a piece of software to satisfy some set of requirements. Often those requirements will not be very well specified and in some cases the correct thing to build will not be known when you start. The focus is on building a piece of software that is fit for purpose and hence can be used by the intended users. The computer scientist on the other hand is likely more interested in finding out some particular fact or facts. They are using the computer to gain insight and hence they may be less concerned with how *others* can use their software provided that their software can answer the questions *they* care about.

Of course in real life, the computer scientist may write more general software. So you may start with a computer program which is capable of, for example, computing your own devised economic model. But you then realise that many other economists could benefit from much of your functionality (suppose it solves a set of differential equations), so you generalise your software a little and you come up with some kind of DSL for inputting the economic model. At this point, you may have some users and you become something closer to the software engineer. Even if your software does not go down this path it is rarely a bad thing to keep your source code well organised and maintainable so that you can update it in the future, if only because you now want to answer a *similar* question to the one before. Additionally you may well have collaborators who either want to use your program or modify your source code.

If I can try to sum up the difference in a short sentence or two, I might try something like this: The SELP is focussed on developing a particular piece of software to fulfil some requirement and as such is more concerned with your development process and the end result. The CSLP is more concerned with using programming skills to investigate some interesting problem or question.

Another attempt might look something like this: The CSLP produces a program that has some desired output from some given input, whereas the SELP has some desired *behaviour*, and this behaviour should be intuitive to the intended user (although that may be another machine).

Just as the computer scientist may turn software engineer, the software engineer may turn computer scientist. The correct behaviour may require the correct computation of some function. For example a smartphone application which acts as a pocket unit-converter must have an intuitive interface, but it must also accurately convert metres into yards, lbs into kilograms etc.

Just as a final note, in theory the Software Engineering Large Practical could be devoted to a project to investigate some aspect of software engineering. However, for this year at least, the course will be centred around applying software engineering principles and practices to the development of some (hopefully interesting) piece of software.

I hope this has not confused more than it has helped but I did not want to simply repeat what you have already read in the DRPS.

Question:
Can I submit both an early submission version and a version for the end deadline and have the marks for whichever is highest?
Answer:
No. Before the early submission deadline you have to choose whether or not you are going to hope for a mark above 90% now, or have an extra week to accumulate more marks up to 90%. The submission marked will be the latest one made before the deadline. Hence if you submit both before and after the early submission deadline, only the last submission will be marked and it will be capped to 90%.

Slides and Lecture Log

Slides for upcoming lectures should appear here before the lecture and will remain once the lecture has been given. Slides are subject to some minor modifications at any time prior to the start of the lecture.

Introduction - 17th September

Slides available here.


Last Updated: 17th September 2014 --- Allan Clark


Home : Teaching : Courses 

Informatics Forum, 10 Crichton Street, Edinburgh, EH8 9AB, Scotland, UK
Tel: +44 131 651 5661, Fax: +44 131 651 1426, E-mail: school-office@inf.ed.ac.uk
Please contact our webadmin with any comments or corrections. Logging and Cookies
Unless explicitly stated otherwise, all material is copyright © The University of Edinburgh