MEng Software Engineering

Year of entry: 2020

Course unit details:
Fundamentals of Computer Architecture

Unit code COMP15111
Credit rating 10
Unit level Level 1
Teaching period(s) Semester 1
Offered by Department of Computer Science
Available as a free choice unit? No

Overview

The module introduces the concepts involved in Fundamentals of Computer Architecture.  Its aim is to enable the student to develop the skills required to comprehend Computer Systems, be they terminology, models, methodologies, structures (or topologies), timing, number representation and a general introduction to basic computer systems.
This unit builds on the skills developed in your background, covering material that will enable students to comprehend basic computer architecture structures, programming, and topologies.  In particular, students will be able to comprehend the basic of computer systems.
[Knowledge of] Fundamentals of Computer Architecture is becoming increasingly important in business and finance.  They are applicable to problems which have been considered mainstream computing.  Students should not complete a course in computing (computer science) without some exposure to the subject.  Since research is taking place in this subject within the school it is also appropriate that such expertise is passed on to our students.
The aim of this module is to introduce the concepts behind the Fundamentals of Computer Architecture approach to implementing IT solutions.  A broad variety of standard Computer Systems methodologies and theories will be introduced.  The theory, techniques, and methodologies will be illustrated to enable students to comprehend the theory.  The associated areas of computer hardware and topology of computer systems are also covered to some degree.
To be more specific, the course covers:
Understand the basic Von Neumann/Imperative computational model.
Understand the binary nature of digital computers, and how bit patterns can be used to represent such things as characters, numbers and instructions.
Understand the essentials of the ARM instruction set and its registers.
Be able to understand the basics of assembly language programs.
Understand the correspondence between imperative code & data and assembly language.
Be aware of the role of Compiler, Assembler, Library, Linker, Loader, Interpreter and Operating System, and of some of the interactions between these and the underlying computer hardware.

Key and Cognitive skills:
The key and cognitive skills which the student may be able to develop during the module:
The module will expand the student's vocabulary with respect to the technical terminology and understanding of methodologies utilised associated to Fundamentals of Computer Architecture, this will enable the student to extend his/her communication skills.
The student will be empowered to learn by utilising multi-format lectures, and Self-study-learning techniques.  The majority of the module is presented through a set of lectures .  Each lecture has a set of associated questions (i.e. at the end of each lecture hand-out), which are supported by answers provided on the web (normally two weeks after the lecture has been given ). Guidance will be given to student's private study in respect of directed reading.  The lectures are also supported by a set of Lab assignments that expand the student's knowledge utilizing a 'learning by doing' approach.

Aims

This unit aims to introduce computer instruction sets and the binary representation of information, by exploring the relationship between high-level language programs and the basic structure and operation of digital computers, including the process that implements this relationship. Python and the ARM processor are used as exemplars. Practical experience is gained in the laboratory through exercises which progressively expose features of the ARM instruction set. The course-unit aims to serve as an essential foundation for further studies in the single honours Computer Science degree programme.

 

Learning outcomes

  • Propose and evaluate methods of representing different classes of data in a digital computer.

  • Analyse the suitability of different computer architectures for data processing.

  • Write simple programs in assembly language.

  • Implement different code structures in assembly language: conditional branch, while, if, table jump.

  • Construct different data structures within a program and write code to access them, e.g. strings, arrays, and stacks.

  • Create reusable assembly language code using methods.


 

 

Syllabus

Introduction: Processors, simple ARM programs, binary representations, fetch-execute cycle, registers [4]

ARM code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts [13]

System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters.

 

Teaching and learning methods

Lectures

22 in total, 2 per week

Examples classes

5 in total, 1 per fortnight

Laboratories

10 hours in total, one 2-hour session per fortnight

Employability skills

Project management
Oral communication
Problem solving
Research
Written communication

Assessment methods

Method Weight
Written exam 80%
Practical skills assessment 20%

Feedback methods

Feedback is provided to students in alignment with good pedagogic practice and pedagogic assessment [criterion]; the feedback takes the Kinesthetic approach to learning. Two approaches, #1 and #2, illustrate how to develop the student's skills aligned to the course; such as: theory, process, academic, reading, comprehension, exam skills. The first uses a more reading/writing-preference learner's approach #1. The second, approach #2, uses the visual learning strategy.

The feedback is given: one-to-one and one-to-many. The feedback is given (if time allows) at the start (in the break, & the end) of: lectures, examples classes (if applicable), and laboratories. One-to-one feedback is also given - marked up - in each of the anonymous scripts of the student's exam booklets. One-to-many is also given in a cohort wide exam feedback compiled jointly by all course member whom lecture on the course and mark exams.

Feedback, hints, advice, and extra information also appear on the course's CS web site, courses CS web site, & the universities Blackboard web site. RN also provides real time video multimedia support for all the course's he lectures on; these are composed of video lectures, video tutorials and many associated material designed to help, broaden, and inform the student cohort of possible: approaches, techniques, and learning strategies that will aid and enhance their learning.

Recommended reading

COMP15111 reading list can be found on the School of Computer Science website for current students.

Study hours

Scheduled activity hours
Assessment written exam 2
Lectures 44
Practical classes & workshops 15
Independent study hours
Independent study 39

Teaching staff

Staff member Role
James Miles Unit coordinator

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.

Extra materials will be provided on YouTube & SkyDrive. These take the form of real time video multimedia taken from many of the lectures designed to help and inform the student of possible approaches, techniques, and learning strategies that will aid and enhance their learning.

Return to course details