Download Programa de la asignatura
Document related concepts
no text concepts found
Transcript
2016 Año del Bicentenario de la Declaración de la Independencia Nacional Facultad de Ingeniería - Universidad Nacional de Cuyo P1- PROGRAMA DE ASIGNATURA Asignatura: Informática Profesor Titular: Dr. Ing. Martín Marchetta Carrera: Ingeniería Mecatrónica Año: 2016 Semestre: 6 Horas Semestre: 60 Horas Semana: 4 OBJETIVOS Establecer con criterio los ámbitos de aplicación de sistemas de cómputo basados en PC, microcontroladores y arquitecturas especiales, comprendiendo tanto el soporte físico como lógico. Familiarizarse con los sistemas operativos para PC, lenguajes de programación de mayor uso y entornos de desarrollo y depuración de software. Introducir a los lenguajes procedurales de alto nivel para resolución de problemas de cómputo y automatismos, mediante los enfoques Diagrama de Flujo, Diagrama de Estados y Estructurado. Utilizar con solvencia los tipos de datos simples y estructurados. CONTENIDOS UNIDAD 1: INTRODUCCIÓN 1.A. Arquitectura de computadoras Introducción a la arquitectura de computadoras. Organización de sistemas de cómputo en capas. Jerarquía, lenguajes y niveles de abstracción. Arquitectura de microcontroladores. Sistemas de numeración. Introducción al manejo de punto flotante para cálculos numéricos. 1.B. Sistemas Operativos Introducción a los Sistemas Operativos: conceptos y roles. Procesos, multiprogramación, hilos (threads). Sistemas de Archivos. Entrada/Salida. Manejo de memoria. Llamadas al sistema. 1.C. Redes de computadoras Modelo OSI. Modelo TCP/IP. Pilas de protocolos. Interfaz, Servicio, Protocolo. UNIDAD 2: Algoritmos, estructuras de datos y su implementación en lenguaje C 2.A. Algoritmos y Lenguajes de programación Algoritmo, estructura de datos, programa: concepto, componentes, relación entre ellos. Lenguaje de programación: conceptos, niveles de abstracción (nivel del set de instrucciones de arquitectura, nivel del sistema operativo, nivel del lenguaje ensamblador, lenguajes orientados a aplicaciones), paradigmas de programación, lenguajes de propósito general y de propósito particular, interpretación vs. compilación. El Lenguaje C y sus características principales. El proceso de la compilación, enlazado y ejecución de un programa en C: programa fuente, programa objeto, programa ejecutable. Entornos Integrados de Desarrollo (IDE): entornos modernos más utilizados, uso básico, resaltado de sintaxis, navegación de código, depuración (traza, inspección de variables). Centro Universitario (M5502KFA), Ciudad, Mendoza. Casilla de Correos 405. República Argentina. Tel. +54-261-4494002. Fax. +54-261-4380120. Sitio web: http://fing.uncu.edu.ar Página 1 de 2 2016 Año del Bicentenario de la Declaración de la Independencia Nacional 2.B. El ANSI C Lenguaje C, preprocesador y biblioteca de funciones. Estructura general de un programa en C. La función main(). Componentes del lenguaje: sintaxis básica, identificadores (variables y funciones), constantes, operadores, tipos de datos primitivos: char, int, long, float, double, long double, calificativo unsigned, tipo especial void. Variables: alcance, vida y visibilidad de las variables, declaración de variables. Directivas para el preprocesador: concepto, la directiva #include, La directiva #define, otras directivas. 2.C. Operadores, Expresiones Y Sentencias Operadores unarios y binarios. Operadores aritméticos. Operadores lógicos. Operadores a nivel de bits. Expresiones aritméticas, lógicas, generales. Reglas de precedencia y asociatividad. Conversiones de tipo implícitas y explícitas (casting). 2.D. Control del flujo de ejecución Sentencias simples, bloques de sentencias. Estructuras condicionales: sentencia if/else/else if. Estructuras de iteración: sentencia while, sentencia for, sentencia do/while, sentencias break, continue, goto. Estructuras de control anidadas. 2.E. Subrutinas Conceptos generales: cohesión, acoplamiento, encapsulamiento y reutilización de código. Utilidad de las funciones/procedimientos. Definición de la cabecera (signature) de una función/procedimiento: nombre, argumentos y valor de retorno. Llamada de una función. Pasaje de argumentos por valor y por referencia (concepto). Recursión. 2.F. Apuntadores Conceptos de apuntador y direccionamiento. Operadores de dirección (&) e indirección (*). Declaración de apuntadores. Aritmética de apuntadores. Pasaje de argumentos por valor y por referencia. Apuntadores múltiples, violaciones de segmento, fugas de memoria. 2.G. Estructuras de datos Arreglos: vectores, cadenas de caracteres, arreglos multidimensionales. Declaración, inicialización y manipulación de arreglos. Relación entre arreglos y apuntadores. Tipos definidos por el usuario. Estructuras (struct). Manejo de memoria dinámica. 2.H. Introducción a la biblioteca estándar de C Funciones para la manipulación de caracteres y conversión de caracteres a números y viceversa (isalpha, isdigit, isxdigit, islower, isupper, tolower, toupper, itoa, atoi). Funciones matemáticas (sqrt, pow, funciones trigonométricas), para la generación de números aleatorios (rand, srand), de entrada/Salida "estándar" (printf, scanf, getchar, gets, putchar, puts, sscanf, sprintf), para la manipulación de cadenas de caracteres (strcpy, strcat, strcmp, strlen, strchr, strstr). División de código en múltiples archivos fuente. Gestión de bibliotecas de código propias. UNIDAD 3: Interacción con el hardware y el Sistema Operativo 3.A. Multithreading y Multiprocesamiento. Problemas de sincronización en hilos: conceptos, secciones críticas, operaciones atómicas, sincronización mediante semáforos. Implementación de programas con múltiples hilos mediante POSIX Threads: creación de hilos, gestión de mutex, re-unificación de threads finalizados, variables de condición. Multiprocesamiento: creación de múltiples procesos, paralelización del cómputo; mecanismos de comunicación entre procesos; mecanismos de sincronización de procesos. Centro Universitario (M5502KFA), Ciudad, Mendoza. Casilla de Correos 405. República Argentina. Tel. +54-261-4494002. Fax. +54-261-4380120. Sitio web: http://fing.uncu.edu.ar Página 2 de 2 2016 Año del Bicentenario de la Declaración de la Independencia Nacional 3.B. Interacción con el hardware Bibliotecas de enlace dinámico. Acceso al hardware a través de llamadas al sistema. Programación de sockets en TCP/IP. UNIDAD 4: Algoritmos y aplicaciones avanzadas 4.A. Aplicaciones avanzadas Estructuras de datos complejas: pilas, colas, listas doblemente enlazadas, árboles, grafos. Búsqueda y ordenamiento: bubblesort, quicksort, búsqueda binaria, dispersión (hashing), búsqueda de rutas en espacios discretos. Cálculo numérico y control: problemas típicos en el uso de punto flotante, solución sistemas de ecuaciones lineales, integración numérica, implementación de controladores (P, PI y PID). Implementación en multiprogramación de simulación y control de procesos. 4.B. Análisis de complejidad algorítmica Medición del rendimiento de algoritmos: memoria, tiempo de procesamiento, calidad de la solución. Heurísticas como medio para mejorar el rendimiento. Análisis asintótico; ejemplos: comparación de bubblesort con quicksort. Conceptos de ingeniería de software: cohesión, acoplamiento, arquitectura de software. METODOLOGÍA DE ENSEÑANZA Se empleará una metodología teórico-práctica. Se estima utilizar aproximadamente el 30% del tiempo para desarrollar los conceptos teóricos, y el 70% restante para desarrollar actividades prácticas, incluyendo mini-casos de estudio, solución de problemas mecatrónicos (simulados) y un proyecto final integrador. Se espera además que los alumnos dediquen tiempo adicional a realizar ejercicios prácticos en tiempos fuera del aula. Carga horaria por semestre Actividad Teoría y resolución de ejercicios simples 20 Formación práctica Formación Experimental – Laboratorio 20 Formación Experimental - Trabajo de campo 0 Resolución de problemas de ingeniería 10 Proyecto y diseño 10 Total 60 BIBLIOGRAFÍA Bibliografía básica Autor A. Tanembaum A. Tanembaum Título Editorial Sistemas Operativos Modernos, 3° Pearson Ed. Organización de Computadoras: Prentice-Hall Un enfoque estructurado, 4° Ed. Año Ejemplares en biblioteca 2009 0 2000 0 Centro Universitario (M5502KFA), Ciudad, Mendoza. Casilla de Correos 405. República Argentina. Tel. +54-261-4494002. Fax. +54-261-4380120. Sitio web: http://fing.uncu.edu.ar Página 3 de 2 2016 Año del Bicentenario de la Declaración de la Independencia Nacional A. Tanembaum A. Tanembaum L. Joyanes Aguilar, I. Zahonero Martínez O. Cairó Battistutti, B. Kernighan, D. Ritchie B. S. Gottfried Structured Computer Organization, 5th ed. Redes de Computadoras, 5ta Ed. Programación en C : metodología, algoritmos y estructura de datos Metodología de la programación : algoritmos, diagramas de flujo y programas El lenguaje de programación C Programación en C Prentice-Hall 2005 0 Pearson 2012 0 McGraw-Hill 2005 1 Alfagrama 2003 1 Prentice-Hall McGraw-Hill 1991 2005 1 1 Año Ejemplares en biblioteca IBM Developer Works Technical Library 2000 -- IBM Developer Works Technical Library 2000 -- IBM Developer Works Technical Library 2000 -- 1997 -- 2001 1 Bibliografía complementaria Autor D. Robbins D. Robbins D. Robbins Título Editorial POSIX threads explained Common threads: POSIX threads explained (Part 2) Common threads: POSIX threads explained (Part 3) W. Press, S.A. Teukolsky, Cambridge University W.T. Vetterling, B.P. Numerical Recipes in C Press Flannery Ingeniería de Control, W. Bolton Alfaomega 2° ed. EVALUACIONES (S/ Ord. 108-10_CS) • Para aprobar o regularizar la materia, se requiere la asistencia al 80% de las clases como mínimo • Los exámenes incluyen 2 parciales escritos, y un coloquio final integrador • Para regularizar la materia, además de la asistencia, se deberán entregar las guías de trabajos prácticos y de laboratorio correctamente resueltas y aprobar todos los exámenes (o sus correspondientes recuperatorios) con una nota de 6 puntos o más, de acuerdo a lo especificado en la Ordenanza 108/2010-CS. • Para promocionar la materia, además de cumplir con los requisitos mínimos requeridos para regularizarla, la nota final debe ser de 7 (siete) puntos o más, de acuerdo a la siguiente fórmula: Nota final = Trabajos Prácticos y de Laboratorio * 0.15 + Parcial 1 * 0.25 + Parcial 2 * 0.25 + Trabajo Integrador y coloquio * 0.35 Centro Universitario (M5502KFA), Ciudad, Mendoza. Casilla de Correos 405. República Argentina. Tel. +54-261-4494002. Fax. +54-261-4380120. Sitio web: http://fing.uncu.edu.ar Página 4 de 2 2016 Año del Bicentenario de la Declaración de la Independencia Nacional Régimen especial para alumnos libres • • • • Desarrollar y presentar con 2 semanas de anticipación a la mesa de examen los 3 Trabajos Prácticos que se desarrollan a lo largo de la cátedra (una guía teórica y 2 prácticas en modalidad de laboratorio). Una vez entregados los 3 prácticos, desde la cátedra se le dará un trabajo especial integrador, el cual será diferente en cada mesa de examen. El trabajo especial, específico para la mesa de examen, debe ser entregado 1 semana antes de la mesa de examen para su evaluación previa En la mesa de examen se tomará un examen escrito, abarcando todos los temas del programa. Si se aprueba este examen escrito, se tomará un coloquio oral sobre el trabajo especial de la mesa, sobre todos los programas entregados, y sobre la teoría. La nota final será determinada en base a los exámenes oral y escrito mencionados Programa de examen El siguiente cronograma incluye una semana de mesas de examen en la que no hay: • Semana 5: o Examen parcial N° 1 (escrito) o Entrega guía de trabajos prácticos teórica • Semana 12: Examen parcial N° 2 (escrito) • Semana 13: Entrega guía de trabajos prácticos de laboratorio • Semana 14: • o Examenes recuperatorios. o Entrega trabajo final integrador. Semana 15: Coloquio final integrador (oral) FECHA, FIRMA Y ACLARACIÓN TITULAR DE CÁTEDRA Centro Universitario (M5502KFA), Ciudad, Mendoza. Casilla de Correos 405. República Argentina. Tel. +54-261-4494002. Fax. +54-261-4380120. Sitio web: http://fing.uncu.edu.ar Página 5 de 2