This course provides the student with basic and transversal knowledge about the structure of the computer. They are used in a direct or indirect way in other courses throughout the degree. It also includes basic knowledge of coding data, the structure of programs and libraries, user and system execution levels, the concepts of compilation and interpretation of programs, data storage systems, file systems, parallelism, and performance evaluation techniques.
Teachers
Person in charge
Jordi Fornes de Juan (
)
Weekly hours
Theory
2
Problems
2
Laboratory
0
Guided learning
0
Autonomous learning
6
Learning Outcomes
Learning Outcomes
Knowledge
K3 - Identify the mathematical foundations, computational theories, algorithmic schemes and information organization principles applicable to the modeling of biological systems and to the efficient solution of bioinformatics problems through the design of computational tools.
Skills
S8 - Make decisions, and defend them with arguments, in the resolution of problems in the areas of biology, as well as, within the appropriate fields, health sciences, computer sciences and experimental sciences.
Competences
C6 - Detect deficiencies in the own knowledge and overcome them through critical reflection and the choice of the best action to expand this knowledge.
Objectives
Knowledge about the features and limitations, especially about accuracy error, of the different data representation formats in a computer.
Related competences:
K3,
S8,
Knowledge about a processor architecture based on the von Neumann model, as well as its key components
Related competences:
K3,
C6,
Knowledge about logical memory space, from how it is used to how some contents are managed.
Related competences:
K3,
Knowledge about the basic concepts of an Operating System and understanding the impact on performance and energy consumption of a system.
Related competences:
K3,
S8,
C6,
Knowledge about the procedure to create and debug a program, as well as its requirements.
Related competences:
C6,
Understand the relationship between the subject and the field of bioinformatics.
Related competences:
K3,
S8,
C6,
Contents
Overview
A brief introduction about the course, topics, and its relation with the Bioinformatics area.
Bits, bytes, ints and floats
This lesson focuses on the finite representation of data at different levels of complexity, its limitations and the implementation of basic operations.
Computer architecture
Introduction to processor architecture, based on the von Neumann model, and its components. Describe the elements that make up a computer: processors, memory hierarchy, input/output components, data storage and how they are interconnected.
Process Management
Describe the process concept and concurrency at the heart of modern operating systems. Examine the programmer's interaction with the underlying operating system through system calls.
Filesystems and Input/Output Management
Describe how mass storage, the file system, and I/O are handled in a modern computer system.
Memory management
This unit deals with the management of main memory during the execution of a process. It is a presentation of basic points to understand the aim, design, use and management of logical and physical memory space.
A brief introduction about the course, topics, and its relation with the Bioinformatics area.
Read chapter 1 in the textbook.
Theory
2h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
3h
Bits, bytes, ints and floats
This lesson focuses on the finite representation of data at different levels of complexity, its limitations and the implementation of basic operations.
Theory
6h
Problems
8h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h
Shell task
The objectives of this assignment are practising with the basic Unix commands to deal with data from a shell. A shell is a software program that interprets and executes command lines. A shell script is a list of such command lines, written down together in a text file. Besides, we will understand mechanisms to monitor kernel information associated to the active processes of the system. Objectives:456 Week:
4 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h
Data task
The purpose of this assignment is to become more familiar with bit-level representations of characters, integers and floating point numbers. You will do this by solving a series of programming puzzles. Many of these puzzles are quite artificial, but you will find yourself thinking much more about bits in working your way through them. Objectives:125 Week:
8 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Computer Architecture
Introduction to processor architecture, based on the von Neumann model, and its components. Describe the elements that make up a computer: processors, memory hierarchy, input/output components, data storage and how they are interconnected.
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Process management
Describe the process concept and concurrency at the heart of modern operating systems. Examine the programmer's interaction with the underlying operating system through system calls.
Theory
6h
Problems
8h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Proc task
The objectives of this assignment are practising with the basic system calls to manage processes, and the basic commands and mechanisms to monitor kernel information associated to the active processes of the system. You'll do this by creating processes that execute functions. These functions are quite artificial, but you'll find yourself thinking much more about processes in working your way through them. Objectives:23456 Week:
13 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Filesystems and Input/Output Management
Describe how mass storage, the file system, and I/O are handled in a modern computer system.
Theory
6h
Problems
8h
Laboratory
0h
Guided learning
0h
Autonomous learning
9h
IO task
The purpose of this assignment is to understand how input/output system calls work. They deal with bytes and you need to program how to interpret them (as integers, characters, etc.). Objectives:1456 Week:
16 (Outside class hours)
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h
Memory management
This unit deals with the management of main memory during the execution of a process. It is a presentation of basic points to understand the aim, design, use and management of logical and physical memory space.
Theory
4h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h
Teaching methodology
Theoretical lectures (recitations) are given by the lecturer and students are expected to attend and participate in them.
During the practice sessions, students will work in pairs, supervised and supported by the professor, to solve tasks that will be graded.
Evaluation methodology
There will be a miderm exam (mark M), which will last two hours, and a final exam (mark E), which will also last two hours long. Both administered in person on paper.
The exams are closed book. You may bring two (2) A4-sized sheets of notes, with anything you want written or printed on them, but you may not refer to any other book, document, or online reference during the exam.
You are not permitted to use a calculator or any other electronic aid.
There will be four graded computer tasks. These will result in the practical mark (P mark). In these assignments, you will work in pairs.
The calculation of the final grade (FG) will be:
FG = 0.4*P + 0.6*max(E, 0.4*M+0.6*E)
Those who have attended the final exam and have an FG lower than 5 are entitled to a retake exam (reava). This will take place in a laboratory classroom, will last two hours and will consist of theoretical and practical questions, under the same conditions as the rest of the exams. The reava grade will be the final grade of the course, replacing FG.