PRINCIPLES OF PROGRAMMABLE SYSTEMS A

SHE Level 1
SCQF Credit Points 10.00
ECTS Credit Points 5.00
Module Code M1H624803
Module Leader Peter Wallace
School School of Computing, Engineering and Built Environment
Subject Instrumentation and Control
Trimester
  • A (September 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. The percentage of Work Based Learning for this module, as represented by the Independent Learning "Activity Type", is 60%. There is no Work Based Assessment, but reflective learning is encouraged.

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 (online/work-based or face to face where essential) 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 Practical exercises supported by online video resources and formative 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. The students complete an online laboratory notebook each week to record all aspects of the laboratory activities. This is then extended by wider questions relevant to the lab content which can be completed off campus. This includes elements of analysis and problem solving, design, planning, implementation, testing, evaluation, contextualisation and reflection. This record which also includes the write up of the final open ended programming challenge forms the overall coursework assessment. The students will be encouraged to reflect upon the theoretical learning within the work place and the application of newly learned concepts to the work environment. 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. 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 to the workplace.

Indicative Reading

Robot C website and forums: http://www.robotc.net/ Robot C interactive online tutorials: http://education.rec.ri.cmu.edu/preview/ev3_products/ev3_intermediate/ Robot C User Manual: http://help.robotc.net/WebHelpMindsorms/index.htm

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
Independent Learning (FT) 60.00
Practicals (FT) 18.00
Assessment (FT) 10.00
Lectures (FT) 12.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