The aim of this module is to explore the fundamental basics of the computer’s architecture and develop the learners ability to understand the operation of a computer while also giving learners practical experience of implementing basic programs in Assembler and C to learn about the working of the processor and memory in a computer.
Introduction to Computer Systems
Translation of information to bits, how programs are translated into machine code, how computers work, caches, storage devices, OS Managers, OS examples.
Data Representation and Manipulation
Hexadecimal notation, words, data sizes, addressing and byte ordering, encoding strings, representing high level code at machine level, Boolean algebra, bit-level operations in C, logical operations and shift operations in C; integer representations and floating point representations.
Machine Language
Historical perspective, program encodings, data formats, accessing information, arithmetic and logical operations; control and procedures; array allocation and access, data structures, pointers, buffer overflow, embedding assembly code in C.
Processor Architecture
Instruction Set Architecture, logic design, sequential implementation, pipelining.
Linking
Compiler drivers; static linking; object files; symbols and symbol tables; symbol resolution; relocation; executable object files; dynamic linking with shared libraries; position-independent code.
Virtual Memory
Physical and virtual addressing; address spaces; VM as a tool for caching and memory management; Address translation; memory mapping; dynamic memory allocation; garbage collection.
Module Content & Assessment | |
---|---|
Assessment Breakdown | % |
Other Assessment(s) | 100 |