Credits
7.5
Types
Compulsory
Requirements
This subject has not requirements
, but it has got previous capacities
Department
AC
Web
http://docencia.ac.upc.edu/FIB/GCED/COM
Mail
jverdu@ac.upc.edu
Teachers
Person in charge
- Javier Verdu Mula ( jverdu@ac.upc.edu )
Others
- Marc Ruiz Ramírez ( mruiz@ac.upc.edu )
Weekly hours
Theory
3
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
7.5
Competences
Technical competencies
Transversals
Basic
Generic
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.
Activities
Activity Evaluation act
Theory
1h
Problems
0h
Laboratory
4h
Guided learning
0h
Autonomous learning
2h
Theory
6h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h
Theory
6h
Problems
0h
Laboratory
2h
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
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Final exam
Final exam of the course, consisting of theoretical questions related to all subjects explained in both theoretical classes and laboratory sessionsObjectives: 3 2 4 5 6 7 8 10 9 11 12 13 1
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, 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
-
Computer organization and design: the hardware/software interface
- Patterson, D.A.; Hennessy, J-.L.; Alexander, P,
Elsevier Morgan Kaufmann,
2014.
ISBN: 9780124077263
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004000499706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Computer systems : a programmer's perspective
- Bryant, Randal E; O'Hallaron, David,
Pearson,
2016.
ISBN: 9781292101767
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004062589706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Documentació de l'assignatura http://docencia.ac.upc.edu/FIB/GCED/COM