Introducción al Curso¶
¿Para qué sirve este curso?¶
- Para comprender cómo funciona el software que permite utilizar los recursos que provee la plataforma de hardware sobre la cual se ejecutarán nuestras aplicaciones.
- El conocimiento anterior nos dará los ¡SUPER PODERES! necesarios para construir mejor software y para identificar y corregir errores.
Nota
Brian Will
- 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.
Descripción del curso¶
El curso aborda el estudio de los sistemas operativos en su condición de capa de software que posibilita y simplifica el manejo de la computadora sirviendo como intermediario entre el usuario y el hardware. Se pretende brindar al estudiante fundamentación en aspectos concretos relativos al diseño, implementación y uso (en el rol de programador y administrador) de un sistema operativo. Dichos aspectos son esenciales para el diseño y montaje de aplicaciones de software modernas.
Propósito del curso¶
El curso enriquece la formación con los conceptos y herramientas más importantes necesarias en el diseño, administración y operación de sistemas operativos.
Competencia¶
Analiza, diseña, evalúa, implementa, administra y da soporte a soluciones informáticas efectivas y eficientes.
Carta Descriptiva del curso¶
Estructura y metodología del curso¶
El curso está divido en 4 unidades:
- Unidad 1-1: lenguaje C - parte 1
- Unidad 1-2: lenguaje C - parte 2
- Unidad 2: procesos e hilos
- Unidad 3: comunicación y sincronización
- Unidad 4: entrada-salida
Cronograma¶
- Introducción al curso
- Unidad 1-1: semanas 2 a 4
- Unidad 1-2: semanas 5 a 7
- Unidad 2: semanas 8 a 12
- Unidad 3: semanas 12 a 14
- Unidad 4: semanas 15 a 17
Evaluación¶
- Evaluación unidad 1-1: 20%. Semana 4
- Evaluación unidad 1-2: 20%. Semana 7
- Evaluación unidad 2: 20%. Semana 12
- Evaluación unidad 3: 20%. Semana 14
- Evaluación unidad 4: 20%. Semana 17
Textos de referencia¶
El curso no tiene un texto guía, porque encontrarás todo el material disponible en este sitio web; sin embargo, te recomiendo completar el material práctico que se presenta en el curso con la información de un libro de texto.
El texto recomendado es este.
Hay otros textos que pueden serte de mucha utilidad:
- The Linux Programming Interface: A Linux and UNIX System Programming Handbook
- Linux Kernel Development
- C Programming Language, 2nd Edition
- C Programming Absolute Beginner’s Guide
- How Linux Works, 2nd Edition: What Every Superuser Should Know
- Linux System Programming: Talking Directly To The Kernel And C Library
Dedicación¶
Este curso es de 3 créditos. Dedicamos 3:20 minutos para trabajo presencial y 5 horas 40 minutos para trabajo autónomo.
Actividades de cada unidad¶
Cada unidad está conformada por 3 semanas. En las dos primeras semanas de cada unidad realizaremos la preparación para la evaluación de la semana 3. Al finalizar la semana 3 se deberá entregar la evaluación.
Evidencias de evaluación¶
En cada unidad verás el enunciado de un proyecto y las consideraciones para entregarlo solucionado. Ten 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
- Notion
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 en caso de que no la tengas.