The module aims to enhance students' understanding of how modern computer systems are implemented from the perspectives of architecture, networking, operating system, parallel programming and algorithm complexity. Students will explore the essential features and operations of modern computer architectures and acquire both theoretical and practical knowledge of the principles and major functions of modern operating systems. They will also develop knowledge of parallel programming and algorithm complexity so that they will be able to make use of new parallel computer architectures. Physical networks and their associated address schemes will also be explored.
On successful completion of the module, students will be able to:
o Von Neumann model, Flynn's classification, parallel architectures including multi-core processors, GPUs, games consoles and clouds, instruction set architectures
o Pipelining, memory hierarchies, instruction level parallelism
o Process management, memory management, file management, input/output management
o Examples of operating systems, eg. Linux and Windows
o System, process and data security
o Amdahl's law, processes, threads, race conditions, synchronisation, mutex lock, semaphores, load balancing
o Communication models: shared memory, eg. OpenMP, and message passing, eg. MPI
o floating-point operations and fundamental instructions
o time and space complexity, limiting behaviour, big O notation, recursive algorithms, optimisation
o Layering principles (encapsulation, multiplexing)
o Roles of the different layers (application, transport, network, datalink, physical)
o Routing and switching, and IP Addressing
o Network specific threats and attack types, and the use of cryptography for data and network security
This module is timetabled for two 2h classroom-based sessions each week and will make use of a problem-centric approach to learning. Typical classroom sessions will start with an accessible problem to be solved, explicitly linked to a learning outcome or assessment question. Students will work together to attempt to find a solution strategy, facilitated by the lecturer, comparing and contrasting ideas. Identified gaps in knowledge will be filled through short bursts of lecturer-delivered active instruction, making use of the "study guide" (which is given to all students at the start of term). Outcomes of these activities will be published on Canvas for later reference. Students then work on similar problems, facilitated by the lecturer, which feed-forward to the eventual assessment tasks.
The practical, discussion-based nature of the class makes it essential that everyone engages regularly - whilst the starter problems, exercises, study guide and other resources will be on Canvas the bulk of the learning happens between students.
Definitive UNISTATS Category | Indicative Description | Hours |
---|---|---|
Scheduled learning and teaching | Lectures, tutorials, workshops, case studies, exercises, discussion groups, and practice work. | 100 |
Guided independent study | 200 | |
Total (number of credits x 10) | 300 |
Assessment will be by means of an examination contributing 40% of the final module mark and two coursework assignments contributing 30% each. Students will be expected to submit a coursework assignment at the end of each teaching block. They will be supported by a weekly two-hour workshop programme, which will provide opportunity for formative feedback on topics related to their assignments. Typically, the first coursework assignment will focus on architectures and networking, while the second coursework assignment will concentrate on operating systems, parallel programming, algorithms and complexity. The final examination will be of 2 hours. Exam revision will be supported by a series of Revision Workshops.
Learning Outcome | Assessment Strategy |
---|---|
Describe the architecture, essential features and operations of modern computer systems | Written Exam Coursework1 |
Explore the functionality and interfaces of modern operating systems | Written Exam Coursework2 |
Understand and apply multi-processing techniques, concurrent programming and synchronisation principles | Written Exam Coursework2 |
Estimate the time and space complexity of algorithms | Written Exam Coursework2 |
Design physical networks and their associated IP addressing schemes | Written Exam Coursework1 |
Description of Assessment | Definitive UNISTATS Categories | Percentage |
---|---|---|
Coursework1 | Coursework | 30% |
Coursework2 | Coursework | 30% |
Written Exam | Written Exam | 40% |
Total (to equal 100%) | 100% |
It IS NOT a requirement that any major element of assessment is passed separately in order to achieve an overall pass for the module.
Patterson, Hennessy (2011), Computer Organization and Design; The Hardware-Software Interface, (4th Edition), ISBN-13: 978-0123747501
William Stallings (2014), Operating Systems: Internals and Design Principles, Global Edition 8th Edition, Publisher: Pearson Education 8 edition, ISBN-10: 1292061359 ISBN-13: 978-1292061351
Andrew S. Tanenbaum and David J. Wetherall (2014), "Computer Networks", Prentice-Hall, Fifth Edition
Gerassimos Barlas (2014), Multicore and GPU Programming: An Integrated Approach, Morgan Kaufmann, ISBN-10: 0124171370, ISBN-13: 978-0124171374
Andrew S. Tanenbaum (2014), Modern Operating Systems, 4th Edition, Publisher: Pearson; 4 edition, ISBN-10: 1292061421 ISBN-13: 978-1292061429
Robert Cook, A (2017) Introduction to Parallel Programming with OpenMP, PThreads and MPI (Cook's Books Book 6), ASIN: B004I6D6BM
Richard Neapolitan (2015), Foundations of algorithms, Burlington, MA : Jones & Bartlett Learning, ISBN9781284049190