PROGRAMMING 2

SHE Level 2
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M2I325618
Module Leader Martin Gallacher
School School of Computing, Engineering and Built Environment
Subject Computing
Trimester
  • A (September start)

Pre-Requisite Knowledge

Programming 1 or equivalent

Summary of Content

This module builds on the object-oriented concepts and programming language features covered in the 'Programming 1' module and provides a solid grounding in the principles and practice of object-oriented programming, and the use of the Unified Modelling Language (UML) for code visualisation. Students will learn to use a range of capabilities provided by a modern object-oriented programming language, along with techniques and practices for the development of robust and secure code. On completion of this module students will be able to develop and test complex object-oriented applications.

Syllabus

Fundamental Principles: -360 - Encapsulation and modularity - Coupling and cohesion Class Relationships: -360 - Association, dependency, composition, aggregation, inheritance - Visualisation using UML - Implementation in program code Using Object-oriented Programming Language Features: -360 - Packages/namespaces and access modifiers - Interfaces - Enumerations - Collections Writing robust and secure programs: -360 - Testing: unit testing, system testing, refactoring - Assertions - Exception handling - Logging - Using security APIs for tasks such as: cryptography, digital signing, authentication, access control, identity management Persistence: -360 - File I/O - Connecting to databases - Software patterns such as Repository, Data Access Object (DAO) - Object-Relational Mapping

Learning Outcomes

On completion of this module, students should be able to:1 - Demonstrate an understanding of the fundamental principles of object-oriented programming and class relationships.2 - Apply a range of object-oriented principles and programming language features to the development of applications. 3 - Apply techniques and practices for writing robust and secure code to the development of applications. 4 - Develop and test a complex object-oriented application that uses appropriate software patterns and persistent storage.

Teaching / Learning Strategy

The university 'Strategy for Learning' documentation has informed the learning and teaching strategy for this module. The module's material will be introduced through lectures, while practical exercises, based on the lecture material, will be given to students for their laboratory sessions. Tutorials will be used to help explain and elaborate on both the lecture material and the laboratory exercises. All lectures, laboratories and tutorials will be made available on GCU Learn and links will be provided to appropriate external material such as podcasts, MOOCs, videos and literature. During all lab and tutorial sessions students will receive formative feedback on their performance in undertaking the laboratory and tutorial exercises. Summative feedback and grades will also be provided for the coursework assignment undertaken as part of the module using GCU Learn. GCU Learn will also be used to provide the students with module specific forums and wiki's to stimulate student and lecturer interaction outwith the normal lecture, laboratory and tutorial sessions. Access to appropriate software development tools will be available for students outwith scheduled class time.

Indicative Reading

-567 Books and articles: Bloch J (2017) Effective Java: Third Edition, Addison-Wesley Professional Horstmann C (2017) Core Java SE9 for the Impatient, Addison-Wesley Professional -567 Online sources: Oracle, The Java Tutorial, https://docs.oracle.com/javase/tutorial/index.html

Transferrable Skills

By the end of this module students will have gained competence in the following key areas: Specialist knowledge and application Critical thinking and problem solving Critical analysis Communication skills, written, oral and listening Numeracy Computer literacy Self confidence, self discipline & self reliance (independent working) Awareness of strengths and weaknesses Creativity, innovation & independent thinking Ability to prioritise tasks and time management

Module Structure

Activity Total Hours
Assessment (FT) 20.00
Practicals (FT) 24.00
Lectures (FT) 24.00
Tutorials (FT) 12.00
Independent Learning (FT) 120.00

Assessment Methods

Component Duration Weighting Threshold Description
Coursework 1 n/a 100.00 40% Practically Based Assignment