Credits
7.5
Types
Compulsory
Requirements
This subject has not requirements, but it has got previous capacities
Department
AC
Mail
This course provides the student knowledge about the structure of the computer. It also includes basic knowledge on coding the data, structure of programs and libraries, execution levels user and operating system, the concepts of compilation and interpretation or programs, data storage systems, file systems, parallelism and performance evaluation techniques.

Teachers

Person in charge

  • Javier Verdu Mula ( )

Others

  • Marc Ruiz Ramírez ( )

Weekly hours

Theory
3
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
7.5

Competences

Technical Competences

Technical competencies

  • CE4 - Use current computer systems, including high performance systems, for the process of large volumes of data from the knowledge of its structure, operation and particularities.

Transversal Competences

Transversals

  • CT5 [Avaluable] - Solvent use of information resources. Manage the acquisition, structuring, analysis and visualization of data and information in the field of specialty and critically evaluate the results of such management.
  • 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.
  • CT7 - Third language. Know a third language, preferably English, with an adequate oral and written level and in line with the needs of graduates.

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.
  • CB2 - That the students know how to apply their knowledge to their work or vocation in a professional way and possess the skills that are usually demonstrated through the elaboration and defense of arguments and problem solving within their area of ??study.
  • CB5 - That the students have developed those learning skills necessary to undertake later studies with a high degree of autonomy

Generic Technical Competences

Generic

  • CG1 - To design computer systems that integrate data of provenances and very diverse forms, create with them mathematical models, reason on these models and act accordingly, learning from experience.
  • CG2 - Choose and apply the most appropriate methods and techniques to a problem defined by data that represents a challenge for its volume, speed, variety or heterogeneity, including computer, mathematical, statistical and signal processing methods.
  • CG4 - Identify opportunities for innovative data-driven applications in evolving technological environments.

Objectives

  1. Know about the objectives of the course
    Related competences: CB1,
  2. Work with different types of data, natural, integer, floating point, and their grouping
    Related competences: CE4, CB1,
    Subcompetences:
    • Character strings, arrays, and structures
    • Determination of the precision error on floating point values
  3. Demonstrate knowledge and understanding of the fundamentals of computers and on the basic structure of a computer.
    Related competences: CT6, CB1,
    Subcompetences:
    • Processor, memory, input/output, storage systems, and communications
  4. Describe and work with the program execution environment.
    Related competences: CE4, CT6, CT7, CG1, CB2, CB5,
    Subcompetences:
    • Define with our own words the concepts of operating system, program, library and process
    • Distinguish user and system levels
  5. Knowledge on the structure of programs, and be able to work with their analysis and management tools.
    Related competences: CE4, CT5, CB2, CB5,
    Subcompetences:
    • Sections inside a program: code, data, stack
  6. Know about the basic principles of the programming languages.
    Related competences: CT6, CB2,
    Subcompetences:
    • Translation between programming languages
    • Distinguish between interpreted and compiled languages
    • Assembly language.
  7. Knowledge and work with the operating system services
    Related competences: CE4, CB5,
    Subcompetences:
    • Know about the advantages and disadvantages of the operating system interface
    • Know about the operating systems call interface
  8. Knowledge and work with libraries
    Related competences: CE4, CT6, CB5,
    Subcompetences:
    • Distinguish among the functionalities provided by the different execution levels: system and libraries
    • System and language support libraries
  9. Know and work with the program compilation tools
    Related competences: CE4, CT6, CB5,
    Subcompetences:
    • Be able to select the most apropriate compilation options
    • Know about the program optimization options
  10. Know and work with parallel programming models
    Related competences: CE4, CT6, CT7, CG2, CG4, CB2, CB5,
    Subcompetences:
    • Distinguish between the concepts of process and thread
    • Know and work with sinchronization techniques
    • Distinguish between shared memory and distributed memory models
  11. Know and work with basic techniques of performance analysis
    Related competences: CT5, CG2, CB2,
    Subcompetences:
    • Know how to analyze the performance of the computer: processor, memory, communications and storage subsystem
  12. Know and work with the input/output tools provided by the execution environments
    Related competences: CE4, CT5, CG1, CG2, CG4, CB5,
    Subcompetences:
    • Know and work with the communication channels and devices available in the system
  13. Know and work with the storage systems
    Related competences: CE4, CT6, CG2, CG4, CB5,
    Subcompetences:
    • Know how to describe the characteristics of the file systems
    • Know how to organize the application data in files
    • Redundant storage systems, and logical volumes

Contents

  1. Data representation
    Know and work with the different data types and their representation in computers. Binary encoding, characters, integers, strings, floating point values, and their grouping in classes, structures, and unions.
  2. Computer elements
    Description of the elements that constitute a computer: processors, memory hierarchy, input/output components, data storage and the way they are interconnected.
  3. System libraries
    This chapter presents the functionalities offered by the system libraries.
    Shows the format of executable files, and how and which information can be obtained from them.
  4. Compilation environment
    It presents the tools performing compilation and interpretation of programming languages. It describes the compilation and optimization options offered by compilers. It completes the structure of the executable files, with symbol table, and debugging information.
  5. Operating System
    Describes the objectives of the Operating System in an execution environment. This chapter presents the basic OS abstractions and its interface. System calls, interrupts, exceptions.
  6. Programming foundations
    Description of the basic environment on top of which programs can be executed. Definition of operating system, execution levels, user and system (privileged), concepts of program and process. Program and libraries structure. Basic principles of programming languages, interpretation and compilation. Assembly language. Translation from high level languages to low level languages.
  7. Introduction to parallelism
    Parallelism and concurrency. Processes and threads. Synchronization. Programming models
  8. Basic techniques of performance analysis
    Performance of applications, metrics, sources of the information, performance counters, high resolution timers. Performance analysis, Gflops, bandwidth.
  9. Input/output subsystem
    It introduces the input/output subsystem of the execution environment, channels, terminals, files, pipes.
  10. Storage systems
    It describes the physical components of the Input/Output system to store data: disks, and filesystems. It provides a view of the fault tolerance mechanisms, based on redundant disks systems and logical volumes.

Activities

Activity Evaluation act


Course presentation


Objectives: 1
Theory
1h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
2h

Fundamentals of programming


Objectives: 4 5 6 8 9
Contents:
Theory
6h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
20h

Data representation


Objectives: 2
Contents:
Theory
6h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h

The computer and its elements


Objectives: 3
Contents:
Theory
6h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
10h

Partial control


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

Theory
14h
Problems
0h
Laboratory
10h
Guided learning
0h
Autonomous learning
26.5h

Theory
12h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
18h

Laboratory test

Laboratory test of the course, consisting of a laboratory session, with a specific wording, done in an individual way. It is performed during a particular lab session.
Objectives: 3 2 4 5 6 7 8 10 9 11 12 13 1
Week: 14
Type: lab exam
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
10h

Final exam

Final exam of the course, consisting of theoretical questions related to all subjects explained in both theoretical classes and laboratory sessions
Objectives: 3 2 4 5 6 7 8 10 9 11 12 13 1
Week: 15 (Outside class hours)
Type: theory exam
Theory
3h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

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, but complemented with the explanations of the lecturers.

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 classes follow the same subjects and are based on documentation provided, explaining how to develop the current practice.

Evaluation methodology

There are two exams for the theory part:
- PT: The partial theory control (30%)
- FT: The final theory exam (40%)

Regular Assessment: The final mark of the course comes from
- MAX(70%FT; 30%PT+40%FT)
- The lab test (20%) at the end of the term
- We also assess the tracking of lab performance (10%) that is related to individual tests performed in particular lab sessions.

Reassessment: Only the students that fail the course can go to the Reassessment exam (only theory exam). Thus, the final mark of the course is the maximum between the regular assessment mark and the one obtained with the previous formula, but replacing the global theory mark with the Reassessment mark (that is, 70% of the course mark).

Bibliography

Basic:

Web links

Previous capacities

Basic programming