Skip to main content

Fundamentals of Computers

Credits
6
Types
Compulsory
Requirements
This subject has not requirements , but it has got previous capacities
Department
AC
Web
https://docencia.ac.upc.edu/FIB/GIA/FC/
Mail
jverdu@ac.upc.edu
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

Others

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6

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
  • 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

  • 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)
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

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

    Final Theory Exam


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

    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: 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.

    Bibliography

    Basic

    Web links

    Previous capacities

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