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

  • Xavier Martorell Bofill ( )

Weekly hours

Theory
3
Problems
0
Laboratory
2
Guided learning
0.4
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 - 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 - 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:
    • Determination of the precision error on floating point values
    • Character strings, arrays, and structures
  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:
    • Distinguish between interpreted and compiled languages
    • Translation between programming languages
    • Assembly language.
  7. Knowledge and work with the operating system services
    Related competences: CE4, CB5,
    Subcompetences:
    • Know about the operating systems call interface
    • Know about the advantages and disadvantages of the operating system 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 shared memory and distributed memory models
    • Distinguish between the concepts of process and thread
    • Know and work with sinchronization techniques
  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 organize the application data in files
    • Redundant storage systems, and logical volumes
    • Know how to describe the characteristics of the file systems

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
0.5h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
2h

Data representation


Objectives: 2
Theory
2.5h
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

Libraries and compilation


Objectives: 8 9
Contents:
Theory
3h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
8h

Operating System


Objectives: 7
Contents:
Theory
5h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8.5h

Partial control


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

Fundamentals of programming


Objectives: 4 5 6
Contents:
Theory
6h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
12h

Parallelism


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

Performance analysis


Objectives: 11
Contents:
Theory
4h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h

Input/output and communications


Objectives: 12
Contents:
Theory
4h
Problems
0h
Laboratory
1h
Guided learning
0h
Autonomous learning
10h

File systems


Objectives: 13
Contents:
Theory
4h
Problems
0h
Laboratory
1h
Guided learning
0h
Autonomous learning
10h

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: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
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.

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 (15%)
- FT: The final theory exam (60%)

Regular Assessment: The final mark of the course comes from
- MAX(75%FT; 15%PT+60%FT)
- The lab test (15%)
- We also assess a homework deliverable (to be defined during the course) (5%) and the lab deliveries (5%) that are related to the competences Solvent Usage of Information Resources and Autonomous Learning, respectively.

Reassessment: Only the students that fail the course (that is, students that have performed the partial and/or final theory exam) can go to the Reassessment exam (only theory exam). Thus, the Reassessment mark substitutes the global theory mark (that is, 75% of the course mark). Anyhow, if the regular assessment mark was 4 or higher and the new mark (including the Reassessment mark) is lower, then we keep the regular mark.

Bibliography

Basic:

Web links

Previous capacities

Basic programming