Curso Académico:
2022/23
3377 - Grado en Ingeniería en Informática
24286 - Organización de Computadores
Información del Plan 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
- 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.
- 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.
- 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.
- 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
- Arquitectura básica y elementos principales de Von Neuman.
- Aritmética binaria
- Lenguaje máquina y lenguaje ensamblador.
- Introducción al lenguaje ensamblador MIPS y sus estructuras básicas
- Declaración de datos
- Datos en memoria
- Carga de datos de la memoria y almacenamiento de datos en la memoria Operaciones aritméticas, lógicas y de desplazamiento
- Operaciones de comparación y salto condicional
- Estructuras de control condicional y de repetición
- Traducción de códigos de alto nivel en MIPS y uso de memoria Representación de registros, matrices y punteros
- Subrutinas
- Estructuras de datos: la pila
- Jerarquía de memoria
- Organización y funcionamiento de la memoria principal.
- 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
- El estudiante debe obtener un 45% o más en el examen final para aprobar el curso.
- Deben asistirse a 5 o más de los laboratorios. La nota media en los laboratorios debe ser del 50% para aprobar la asignatura.
- Un laboratorio fallido se puede recuperar solo individualmente y solo para cumplir con el requisito de 5 laboratorios completados.
- 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).
- Se debe presentar un informe antes de la mitad del cuatrimestre para conseguir el derecho a presentarse en el examen.
- 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
-
David A. Patterson and John L. Hennessy “Computer Organization and Design MIPS, 6th Edition, The Hardware/Software Interface” 2020 (Elsevier/Morkan Kaufmann).