The aim of this module is to introduce students to the more important elements of computer systems and how they interrelate to create an effective technological system.
The objective of the module is to provide learners with detailed knowledge of Computer Systems in terms of typical hardware, software and communications (networking), by investigating hardware architecture, software engineering and network infrastructure to experience the functionality and potential of computer systems.
Hardware Design
- Hardware Architecture – an overview of the basic components of a computer hardware architecture: the central processing unit (CPU), the memory, the input/output (I/O) devices and the buses.
Software Components
- Operating Systems – describing the purpose of operating systems and the various types for different systems.
- Programming Languages – describing and comparing different programming languages with examples of high- and low-level languages, procedural and object-oriented programming languages.
- Compilers – describing the purpose of compilers and how they relate to software programs.
Software Design
- Data Structures - describing the nature of data structures, why structuring data is important and how it might be applied.
- Algorithms - describing the nature of algorithms and how they relate to software development and software engineering.
- Software Engineering - an overview of the principles of Software Engineering and a perspective on Software Engineering as a software development discipline.
- Overview of the role of subcontractors in the development of software by external companies and the potential advantages and disadvantages of such engagements.
Communications Systems
- Networks - an overview of computer network systems including the hardware and software components of computer networks. Also, the principles of networking as a systems infrastructure.
- Overview of distributed computing environments and systems.
Modern Computing Systems
- Introduction to the concepts of Software as a Service, virtual machine environments, cloud technology.
- Overview of the role of the Internet of Things in society and computing systems.
Indicative Lab Syllabus
Labs to be 2 hour sessions
Demonstrate an understanding of memory and hardware requirements. Such as configuring a computer system in a virtual environment.
Demonstrate an understanding of networked computer systems. Such as setting up a number of virtual computers and using virtual network connections.
Demonstrate the use of modern computer systems, such as as using a sample cloud-based application.
Demonstrate an understanding of real physical computing environments and compilers for sample applications.
Use a compiler environment to write and test code. Such as setting up an Internet of things environment to program and test various example systems.
Use a system such as the Crow Pi, Raspberry PI development kit, for a range of programming exercises, from input/output, data processing to physical networking, Wi-Fi or wired, between the kits.
Demonstrate the need for organising and structuring data in a computer system. Such as using data collected in an Internet of Things environment by processing and storing the data in a suitable manner.
This module will be presented over 13 lectures and approximately 10 labs.
Students will be encouraged to be proactive in their approach to learning for this module. This will require some independent research and creativity.
Students will be required to work both independently and as part of groups. Labs will provide the opportunity for peer learning with collaborative practical tasks.
The continuous assessment will take the form of marked labs, a group presentation and an individual design and report.
Where possible, real-world examples will be used.
| Module Content & Assessment | |
|---|---|
| Assessment Breakdown | % |
| Formal Examination | 50 |
| Other Assessment(s) | 50 |