ENG06068 2019 Introduction to Programming
This module is a basic introduction to programming techniques for Engineering students. Its purpose is to provide these students with a practical application-driven introduction to programming prior to embarking on writing high level code. Initially programs are created graphically using flowcharts. These programs are tested on a microcontroller simulator. Students then progress to an Integrated Development environment, where they write, compile and debug similar programs. Programs are downloaded to a target board, which is interfaced to basic sensors and actuators. Finally a robotic buggy is programmed to complete various challenges.
On completion of this module the learner will/should be able to;
Convert between decimal, binary and hexadecimal number systems.
Explain how data types, constants and variables are used in computer programming.
Construct a computer program in the form of a flowchart.
Write a basic computer program (sketch) using a high level programming language.
Test programs / flowcharts by compiling them, simulating them and downloading them to a microprocessor-based device.
Teaching and Learning Strategies
It is proposed that a workplace engagement component will be introduced to this module via a guest lecturer from industry, an industrial site visit or a work-based assignment where possible.
Number Systems and Codes: Decimal, Binary, Hexadecimal, ASCII.
Data: Analogue, Digital, Constant, Variable.
Data Types: Bit (Bool), Byte (Character), Integer, Long, Floating Point, Signed and Unsigned, String.
Introduction to Flowcharts: Inputs, Outputs, Time Delays, Decisions (if), Loops (Conditional and Unconditional, Macros (Functions), Calculations, Logical Operations.
Introduction to Programs (Sketches): Constants, Variables, Library Functions, while Loops, if-else Statements, Comments.
Overview of Hardware: Development Board (Pins, Ports, Digital / Analogue / PWM Channels), Robotic Buggy.
Programs to Read Input Devices: Push Button, Touch Sensor, Keypad, Potentiometer, LDR, Temperature Sensor, Microphone, Infrared Sensor.
Programs to Control Output Devices: Buzzer, Relay, LED, Seven Segment Display, LCD, Motor.
Testing (Debugging): Compilation (Verification), Simulation and Downloading (Uploading).
Coursework & Assessment Breakdown
|Title||Type||Form||Percent||Week||Learning Outcomes Assessed|
|1||Practical Evaluation Lab Exercises||Continuous Assessment||Assignment||40 %||OnGoing||1,2,3,4,5|
|2||Continuous Assessment Quizes||Continuous Assessment||Assessment||20 %||OnGoing||1,2,3,4|
|3||Practical Evaluation Practical Exam||Continuous Assessment||Open Book Exam||40 %||Week 13||1,2,3,4,5|
Full Time Mode Workload
|Lecture||Flat Classroom||Theory Lecture||1||Weekly||1.00|
|Laboratory Practical||Engineering Laboratory||Practical||2||Weekly||2.00|
Required & Recommended Book List
2014-12-28 Make: Getting Started with Arduino: The Open Source Electronics Prototyping Platform Maker Media, Inc
ISBN 9781449363338 ISBN-13 9781449363338
Arduino is the hot open source prototyping platform for artists, hobbyists, students, and anyone who wants to create interactive physical environments. Getting Started with Arduino is co-authored by Arduino co-founder Massimo Banzi, and incorporates his experience in teaching, using, and creating Arduino.
2013-05-27 30 Arduino Projects for the Evil Genius, Second Edition McGraw-Hill Education Tab
ISBN 9780071817721 ISBN-13 9780071817721
Title: 30 Arduino Projects for the Evil Genius <>Binding: Paperback <>Author: Simon Monk <>Publisher: MCGRAW-HILL Professional
Introduction to Flowcode, Matrix Multimedia.
An Introduction to Microcontroller Programming, Matrix Multimedia.
Practical C Programming, Steve Oualline, O’Reilly.
Flowcode and Arduino IDE software installed in Electronics labs.