- Homepage
- Key Information
- Students
- Taught programmes (UG / PGT)
- Student Services and Procedures
- Student Support
- Events and Colloquia
- International Students
- Students as Change Agents (SACA)
- Student Staff Liaison Committees (SSLC)
- The Exeter Award
- Peer Support
- Skills Development
- Equality and Diversity
- Athena SWAN
- Outreach
- Living Systems Institute Webpage
- Alumni
- Info points and hubs
- Inbound Exchange Students
- Staff
- PGR
- Health and Safety
- Computer Support
- National Student Survey (NSS)
- Intranet Help
- College Website
ECM2414 - Software Development (2015)
MODULE TITLE | Software Development | CREDIT VALUE | 15 |
---|---|---|---|
MODULE CODE | ECM2414 | MODULE CONVENER | Prof Edward Keedwell (Coordinator) |
DURATION: TERM | 1 | 2 | 3 |
---|---|---|---|
DURATION: WEEKS | 11 |
Number of Students Taking Module (anticipated) | 41 |
---|
The module will introduce you to software design and development concepts and methods, alongside intermediate and advanced constructs and concepts in the Java programming language, and the programming paradigms these relate to. This includes generic programming (and Java generics), concurrent programming (via Java threads), design patterns, networked programs and nested inner classes. We will also cover widespread tools in software development, including version control, unit testing, and code coverage.
Prerequisite module: ECM1410 or equivalent
This module will introduce you to methods for the rigorous testing and assessment of software, and prepare you for complex programming tasks in a specific object-oriented programming language, including advanced concepts and syntax, and the use of multiple programs in parallel.
On successful completion of this module, you should be able to:
Module Specific Skills and Knowledge:
1 use a software design and development method which incorporates both formal and informal techniques appropriately;
2 design and implement rigorous testing frameworks for software, and be aware of the inherent limitations of tests developed;
3 deploy advanced object-oriented language concepts and techniques;
4 develop multi-program software systems.
Discipline Specific Skills and Knowledge:
5 follow the phases of software development;
6 recognise and evaluate different development practices, and judge their appropriateness for a specific development problem.
Personal and Key Transferable / Employment Skills and Knowledge:
7 analyse and break down a problem into constituent parts;
8 compare and critically contrast different potential solutions to a problem.
The module syllabus is based on the four themes below, each individual topic listed being related to at least one of these themes:
- software design: system architectures, design patterns (builder pattern, singleton pattern, abstract factory method pattern, decorator pattern);
- software development and testing: fundamentals of software development and testing, V-model, unit testing, code coverage, corner cases, unit tests and the JUnit framework, mock objects and test suites, sophisticated integrated development environments (IDEs), profilers, version control systems;
- doing multiple things at once: concurrency, multi-tasking and threading, race conditions, atomic data, locks, deadlock, starvation, livelock, synchronisation, thread notification, data freshness, instance confinement, object publication and escape, safe construction, thread confinement, thread management, thread states, sockets, remote method invocation;
- programming styles and advanced Java syntax: generic programming, Java generics, event-driven programming, events and listeners, reflection in Java, Java collections framework.
Scheduled Learning & Teaching Activities | 52.00 | Guided Independent Study | 98.00 | Placement / Study Abroad | 0.00 |
---|
Category | Hours of study time | Description | |
Scheduled learning and teaching activities | 22 | Lectures | |
Scheduled learning and teaching activities | 20 | Workshops/tutorials | |
Scheduled learning and teaching activities | 10 | Surgeries | |
Guided independent study | 20 | Individual assessed work | |
|
78 | Wider reading and exam preparation |
Form of Assessment | Size of Assessment (e.g. duration/length) | ILOs Assessed | Feedback Method |
---|---|---|---|
Coursework – practical programming assignments | 10 hours | 1, 3, 5, 6, 7, 8 | Oral, on feedback sheet, and in model answer review in surgeries |
Coursework | 40 | Written Exams | 60 | Practical Exams | 0 |
---|
Form of Assessment | % of Credit | Size of Assessment (e.g. duration/length) | ILOs Assessed | Feedback Method |
---|---|---|---|---|
Written exam – closed book | 60 | 2 hours | 3, 5, 6, 7, 8 | Oral, on request |
Coursework 1 – practical programming assignment | 20 | 20 hours | All | Written feedback submitted code/assignment and/or on feedback sheet. Oral feedback in surgeries |
Coursework 2 – practical programming assignment | 20 | 20 hours | All | Written feedback submitted code/assignment and/or on feedback sheet. Oral feedback in surgeries |
Original Form of Assessment | Form of Re-assessment | ILOs Re-assessed | Time Scale for Re-reassessment |
---|---|---|---|
All above | Written exam (100%) | All | August Ref/Def period |
Reassessment is by written exam only. For referred candidates the exam mark is capped at 40%. Deferred candidates will be awarded the higher of the uncapped exam mark alone and the uncapped exam mark combined with marks from previously completed assessments in the ratio 60:40.
information that you are expected to consult. Further guidance will be provided by the Module Convener
ELE: College to provide hyperlink to appropriate pages
Reading list for this module:
Type | Author | Title | Edition | Publisher | Year | ISBN | Search |
---|---|---|---|---|---|---|---|
Set | James Nino and Frederick A. Horsch | Introduction to Programming and Object Orientated Design Using Java | 3rd | Wiley | 2008 | [Library] | |
Set | Niemeyer, Patrick and Knudsen, Jonathan | Learning Java | 3rd | O'Reilly | 2005 | [Library] | |
Set | Freeman, E & E, Sierra, K, Bates, B | Head First Design Patterns | O'Reilly Media | 2004 | 978-0596007126 | [Library] | |
Extended | Hunt A. and Thomas D. | Pragmatic Unit Testing In Java with JUnit | Pragmatic bookshelf | 2003 | 0-9745140-1-2 | [Library] | |
Extended | Downey, Adam | How to think like a computer scientist | 4th | http://www.greentreepress.com/thinkapjava/ | 2004 | [Library] | |
Extended | Darwin, Ian | Java Cookbook | 2nd | O'Reilly | 2004 | 978-0596007010 | [Library] |
Extended | Bloch, Joshua | Effective Java: Programming Language Guide | 2nd | Addison Wesley | 2008 | 978-0321356680 | [Library] |
Extended | Winder, Russel and Roberts, Graham | Developing Java Software | 3rd | Wiley | 2006 | [Library] |
CREDIT VALUE | 15 | ECTS VALUE | 7.5 |
---|---|---|---|
PRE-REQUISITE MODULES | ECM1410 |
---|---|
CO-REQUISITE MODULES |
NQF LEVEL (FHEQ) | 2 (NQF level 5) | AVAILABLE AS DISTANCE LEARNING | No |
---|---|---|---|
ORIGIN DATE | Friday 09 January 2015 | LAST REVISION DATE | Tuesday 13 October 2015 |
KEY WORDS SEARCH | Software development; Java; concurrent programs; design patterns; software testing; networked programs. |
---|