Module Descriptor School of Computer Science and Statistics
|Module Name||Internet Applications|
|Module Short Title|
|Semester Taught||Michaelmas Term|
Lecture hours: 11, Tutorial/lab hours: 22
Total hours: 33
A series of individual projects contributing to a significant group project are undertaken over the semester in student’s time, with contact hours scheduled in support of that activity. Students are also expected to engage with staff and support systems as necessary to progress their work.
|Module Personnel||Assistant Professor Stephen Farrell, Associate Professor Ciarán Mc Goldrick|
This module aims to provide a theoretical and practical understanding of modern scalable systems and architectures, from billions of highly distributed Internet of Things devices, through to present day concepts, such as Cloud architectures and systems. It addresses the practical tools and techniques of practical distributed systems, ranging from energy, communication and data considerations, through to high scale and remote computation and analysis metaphors. This module will provide a theoretical and practical understanding of Scalable Computing platforms and systems, and scaffold that knowledge in both present and future paradigms. It covers the fundamental structures, concepts and approaches that underpin key platforms, and targets they can be represented, analysed and manipulated. It addresses the practical systems, tools and techniques of creating scalable systems, building incrementally through practical project work, encompassing the key architectures and infrastructures relevant to today’s deployments.
The module will be delivered in 3 phases, sequenced as described below. Each phase will be motivated by a lecture series, but will also require substantial focus on and delivery of graded practical development work. Students are cautioned that this practical programme will build from week to week towards a final project output. Grade values for each phase are noted.
Phase 1: Introduction to Scalable Computing and Systems (Weeks 1-4 - 20%)
This lecture-series phase will introduce the various principles and concepts that underpin scalable computing, from tiny constrained embedded devices through to large deployable cloud instances and infrastructures. Themes will include cloud, cluster, distributed, energy-aware, parallel, peer-to-peer, greed, grid and utility computing.
Phase 2: Initial platform identification, deployment and validation(Weeks 2-5 - 20%)
This phase will incorporate a series of structured, hierarchical, practical activities intended to ensure student familiarity with the key platforms, systems, tools and modalities of implementation and validation that are encountered in Industry and which will be employed on this module.
Phase 3: Group project implementation, validation and demonstration (Weeks 5-12 - 60%)
The primary practical assessment activity will be encapsulated in a single, challenging group project. Each group will have a uniquely assessable challenge, with a series of interim goals/outputs/results, culminating in a final validation of the implemented system. It is intended that the challenge can valuably target scalable IoT deployments through to multi instance cloud compute solutions...
|Recommended Reading List|
Graham Hutton, Programming in Haskell, Cambridge press, 2016.
Extensive use will also be made of research papers and other material from the literature and ongoing research examples from our work at TCD.
Students are required to be competent in at least one high level programming language (e.g. Python, Java, C++, C# etc.). Previous experience with concurrent programming is beneficial but concurrency will be reviewed in the module. Haskell is the module programming language. Student’s unfamiliar with functional programming in practice should devote some preparatory time to building simple Haskell based systems. Consult the module web site for more details and suggested readings.
A summary of assessment follows. The final grade awarded will be a simple accumulation of grades achieved in each element. Assessment of each component will be based on the quality of the student’s submission, solution design and implementation, and success in achieving the appropriate outcome.
A summary of assessment follows. The final grade awarded will be a simple accumulation of grades achieved in each element. Assessment of each component will be based on the quality of the student’s design and implementation, their success in achieving the prescribed task, and their understanding of the key concepts and methodologies thereof.
Inclass assessments: 20%
Assessment in the Supplemental session will be based on 100% coursework.
|Academic Year of Data||2018/19|