Introducción al curso
¿Para qué sirve este curso?
Este curso sirve para ejercitar esta poderosa idea:
You need to understand your code. You need to understand your tools. You need to understand your platform. When we give up on understanding what we are actually doing when you write code, it just leads to bad software.
Brian Will.
Descripción del curso
El objeto de este curso es el estudio de los fundamentos de los sistemas de cómputo modernos desde la perspectiva del programador. Por tanto, se estudiará cómo funciona un computador moderno pasando por el hardware que lo compone, los lenguajes de programación, las herramientas y el sistema operativo. Se busca entonces, abordar aquellos conceptos que permitirán sacar provecho al sistemas de cómputo a la hora de construir aplicaciones.
Propósito del curso
El entendimiento de los fundamentos y las abstracciones de los sistemas computacionales desde la perspectiva del programador con el fin de construir aplicaciones que usen apropiadamente y saquen el mayor provecho de la plataforma de cómputo en la cual se ejecutan.
Competencia
Construye aplicaciones que posibilitan la interacción entre personas, mediada por tecnologías digitales, utilizando lenguajes y metodologías apropiadas según el contexto.
Criterios de competencia
Aplico los conceptos necesarios para el correcto diseño, implementación, funcionamiento y diagnóstico del software en la producción de sistemas de entretenimiento digital utilizando los procedimientos y herramientas adecuadas según el contexto.
Carta Descriptiva
En este enlace puedes consultar la carta descriptiva del curso.
Estructura y metodología del curso
El curso está divido en 4 unidades:
Unidad 1: Arquitectura del computador.
Unidad 2: Del código fuente al ejecutable.
Unidad 3: Programación orientada a objetos.
Unidad 4: Sistema operativo.
Cada unidad estará constituida por tres fases:
Fase 1: fundamentación. En esta fase se estudiarán los conceptos teóricos más relevantes de cada unidad. Así mismo se complementarán con lecturas. En esta fase, el estudiante debe repasar los conceptos olvidados de los semestres anteriores.
Fase 2: proyecto. En esta fase se realizarán uno o más proyecto.
Fase 3: evaluación. En esta fase se discute el resultado de los proyectos de la unidad.
Cronograma
Unidad 1: semanas 1 a 6
Unidad 2: semanas 7 a 10
Unidad 3: semanas 11 a 13
Unidad 4: semanas 14 a 16
Evaluación
Evaluación unidad 1: 25%. Semana de agosto 23. Plazo máximo agosto 29 de 2021.
Evaluación unidad 2: 25%. Semana de septiembre 20. Plazo máximo septiembre 26 de 2021.
Evaluación unidad 3: 25%. Semana de octubre 11. Plazo máximo octubre 17 de 2021.
Evaluación unidad 4: 25%. Semana de noviembre 1. Plazo máximo noviembre 7 de 2021.
Dedicación
Este curso es de 2 créditos y se desarrolla en 16 semanas. Cada semana tendrás 3 horas 20 minutos de trabajo sincrónico mediado por TIC y 2 horas de trabajo autónomo.
Bibliografía
Noam Nisan y Shimon Schocken. The Elements of Computing Systems: Building a Modern Computer from First Principles. The MIT Press (1 de junio de 2005)
Actividades de cada unidad
En la primera sesión de la semana discutiremos algunos conceptos y ejercicios. La segunda sesión la dedicaremos a asesorías para resolver tus dudas y dificultades puntuales.
Evidencias de evaluación
En cada unidad verás el enunciado de un proyecto y las consideraciones para entregarlo solucionado. Te en cuenta SIEMPRE el siguiente código honor:
Código de honor
Para realizar el trabajo de cada unidad se espera que hagas lo siguiente:
Colabora con tus compañeros cuando así se indique.
Trabaja de manera individual cuando la actividad así te lo proponga.
No busques la solución a los proyectos porque DAÑARÍAS tu proceso de aprendizaje. Recuerda, se trata de seguir un camino y aprender en el recorrido.
¿Entonces qué hacer si no me funciona algo? Te propongo que experimentes, crea hipótesis, experimenta de nuevo, observa y concluye.
NO OLVIDES, este curso se trata de pensar y experimentar NO de BUSCAR soluciones en Internet.
Bitácora
Vamos a utilizar dos herramientas para documentes y organices tu trabajo:
GitHub
En GitHub mantendrás todo tu código bajo control de versión.
En Notion llevarás tu bitácora electrónica.
Control de versión
Crea una cuenta en GitHub con tu correo institucional de la UPB. Si tienes la cuenta, tanto mejor.
Explora los tutoriales de este.