This course provides the basic and transversal knowledge to the student about the informatics. They are used in a direct or indirect way in other courses throughout the degree. It builds the basis about the data representation and how to use the components of a computer system. Finally, understand how, from high level source code, a program can be built and run. A common feature addressed in the different parts of this course is the impact on the cost, especifically energy consumption, when executing instructions and due to the management and usage of the elements of a computer system.
Teachers
Person in charge
Javier Verdu Mula (
)
Others
Xavier Martorell Bofill (
)
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Transversal Competences
Transversals
CT2 [Avaluable] - Sustainability and Social Commitment. To know and understand the complexity of economic and social phenomena typical of the welfare society; Be able to relate well-being to globalization and sustainability; Achieve skills to use in a balanced and compatible way the technique, the technology, the economy and the sustainability.
CT3 [Avaluable] - Efficient oral and written communication. Communicate in an oral and written way with other people about the results of learning, thinking and decision making; Participate in debates on topics of the specialty itself.
CT6 [Avaluable] - Autonomous Learning. Detect deficiencies in one's own knowledge and overcome them through critical reflection and the choice of the best action to extend this knowledge.
Basic
CB1 - That students have demonstrated to possess and understand knowledge in an area of ??study that starts from the base of general secondary education, and is usually found at a level that, although supported by advanced textbooks, also includes some aspects that imply Knowledge from the vanguard of their field of study.
CB4 - That the students can transmit information, ideas, problems and solutions to a specialized and non-specialized public.
CB5 - That the students have developed those learning skills necessary to undertake later studies with a high degree of autonomy
Technical Competences
Especifics
CE03 - To identify and apply the basic algorithmic procedures of computer technologies to design solutions to problems by analyzing the suitability and complexity of the proposed algorithms.
CE05 - To be able to analyze and evaluate the structure and architecture of computers, as well as the basic components that make them up.
CE06 - To be able to identify the features, functionalities and structure of Operating Systems and to design and implement applications based on their services.
CE07 - To interpret the characteristics, functionalities and structure of Distributed Systems, Computer Networks and the Internet and design and implement applications based on them.
CE11 - To identify and apply the fundamental principles and basic techniques of parallel, concurrent, distributed and real-time programming.
CE19 - To use current computer systems, including high-performance systems, for the processing of large volumes of data from the knowledge of its structure, operation and particularities.
CE28 - To plan, ideate, deploy and direct projects, services and systems in the field of artificial intelligence, leading its implementation and continuous improvement and assessing its economic and social impact.
Generic Technical Competences
Generic
CG2 - To use the fundamental knowledge and solid work methodologies acquired during the studies to adapt to the new technological scenarios of the future.
CG3 - To define, evaluate and select hardware and software platforms for the development and execution of computer systems, services and applications in the field of artificial intelligence.
CG4 - Reasoning, analyzing reality and designing algorithms and formulations that model it. To identify problems and construct valid algorithmic or mathematical solutions, eventually new, integrating the necessary multidisciplinary knowledge, evaluating different alternatives with a critical spirit, justifying the decisions taken, interpreting and synthesizing the results in the context of the application domain and establishing methodological generalizations based on specific applications.
CG5 - Work in multidisciplinary teams and projects related to artificial intelligence and robotics, interacting fluently with engineers and professionals from other disciplines.
CG8 - Perform an ethical exercise of the profession in all its facets, applying ethical criteria in the design of systems, algorithms, experiments, use of data, in accordance with the ethical systems recommended by national and international organizations, with special emphasis on security, robustness , privacy, transparency, traceability, prevention of bias (race, gender, religion, territory, etc.) and respect for human rights.
CG9 - To face new challenges with a broad vision of the possibilities of a professional career in the field of Artificial Intelligence. Develop the activity applying quality criteria and continuous improvement, and act rigorously in professional development. Adapt to organizational or technological changes. Work in situations of lack of information and / or with time and / or resource restrictions.
Objectives
Knowledge about the features and limitations, especially about accuracy error, of the different data representation formats in a computer
Related competences:
CB1,
CE03,
Subcompetences:
Implementation of basic operations
From the representation of basic data to advanced formats
Knowledge about a processor architecture based on Von Neumann model, as well as its key components
Related competences:
CG2,
CG3,
CT3,
CB4,
CE05,
CE11,
Subcompetences:
Understand the cost and energy consumption of executing an instruction
Memory hierarchy and its properties, especially the locality
Parallelism with SIMD
Knowledge about logical memory space, from how it is used to how some contents are managed
Related competences:
CB4,
CE19,
Subcompetences:
Usage and management of libraries in the memory
Knowledge about the basic concepts of an Operating System and understand the impact on performance and energy consumption of a system
Related competences:
CG4,
CG9,
CB5,
CE06,
CE11,
Subcompetences:
File system and I/O
Memory and process management
Knowledge about the procedure to create and debug a program, as well as its requirements
Related competences:
CG9,
CB5,
CE03,
Ability to discus and compare the resolution of problems and practical exercises
Related competences:
CE28,
CG5,
CG8,
CT2,
CT6,
CB4,
CE06,
CE07,
Understand the relation between the course and the AI area
Related competences:
CG9,
CB1,
Contents
Course Introduction
A brief introduction about the course, topics, and its relation with the AI area
Data Representation
This lesson is focused on the data representation with different complexity levels, their limitations and the implementation of basic operations
Processor Architecture
Introduction of the processor architecture, based on the Von Neumann's model, and its components
Memory Hierarchy
Present the memory hierarchy properties, especially the concepts of locality and reutilization, and the potential impact on performance and energy consumption
Introduction of parallelism based on SIMD
Introduction of the concept and key aspects of SIMD parallelism
Implications of executing an instruction
Description of consequences related to cost, potential bottlenecks and energy consumption, from the architecture point of view, when executing an instruction
Logical Memory Space
Presentation of basic points to understand the aim, build, usage, and management of the logical memory space
Introduction of libraries
Presentation of the concept and purpose behind the libraries as well as the required management from the point of view of the logical memory space
Create Executables
Introduction of compilation and interpretation processes, including the debugging as well. Comparison of requirements and limitations of generated executables
Impact of Operating Systems on performance and energy consumption
Define Operating Systems and their key aspects that impact on the system performance and energy consumption
Basic components of Operating Systems
Present I/O and File System subsystems of the Operating System, from the point of view and detail level of program developer. Besides, aspects of memory management are also introduced
Activities
ActivityEvaluation act
Course Introduction
This activity presents the goals, contents, and the way to work in the course. Besides, in the lab, useful key points will be introduced required to fulfill the practice sessions. Objectives:7 Contents:
This lesson includes the data representation, from basic concepts, types of numbers, and finally, advanced data representation. Besides, other points, such as data precision and basic operations will be also addressed Objectives:1 Contents:
We introduce the architecture of uniprocessor systems, from the Von Neumann architecture and its key components. Besides, we also present the conseqüences of executing an instruction, among other reasons to understand potential bottlenecks and the cost of executing an instruction, especially in relation to the energy consumption and its relation with the architecture. Objectives:2 Contents:
This lesson comprises two parts. The first one explains how to generate a program (both if it was a compiled or an interpreted program). The second part presents the Operating System and a set of concepts and features to understand its relevance for the program execution and its impact on the performance and the energy. Objectives:45 Contents:
We present the logical memory address space and its key features, as well as understand the concept behind the libraries and their main aspects. Objectives:3 Contents:
The course is based on classroom theory and laboratory. The lectures follow the program set out in this syllabus, are usually based on material provided through slides.
On the lectures, the course promotes a dialogue between teacher and students by providing activities carried out jointly based on particular aspects of the current topic.
Laboratory sessions follow the same subjects and are based on two different types of lectures: 1) practice sessions using a computer and using some wordings; 2) exercises/problems to be solved in the whiteboard or through a presentation/explanation for the other students.
Evaluation methodology
There are two exams for the theory part:
- PT: The partial theory control (20%)
- FT: The final theory exam (35%)
- FL: The final lab exam (35%)
- SL: the marks of tracking lab (10%) come from individual tests performed in particular lab sessions.
Regular Assessment: The final mark (NF) of the course comes from
NF = 35%FL + 10%SL + MAX(55%FT; (20%PT+35%FT))
Reassessment: will be done on June. Only the students that have failed the course (i.e. those have done the partial and/or final theory exams) can have the chance to do the Reassessment exam (only theory). If the student pass the exam, the highest mark of the exam and, thus the highest final mark of the course will be 7.