Práctica 1.10: Preguntas sobre actividades
P 1.10: Reflexión y discusión sobre los resultados¶
1. Relación software y hardware¶
1.1. Primera parte¶
1.1.1. ¿Cómo se ejecuta el código en el procesador?
1.1.2. ¿Qué hace la memoria RAM con la información del botón o el LED?
1.1.3. ¿Cómo se comunican los periféricos (botón y LED) con el procesador?
1.2. Segunda parte¶
1.2.1. ¿Cómo interactúan el procesador, la memoria y los periféricos en la ejecución del programa?
1.2.2. ¿Qué pasa con los datos en la memoria cuando el programa se ejecuta?
1.2.3. ¿Qué roles juegan las instrucciones del software en esta interacción?
1.2.4. ¿Cómo se relaciona esta simulación con lo que ocurre en un ordenador real?
2. Del código fuente al ejecutable¶
2.1. ¿Cómo se diferencia el código fuente del código objeto y del ejecutable?
2.2. ¿Por qué el ordenador no puede entender el código fuente directamente?
2.3. ¿Por qué es importante el paso de enlazado en la creación de programas?
2.4. ¿Qué ocurre si falta alguna de las etapas (código objeto o ejecutable)?
3. Generación de código intermedio¶
3.1. ¿Cómo difiere el código intermedio del código ejecutable tradicional?
3.2. ¿Por qué es útil tener una máquina virtual?
3.3. ¿Qué ventajas ofrece el código intermedio?
3.4. ¿Además de java, qué otros lenguajes usan máquinas virtuales?
4. Lenguajes de programación¶
4.1. Primera parte¶
Compara el proceso de ejecución entre el lenguaje compilado y el interpretado.
4.1.1. ¿Qué diferencias notaron en el proceso de compilación frente a la ejecución directa?
4.1.2. ¿Qué pasa si hay un error de sintaxis en cada lenguaje? ¿Cuándo se detecta el error?
4.2. Segunda parte¶
Compara un lenguaje de alto nivel con uno de bajo nivel.
4.2.1. ¿Qué notaron sobre la abstracción entre los lenguajes de alto nivel y bajo nivel?
4.2.2. ¿Qué ventajas y desventajas encontraron en cada uno?
4.3. Tercera parte¶
Compara un lenguaje orientado a objetos vs funcional.
4.3.1. ¿Cómo funciona la organización de datos en Java usando objetos y métodos?
4.3.2. ¿Cómo es diferente trabajar en un enfoque funcional en Python, usando solo funciones puras?
4.4. Reflexión final¶
4.4.1. ¿Qué lenguajes se sintieron más fáciles de usar? ¿Por qué?
4.4.2. ¿En qué casos es preferible usar un lenguaje compilado frente a uno interpretado?
4.4.3. ¿Cuándo es mejor usar un lenguaje de alto nivel en lugar de uno de bajo nivel?
4.4.4. ¿Cómo se siente trabajar con el paradigma orientado a objetos en comparación con el imperativo o funcional?
5. Herramientas de desarrollo¶
5.1. Primera parte¶
Respecto a las proceso de creación de software identifica un conjunto de herramientas a usar.
5.1.1. ¿Qué hace cada una de las herramientas?
5.1.2. ¿Qué tipo de tareas facilita?
5.1.3. ¿Qué características ofrece que la hacen única o diferente de otras herramientas similares?
5.1.4. Elige una ¿Cómo es la experiencia de usuario al usarla? ¿Es fácil o compleja?
5.1.5. Elige una ¿En qué situaciones sería ideal utilizar esta herramienta?
5.1.6. Elige una ¿Qué limitaciones encontraste en la herramienta?
5.2. Segunda parte¶
Céntrate en una herramienta dentro de la misma categoría y compárala con otras:
5.2.1. ¿Qué herramienta se considera más útil y por qué?
5.2.2. ¿Qué ventajas tiene una sobre la otra?
5.2.3. ¿Cuál herramienta resultó ser la más intuitiva y por qué?
5.2.4. ¿En qué casos se recomendaría usar un compilador en lugar de un intérprete?
5.2.5. ¿Qué tipo de proyectos se beneficiarían más de un framework como Django?
5.3. Reflexión final¶
Con base en la experiencia de evaluación de las herramientas:
5.3.1. ¿Cómo crees que impacta la elección de la herramienta en la calidad del software?
5.3.2. ¿Qué características buscarías en una herramienta para facilitar tu flujo de trabajo?
5.3.3. ¿Cómo cambió tu percepción de estas herramientas después de haberlas probado y evaluado?