1. About Aims Time CSLP SELP Aim Developing Specifics
Computer Science Large Practical
and
Software Engineering Large Practical
Stephen Gilmore
Friday 21st September, 2012
School of Informatics
Computer Science Large Practical and Software Engineering Large Practical 1 / 39
2. About Aims Time CSLP SELP Aim Developing Specifics
About this lecture
This is an introductory lecture explaining two of this year’s large
practicals.
Computer Science Large Practical (CSLP) — described here
Software Engineering Large Practical (SELP) — described here
Artificial Intelligence Large Practical (AILP) — described elsewhere
These slides and a more detailed handout will be available from the
course web pages after the lecture.
http://www.inf.ed.ac.uk/teaching/courses/cslp/
http://www.inf.ed.ac.uk/teaching/courses/selp/
Please ask questions at any time.
Computer Science Large Practical and Software Engineering Large Practical 2 / 39
3. About Aims Time CSLP SELP Aim Developing Specifics
Restrictions
The CSLP and the SELP are third-year undergraduate courses.
They are only available to third-year undergraduate students.
The CSLP and the SELP are not available to visiting undergraduate
students, or to fourth-year undergraduate students and MSc
students, who have their own individual projects.
Third-year undergraduate students should choose at most one
large practical, as allowed by their degree regulations.
On most degrees a large practical is compulsory.
On some degrees (typically combined Honours) you can do the
System Design Project instead, or additionally.
See the Degree Programme Tables (DPT) in the Degree Regulations
and Programmes of Study (DRPS) for your degree for clarification.
http://www.drps.ed.ac.uk/12-13/dpt/drps_inf.htm
Computer Science Large Practical and Software Engineering Large Practical 3 / 39
4. About Aims Time CSLP SELP Aim Developing Specifics
About these courses
The CS and SE Large Practicals are individual programming
projects.
They run throughout the first semester.
They are assessed by coursework only — no examination papers.
Computer Science Large Practical and Software Engineering Large Practical 4 / 39
5. About Aims Time CSLP SELP Aim Developing Specifics
How are these courses different from others?
Because the large practicals are on a larger scale than the
programming courseworks which you have done previously there is
a set of requirements (rather than a specification);
a design element to the course; and
more scope for creativity.
The large practicals try to prepare you for
The System Design Project (in the second semester)
The Individual Project (in fourth year).
Computer Science Large Practical and Software Engineering Large Practical 5 / 39
6. About Aims Time CSLP SELP Aim Developing Specifics
How much time should I spend?
100 hours, all in Semester 1, of which
8 hours lecture/demonstrating
92 hours practical work, of which
70 hours non-timetabled assessed assignments
22 hours private study/reading/other
Computer Science Large Practical and Software Engineering Large Practical 6 / 39
7. About Aims Time CSLP SELP Aim Developing Specifics
How much time is that really?
You can think of this as approximately one day per week in first
semester.
you work 7 hours in one day (9:00–5:00, say, with an hour for lunch)
there are 13 weeks remaining in first semester (Week 2 to Week 14)
7 × 13 = 91 hours
Computer Science Large Practical and Software Engineering Large Practical 7 / 39
8. About Aims Time CSLP SELP Aim Developing Specifics
Managing your time
It is unlikely that you will want to arrange your work on your large
practical as one day where you do nothing else, but one day per
week all semester is the amount of work that you should do for
the course.
Computer Science Large Practical and Software Engineering Large Practical 8 / 39
9. About Aims Time CSLP SELP Aim Developing Specifics
Scheduling work
Course lecturers have been asked not to let deadlines overlap
Weeks 11–14 because students are expected to be concentrating
on their large practical in that time.
Computer Science Large Practical and Software Engineering Large Practical 9 / 39
10. About Aims Time CSLP SELP Aim Developing Specifics
Deadlines
The CS and SE Large Practicals are in two parts:
Part 1 Thursday 25th October, 2012 at 16:00
Part 2 Thursday 20th December, 2012 at 16:00
Part 1 is zero-weighted: it is just for feedback.
Part 2 is worth 100% of the marks.
Computer Science Large Practical and Software Engineering Large Practical 10 / 39
11. About Aims Time CSLP SELP Aim Developing Specifics
Scheduling work
It is not necessary to keep working on the project right up to the
deadline.
For example, if you are travelling home for Christmas you might
wish to submit the project early.
In this case you need to ensure that you start the project early.
The coursework handin is electronic so it is possible to submit
remotely.
Computer Science Large Practical and Software Engineering Large Practical 11 / 39
12. About Aims Time CSLP SELP Aim Developing Specifics
Early submission credit
In order to motivate good project management, planning, and
efficient software development, the CSLP and the SELP reserve
marks above 90% for work which is submitted early (specifically,
one week before the deadline for Part 2).
Work submitted less than a week before the deadline does not
qualify as an early submission, and the mark for this work will be
capped at 90%. Thus, the mark may be 90%, but it may not be
higher than this.
Regardless of when it is submitted, every submission is assessed in
exactly the same way, but submissions which attract a mark of
above 90% which were not submitted early have this mark brought
down to 90%.
Computer Science Large Practical and Software Engineering Large Practical 12 / 39
13. About Aims Time CSLP SELP Aim Developing Specifics
The Computer Science Large Practical
Computer Science Large Practical and Software Engineering Large Practical 13 / 39
14. About Aims Time CSLP SELP Aim Developing Specifics
The Computer Science Large Practical
The requirement for the Computer Science Large Practical is to
create an command-line application implemented in Objective-C.
The purpose of the application is to implement a stochastic
discrete-event simulator for chemical reactions.
Computer Science Large Practical and Software Engineering Large Practical 14 / 39
15. About Aims Time CSLP SELP Aim Developing Specifics
Why simulation?
Stochastic simulation is an important tool to help understand the
chemical and biochemical processes which are constantly underway
in all living things.
Simulation is leading the way in scientific breakthroughs in
medicine, farming and veterinary science, with demonstrable
benefits for the health and wellbeing of humans, plants and animals.
Simulation is important in many other fields also, such as aerospace,
aviation, transport, logistics, healthcare, and many others.
Computer Science Large Practical and Software Engineering Large Practical 15 / 39
16. About Aims Time CSLP SELP Aim Developing Specifics
Why Objective-C?
Learning a new programming language deepens our understanding
of computer science.
Using Objective-C exposes us to concepts which we would not see in
Java or Haskell.
Increases your employability by adding another programming
language to your CV.
Objective-C is becoming more popular so we can keep up with
trends in programming languages.
Computer Science Large Practical and Software Engineering Large Practical 16 / 39
17. About Aims Time CSLP SELP Aim Developing Specifics
The Objective-C Programming Language
By some measures of programming language popularity,
Objective-C is thought to be the world’s third most popular
programming language (behind C and Java, just ahead of C++).
Computer Science Large Practical and Software Engineering Large Practical 17 / 39
18. About Aims Time CSLP SELP Aim Developing Specifics
How do we simulate chemical reactions?
Chemical reactions change the concentration of chemical species
such as proteins because molecules are created, altered, combined,
broken apart, or destroyed.
• + • → • — red and yellow make an orange molecule
• → • + • — an orange molecule breaks into a red and a yellow
• → — a blue molecule is destroyed
→ • — a green molecule is created
The simulation of these processes takes place one reaction event at
a time.
The simulation tracks the number of molecules of each species and
terminates when no other reaction can fire, or when a pre-defined
simulation end-time has been reached.
Computer Science Large Practical and Software Engineering Large Practical 18 / 39
19. About Aims Time CSLP SELP Aim Developing Specifics
What should the simulator do?
Your simulator should convert a reaction script into a time-series
output expressed as a comma-separated value file with a header
which identifies the species in each column of the output.
# t X
# simulate to a stop-time of 10 seconds 0.00, 100
t = 10 0.01, 98
0.02, 97
# decay reaction rate d is 1 0.03, 96
d = 1.0 0.04, 95
Your simulator 0.05, 95
# 100 molecules of X initially ⇒ written in ⇒ 0.06, 93
X = 100 Objective-C 0.07, 91
0.08, 90
# X decays to nothing, or disappears
. .
d : X -> . .
. .
model.txt
model.csv
Computer Science Large Practical and Software Engineering Large Practical 19 / 39
20. About Aims Time CSLP SELP Aim Developing Specifics
Computer Science Large Practical
Computer Science Large Practical
2012/2013
Professor Stephen Gilmore
School of Informatics
Issued on: Friday 21st September, 2012
Introduction
The requirement for the Computer Science Large Practical is to create an command-line appli-
cation implemented in Objective-C. The purpose of the application is to implement a stochastic
discrete-event simulator for chemical reactions.
—
Full coursework description available today at
—
Stochastic simulation is an important tool to help understand the chemical and biochemical
processes which are constantly underway in all living things. Simulation is leading the way in
scientific breakthroughs in medicine, farming and veterinary science, with demonstrable benefits
http://www.inf.ed.ac.uk/teaching/
for the health and wellbeing of humans, plants and animals. Simulation is important in many
other fields also, such as aerospace, transport, logistics, healthcare, and many others.
— —
courses/cslp/
Chemical reactions change the concentration of chemical species such as proteins because
molecules are created, altered, combined, broken apart, or destroyed. The simulation of these
processes takes place one reaction event at a time. The simulation tracks the number of
molecules of each species and terminates when no other reaction can fire, or when a pre-defined
simulation end-time has been reached.
— —
We are concerned here with exact stochastic simulation, in which each reaction event is sim-
ulated. Other stochastic simulation algorithms exist, called approximate simulation algorithms.
These estimate the effect of numerous reaction events in order to speed up a simulation, but we
will not be concerned with these here.
— —
Reaction events change one chemical species into another. For example, the reaction event f ,
f :E+S →C
describes a collision between a molecule of enzyme (E) and a molecule of substrate (S) to
produce a molecule of a compound (C). We write E + S to mean “E and S”, not “E plus S”.
1
Computer Science Large Practical and Software Engineering Large Practical 20 / 39
21. About Aims Time CSLP SELP Aim Developing Specifics
The Software Engineering Large Practical
Computer Science Large Practical and Software Engineering Large Practical 21 / 39
22. About Aims Time CSLP SELP Aim Developing Specifics
The Software Engineering Large Practical
The requirement for the Software Engineering Large Practical is to
create an app implemented in Java and XML for the Android phone.
The purpose of the app is to develop a prototype system to help
students to decide who they should vote for in student elections.
Computer Science Large Practical and Software Engineering Large Practical 22 / 39
23. About Aims Time CSLP SELP Aim Developing Specifics
How will we test this?
You might not have an Android phone, but
that’s OK. We will use an Eclipse-based
emulator to run our code. The emulator runs
on Windows, Linux, Ubuntu and Mac OS X.
Computer Science Large Practical and Software Engineering Large Practical 23 / 39
24. About Aims Time CSLP SELP Aim Developing Specifics
Android development with Eclipse
Computer Science Large Practical and Software Engineering Large Practical 24 / 39
25. About Aims Time CSLP SELP Aim Developing Specifics
The Android emulator
Computer Science Large Practical and Software Engineering Large Practical 25 / 39
26. About Aims Time CSLP SELP Aim Developing Specifics
Industrial relevance of the SELP
Employers like to see evidence of practical skills acquisition, and use
of state-of-the-art tools.
The Software Engineering Large Practical uses the state-of-the-art
Android Development Toolkit in Eclipse, as used by professional
developers targeting the Android phone.
Computer Science Large Practical and Software Engineering Large Practical 26 / 39
27. About Aims Time CSLP SELP Aim Developing Specifics
Smartphone sales
More smartphones sold in the UK run the Android operating
system than any other OS.
Computer Science Large Practical and Software Engineering Large Practical 27 / 39
28. About Aims Time CSLP SELP Aim Developing Specifics
Smartphone sales worldwide
Computer Science Large Practical and Software Engineering Large Practical 28 / 39
29. About Aims Time CSLP SELP Aim Developing Specifics
Smartphone sales worldwide
Computer Science Large Practical and Software Engineering Large Practical 29 / 39
30. About Aims Time CSLP SELP Aim Developing Specifics
What is the app to do?
In a student election, candidates nominate themselves for an office.
For EUSA, these offices include President, Vice President
(Academic Affairs), Vice President (Societies and Activities), Vice
President (Services), and others.
Candidates reflect on the issues which are important to them and
make promises to the student body on what they will do about
these issues if elected to office.
Candidates can submit photographs of themselves and election
statements explaining what they want to achieve in the hope of
persuading people to vote for them.
Computer Science Large Practical and Software Engineering Large Practical 30 / 39
31. About Aims Time CSLP SELP Aim Developing Specifics
What is the app to do?
In addition to their online materials, candidates make and display
posters to publicise their campaign.
These are displayed on lamp posts, railings and hoardings in Bristo
Square, George Square and at the West Mains entrance to King’s
Buildings.
Although student elections are important, and the correct procedure
should be followed to ensure fair and transparent elections, the
printing and hanging of hundreds of posters in public spaces around
Edinburgh has been criticised recently as being environmentally
unfriendly, aesthetically unpleasing, and somewhat old-fashioned.
Computer Science Large Practical and Software Engineering Large Practical 31 / 39
32. About Aims Time CSLP SELP Aim Developing Specifics
The problem: aesthetically unpleasing
Computer Science Large Practical and Software Engineering Large Practical 32 / 39
33. About Aims Time CSLP SELP Aim Developing Specifics
The problem: environmentally unfriendly
Computer Science Large Practical and Software Engineering Large Practical 33 / 39
34. About Aims Time CSLP SELP Aim Developing Specifics
The problem: old-fashioned
Computer Science Large Practical and Software Engineering Large Practical 34 / 39
35. About Aims Time CSLP SELP Aim Developing Specifics
Another problem: security
Computer Science Large Practical and Software Engineering Large Practical 35 / 39
36. About Aims Time CSLP SELP Aim Developing Specifics
Another problem: security
Computer Science Large Practical and Software Engineering Large Practical 36 / 39
37. About Aims Time CSLP SELP Aim Developing Specifics
The solution: an Android app
The information on candidates is obtained by download of an XML
document.
Users of the app should be able to rate election candidates on a
scale from zero to five stars and, if they are certain not to vote for
them, to delete candidates entirely.
When the user has decided who to vote for they can use the app to
send a private email and a public tweet.
Computer Science Large Practical and Software Engineering Large Practical 37 / 39
38. About Aims Time CSLP SELP Aim Developing Specifics
Software Engineering Large Practical
Software Engineering Large Practical
2012/2013
Professor Stephen Gilmore
School of Informatics
Issued on: Friday 21st September, 2012
Introduction
The requirement for the Software Engineering Large Practical is to create an app implemented
in Java and XML for the Android phone. The purpose of the app is to develop a prototype
system to help students to decide who they should vote for in student elections.
—
Full coursework description available today at
—
In a student election, candidates nominate themselves for an office. For EUSA, these offices
include President, Vice President (Academic Affairs), Vice President (Societies and Activities),
http://www.inf.ed.ac.uk/teaching/
Vice President (Services), and others. Candidates reflect on the issues which are important to
them and make promises to the student body on what they will do about these issues if elected
to office. Candidates can submit photographs of themselves and election statements explaining
what they want to achieve in the hope of persuading people to vote for them.
courses/selp/
• Photographs are made available in JPEG format with a maximum size of 2Mb. Images
are at a resolution of 120 pixels wide by 150 pixels high.
• The number of words allowed in the election statement varies by office but is never more
than 450 words.
The photograph and statement are made available on the election website.
— —
In addition to their online materials, candidates make and display posters to publicise their
campaign. These are displayed on lamp posts, railings and hoardings in Bristo Square, George
Square and at the West Mains entrance to King’s Buildings. Although student elections are
important, and the correct procedure should be followed to ensure fair and transparent elections,
the printing and hanging of hundreds of posters in public spaces around Edinburgh has been
criticised recently as being environmentally unfriendly, aesthetically unpleasing, and somewhat
old-fashioned.
1
Computer Science Large Practical and Software Engineering Large Practical 38 / 39
39. About Aims Time CSLP SELP Aim Developing Specifics
Questions?
Ask now or email Stephen.Gilmore@ed.ac.uk
Computer Science Large Practical and Software Engineering Large Practical 39 / 39