PROGRAMMING 2

SHE Level 2
SCQF Credit Points 20.00
ECTS Credit Points 10.00
Module Code M2I325089
Module Leader Martin Gallacher
School School of Computing, Engineering and Built Environment
Subject Computing
Trimesters
  • A (September start)
  • C (May start)
  • B (January start)

Pre-Requisite Knowledge

Programming 1

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. On completion of this module students will be able to develop and test complete object oriented applications and to refactor existing applications. The percentage of Work Based Learning for this module, as represented by the proportion of the Activity Types which take place off campus, is 79%. The percentage of Work Based Assessment for this module is 10%.

Syllabus

Fundamental Principles -360 - Modularisation - Coupling - Cohesion Class Relationships -360 - Association, dependency, composition, aggregation, inheritance - Visualisation using UML - Implementation in program code Object-Oriented Programming Language Features -360 - Assertions, exceptions - Concurrency, resource protection mechanisms - Inner classes, enumerations - Collections, generics - Data persistence, streams, logging, internationalization. - Application Development -360 - Generating classes from an application specification - Using existing class libraries - Refactoring - Applying the Data Access Object (DAO) pattern - Application testing - Software configuration and release management - Prepare stakeholder documentation

Learning Outcomes

On successful completion of this module, students should be able to:1 - Demonstrate an understanding of the fundamental principles of modularisation, coupling and cohesion on which object oriented programming is based. 2 - Demonstrate an understanding of class relationships such as association, dependency, composition, aggregation, inheritance, the visualisation of these in UML and their implementation in program code.3 - Apply a range of object-oriented principles and programming language features to the development of applications and the refactoring of existing applications. 4 - Develop and test a complex object-oriented application that uses persistent storage, including software configuration and version control.5 - Provide stakeholder documentation.

Teaching / Learning Strategy

Work based Education aims to maximise the direct and digitally mediated contact time with students by practicing teaching and learning strategies that use authentic work based scenarios and encourage action learning, enquiry based learning, problem based learning and peer learning. All these approaches aim to directly involve the students in the process of learning and to encourage sharing of learning between students. The module team will determine the level and accuracy of knowledge acquisition at key points in the delivery, inputting when necessary either directly or with the support of external experts who will add to the authenticity, the credibility and application of the education and learning in the workplace. The course material is introduced through lectures in the form of online presentations, which as well as building on the principles of object oriented programming introduced in Programming 1 will illustrate the relevance of the programming and interaction techniques presented to real-world applications and develop a range of professional software development processes and practices. Students will engage with practical programming assignments and online tutorial material which may include instructor and peer-created content, and there will be seminars on campus which will allow students to discuss key concepts and issues with peers and with instructors. Students will be expected to undertake a significant level of independent study within the workplace, including practical activities, and links will be provided to appropriate external material such as podcasts, MOOCs, videos and literature to supplement the module content. Students will also be encouraged to reflect upon the theoretical learning within the work place and the application of newly learned concepts to the work environment, and this will form part of the module assessment. Students will receive feedback on their performance throughout the module through undertaking the practical assignments and tutorial exercises and participating in the seminars

Indicative Reading

Barnes D J and Kolling M (2008) Objects First with Java 4th ed., Prentice Hall Lewis J & Loftus W (2011) Java Software Solutions with MyProgrammingLab 7th ed Pearson Williams M , McGinn T and Heimer M (2012) Java SE 7 Programming, Oracle Corporation

Transferrable Skills

Specialist knowledge and application Critical thinking and problem solving Communication skills, written, oral and listening Numeracy Computer literacy Self confidence, self discipline & self reliance (independent working) Creativity, innovation & independent thinking Ability to prioritise tasks and time management Develop an understanding of the practical considerations that constrain the application of theory in the workplace.

Module Structure

Activity Total Hours
Seminars (FT) 24.00
Independent Learning (FT) 110.00
Practicals (FT) 24.00
Assessment (FT) 18.00
Lectures (FT) 24.00

Assessment Methods

Component Duration Weighting Threshold Description
Course Work 01 n/a 50.00 35% Practically Based Assignment
Course Work 02 n/a 50.00 35% Written Report