COMP103P - Applied Software Development
This database contains the 2017-18 versions of syllabuses.
Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).
|Prerequisites||Successful completion of COMP101P|
|Taught By||Graham Roberts (40%)|
Dean Mohamedally (40%)
Yun Fu (20%)
|Aims||This module provides a thorough introduction to object-oriented (OO) programming and mobile application development. The first part of the module uses Java to give a grounding in key object-oriented concepts such as class design, inheritance, dynamic binding and interfaces. Material is also included on the implementation of core data structures such as lists, trees and hash tables, and on key development tools and practices.|
The second part of the module focuses on applying the principles of OO programming in the development of apps via learning-by-doing and problem based learning (PBL) approaches. Several introductions to popular mobile and cloud/web service platforms are included, with continued emphasis on the OO approach to software development. User interface (UI) design and implementation is also introduced.
This is an intensely practical module and full student engagement outside of lectures and in lab classes is critical to successful completion of the module. To ensure that the process of designing and implementing mobile and cloud applications is fully understood, the module requires students to undertake a major group project where they must work with an external client to develop and deliver a working application. This takes students through all the stages of a software development project, applying the concepts taught via lectures and online material. Outcomes in addition to the software deliverable include real-world client engagement, team management and project documentation deliverables.
The project clients come from a wide range of backgrounds, including companies of all sizes, the NHS, academic organisations and charities. Each client defines an application that they have a real need for and will put into use. A successful project will not only deliver a working application but also have it ready either for distribution via an app store at their client’s request or for handover as research materials. The interaction with clients to develop software meeting real-world needs is a unique and defining characteristic of this module, and provides students with a thorough introduction to the processes and challenges involved.
|Learning Outcomes||After completing the module attendees will: |
Topics covered in lectures or via online material:
Programming with the Java Programming Language
- The core language.
- Developing classes, inheritance and dynamic binding.
- Exceptions and file handling.
- Comparison of Java to other languages.
- Developing small programs using classes.
- Identifying and implementing class relationships.
- Using abstract classes, interfaces and inheritance.
- Good design and programming practice.
- Using basic UML class diagrams.
- Implementing common data structures, such as trees, lists and hash tables.
- Requirements capture.
- Design for a mobile/cloud/web application.
- Event driven programming.
- App development frameworks.
- Storing data.
Client and Project Management
- Working as an effective software development team.
- Preparing project timelines and document templates.
- Communicating effectively with clients to meet requirements.
- Report writing.
For BSc/MEng Computer Science students the app development project begins during term 1 in the second half of ENGS102P. For MEng Mathematical Computation students the app development project begins at the start of term in January. All projects continue through to late April when the final submission is made.
Students are formed into project teams with three members, each team being allocated a client who provides the requirements for the app to be developed. Project teams are selected by the module organisers, who also provide the clients. Clients will enter a partnership agreement with the student team via a formal contract. Project teams are responsible for organising themselves, submitting regular progress reports and working with the client. Lecturers and teaching assistants monitor progress and provide feedback.
Regular bi-weekly progress reports and a sequence of milestone submissions are made during the course of the project. The final submission includes the working version of the client’s application, and project report documentation for both the client and for assessment.
Each student is required to submit an individual report giving an evaluation of the project and an assessment of each team member including themselves.
Method of Instruction
Lecture presentations and online material. Group project tutorials and group working.
The course has the following assessment components:
- Group Project (80%);
- Two In-class Tests (20%);
To pass this module, a student must:
- Gain a mark of 40% or more from all components combined;
- Obtain a minimum mark of 30% in each component worth ≥ 30% of the module as a whole.
Reading list available via the UCL Library catalogue.