En el curso técnicas y prácticas de computación se abordan los principales conceptos y técnicas que se aplican a los algoritmos, las estrategias de validación y de solución de problemas, los principales conceptos de control de errores y definición de casos de pruebas, y los conceptos fundamentales de construcción de programas. El curso desarrollará unos sólidos conceptos teóricos acompañados de prácticas semanales de los temas vistos en clase.
Al finalizar el curso los participantes podrán:
- Conocer los diferentes comportamientos de los algoritmos, y realizar análisis asintóticos de límites de complejidad superior y esperados.
- Establecer la clases de complejidad de un algoritmo ( Constante, logarítmica, lineal, cuadrática o exponencial)
- Identificar y utilizar diferentes estrategias para la construcción de algoritmos, como: Divide y vencerás, algoritmos numéricos simples, algoritmos de búsqueda secuenciales y binarios, entre otros.
- Conocer los conceptos de validación de entrada, Verificación de programas, computación simultánea múltiple, Objetivos de paralelismos vs concurrencia y la comparación informal de la eficiencia de un algoritmo.
- Definir y utilizar estructuras básicas de datos como los arreglos y las cadenas de caracteres.
- Identificar los diferentes tipos de errores (sintaxis, lógica, en tiempo de ejecución) en un programa.
- Conocer el concepto de una especificación y la programación defensiva (Ej. codificación segura, manejo de excepciones)
- Utilizar las revisiones de código y la generación casos de pruebas para mejor la calidad de los programas.
- Identificar el papel y el uso de contratos, incluyendo pre- y post-condiciones.
- Conocer los principios de diseño de sistemas y los diferentes paradigmas de diseño (diseño estructurado, análisis y diseño orientado a objetos, diseño orientado a eventos, diseño a nivel de componentes).
- Aplicar en los procesos de codificación diferentes técnicas, prácticas de codificación defensiva, prácticas de código seguro y estándares de codificación.
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
1 | 1 | Presentación del curso. conceptos básicos de algoritmos | ||
1 | 2 | Diferentes comportamientos de los algoritmos. Análisis asintótico de límites de complejidad superior y esperados | ||
2 | 2 | Práctica | ||
3 | 3 | Notación Big O: definición formal. Clases de complejidad ( Constante, logarítmica, lineal, cuadrática y exponencial) | ||
3 | 2 | Práctica | ||
4 | 3 | Las mediciones empíricas de desempeño. Balances de Tiempo y espacio en algoritmos | ||
4 | 2 | Práctica |
Total de Horas: 15
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
1 - 2 | 4 | Búsqueda y reporte de comportamientos de algoritmos | |
3 - 4 | 4 | Taller relacionado con Notación Big O y clases de complejidad |
Total de Horas: 8
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
5 | 3 | Algoritmos de fuerza bruta | ||
6 | 2 | Práctica | ||
7 | 3 | Divide y vencerás (referencias cruzadas / Algoritmos y Diseño / estrategias de resolución de problemas) | ||
8 | 2 | Práctica | ||
9 | 3 | Algoritmos numéricos simples (cálculo de la media de una lista de números, encontrar el mínimo, máximo, encontrar el máximo común divisor, etc.) | ||
10 | 2 | Práctica | ||
11 | 3 | Algoritmos de búsqueda secuenciales y binarios | ||
12 | 2 | Práctica |
Total de Horas: 20
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
5 - 6 | 4 | Taller - Aplicación de estrategia de fuerza bruta en la construcción de un algoritmo | |
7 - 8 | 4 | Búsqueda de información de la estrategia de divide y vencerás - Discusión en clase | |
9 - 10 | 4 | Taller - Desarrollo de algoritmos simples | |
11 - 12 | 4 | Taller - Desarrollo de algoritmos secuenciales y binarios |
Total de Horas: 16
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
13 | 3 | Conceptos básicos de validación: Validación de entrada,Verificación de programas, computación simultánea múltiple, Objetivos de paralelismos vs concurrencia, Comparación informal de la eficiencia de un algoritmo | ||
14 | 2 | Práctica |
Total de Horas: 5
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
13 - 14 | 4 | Lectura y realización de mapa conceptual |
Total de Horas: 4
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
15 | 3 | Comparación informal de la eficiencia de un algoritmo. Estrategia divide y vencerás | ||
16 | 2 | Práctica | ||
17 | 3 | Sintaxis básica y semántica de lenguajes de alto nivel. Variables y tipos de datos simples (números, caracteres, booleanos) | ||
18 | 2 | Práctica | ||
19 | 3 | Arrays. Strings y procesamiento de cadena de caracteres | ||
20 | 2 | Práctica |
Total de Horas: 15
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
15 - 16 | 4 | Lectura y resumen para discusión en clase | |
17 - 18 | 4 | Búsqueda de información y realización de comparativo para diferentes lenguajes relacionado con Variables y tipos de datos | |
19 - 20 | 4 | Taller de Arreglos y cadena de caracteres |
Total de Horas: 12
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
21 | 1 | Comprensión de programas | ||
21 | 2 | Correctitud de programas: Tipos de errores (sintaxis, lógica, en tiempo de ejecución) | ||
22 | 2 | Práctica | ||
23 | 3 | El concepto de una especificación. Programación defensiva (Ej. codificación segura, manejo de excepciones) | ||
24 | 2 | Práctica | ||
25 | 3 | Revisiones de código. Pruebas y generación casos de pruebas. | ||
26 | 2 | Práctica | ||
27 | 3 | El papel y el uso de contratos, incluyendo pre- y post-condiciones. Prueba de la unidad. Estrategias de depuración | ||
28 | 2 | Práctica |
Total de Horas: 20
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
21 - 22 | 4 | Taller - Revisión e identificación de tipos de errores | |
23 - 24 | 4 | Taller - Revisiones de código y definición de casos de Prueba | |
25 - 26 | 4 | Estudio para Examen Final | |
27 - 28 | 4 | Estudio Para Examen Final |
Total de Horas: 16
Sesión | Horas teóricas | Prácticas acompañadas | Temas | Bibliografía |
---|---|---|---|---|
29 | 3 | Principios de diseño de sistemas. Paradigmas de diseño (diseño estructurado, análisis y diseño orientado a objetos, diseño orientado a eventos, diseño a nivel de componentes, etc.). Las relaciones entre los requisitos y diseños: transformación de los modelos, el diseño de los contratos, invariantes | ||
30 | 2 | Práctica | ||
31 | 3 | Cualidades internas de diseño (eficiencia, rendimiento, redundancia, tolerancia a fallos, etc.). Prácticas de codificación (técnicas, expresiones idiomáticas / patrones, etc.). Prácticas de codificación defensivos. Prácticas de código seguro. Estándares de codificación | ||
32 | 2 | Práctica |
Total de Horas: 10
Sesión | Horas de trabajo independiente | Temas | Bibliografía |
---|---|---|---|
29 - 30 | 4 | Taller - Diseño de programas | |
31 - 32 | 4 | Investigación y resumen prácticas y estándares de codificación |
Total de Horas: 8
(A) La habilidad para aplicar conocimientos de matemáticas, ciencias e ingeniería.
(B) La habilidad para analizar un problema e identificar los requerimientos necesarios para su definición y solución.
(C) La habilidad para diseñar, implementar y evaluar procesos y sistemas computacionales.
(D) La habilidad para funcionar en equipos de trabajo.
(E) El entendimiento de la responsabilidad profesional y ética.
(F) La habilidad para comunicarse efectivamente.
(G) La habilidad para analizar los impactos de la computación y la ingeniería en las personas, organizaciones y la sociedad.
(H) El reconocimiento de la necesidad de, y la habilidad para, continuar con el desarrollo profesional.
(I) La habilidad para usar las técnicas, destrezas y herramientas modernas para la práctica de la computación.
(J) La habilidad para aplicar los fundamentos y principios de las matemáticas y de la computación en el modelamiento y diseño de sistemas computacionales de manera que se demuestre comprensión de las ventajas y desventajas en las decisiones de diseño.
(K) La habilidad para aplicar los principios de diseño y desarrollo de software en la construcción de sistemas de diferente complejidad.
Resultados de Programa | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | |
Relevancia | 3 | 1 | 2 | 2 | 2 | 2 |
Escala: (1) baja relevancia - (5) alta relevancia.
El curso es presencial y con participación y trabajo en clase. Se asignarán investigaciones, ejercicios y lecturas. Durante la sesión se expondrán los conceptos acompañados de ejemplos, se fomentará la participación de los estudiantes. Se realizará un taller semanal en el que se ponga en práctica algunos conceptos de computación.
Resultados del Programa | Indicadores de Desempeño | Objetivos/Contenido del Curso | Actividades de aprendizaje | Instrumentos de medición |
---|---|---|---|---|
(A) Aplicación de Conocimientos | (A1) Identificar los fundamentos científicos y los principios de ingeniería que rigen un proceso o sistema. (Conocimiento) (A2) Resolver problemas relacionados con la disciplina y otras áreas por medio de la utilización de conocimientos, modelos y formalismos de las ciencias de la computación, las matemáticas y la ingeniería. (Aplicación) (A3) Analizar conjuntos de datos. (Análisis) | Capítulos 1,2,3,4,5 | Exposiciones del profesor, solución de ejercicios y lecturas | Exámenes |
(C) Diseño | (C1) Utilizar estándares de codificación en la implementación de componentes de software. (Aplicación). (C2) Identificar componentes, interacciones, relaciones e interfaces entre componentes. (Análisis). | Capítulo 6 | Solución de ejercicios y lecturas | Proyectos y tareas |
(F) Comunicación efectiva | (F1) Producir textos de manera efectiva teniendo en cuenta la estructura, coherencia, flujo, ortografía y correcto uso del lenguaje. (Aplicación). (F2) Comunicarse de manera efectiva de acuerdo al público objetivo haciendo uso correcto del lenguaje, estilo, tiempo y expresión corporal. (Aplicación). (F3) Utilizar recursos gráficos para comunicar y expresar una idea. (Aplicación). (F4) Defender ideas con precisión y claridad. (Evaluación). | Capítulos 4,5,6 | Proyectos y tareas | Presentaciones orales y reportes escritos |
(H) Desarrollo profesional. | (H1) Reconocer la importancia del conocimiento tanto en amplitud como en profundidad. (Compresión). | Capítulo 1 | Tareas | Tareas |
(I) Uso de herramientas y técnicas | (I1) Utilizar herramientas de desarrollo de software. (Aplicación). (I2) Utilizar herramientas de diseño, modelamiento y simulación. (Aplicación). (I3) Combinar herramientas de software y hardware para resolver un problema. (Síntesis). (I4) Demostrar flexibilidad para adaptarse a diferentes paradigmas y lenguajes de programación. (Valuación). | Capítulos 2,3,4 | Laboratorios y lecturas | Proyecto y tareas |
(J) Modelamiento y diseño de sistemas computacionales | (J1) Reconocer la importancia del modelamiento cuando se resuelve un problema. (Compresión). (J2) Relacionar conceptos y principios teóricos para la resolución efectiva de un problema. (Síntesis). | Capítulos 2,3,4,5,6 | Lecturas | Proyectos y tareas |
La tabla muestra que aspectos de las competencias de Comunicación Escrita, Lectura Crítica y Razonamiento Cuantitativo son evaluados a través de los factores ABET correspondientes. Por otra parte, las competencias de Ciudadanía e Inglés se favorecen gracias a la metodología del curso y también, gracias a los factores ABET correspondientes.
Resultados de Programa | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | |
Ciudadanía | |||||||||||
Comunicación escrita | E | ||||||||||
Lectura crítica | U | ||||||||||
Inglés | U | ||||||||||
Razonamiento cuantitativo | E | E | E |
E- Se evalúa. U - Se usa
La Carrera de Ingeniería de Sistemas y Computación plantea los siguientes objetivos educacionales, El estudiante graduado de la carrera será capaz de:
Resultados de Programa | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | G | H | I | J | K | |
EO1 | X | X | X | X | |||||||
EO2 | X | X | X | X | |||||||
EO3 | X | X | |||||||||
EO4 | X | X | X | ||||||||
E05 | X | X |
Instrumento | Porcentaje | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Tareas y talleres | 15 % | 30 % | 10 % | 40% | 10 % | 10 % | ||||||
Exposición | 10 % | 20 % | 80 % | |||||||||
Parcial 1 | 20 % | 50 % | 20 % | 10% | 10% | 10 % | ||||||
Parcial 2 | 25 % | 50 % | 10 % | 30 % | 10 % | |||||||
Examen Final | 30 % | 50 % | 10 % | 40 % |
No está permitido el uso de notas de clase ni bibliografía. El uso de computadores personales, teléfonos celulares o cualquier otro equipo electrónico se utilizará de acuerdo a las indicaciones del docente.
Obligatoria
Salón de clase con computador y proyector. Laboratorio de Ingeniería de Sistemas y Computación.