This module will introduce you to object-oriented problem-solving methods and provide you with object-oriented (OO) techniques for the analysis, design and implementation of solutions. We will introduce you to these concepts, and you will develop skills with a new programming language. By the end of this module, you will be able to apply these skills to design and implement small applications.
Prerequisite module: ECM1400 or ECM1709 or equivalent
The module aims to provide you with a thorough grounding in the fundamentals of object-oriented design concepts, alongside the fundamentals of the Java programming language, and general object-orientated design concepts. It will also introduce you to widely used components of the unified modelling language (UML), teach you how to interpret and implement a Java program from these higher-level designs, along with the pari programming approach used in industry.
INTENDED LEARNING OUTCOMES (ILOs) (see assessment section below for how ILOs will be assessed)
On successful completion of this module, you should be able to:
Module Specific Skills and Knowledge:
1 demonstrate an appreciation of object-oriented modelling techniques;
2 interpret and modify program fragments in an object-oriented language;
3 follow an object-oriented development method to produce a design from a specification;
4 systematically test programs developed;
5 document software to accepted standards.
Discipline Specific Skills and Knowledge:
6 interpret a requirements specification;
7 systematically break down a problem into its components;
8 understand and choose between programming languages, and basic techniques.
Personal and Key Transferable / Employment Skills and Knowledge:
9 use technical manuals and books to interpret technical errors;
10 analyse a problem and synthesise a solution.
11 follow the pair-programming development approach used widely in industry.
SYLLABUS PLAN - summary of the structure and academic content of the module
The module syllabus is based on the three themes below, each individual topic listed being related to at least one of these themes:
- introduction to object-oriented concepts and fundamentals: classes, methods, attributes, procedural versus object-oriented programming, object state, scope, inheritance (single and multiple), polymorphism, object persistence;
- programming in the Java language: overview (compilation, intermediate and machine code, virtual machines), Java primitives, fundamental classes, conditionals, variables, statements, equivalence, passing by value, iteration, arrays as objects, assertions, exceptions, stack and heap, packages, shadowing versus overriding;
- design documentation tools: the unified modelling language (UML): UML Algorithms, UML class diagrams, UML advanced class diagrams, UML state machine diagrams, UML sequence diagrams, programming by contract, JavaDoc, annotations.