Consulta de Guies Docents



Curs Acadèmic: 2022/23

3377 - Grau en Enginyeria en Informàtica

24286 - Organització de Computadors


Informació de la Guia Docent

Curs acadèmic:
2022/23
Centre acadèmic:
337 - Escola d'Enginyeria
Estudi:
3377 - Grau en Enginyeria en Informàtica
Assignatura:
24286 - Organització de Computadors
Àmbit:
---
Crèdits:
6.0
Curs:
1
Idiomes de docència:
Teoria: Grup 1: Anglès
Grup 2: Castellà
Grup 3: Castellà
Pràctiques: Grup 101: Anglès
Grup 102: Anglès
Grup 201: Català
Grup 202: Català, Castellà
Grup 301: Català
Grup 302: Català
Seminari: Grup 101: Anglès
Grup 102: Anglès
Grup 103: Anglès
Grup 104: Anglès
Grup 201: Català
Grup 202: Castellà
Grup 203: Català
Grup 204: Castellà
Grup 301: Català
Grup 302: Català
Grup 303: Català
Grup 304: Català
Professorat:
Ignacio Celis Villegas, Vladimir Estivill Castro
Periode d'Impartició:
Segon trimestre
Horari:

Presentació

Objectiu principal: Entendre de manera significativa l'arquitectura de Von Neuman i l'execució de programes informàtics al nivell baix d'un ordinador amb un sol processador, memòria i dispositius d'entrada i sortida. Hi hauria d'haver una transparència que les instruccions, l'adreça de memòria i les dades es codifiquen com a nombres enters. Els estudiants han d'adquirir una comprensió sobre el funcionament al límit del programari i el maquinari. Per tant, aplicar tècniques de programació de baix nivell i analitzar i dissenyar traduccions senzilles de llenguatges d'alt nivell a llenguatges de baix nivell. En particular, entendre la gestió de subrutines i la disposició de la memòria RAM.

Competències associades

Competències específiques:

  • CE4. Dominar l'ús i la programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació en enginyeria..
  • CE5. Reconèixer l'estructura, l'organització, el funcionament i la interconnexió dels sistemes informàtics, els fonaments de la seva programació, i saber aplicar aquests coneixements per a la resolució de problemes propis de l'enginyeria.
  • CE7. Dominar els conceptes i principis del funcionament intern d'un ordinador així com de la comunicació entre ordinadors, que permeti l'anàlisi i avaluació d'estructures de computadors, incloent plataformes paral·leles i distribuïdes.
  • CE8. Dominar els conceptes de la programació i estructures de dades, incloent principis de disseny segur i programació defensiva, verificació de programes i detecció d'errors.
  • CE10.Reconèixer procediments algorítmics bàsics i aplicar-los per a la resolució de problemes computacionals, analitzant la idoneïtat i complexitat de la solució.

Competències bàsiques:

  • CB2. Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una forma professional i posseeixin les competències que es solen demostrar per mitjà de l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi;
  • CB4. Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tant especialitzat com no especialitzat;
  • CB5. Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.

Competències transversals:

  • CT3. Aplicar amb flexibilitat i creativitat els coneixements adquirits i d'adaptar-los a contextos i situacions noves.
  • CT4. Comunicar-se en contextos acadèmics i professionals de forma oral i escrita en anglès.
  • CT5. Generar noves idees i incorporar-les en el treball diari.

Competències addicionals:

  • Habilitats de resolució de problemes mitjançant la síntesi del comportament de programes utilitzant llenguatge ensamblador.
  • Pensament abstracte formulant un comportament en pseudocodi i programant-lo amb programes informàtics de baix nivell
  • Capacitat analítica mitjançant la confirmació del comportament correcte dels programes informàtics
  • Habilitats reflexives informant de manera significativa sobre exercicis pràctics, seminaris i laboratoris
  • Habilitats de desenvolupament de programari anticipant el comportament dels programes en diferents maquinari
  • Habilitats d'abstracció mitjançant la interpretació de com es representen els diferents tipus de dades als ordinadors de baix nivell
  • Habilitats analítiques mitjançant la resolució d'errors reportats pels muntadors i intèrprets
  • Habilitats de construcció de programes i desenvolupament de programari aplicant de manera significativa l'abstracció procedimental.
  • Capacitat per comprendre i saber generar algorismes i codis en llenguatge assemblador (MIPS) que permetin resoldre problemes segons els continguts de l'assignatura.
  • Habilitats de resolució de problemes mitjançant la síntesi del comportament del programa mitjançant llenguatge ensamblador.
  • Saber utilitzar el simulador (MARS) i saber analitzar l'execució dels programes proposats.
  • Capacitat d'anàlisi i síntesi.
  • Capacitat d'organització i planificació.
  • Capacitat per resoldre problemes i prendre decisions.
  • Capacitat per treballar en equip i habilitats en les relacions interpersonals.
  • Capacitat de raonar de manera crítica i aprendre de manera autònoma.
  • Capacitat de ser creatiu i adaptar-se a noves situacions.

Competències comunes UPF

  1. Competència d'autonomia, ajuden a consolidar capacitats d'autoconeixement i pensament crític; l'autoaprenentatge i la resolució de problemes; iniciativa personal, autogestió i capacitat per actuar en entorns complexos. Nota: Hi ha objectius d'aprenentatge de la titulació i de l'assignatura (CB5) que també cobreixen aspectes d'aquestes competències.
  2. Competències de la ciutadania global, que ajuden a desenvolupar la capacitat per examinar amb una perspectiva global el món i els seus reptes, des del compromís amb els drets fonamentals, la justícia social, la democràcia i el medi ambient per a l'acció personal i col·lectiva pel benestar planetari i el desenvolupament sostenible. Nota: vegeu el pla d'aprenentatge.
  3. La competència de gènere, que permet avaluar les desigualtats per raons de sexe i gènere, per tal de dissenyar solucions efectives. Nota: vegeu el pla d'aprenentatge.
  4. Competència en comunicació, que garanteixin el treball de les capacitats per comprendre la crítica lectora i oral, l'excel·lència en l'expressió escrita (i que garanteixin la relació amb diverses llengües) Nota: Hi ha objectius d'aprenentatge de grau i de l'assignatura (CB4, CT4, i CT5) que també i cobreixen aquestes competències.

Resultats de l'aprenentatge

RA.CE4.1 Domina els coneixements bàsics i pràctics sobre l'ús i programació dels ordinadors amb aplicació en enginyeria. 

RA.CE5.1 Reconeix l'estructura, organització, funcionament i interconnexió dels sistemes informàtics, així com els fonaments de la seva programació. 

RA.CE7.1 Avalua l'estructura i arquitectura dels computadors, així com els components bàsics que els conformen. 

RA.CE8.1 Programa codi utilitzant elements fonamentals de programació. 

RA.CE8.2 Dissenya i utilitza els tipus i estructures de dades bàsiques adequades per a la resolució d'un problema. 

RA.CE8.6 Reconeix principis, mètodes i pràctiques de l'Enginyeria del Programari. 

Addicionalment, l'estudiant ha de ser capaç de:

  • Descriure l'estructura d'un ordinador amb un processador, una memòria i dispositius d'entrada i sortida.
  • Explicar els principals elements d'un ordinador, com es forma i com és capaç d'executar programes (analitzant la traducció de llenguatges d'alt nivell a de baix nivell).
  • Construir programes per a un ordinador de baix nivell: llenguatge assemblador i llenguatge màquina.
  • Utilitzar eficaçment representacions i operar nombres enters.
  • Descriure i operar de manera significativa les instruccions que emmagatzemen i accedeixen a dades en un programa.
  • Descriure i construir traduccions de codi d'alt nivell a llenguatge ensamblador mitjançant un IBA estàndard (interfície binària d'aplicació), especialment expressions, frases de control, bucles, subrutines.
  • Analitzar programes de baix nivell per fer enginyeria inversa a codi d'alt nivell.
  • Anticipar i utilitzar de manera significativa l'estructura i les funcionalitats de la memòria principal i la memòria “cache”. Descriure el maquinari necessari per a la memòria virtual, apreciar la utilitat de la memòria virtual i aplicar-ne la funcionalitat bàsica.

També competències bàsiques com son:
CB3. Que els estudiants tinguin la capacitat de reunir i interpretar dades rellevants (normalment dins de la seva àrea d'estudi) per emetre judicis que incloguin una reflexió sobre temes rellevants d'índole social, científica o ètica;
CB4. Que els estudiants puguin transmetre informació, idees, problemes i solucions a un públic tant especialitzat com no especialitzat;
CB5. Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.

I competències transversals com
CT3. Aplicar amb flexibilitat i creativitat els coneixements adquirits i d'adaptar-los a contextos i situacions noves.
CT4. Comunicar-se en contextos acadèmics i professionals de forma oral i escrita en anglès.
CT5. Generar noves idees i incorporar-les en el treball diari.

Objectius de Desenvolupament Sostenible

  • Aplicar la comprensió del comportament de l'ordinador a un nivell baix per comprendre de manera significativa els costos i l'impacte dels algorismes
  • Aplicar mètodes d'enginyeria de programari i anàlisi i disseny de programari per construir programes correctes de manera eficient.
  • Apreciar els elements i components d'un ordinador i el seu impacte, avaluant així el ràpid canvi de maquinari i programari que provoca una gran petjada de residus electrònics.
  • Comprendre l'era PostPC i l'impacte sobre el medi ambient i les estructures de la societat a causa de
    • el Dispositiu mòbil personal (PMD) que funciona amb bateria, es connecta a Internet i
    • el Cloud computing que ofereix ordinadors a escala de magatzem (Warehouse Scale Computers:WSC) i programari com a servei (Software as a Service:SaaS)
  • Tingueu en compte que ara, una part del programari s'executa en un PMD i una part al núvol

 

# Aconseguir la igualtat de gènere i empoderar totes les dones i nenes

# Construir infraestructures resilients, promoure una industrialització inclusiva i sostenible i fomentar la innovació

# Garantir patrons de consum i producció sostenibles

# Prendre mesures urgents per combatre el canvi climàtic i els seus impactes

# Garantir una educació inclusiva i equitativa de qualitat i promoure oportunitats d'aprenentatge al llarg de la vida per a tothom

Prerequisits

  • Hàbits d'estudi sòlids.
  • Disciplina per revisar regularment les notes de la classe i seguir el ritme del curs.
  • Iniciativa per intentar exercicis abans de la sessió corresponent
  • Assertivitat per implicar professors i tutors amb preguntes per millorar la comprensió dels materials.
  • Enfocament d'estudi sistemàtic intentant exercicis i revisar solucions model per reflexionar sobre les virtuts i mancances de les seves pròpies respostes inicials.
  • Una mica de comprensió del llenguatge de programació C
  • Els estudiants han de tenir la capacitat de gestionar un ordinador i el seu programari per descarregar i carregar materials.

Continguts

  1. Arquitectura bàsica de Von Neuman i elements principals.
  2. Aritmètica binària
  3. Llenguatge de màquina i llenguatge assemblador.
  4. Introducció al llenguatge assemblador MIPS i les seves estructures bàsiques
    1. Declaració de dades
    2. Dades a la memòria
    3. Carregar dades de la memòria i emmagatzemar dades a la memòria
    4. Operacions aritmètiques, lògiques i de desplaçament
    5. Operacions de salt i comparació condicionals
    6. Estructures de control condicional i de repetició
  5. Traducció de codis d'alt nivell en MIPS i ús de memòria
    1. Representació de registres, matrius i punters
    2. Subrutines
    3. Estructures de dades: la pila
    4. Jerarquia de memòria
    5. Organització i funcionament de la memòria principal.
    6. Memòria “cache”

 

Metodologia docent

Aquesta assignatura s'organitza de la següent manera:

 

• Teoria: un total de 28 hores de classes magistrals (dividida en classes de 2h) on es presentaran els continguts en dos blocs. També es realitzaran activitats més pràctiques de discussió així com exemples d'exercicis conceptuals relacionats.

  • El principal mètode d'ensenyament aquí és un “Mètode expositiu o magistral”. Estarà recolzat amb notes de classe disponibles abans de classe. Amb el suport de minivídeos introductoris de producció pròpia, així com de minivídeos seleccionats. Lliçons recolzades en activitats de resolució de problemes. Lliçons motivades per activitats de "aula invertida". Participació reforçada amb eines com el Mentímetre.
  • El mètode secundàri és “Flipped classroom”. Les notes de classe estan disponibles abans de classe. Amb el suport de minivídeos introductoris de producció pròpia, així com de minivídeos seleccionats. Lliçons recolzades en activitats de resolució de problemes. Lliçons motivades per activitats d'aula invertida. Participació reforçada amb eines com el Mentímetre.

 
• Seminaris: Un total de 12 hores de seminaris (dividides en sessions de 2 hores) per a un total de 6 seminaris.
Els seminaris es fan en grups reduïts d'estudiants. Els estudiants tindran com a objectiu treballar exercicis pràctics relacionats amb els conceptes exposats a les classes magistrals. Els alumnes treballaran individualment o en grup amb exercicis de resolució de problemes. Els informes han de ser individuals. Els alumnes discutiran amb el professor i la solució es treballarà a classe. Els estudiants han de poder defensar els seus informes individuals. Cada seminari tindrà associada una tasca que s'ha de fer juntament amb la memòria (l'informe) del seminari.

    • La tècnica principal aquí és l'aprenentatge basat en problemes (ABP). Els seminaris es fan en grups reduïts d'estudiants. Definició de problemes i tasques del seminari publicat almenys 1 setmana abans del seminari. Els estudiants treballen abans del seminari o sessió de laboratori corresponent. Els alumnes treballaran individualment o en grup amb exercicis de resolució de problemes. Els alumnes discutiran amb el professor i la solució es treballarà a classe. L'alumne adquireix coneixements i habilitats per si mateix amb l'ajuda dels seus companys i d'un professor com a mentor. Els informes dels seminaris han de ser individuals. Instrucció clara del que constitueix una presentació adequada que compleixi tots els criteris d'integritat acadèmica.


• Pràctiques de laboratori: Un total de 12+ hores de pràctica (dividides en sessions de 2 hores) com a laboratoris. Les instruccions de laboratori es publicaran almenys una setmana abans de cada sessió. Els laboratoris es poden realitzar individualment o per parelles abans de la sessió. La sessió de laboratori es pot utilitzar per plantejar qüestions que poden necessitar un aclariment per part del tutor de laboratori. Un laboratori s'avalua enviant un informe de laboratori com a màxim un dia abans de la següent sessió de laboratori. L'alumnat ha de poder defensar individualment l'informe de la parella o l’individu.

    • La tècnica principal aquí és l'aprenentatge basat en problemes (ABP). Les instruccions de laboratori es publicaran almenys una setmana abans de cada sessió. Els laboratoris es poden realitzar individualment o per parelles abans de la sessió. La sessió de laboratori es pot utilitzar per plantejar qüestions que poden necessitar aclariments per part del tutor de laboratori. Un laboratori s'avalua enviant un informe de laboratori com a màxim un dia abans de la següent sessió de laboratori.

Avaluació

Per avaluar les competències i els objectius generals de la UPF cap als objectius de desenvolupament sostenible els estudiants han de completar

  • 2 informes (1.000 paraules cadascun que resumeixen l'impacte de l'enginyeria del desenvolupament sostenible). Aquests informes no atorguen cap nota que contribueixi al còmput de la nota final. No obstant això, cal presentar-los satisfactòriament per poder participar en cadascun dels exàmens. És a dir, un informe s'ha de presentar abans de la data de l'examen parcial i el segon informe abans de la data de l'examen final.

L'avaluació d'aquesta assignatura es durà a terme de la següent manera:

  • 1 petita proba (recuperable)10%
  • 1 examen final: període d'examen (recuperable) 30%

Per tant, els resultats d'aprenentatge relatius a la comprensió teòrica aporten un 40%

  • 6 laboratoris, cada laboratori val el 9%, només els 5 millors laboratoris. El total dels laboratoris és del 45%.
  • 6 seminaris. Cada seminari val un 3%, només els 5 millors  seminaris; cap seminari és recuperable. El total dels seminaris és del 15%.

Per tant, els resultats d'aprenentatge relacionats amb les habilitats pràctiques aporten un 60%

Per aprovar l'assignatura s'apliquen els següents llindars

  1. Per aprovar l'assignatura, l'estudiant ha de puntuar un 45% o més a l'examen final
  2. Cal assistir a (i reportar) 5 o més dels laboratoris. La nota mitjana dels laboratoris ha de ser del 50% per aprovar l'assignatura.
  3. Un laboratori fallit només es pot recuperar individualment i només per complir el requisit de 5 laboratoris completats.
  4. La nota dels seminaris ha de ser del 9% o superior per aprovar l'assignatura (és a dir, la nota acumulada dels seminaris ha de ser del 50% o més per aprovar l'assignatura).
  5. S'ha de presentar un informe abans de la meitat del quadrimestre per tal d'aconseguir el dret a presentar-se a l'examen.
  6. Abans de l'examen final s'ha de presentar un segon informe per tal d'aconseguir el dret a presentar-se a l'examen final.

Bibliografia i recursos d'informació

  1. David A. Patterson and John L. Hennessy “Computer Organization and Design MIPS, 6th Edition, The Hardware/Software Interface” 2020 (Elsevier/Morkan Kaufmann).


Academic Year: 2022/23

3377 - Bachelor's Degree in Computer Engineering

24286 - Computer Organization


Teaching Guide Information

Academic Course:
2022/23
Academic Center:
337 - Engineering School
Study:
3377 - Bachelor's Degree in Computer Engineering
Subject:
24286 - Computer Organization
Ambit:
---
Credits:
6.0
Course:
1
Teaching languages:
Theory: Group 1: English
Group 2: Spanish
Group 3: Spanish
Practice: Group 101: English
Group 102: English
Group 201: Catalan
Group 202: Catalan, Spanish
Group 301: Catalan
Group 302: Catalan
Seminar: Group 101: English
Group 102: English
Group 103: English
Group 104: English
Group 201: Catalan
Group 202: Spanish
Group 203: Catalan
Group 204: Spanish
Group 301: Catalan
Group 302: Catalan
Group 303: Catalan
Group 304: Catalan
Teachers:
Ignacio Celis Villegas, Vladimir Estivill Castro
Teaching Period:
Second quarter
Schedule:

Presentation

Main aim: To meaningfully understand the Von Neuman architecture and the execution of computer programs at the low level of a computer with a single processor, memory and input and output devices. There should be a transparency that instructions, memory address and data are all codified as integer numbers. Students shall gain an understanding about the workings at the boundary of software and hardware. Therefore, to apply low-level programming techniques and analyse and design simple translations from high level to low-level languages. In particular, to understand the management of subroutines and the layout of the RAM.

Associated skills

Specific competences:

  • CE4. Mastering the use and programming of computers, operating systems, databases and computer programs with application in engineering.
  • CE5. Recognising the structure, organisation, functioning and interconnection of computing systems, the foundations of their programming, and knowing how to apply this knowledge for solving typical problems in engineering.
  • CE7. Mastering the concepts and principles of a computer’s inner functioning as well as of the communication among computers, which allows the analysis and assessment of computer structures, including parallel and distributed platforms.
  • CE8. Mastering the concepts of programming and data structures, including principles of secure design and defensive programming, program verification and error detection.
  • CE10.Recognising basic algorithmic procedures and applying them for the resolution of computational problems, analysing the solution’s suitability and complexity.

Basic skills:

  • CB3. That the students have the ability of collecting and interpreting relevant data (normally within their study area) to issue judgements which include a reflection about relevant topics of social, scientific or ethical nature;
  • CB4. That the students can transmit information, ideas, problems and solutions to a public both specialized and non-specialized;
  • CB5. That the students have developed those learning abilities necessary to undertake later studies with a high degree of autonomy.

Transversal skills:

  • CT3. Applying with flexibility and creativity the acquired knowledge and adapting it to new contexts and situations.
  • CT4. Communicating in academic and professional contexts in English, both orally and in writing.
  • CT5. Generating new ideas and incorporating them in the daily work.

Additional skills:

  • Problem-Solving Skills by synthesising behaviour of programs using assembly language.
  • Abstract thinking by formulating a behaviour in pseudo-code and programming it with low-level computer programs
  • Analytical skills by confirming the correct behaviour of computer programs
  • Reflective skills by reporting meaningfully on practical exercises, seminars and laboratories
  • Software development skills by anticipating the behaviour of programs in different hardware
  • Abstraction skills by interpreting how different data types are represented in computers at the low-level
  • Analytical skills by solving errors reported by assemblers and interpreters
  • Program construction and software development skills by meaningfully applying procedural abstraction.
  • Ability to understand and know how to generate algorithms and codes in assembly language (MIPS) allowing to solve problems according to the contents of the course.
  • Problem solving skills by synthesising program behaviour using assembly language.
  • Know how to use the simulator (MARS) and know how to analyse the execution of the proposed programs.
  • Ability to analyse and synthesise.
  • Ability to organise and plan.
  • Ability to solve problems and make decisions.
  • Ability to work in a team and skills in relationships interpersonal.
  • Ability to reason critically and learn independently.
  • Ability to be creative and adapt to new situations.

Common competencies UPF

Competence of autonomy, help to consolidate capabilities of self-knowledge and critical thinking; self-learning, and problem solving; personal initiative, self-management and capacity to performs in complex environments. Note: There are learning objectives of the degree and of the subject (CB5) that also cover aspects of these competencies.

  1. Competences of global citizenship, which help to develop capacity to examine with a global perspective the world and its challenges, from the commitment to fundamental rights, social justice, democracy and the environment for personal action and collectively for planetary welfare and sustainable development. Note: See learning plan.
  2. Gender competence, which allows assess inequalities for reasons of sex and gender, in order to design effective solutions. Note: See learning plan.
  3. Competence in communication, which ensure the work of the capabilities to understand reading criticism and oral, excellence in written expression (and that ensure the relation to several languages) Note: There are objectives degree learning and the subject (CB4, CT4, and CT5) that also and cover these competencies.

Learning outcomes

RA.CE4.1 Master the basic and practical knowledge on the use and programming of computers with application in engineering.

RA.CE5.1 Recognize the structure, organization, functioning and interconnection of the computing systems, as well as the foundations of their programming.

RA.CE7.1 Assess the structure and architecture of computers, as well as the basic components which conform them.

RA.CE8.1 Program code using fundamental elements of programming.

RA.CE8.2 Design and use the adequate types and data structures for solving a problem.

RA.CE8.6 Recognize principles, methods and practices of Software Engineering.

In addition to the previous learning outcomes the student should be able to:

  • To describe the structure of a computer with a processor, a memory and input and output devices.
  • To explain the main elements of a computer, how it is formed and how it can execute programs (analysing the translation from high level to low-level languages).
  • To construct programs for a computer at a low level: assembly language and machine language.
  • To effectively use representations and operate integer numbers.
  • To meaningfully describe and operate the instructions that store and access data in a program.
  • To describe and construct translations of high-level code to assembly language using a standard ABI (application binary interface), particularly expressions, control sentences, loops, subroutines.
  • To analyse low-level programs to reverse engineer to high-level code.
  • To anticipate and meaningfully use the structure and functionalities of the main memory and the cache memory.
  • To describe the required hardware for virtual memory, appreciate the usefulness of virtual memory's, and apply its basic functionality.

Also basic skills such as
CB3. That the students have the ability of collecting and interpreting relevant data (normally within their study area) to issue judgements which include a reflection about relevant topics of social, scientific or ethical nature;
CB4. That the students can transmit information, ideas, problems and solutions to a public both specialized and non-specialized;
CB5. That the students have developed those learning abilities necessary to undertake later studies with a high degree of autonomy.

And transversal skills such as
CT3. Applying with flexibility and creativity the acquired knowledge and adapting it to new contexts and situations. CT4. Communicating in academic and professional contexts in English, both orally and in writing. CT5. Generating new ideas and incorporating them in the daily work.

Sustainable Development Goals

  • Apply the understanding of computer behaviour at the low level to meaningfully understand the costs and impact of algorithms
  • Apply methods of software engineering and software analysis and design to construct correct programs efficiently.
  • Appreciate the elements and components of a computer and their impact, thus evaluating the rapid change in hardware and software that results in a large footprint of e-waste.
  • Understand the The PostPC Era and the impact on the environment and the structures of society because of
    1. Personal Mobile Device (PMD) that is Battery operated, Connects to the Internet and
    2. Cloud computing offering Warehouse Scale Computers (WSC) and Software as a Service (SaaS)
  • Note that now, a portion of software runs on a PMD and a portion runs in the Cloud

 

# Achieve gender equality and empower all women and girls

# Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation

# Ensure sustainable consumption and production patterns

# Take urgent action to combat climate change and its impacts

# Ensure inclusive and equitable quality education and promote lifelong learning opportunities for all

Prerequisites

  • Solid study habits.
  • Discipline to regularly review lecture notes and keep passe with the course.
  • Initiative to attempt exercises ahead of the corresponding session
  • Assertiveness to engage lecturers and tutors with questions to enhance the understanding of materials.
  • Systematic study approach attempting exercises and reviewing against model solutions to reflect on the virtues and shortcomings of their own initial answers.
  • Some understanding of the C-programming language
  • Students should have the ability to manage a computer and its software to download and upload materials.

Contents

  1. Von Neuman basic architecture and main elements. Binary arithmetic
  2. Machine language and assembly language.
  3. Introduction to MIPS assembly language and its basic structures Declaration of data
  4. Data in memory
    1. Loading data from memory and storing data in memory Arithmetic, logical and shift operations
    2. Conditional jump and comparison operations
    3. Conditional and repetition control structures
  5. Translation of high-level codes in MIPS and memory usage Representation of registers, matrices and pointers
    1. Subroutines
    2. Data structures: the stack
    3. Memory hierarchy
    4. Organisation and operations of the main memory.
    5. Cache memory

Teaching Methods

This course is organised as follows:

• TheoryCore theoretical material.A total of 28 hours of lectures (divided into 2 hrs classes)There will also be practical discussion activities as well as examples of related conceptual exercises.

    • The main teaching method here is an “Expository or lecture method”. It will be supported by class notes available before class. With the support of self-produced introductory mini-videos as well as selected mini-videos. Lessons supported in problem-solving activities. Lessons motivated by ‘flipped classroom’ activities. Enhanced participation with tools such as the Mentimeter.
    • The secondary method is “Flipped classroom”.  Class notes are available before class. With the support of self-produced introductory mini-videos as well as selected mini-videos. Lessons supported in problem-solving activities. Lessons motivated by flipped classroom activities. Enhanced participation with tools such as the Mentimeter.


• Seminars: A total of 12 hours of seminars (divided into 2-hour sessions) for a total of 6 seminars.Seminars are held in small groups of students. Students will aim to work on practical exercises related to the concepts presented in lectures.Students will work individually or in a group with problem-solving exercises. Submission must be individual.
Students will discuss with the teacher, and the solution will be worked out in class. Students must be able to defend their individual submissions. Each seminar will have associated a homework assignment that must be completed along with the seminar’s submission.

    • The main technique here is Problem-based learning (PBL). Seminars are held in small groups of students. Definition of problems and tasks of the seminar published at least 1 week before the seminar. Students work before the corresponding seminar or laboratory session. Students will work individually or in groups with problem-solving exercises. Students will discuss with the teacher and the solution will be worked on in class. The student acquires knowledge and skills on his / her own with the help of his / her classmates and a teacher as a mentor. Seminar reports must be individual. Clear instruction of what constitutes an appropriate presentation that meets all the criteria of academic integrity.

• Laboratory practices: A total of 12+ hours of practice (divided into 2hrs-session) as laboratories.
The laboratory instructions will be published at least a week before each session. Laboratories can be completed individually or in pairs prior to the session.The laboratory session can be used to raise issues that may need clarification from the laboratory tutor.A laboratory is assessed by submitting a laboratory report no later than one day before the next laboratory session.Students must be able to defend the couple/individual submission individually.

    • The main technique here is Problem-based learning (PBL).  Laboratory instructions will be published at least one week before each session. Laboratories can be performed individually or in pairs before the session. The laboratory session can be used to raise issues that may need clarification by the laboratory tutor. A laboratory is evaluated by sending a laboratory report no later than one day before the next laboratory session.

Evaluation

To evaluate general UPF competencies and objectives towards sustainable development goals students must complete

  • 2 reports (1,000 words each summarizing the impact of sustainable development engineering). These reports do not award any marks that contribute to the computation of the final grade. However, a satisfactory submission of these is required to be eligible for each of the exams. That is, one report must be submitted by the date of the midterm exam, and the second report must be submitted by the date of the final exam.

The final grade is calculated as follows.

  • 1 small test (recoverable)10%
  • 1 final exam: Exam period (recoverable) 20%


Therefore learning outcomes concerning theoretical understanding contribute 40%

  • 6 laboratories, Each laboratory is worth 9%, only the top 5 laboratories. Total for laboratories is 45%.
  • 6 seminars. Each seminar is worth 3%, only the top 5 seminars; no seminar is recoverable. The total for seminars is 15%.

Therefore learning outcomes concerning practical skills contribute 60%

To pass the course, the following thresholds apply

  • A student must score 45% or higher in the final exam to pass the course
  • 5 or more of the laboratories must be attended. The average grade in the laboratories must be 50% to pass the course. A failed lab can be recuperated only individually and only to meet the requirement of 5 laboratories completed.
  • The grade in the seminars must be 9% or higher to pass the course (that is, the accumulated grade of seminars must be 50% or more to pass the course).
  • A report on must be submitted before the midterm to earn the right to sit the exam.
  • A second report on must be submitted before the final exam to earn the right to sit the final exam.

Bibliography and information resources

  1. David A. Patterson and John L. Hennessy “Computer Organization and Design MIPS, 6th Edition, The Hardware/Software Interface” 2020 (Elsevier/Morkan Kaufmann).


Curso Académico: 2022/23

3377 - Grado en Ingeniería en Informática

24286 - Organización de Computadores


Información de la Guía Docente

Curso Académico:
2022/23
Centro académico:
337 - Escuela de Ingeniería
Estudio:
3377 - Grado en Ingeniería en Informática
Asignatura:
24286 - Organización de Computadores
Ámbito:
---
Créditos:
6.0
Curso:
1
Idiomas de docencia:
Teoría: Grupo 1: Inglés
Grupo 2: Castellano
Grupo 3: Castellano
Prácticas: Grupo 101: Inglés
Grupo 102: Inglés
Grupo 201: Catalán
Grupo 202: Catalán, Castellano
Grupo 301: Catalán
Grupo 302: Catalán
Seminario: Grupo 101: Inglés
Grupo 102: Inglés
Grupo 103: Inglés
Grupo 104: Inglés
Grupo 201: Catalán
Grupo 202: Castellano
Grupo 203: Catalán
Grupo 204: Castellano
Grupo 301: Catalán
Grupo 302: Catalán
Grupo 303: Catalán
Grupo 304: Catalán
Profesorado:
Ignacio Celis Villegas, Vladimir Estivill Castro
Periodo de Impartición:
Segundo trimestre
Horario:

Presentación

Objetivo principal: Entender de forma significativa la arquitectura de Von Neuman y la ejecución de programas informáticos al nivel bajo de un ordenador con un solo procesador, memoria y dispositivos de entrada y salida. Debería haber una transparencia de que las instrucciones, la dirección de memoria y los datos se codifican como números enteros. Los estudiantes deben adquirir una comprensión sobre el funcionamiento al límite del software y el hardware. Por tanto, aplicar técnicas de programación de bajo nivel y analizar y diseñar traducciones sencillas de lenguajes de alto nivel a lenguajes de bajo nivel. En particular, entender la gestión de subrutinas y la disposición de la memoria RAM.

Competencias asociadas

Competencias especificas:

  • CE4. Dominar el uso y la programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería.
  • CE5. Reconocer la estructura, la organización, el funcionamiento y la interconexión de los sistemas informáticos, los fundamentos de su programación, y saber aplicar estos conocimientos para la resolución de problemas propios de la ingeniería.
  • CE7. Dominar los conceptos y principios del funcionamiento interno de un ordenador así como de la comunicación entre ordenadores, que permita el análisis y evaluación de estructuras de computadores, incluyendo plataformas paralelas y distribuidas.
  • CE8. Dominar los conceptos de la programación y estructuras de datos, incluyendo principios de diseño seguro y programación defensiva, verificación de programas y detección de errores.
  • CE10.Reconocer procedimientos algorítmicos básicos y aplicarlos para la resolución de problemas computacionales, analizando la idoneidad y complejidad de la solución.

Competencias básicas:

  • CB3. Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética;
  • CB4. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado;
  • CB5. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.

Competencias transversales:

  • CT3. Aplicar con flexibilidad y creatividad los conocimientos adquiridos y de adaptarlos a contextos y situaciones nuevas.
  • CT4. Comunicarse en contextos académicos y profesionales de forma oral y escrita en inglés.
  • CT5. Generar nuevas ideas e incorporarlas en el trabajo diario.

Competencias adicionales:

  • Habilidades de resolución de problemas sintetizando el comportamiento de programas utilizando lenguaje ensamblador.
  • Pensamiento abstracto mediante la formulación de un comportamiento en pseudocódigo y su programación con programas informáticos de bajo nivel.
  • Habilidades analíticas al confirmar el correcto comportamiento de los programas informáticos.
  • Habilidades de reflexión al informar de manera significativa sobre ejercicios prácticos, seminarios y laboratorios.
  • Habilidades de desarrollo de software anticipando el comportamiento de programas en diferente hardware.
  • Habilidades de abstracción al interpretar cómo se representan los diferentes tipos de datos en las computadoras en el nivel bajo.
  • Habilidades analíticas resolviendo errores reportados por ensambladores e intérpretes.
  • Programar habilidades de construcción y desarrollo de software mediante la aplicación significativa de la abstracción de procedimientos.
  • Capacidad para comprender y saber generar algoritmos y códigos en lenguaje ensamblador (MIPS) que permitan resolver problemas de acuerdo con los contenidos del curso.
  • Habilidades de resolución de problemas sintetizando el comportamiento del programa utilizando lenguaje ensamblador.
  • Saber utilizar el simulador (MARS) y saber analizar la ejecución de los programas propuestos. Capacidad de análisis y síntesis. Capacidad para organizar y planificar.Capacidad para resolver problemas y tomar decisiones. Capacidad para trabajar en equipo y habilidades en las relaciones interpersonales. Capacidad para razonar críticamente y aprender de forma independiente.
  • Capacidad para ser creativo y adaptarse a nuevas situaciones

Competencias comunes UPF

  1. Competencia de autonomía, ayudan a consolidar capacidades de autoconocimiento y pensamiento crítico; el autoaprendizaje y la resolución de problemas; iniciativa personal, autogestión y capacidad para actuar en entornos complejos. Nota: Existen objetivos de aprendizaje de la titulación y de la asignatura (CB5) que también cubren aspectos de estas competencias.
  2. Competencias de la ciudadanía global, que ayudan a desarrollar la capacidad para examinar con una perspectiva global el mundo y sus retos, desde el compromiso con los derechos fundamentales, la justicia social, la democracia y el medio ambiente para la acción personal y colectiva por el bienestar planetario y el desarrollo sostenible. Nota: consulte el plan de aprendizaje.
  3. La competencia de género, que permite evaluar las desigualdades por razones de sexo y género, a fin de diseñar soluciones efectivas. Nota: consulte el plan de aprendizaje.
  4. Competencia en comunicación, que garanticen el trabajo de las capacidades para comprender la crítica lectora y oral, la excelencia en la expresión escrita (y que garanticen la relación con diversas lenguas) Nota: Existen objetivos de aprendizaje de grado y de la asignatura (CB4, CT4, y CT5) que también cubren estas competencias.

Resultados del aprendizaje

RA.CE4.1 Domina los conocimientos básicos y prácticos sobre el uso y programación de los ordenadores con aplicación en ingeniería. 

RA.CE5.1 Reconoce la estructura, organización, funcionamiento e interconexión de los sistemas informáticos, así como los fundamentos de su programación. 

RA.CE7.1 Evalúa la estructura y arquitectura de los computadores, así como los componentes básicos que los conforman. 

RA.CE8.1 Programa código utilizando elementos fundamentales de programación. 

RA.CE8.2 Diseña y utiliza los tipos y estructuras de datos básicos adecuados para la resolución de un problema. 

RA.CE8.6 Reconoce principios, métodos y prácticas de la Ingeniería del Software. 

Adicionalmente, el estudiante debe poder:

  • Describir la estructura de una computadora con un procesador, una memoria y dispositivos de entrada y salida.
  • Explicar los principales elementos de una computadora, cómo está formada y cómo es capaz de ejecutar programas (analizando la traducción de lenguajes de alto nivel a lenguajes de bajo nivel).
  • Construir programas para una computadora de bajo nivel: lenguaje ensamblador y lenguaje máquina.
  • Usar representaciones y operar números enteros de manera efectiva.
  • Describir y operar de manera significativa las instrucciones que almacenan y acceden a datos en un programa.
  • Describir y construir traducciones de código de alto nivel a lenguaje ensamblador usando una IBA (interfaz binaria de aplicación) estándar, particularmente expresiones, oraciones de control, bucles, subrutinas.
  • Analizar programas de bajo nivel para aplicar ingeniería inversa al código de alto nivel.
  • Anticipar y utilizar de manera significativa la estructura y funcionalidades de la memoria principal y la memoria caché.
  • Describir el hardware necesario para la memoria virtual, apreciar la utilidad de la memoria virtual y aplicar su funcionalidad básica.

También competencias básicas como son:

  • CB3. Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética;
  • CB4. Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado;
  • CB5. Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.

Y competencias transversales como son:

  • CT3. Aplicar con flexibilidad y creatividad los conocimientos adquiridos y de adaptarlos a contextos y situaciones nuevas.
  • CT4. Comunicarse en contextos académicos y profesionales de forma oral y escrita en inglés.
  • CT5. Generar nuevas ideas e incorporarlas en el trabajo diario.

Objetivos de Desarrollo Sostenible

  • Aplicar la comprensión del comportamiento de la computadora en el nivel bajo para comprender de manera significativa los costos y el impacto de los algoritmos
  • Aplicar métodos de ingeniería de software y análisis y diseño de software para construir programas correctos de manera eficiente.
  • Apreciar los elementos y componentes de una computadora y su impacto, evaluando así el rápido cambio en hardware y software que resulta en una gran huella de desechos electrónicos.
  • Comprender la Era PostPC y el impacto en el medio ambiente y las estructuras de la sociedad debido a
    • el Dispositivo móvil personal (DMP) que funciona con batería, se conecta a Internet y
    • la Computación en la nube que ofrece Computadoras a escala de almacén (Warehouse Scale Computers: WSC) y Software como servicio (Software as a Service:SaaS)
  • Tener en cuenta que ahora, una parte del software se ejecuta en un PMD y una parte se ejecuta en la nube

# Conseguir la igualdad de género y empoderar a todas las mujeres y niñas

# Construir infraestructuras resilientes, promover una industrialización inclusiva y sostenible y fomentar la innovación

# Garantizar patrones de consumo y producción sostenibles

# Tomar medidas urgentes para combatir el cambio climático y sus impactos

# Garantizar una educación inclusiva y equitativa de calidad y promover oportunidades de aprendizaje a lo largo de la vida para todos

Prerrequisitos

  • Hábitos de estudio sólidos.
  • Disciplina para revisar regularmente las notas de la clase y seguir adelante con el curso.
  • Iniciativa para intentar ejercicios antes de la sesión correspondiente
  • Ser asertivo para involucrar a profesores y tutores con preguntas para mejorar la comprensión de los materiales.
  • Enfoque de estudio sistemático que intenta ejercicios y realiza revisiones con los modelos de soluciones para reflexionar sobre las virtudes y defectos de sus propias respuestas iniciales.
  • Algo de comprensión del lenguaje de programación C
  • Los estudiantes deben tener la capacidad de administrar una computadora y su software para descargar y cargar materiales.

Contenidos

  1. Arquitectura básica y elementos principales de Von Neuman.
  2. Aritmética binaria
  3. Lenguaje máquina y lenguaje ensamblador.
  4. Introducción al lenguaje ensamblador MIPS y sus estructuras básicas
  5. Declaración de datos
    1. Datos en memoria
    2. Carga de datos de la memoria y almacenamiento de datos en la memoria Operaciones aritméticas, lógicas y de desplazamiento
    3. Operaciones de comparación y salto condicional
    4. Estructuras de control condicional y de repetición
  6. Traducción de códigos de alto nivel en MIPS y uso de memoria Representación de registros, matrices y punteros
    1. Subrutinas
    2. Estructuras de datos: la pila
    3. Jerarquía de memoria
    4. Organización y funcionamiento de la memoria principal.
    5. Memoria caché

 

 
 

Metodología docente

Esta asignatura se organiza de la siguiente forma:

Teoría: un total de 28 horas de clases magistrales (dividida en clases de 2h) donde se presentarán los contenidos en dos bloques. También se realizarán actividades más prácticas de discusión, así como ejemplos de ejercicios conceptuales relacionados. 
    • El principal método de enseñanza aquí es un “Método expositivo o magistral”. Estará apoyado con notas de clase disponibles antes de clase. Con el soporte de minivídeos introductorios de producción propia, así como de minivídeos seleccionados. Lecciones apoyadas en actividades de resolución de problemas. Lecciones motivadas por actividades de "aula invertida". Participación reforzada con herramientas como el Mentímetro.
    • El método secundario es "Aula invertida". Las notas de clase están disponibles antes de la clase. Con el apoyo de minivideos introductorios de producción propia y minivideos seleccionados. Lecciones apoyadas en actividades de resolución de problemas. Lecciones motivadas por actividades de aula invertida. Mayor participación con herramientas como el Mentimeter. 
 
Seminarios:  Un total de 12 horas de seminarios (divididos en sesiones de 2 horas) para un total de 6 seminarios.
Los seminarios se llevan a cabo en pequeños grupos de estudiantes. Los estudiantes tendrán como objetivo trabajar en ejercicios prácticos relacionados con los conceptos presentados en las clases magistrales.Los estudiantes trabajarán individualmente o en grupo con ejercicios de resolución de problemas. La presentación de informes debe ser individual.
Los estudiantes discutirán con el maestro y la solución se resolverá en clase. Los estudiantes deben poder defender sus reportes individuales. Cada seminario tendrá asociada una tarea que debe completarse junto con la presentación del informe del seminario.
    • La técnica principal aquí es el aprendizaje basado en problemas (ABP). Los seminarios se realizan en grupos reducidos de estudiantes. Definición de problemas y tareas del seminario publicado al menos una semana antes del seminario. Los estudiantes trabajan antes del seminario o sesión de laboratorio correspondiente. Los alumnos trabajarán individualmente o en grupo con ejercicios de resolución de problemas. Los alumnos discutirán con el profesor y la solución se trabajará en clase. El alumno adquiere conocimientos y habilidades por sí mismo con la ayuda de sus compañeros y de un profesor como mentor. Los informes de los seminarios deben ser individuales. Instrucción clara de lo que constituye una presentación adecuada que cumpla todos los criterios de integridad académica.
 
Prácticas de laboratorio: Un total de más de 12 horas de práctica (divididas en 2 horas de sesión) como laboratorios. Las instrucciones de laboratorio se publicarán al menos una semana antes de cada sesión. Los laboratorios se pueden completar individualmente o en parejas antes de la sesión. La sesión de laboratorio se puede utilizar para plantear cuestiones que puedan necesitar una aclaración por parte del tutor de laboratorio. Un laboratorio se evalúa mediante la presentación de un informe de laboratorio a más tardar un día antes de la próxima sesión de laboratorio. Los estudiantes deben poder defender el informe de la pareja o el individual de forma individual.
    • La técnica principal aquí es el aprendizaje basado en problemas (ABP). Las instrucciones de laboratorio se publicarán al menos una semana antes de cada sesión. Los laboratorios pueden realizarse individualmente o por parejas antes de la sesión. La sesión de laboratorio puede utilizarse para plantear cuestiones que pueden necesitar aclaraciones por parte del tutor de laboratorio. Un laboratorio se evalúa enviando un informe de laboratorio como máximo un día antes de la siguiente sesión de laboratorio.
 

Evaluación

Para evaluar las competencias y objetivos generales de la UPF hacia los objetivos de desarrollo sostenible los estudiantes deben completar

• 2 informes (1.000 palabras cada uno que resumen el impacto de la ingeniería del desarrollo sostenible). Estos informes no otorgan ninguna nota que contribuya al cómputo de la nota final. Sin embargo, es necesario presentarlos satisfactoriamente para poder participar en cada uno de los exámenes. Es decir, un informe debe presentarse antes de la fecha del examen parcial y el segundo informe antes de la fecha del examen final.

La evaluación de esta asignatura se llevará a cabo de la siguiente forma:

1 pequeña prueba inter-trimestral (recuperable) 10%

1 examen final: Periodo de exámenes (recuperable) 30%

Por lo tanto, los resultados de aprendizaje relacionados con la comprensión teórica contribuyen en un 40%

6 laboratorios, cada laboratorio vale el 9%, solo los 5 mejores laboratorios. El total de los laboratorios es del 45%.

6 seminarios. Cada seminario vale un 3%, solo los 5 mejores seminarios; ningún seminario es recuperable. El total de seminarios es del 15%.

Por lo tanto, los resultados del aprendizaje relacionados con las habilidades prácticas contribuyen en un 60%

Para aprobar el curso, se aplican los siguientes umbrales

  1. El estudiante debe obtener un 45% o más en el examen final para aprobar el curso.
  2. Deben asistirse a 5 o más de los laboratorios. La nota media en los laboratorios debe ser del 50% para aprobar la asignatura.
  3. Un laboratorio fallido se puede recuperar solo individualmente y solo para cumplir con el requisito de 5 laboratorios completados.
  4. La calificación en los seminarios debe ser del 9% o más para aprobar la asignatura (es decir, la calificación acumulada de los seminarios debe ser del 50% o más para aprobar la asignatura).
  5. Se debe presentar un informe antes de la mitad del cuatrimestre para conseguir el derecho a presentarse en el examen.
  6. Antes del examen final debe presentarse un segundo informe para conseguir el derecho a presentarse al examen final.

Bibliografía y recursos de información

  1. David A. Patterson and John L. Hennessy “Computer Organization and Design MIPS, 6th Edition, The Hardware/Software Interface” 2020 (Elsevier/Morkan Kaufmann).