PRINCIPLES OF PROGRAMMABLE SYSTEMS A

SHE Level 1
SCQF Credit Points 10.00
ECTS Credit Points 5.00
Module Code M1H624002
Module Leader Peter Wallace
School INTO
Subject INTO
Trimesters
  • A (September start)
  • B (January start)

Summary of Content

This module provides a basic introduction to the principles and practice of programmable systems development. Fundamental areas covered are an introduction to programming methods and languages, problem, representation, problem analysis, solution design, design-representation and solution planning, programme implementation, testing and solution evaluation. Students will gain practical experience of the process of problem solving and structured programming in an imperative language using a robotic environment equipped with a range of actuators and sensors. Key relevant aspects of ethics and professionalism are introduced.

Syllabus

1.Introduction Dedicated systems, programmed systems and justification for the programmed approach. Overview of program structure and how programs interact with the real world. Overview of fundamental programming approaches: imperative programming and representative development environments. Overview of the importance of professionalism and ethics - with relation to software development. 2.Fundamentals of program structure: Storing state within variables; data types and their related data structures; arithmetic and character manipulation; input and output device programming; sequential programming; testing and conditional branching operations; reacting to the real world through sensors and user-interfaces; looping; algorithms; reusing code using functions; driving actuators and displays; communications. 3.Programme development process: Programme design-representation methods; using programming environments; debugging; host and target system relationship; testing; redesign; system evaluation; versioning and backups; documentation. 4. Problem definitional and the problem solving process: Providing clear, unambiguous and complete problem definitions; problem-analysis; developing a project plan; designing a solution; testing a design before implementation; implementing the solution using the program development process; unit and system testing and validation; solution evaluation and personal critical evaluation. 5. Case Studies Discussion of real life applications and ethical issues; eg. challenges faced in the design of an interactive robotic system in terms of technical requirements, safety and cost trade-offs.

Learning Outcomes

On completion of this module the student should be able to:Understand the process of problem solving and be able to define a problem, develop a strategy to solve the problem, create and execute a development plan and evaluate the success of the plan.Understand and apply the development process of software design, coding and testing using an imperative language.Understand at an introductory level the principles of programmable interactive systems, including an appreciation of professionalism and ethical behaviour in relation to software development.

Teaching / Learning Strategy

The course material is introduced through lectures which as well as covering the principles of programming will include case studies to allow the student to understand the relevance of the programming and interaction techniques presented to real-world applications and to introduce the professional and ethical issues faced in related engineering practises., while practical exercises complementing the lecture material are given to students within their laboratory sessions. The three-hour laboratory sessions are instructor-led and comprise two components: 1. Practical exercises are used to reinforce the essential theory and place it in the context of software-programmed sensory-interactive robot applications. This approach includes the concept of learning from experimentation. 2. A set exercise is completed each week in laboratory time. This includes elements of analysis and problem solving, design, planning, implementation, testing, evaluation and reflection. The students complete an online laboratory notebook each week to record all aspects of the laboratory activities and this record which includes the write up of the final open ended programming challenge forms the overall coursework assessment. Particular aspects of the SfL which are brought out in this module are the development of: Engaged Learning through the challenge based activities and the sharing of ideas within the class; Divergent Thinking as the students are presented with open ended problems which can have a variety of solutions; Broader and Deeper Learning as the module integrates a range of different aspects of technology (software, mechanical systems etc) and reflection is built into the lab activities.

Indicative Reading

Robot C website and forums: http://www.robotc.net/ Robot C interactive online tutorials http://www.education.rec.ri.cmu.edu/previews/robot_c_products/teaching_rc_lego_v2_preview/

Transferrable Skills

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. Appreciating and desiring the need for continuing professional development. Reliability, integrity, honesty and ethical awareness Ability to prioritise tasks and time management (organising and planning work).

Module Structure

Activity Total Hours
Lectures (FT) 12.00
Practicals (FT) 18.00
Independent Learning (FT) 60.00
Assessment (FT) 10.00

Assessment Methods

Component Duration Weighting Threshold Description
Coursework 1 n/a 100.00 40% Lab based assessment - set of design/implementation/evaluation exercises and week by week completion of an electronic lab book concluding with a final programming challenge