Skip to main content

Computers

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

Others

Weekly hours

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

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

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

    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
    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 sessions
    Objectives: 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

    Web links

    Previous capacities

    Basic programming