PROGRAMMING 1

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

Summary of Content

This module will provide an introduction to the principles and practice of object-oriented programming. It will also introduce the process of developing programs using an appropriate high level object-oriented programming language. It will enable students to develop and test a software solution given a simple set of program requirements. The student will be introduced to the fundamental concepts of object-oriented programming, the basic practical knowledge and skills required to implement programs and a range of program development and testing techniques and practices.

Syllabus

Object-oriented programming concepts - Classes and Objects - Object interaction - Fields - Constructors - Encapsulation - Methods, parameters and messages - Scope and access modifiers - Static methods and variables - Class hierarchies and inheritance - Interfaces - Polymorphism Program Implementation - Data types - Casting and type conversion - Variables, operators and expressions - Selection and Iteration - Arrays - Simple exception handling - Formatting I/O including simple file I/O - Validating input from untrusted sources - Handling overflow and underflow - Building graphical user interfaces Program Development Techniques - Problem solving and algorithm design - Implementing a conceptual model - Updating existing software - Program testing and debugging - Unit testing and refactoring - Documenting classes - Finding appropriate library classes from documentation - Using appropriate library classes in own programs - Simple secure and robust coding practices - Command line compilation and running - Use of an Integrated Development Environment

Learning Outcomes

On successful completion of this module the student should be able to:1.Describe the fundamental principles of object-oriented programming2.Demonstrate an understanding of the data types, control structures and object-oriented features provided by modern object-oriented languages 3.Develop and test an object-oriented program making use of standard class libraries 4.Employ basic secure and robust coding practices

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 lecture, laboratory and tutorial material 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. Assessment will take place continuously throughout the module in the form of a number of practical assignments, and a range of quizzes and tests, allowing students to receive feedback and gain confidence in their programming skills and knowledge as they progress. Peer learning will be encouraged through the use of collaborative tools such as Peerwise.

Indicative Reading

Objects First with Java: A Practical Introduction Using BlueJ, 6th Edition, by David J. Barnes and Michael Kolling, Pearson, 2017 Java: A Beginner's Guide, 8th Edition by Herbert Schildt, McGraw-Hill, 2018 Studying Programming by Sally Fincher, Palgrave Study Guides, 2006

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
Practicals (FT) 24.00
Independent Learning (FT) 120.00
Tutorials (FT) 12.00
Assessment (FT) 20.00
Lectures (FT) 24.00

Assessment Methods

Component Duration Weighting Threshold Description
Course Work 01 n/a 50.00 35% Practical programming exercises
Course Work 02 n/a 50.00 35% Continuous assessment, e.g. quizzes, class tests