Fundamentals of Computers

You are here

Credits
6
Types
Compulsory
Requirements
This subject has not requirements, but it has got previous capacities
Department
AC
Mail
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

  1. 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
  2. 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
  3. 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
  4. 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
  5. Knowledge about the procedure to create and debug a program, as well as its requirements
    Related competences: CG9, CB5, CE03,
  6. Ability to discus and compare the resolution of problems and practical exercises
    Related competences: CE28, CG5, CG8, CT2, CT6, CB4, CE06, CE07,
  7. Understand the relation between the course and the AI area
    Related competences: CG9, CB1,

Contents

  1. Course Introduction
    A brief introduction about the course, topics, and its relation with the AI area
  2. Data Representation
    This lesson is focused on the data representation with different complexity levels, their limitations and the implementation of basic operations
  3. Processor Architecture
    Introduction of the processor architecture, based on the Von Neumann's model, and its components
  4. Memory Hierarchy
    Present the memory hierarchy properties, especially the concepts of locality and reutilization, and the potential impact on performance and energy consumption
  5. Introduction of parallelism based on SIMD
    Introduction of the concept and key aspects of SIMD parallelism
  6. 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
  7. Logical Memory Space
    Presentation of basic points to understand the aim, build, usage, and management of the logical memory space
  8. 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
  9. Create Executables
    Introduction of compilation and interpretation processes, including the debugging as well. Comparison of requirements and limitations of generated executables
  10. 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
  11. 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

Activity Evaluation 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:
Theory
0.5h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
3h

Data Representation and Basic Operations

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:
Theory
5.5h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
10h

Processor Architecture

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:
Theory
8h
Problems
0h
Laboratory
8h
Guided learning
0h
Autonomous learning
16h

Theory mid-term


Objectives: 1 2
Week: 8 (Outside class hours)
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Program Execution and its environment

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: 4 5
Contents:
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
14h

Logical memory

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:
Theory
6h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
12h

Lab Exam


Objectives: 6
Week: 14
Type: lab exam
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
10h

Final Theory Exam


Objectives: 1 2 3 4 5 6 7
Week: 15 (Outside class hours)
Type: theory exam
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
15h

Teaching methodology

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: tracking lab reports (10%) also used to asses part of the transversal competence CT3


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 final mark of the course will be "passed".

Bibliography

Basic:

Web links

Previous capacities

No one in particular. Students should have the expected skills for starting a bachelor's degree in Informatics.