39
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

Introduction to the CSLP and the SELP

Embed Size (px)

DESCRIPTION

An introduction to the Computer Science Large Practical and the Software Engineering Large Practical

Citation preview

Page 1: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Computer Science Large Practicaland

Software Engineering Large Practical

Stephen Gilmore

Friday 21st September, 2012

School of Informatics

Computer Science Large Practical and Software Engineering Large Practical 1 / 39

Page 2: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

About this lecture

This is an introductory lecture explaining two of this year’s largepracticals.

Computer Science Large Practical (CSLP) — described hereSoftware Engineering Large Practical (SELP) — described hereArtificial Intelligence Large Practical (AILP) — described elsewhere

These slides and a more detailed handout will be available from thecourse 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

Page 3: Introduction to the CSLP and the SELP

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 undergraduatestudents, or to fourth-year undergraduate students and MScstudents, who have their own individual projects.

Third-year undergraduate students should choose at most onelarge practical, as allowed by their degree regulations.

On most degrees a large practical is compulsory.On some degrees (typically combined Honours) you can do theSystem Design Project instead, or additionally.

See the Degree Programme Tables (DPT) in the Degree Regulationsand 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

Page 4: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

About these courses

The CS and SE Large Practicals are individual programmingprojects.

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

Page 5: Introduction to the CSLP and the SELP

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 theprogramming 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

Page 6: Introduction to the CSLP and the SELP

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 assignments22 hours private study/reading/other

Computer Science Large Practical and Software Engineering Large Practical 6 / 39

Page 7: Introduction to the CSLP and the SELP

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 firstsemester.

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

Page 8: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Managing your time

It is unlikely that you will want to arrange your work on your largepractical as one day where you do nothing else, but one day perweek all semester is the amount of work that you should do forthe course.

Computer Science Large Practical and Software Engineering Large Practical 8 / 39

Page 9: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Scheduling work

Course lecturers have been asked not to let deadlines overlapWeeks 11–14 because students are expected to be concentratingon their large practical in that time.

Computer Science Large Practical and Software Engineering Large Practical 9 / 39

Page 10: Introduction to the CSLP and the SELP

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

Page 11: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Scheduling work

It is not necessary to keep working on the project right up to thedeadline.

For example, if you are travelling home for Christmas you mightwish 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 submitremotely.

Computer Science Large Practical and Software Engineering Large Practical 11 / 39

Page 12: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Early submission credit

In order to motivate good project management, planning, andefficient software development, the CSLP and the SELP reservemarks 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 notqualify as an early submission, and the mark for this work will becapped at 90%. Thus, the mark may be 90%, but it may not behigher than this.

Regardless of when it is submitted, every submission is assessed inexactly the same way, but submissions which attract a mark ofabove 90% which were not submitted early have this mark broughtdown to 90%.

Computer Science Large Practical and Software Engineering Large Practical 12 / 39

Page 13: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The Computer Science Large Practical

Computer Science Large Practical and Software Engineering Large Practical 13 / 39

Page 14: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The Computer Science Large Practical

The requirement for the Computer Science Large Practical is tocreate an command-line application implemented in Objective-C.

The purpose of the application is to implement a stochasticdiscrete-event simulator for chemical reactions.

Computer Science Large Practical and Software Engineering Large Practical 14 / 39

Page 15: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Why simulation?

Stochastic simulation is an important tool to help understand thechemical and biochemical processes which are constantly underwayin all living things.

Simulation is leading the way in scientific breakthroughs inmedicine, farming and veterinary science, with demonstrablebenefits 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

Page 16: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Why Objective-C?

Learning a new programming language deepens our understandingof computer science.

Using Objective-C exposes us to concepts which we would not see inJava or Haskell.

Increases your employability by adding another programminglanguage to your CV.

Objective-C is becoming more popular so we can keep up withtrends in programming languages.

Computer Science Large Practical and Software Engineering Large Practical 16 / 39

Page 17: Introduction to the CSLP and the SELP

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 popularprogramming language (behind C and Java, just ahead of C++).

Computer Science Large Practical and Software Engineering Large Practical 17 / 39

Page 18: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

How do we simulate chemical reactions?

Chemical reactions change the concentration of chemical speciessuch 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 ata time.

The simulation tracks the number of molecules of each species andterminates when no other reaction can fire, or when a pre-definedsimulation end-time has been reached.

Computer Science Large Practical and Software Engineering Large Practical 18 / 39

Page 19: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

What should the simulator do?

Your simulator should convert a reaction script into a time-seriesoutput expressed as a comma-separated value file with a headerwhich identifies the species in each column of the output.

# simulate to a stop-time of 10 seconds

t = 10

# decay reaction rate d is 1

d = 1.0

# 100 molecules of X initially

X = 100

# X decays to nothing, or disappears

d : X ->

model.txt

⇒Your simulator

written inObjective-C

# t X

0.00, 100

0.01, 98

0.02, 97

0.03, 96

0.04, 95

0.05, 95

0.06, 93

0.07, 91

0.08, 90

.

.

.

.

.

.

model.csv

Computer Science Large Practical and Software Engineering Large Practical 19 / 39

Page 20: Introduction to the CSLP and the SELP

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 stochasticdiscrete-event simulator for chemical reactions.

— � —

Stochastic simulation is an important tool to help understand the chemical and biochemicalprocesses which are constantly underway in all living things. Simulation is leading the way inscientific breakthroughs in medicine, farming and veterinary science, with demonstrable benefitsfor the health and wellbeing of humans, plants and animals. Simulation is important in manyother fields also, such as aerospace, transport, logistics, healthcare, and many others.

— � —

Chemical reactions change the concentration of chemical species such as proteins becausemolecules are created, altered, combined, broken apart, or destroyed. The simulation of theseprocesses takes place one reaction event at a time. The simulation tracks the number ofmolecules of each species and terminates when no other reaction can fire, or when a pre-definedsimulation 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 wewill 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) toproduce a molecule of a compound (C). We write E + S to mean “E and S”, not “E plus S”.

1

Full coursework description available today athttp://www.inf.ed.ac.uk/teaching/

courses/cslp/

Computer Science Large Practical and Software Engineering Large Practical 20 / 39

Page 21: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The Software Engineering Large Practical

Computer Science Large Practical and Software Engineering Large Practical 21 / 39

Page 22: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The Software Engineering Large Practical

The requirement for the Software Engineering Large Practical is tocreate an app implemented in Java and XML for the Android phone.

The purpose of the app is to develop a prototype system to helpstudents to decide who they should vote for in student elections.

Computer Science Large Practical and Software Engineering Large Practical 22 / 39

Page 23: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

How will we test this?

You might not have an Android phone, butthat’s OK. We will use an Eclipse-basedemulator to run our code. The emulator runson Windows, Linux, Ubuntu and Mac OS X.

Computer Science Large Practical and Software Engineering Large Practical 23 / 39

Page 24: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Android development with Eclipse

Computer Science Large Practical and Software Engineering Large Practical 24 / 39

Page 25: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The Android emulator

Computer Science Large Practical and Software Engineering Large Practical 25 / 39

Page 26: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Industrial relevance of the SELP

Employers like to see evidence of practical skills acquisition, and useof state-of-the-art tools.

The Software Engineering Large Practical uses the state-of-the-artAndroid Development Toolkit in Eclipse, as used by professionaldevelopers targeting the Android phone.

Computer Science Large Practical and Software Engineering Large Practical 26 / 39

Page 27: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Smartphone sales

More smartphones sold in the UK run the Android operatingsystem than any other OS.

Computer Science Large Practical and Software Engineering Large Practical 27 / 39

Page 28: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Smartphone sales worldwide

Computer Science Large Practical and Software Engineering Large Practical 28 / 39

Page 29: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Smartphone sales worldwide

Computer Science Large Practical and Software Engineering Large Practical 29 / 39

Page 30: Introduction to the CSLP and the SELP

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), VicePresident (Services), and others.

Candidates reflect on the issues which are important to them andmake promises to the student body on what they will do aboutthese issues if elected to office.

Candidates can submit photographs of themselves and electionstatements explaining what they want to achieve in the hope ofpersuading people to vote for them.

Computer Science Large Practical and Software Engineering Large Practical 30 / 39

Page 31: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

What is the app to do?

In addition to their online materials, candidates make and displayposters to publicise their campaign.

These are displayed on lamp posts, railings and hoardings in BristoSquare, George Square and at the West Mains entrance to King’sBuildings.

Although student elections are important, and the correct procedureshould be followed to ensure fair and transparent elections, theprinting and hanging of hundreds of posters in public spaces aroundEdinburgh has been criticised recently as being environmentallyunfriendly, aesthetically unpleasing, and somewhat old-fashioned.

Computer Science Large Practical and Software Engineering Large Practical 31 / 39

Page 32: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The problem: aesthetically unpleasing

Computer Science Large Practical and Software Engineering Large Practical 32 / 39

Page 33: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The problem: environmentally unfriendly

Computer Science Large Practical and Software Engineering Large Practical 33 / 39

Page 34: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The problem: old-fashioned

Computer Science Large Practical and Software Engineering Large Practical 34 / 39

Page 35: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Another problem: security

Computer Science Large Practical and Software Engineering Large Practical 35 / 39

Page 36: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Another problem: security

Computer Science Large Practical and Software Engineering Large Practical 36 / 39

Page 37: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

The solution: an Android app

The information on candidates is obtained by download of an XMLdocument.

Users of the app should be able to rate election candidates on ascale from zero to five stars and, if they are certain not to vote forthem, to delete candidates entirely.

When the user has decided who to vote for they can use the app tosend a private email and a public tweet.

Computer Science Large Practical and Software Engineering Large Practical 37 / 39

Page 38: Introduction to the CSLP and the SELP

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 implementedin Java and XML for the Android phone. The purpose of the app is to develop a prototypesystem to help students to decide who they should vote for in student elections.

— � —

In a student election, candidates nominate themselves for an office. For EUSA, these officesinclude President, Vice President (Academic Affairs), Vice President (Societies and Activities),Vice President (Services), and others. Candidates reflect on the issues which are important tothem and make promises to the student body on what they will do about these issues if electedto office. Candidates can submit photographs of themselves and election statements explainingwhat they want to achieve in the hope of persuading people to vote for them.

• Photographs are made available in JPEG format with a maximum size of 2Mb. Imagesare 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 morethan 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 theircampaign. These are displayed on lamp posts, railings and hoardings in Bristo Square, GeorgeSquare and at the West Mains entrance to King’s Buildings. Although student elections areimportant, 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 beencriticised recently as being environmentally unfriendly, aesthetically unpleasing, and somewhatold-fashioned.

1

Full coursework description available today athttp://www.inf.ed.ac.uk/teaching/

courses/selp/

Computer Science Large Practical and Software Engineering Large Practical 38 / 39

Page 39: Introduction to the CSLP and the SELP

About Aims Time CSLP SELP Aim Developing Specifics

Questions?

Ask now or email [email protected]

Computer Science Large Practical and Software Engineering Large Practical 39 / 39