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
Know about the objectives of the course
Related competences:
CB1,
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
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
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
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
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.
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
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
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
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
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
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
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
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.
Computer elements
Description of the elements that constitute a computer: processors, memory hierarchy, input/output components, data storage and the way they are interconnected.
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.
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.
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.
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.
Introduction to parallelism
Parallelism and concurrency. Processes and threads. Synchronization. Programming models
Basic techniques of performance analysis
Performance of applications, metrics, sources of the information, performance counters, high resolution timers. Performance analysis, Gflops, bandwidth.
Input/output subsystem
It introduces the input/output subsystem of the execution environment, channels, terminals, files, pipes.
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.
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:32456781091112131 Week:
14
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:32456781091112131 Week:
15 (Outside class hours)
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).