MIOT H6013 - Software Engineering

Short Title:Software Engineering
Full Title:Software Engineering
Module Code:MIOT H6013
 
ECTS credits: 5
NFQ Level:9
Module Delivered in 2 programme(s)
Module Contributor:Benjamin Toland
Module Description:This module will equip the learner with the key Software Development skills required in developing an IoT system including language skills, analysis and design skills and application of appropriate software lifecycle models.
Learning Outcomes:
On successful completion of this module the learner will be able to
  1. demonstrate programming skills in the key languages of the IoT.
  2. critically evaluate diverse programming languages for use within an IoT system
  3. analyse, design and test a software system.
  4. apply basic data mining algorithms to gathered data.
 

Module Content & Assessment

Indicative Content
Programming Language Pragmatics
Programming language Spectrum; Programming Models: Functional, Logic, Concurrency, Scripting; Run-time Program Management: Virtual Machines, Binding, Performance Analysis; Comparison of C/C++, Java, JavaScript and python execution.
IoT Software Engineering
Software Development Lifecycles for IoT; OO Analysis and Design for IoT Systems: OO Concepts Review; Functional, Structural and Behavioral Modelling; The Unified Modelling Language; Implementation of OO concepts in Java/C++/JS & Python; Software testing in an IoT environment
IoT Programming Models
Message Driven; REST; Reactive Programming; Abstract Task Graph; Emerging IoT programming models
Event Driven Programming Concepts.
Finite State Machines; Event Handlers; NodeJS/Javascript for event driven programming
Python for Data Analysis
Python Vs R; Python Language Fundamentals; Python IDEs; Python for Data Analysis: Numpy, Pandas; Matplotlib
Indicative Assessment Breakdown%
Course Work Assessment %100.00%
Course Work Assessment %
Assessment Type Assessment Description Outcome addressed % of total Assessment Date
Written Report Learners will produce a written report detailing an in-depth evaluation of a range of programming languages that can be used as solutions to a given problem within the context of an IoT environment. 1,2 15.00 n/a
Practical/Skills Evaluation Learners will work their way through a number of practical worksheets introducing the Python programming language. Learners will have to implement a Data Analysis solution using Python. 1,4 10.00 n/a
Practical/Skills Evaluation Learners will work their way through a series of tasks which will help develop the learners IoT software development skills. One of the deliverables will form part of a cross module CA with Embedded Systems and Information Transmission & Management 1,3 25.00 n/a
Project Learners will analyse and design an Object Oriented software solution to a given problem. Deliverables of this mini-project are the full system specification & design documentation; including appropriate UML diagrams and software system Test Plan. Learners will also implement and test the software as per documentation. 1,3 50.00 n/a
No Final Exam Assessment %
Indicative Reassessment Requirement
Coursework Only
This module is reassessed solely on the basis of re-submitted coursework. There is no repeat written examination.

ITB reserves the right to alter the nature and timings of assessment

 

Indicative Module Workload & Resources

Resources
Supplementary Book Resources
  • Michael L. Scott 2009, Programming language pragmatics, Amsterdam ; Elsevier/Morgan Kaufmann Pub. [ISBN: 9780123745149]
  • Wes McKinney, Python for Data Analysis, O'Reilly Media [ISBN: 9781449319793]
Recommended Article/Paper Resources
  • Namiot, D. Sneps-Sneppe, M. 2014, On IoT Programming, International Journal of Open Information Technologies
This module does not have any other resources

Module Delivered in

Programme Code Programme Semester Delivery
BN_EMIOT_M Master of Engineering in Internet of Things Technologies [BN535M 30 credits taught with a 60 credit research project] 1 Mandatory
BN_EMIOT_R Master of Engineering in Internet of Things Technologies [BN535R 60 credits taught with a 30 credit research project] 1 Mandatory