CÁTEDRA: PRACTICA PROFESIONAL I
| PROFESOR TITULAR: Lic. Miguel Arrighi |
arrighim@profesores.ucongreso.edu.ar |


OBJETIVOS
Que el alumno tenga una mejor idea de las incumbencias de su carrera y en particular los roles dentro de la Ingenieria de Software.
Que el alumno lleve a la práctica la resolución de problemas y logre un estilo de programación.

CONTENIDOS
CONTENIDOS
UNIDAD I: Capacidades del profesional informático
Definición del Ingeniero, Licenciado y Analista en Sistemas. Habilidades y Valores de cada uno. El Programador y sus tareas. Conceptos de sistema. Desarrollo de sistemas. Introducción al PSP.
UNIDAD II: Introducción a la resolución de problemas
Pasos para resolver un problema por computadora. Qué es un programa. Qué es un algoritmo. Diseño de programas: análisis, diseño del algoritmo, verificación. Ejemplos.
Diseño de algoritmos. Diferencia entre programa y algoritmo. Construcción de programas. Documentación de programas.
UNIDAD III: Introducción al lenguaje C
Lenguajes de programación estructurados. Variables y aritmética. Funciones básicas de E/S. El compilador. Ejemplos. Primeros programas en C.
UNIDAD IV: Tipos, Operadores y expresiones
Nombres de variables. Tipos de datos. Constantes. Declaraciones. Operadores aritméticos, relacionales y lógicos. Conversiones de tipo. Operadores de incremento y decremento. Operadores lógicos para manejo de bits. Operadores y expresiones de asignación. Expresiones condicionales. Precedencia y orden de evaluación.
UNIDAD V: Control de flujo
Proposiciones y bloques. If-else y else-if. Switch. Iteraciones while, for y do-while. Break y continue.
UNIDAD VI: Funciones y estructura del programa
Conceptos básicos. Funciones que devuelven valores no enteros. Argumentos de funciones. Variables externas. Reglas sobre ámbito de validez. Variables estáticas. Inicialización. Recursividad.
UNIDAD VII: Punteros y arreglos
Punteros y direcciones, argumentos de funciones. Punteros y arreglos. Aritmética de direcciones. Punteros a caracteres y funciones. Arreglos multidimensionales. Arreglos de punteros y punteros a punteros. Inicialización de arreglos de punteros.
UNIDAD VIII: Estructuras
Conceptos básicos. Estructuras y funciones. Arreglos de estructuras. Punteros a estructuras. Campos. Uniones. Typedef.
UNIDAD IX: Entrada y salida
Acceso a la biblioteca estándar. Entrada y salida estándar: getchar y putchar. Salida con formato: printf y entrada con formato: scanf. Acceso a los archivos. Manejo de errores, stderr y exit. Entrada y salida de líneas. Otras funciones.

ESTRATEGIAS METODOLOGICAS
Durante todo el año el alumno trabaja en el laboratorio, aplicando todos los conocimientos teóricos adquiridos.
En el segundo semestre el alumno diseña e implementa una aplicación completa aplicando todos los conocimientos obtenidos.
RECURSOS DIDACTICOS
Acceso a Internet
Acceso al laboratorio de sistemas.
Compilador del lenguaje C.

BIBLIOGRAFIA
Bibliografía General
El lenguaje de Programación C
ISBN 968-880-024-4
Autor: Brian W. Kernighan – Dennis M. Ritchie
Editorial Prentice-Hall
Estructuras de datos y algoritmos
ISBN: 968-444-345-5
Autor: Alfred V. Aho – John E. Hopcroft – Jeffrey D. Ullman.
Editorial Addison Wesley.

REGULARIDAD
Asistencia (75% mínimo)
Trabajos Prácticos
Formales
Dos trabajos prácticos
Evaluaciones Parciales
Evaluación continua
EVALUACION Y PROMOCION
Promoción Directa

CRONOGRAMA
Clase Nº 1
Teórica
Definición del Ingeniero, Licenciado y Analista en Sistemas. Habilidades y Valores de cada uno.
Clase Nº 2
Teórica
El Programador y sus tareas. Conceptos de sistema. Desarrollo de sistemas. Introducción al PSP.
Clase Nº 3
Teórica
Pasos para resolver un problema por computadora. Qué es un programa. Qué es un algoritmo. Diseño de programas: análisis, diseño del algoritmo, verificación. Ejemplos.
Clase Nº 4
Teórica
Diseño de algoritmos. Diferencia entre programa y algoritmo. Construcción de programas. Documentación de programas.
Clase Nº 5
Teórica
Lenguajes de programación estructurados. Variables y aritmética. Funciones básicas de E/S. El compilador. Ejemplos. Primeros programas en C.
Clase Nº 6
Teórica/Práctica
Ejemplos, compilación y ejecución de programas en C
Clase Nº 7
Teórica
Nombres de variables. Tipos de datos. Constantes. Declaraciones. Operadores aritméticos, relacionales y lógicos. Conversiones de tipo. Operadores de incremento y decremento. Operadores lógicos para manejo de bits. Operadores y expresiones de asignación.
Clase Nº 8
Teórica
Expresiones condicionales. Precedencia y orden de evaluación.
Clase Nº 9
Teórica
Proposiciones y bloques. If-else y else-if. Switch. Iteraciones while, for y do-while. Break y continue.
Clase Nº 10
Teórica/Práctica
Ejemplos de proposiciones y bloques
Clase Nº 11
Práctica
- Trabajo Práctico
Clase Nº 12
Práctica
- Trabajo Práctico
Clase Nº 13
Teórica
Conceptos básicos. Funciones que devuelven valores no enteros. Argumentos de funciones. Variables externas. Reglas sobre ámbito de validez. Variables estáticas. Inicialización.
Clase Nº 14
Teórica/Práctica
Recursividad
Clase Nº 15
Práctica
- Trabajo Práctico
Clase Nº 16
Práctica
- Trabajo Práctico
Clase Nº 17
Práctica
- Trabajo Práctico
Clase Nº 18
Teórica
Punteros y direcciones, argumentos de funciones. Punteros y arreglos. Aritmética de direcciones. Punteros a caracteres y funciones. Arreglos multidimensionales.
Clase Nº 19
Teórica
Arreglos de punteros y punteros a punteros. Inicialización de arreglos de punteros.
Clase Nº 20
Teórica/Práctica
Ejemplos de punteros y arreglos.
Ejemplos de aritmética de punteros
Clase Nº 21
Práctica
-Trabajo Práctico punteros
Clase Nº 22
Práctica
-Trabajo Práctico arreglos/matrices
Clase Nº 23
Práctica
-Trabajo Práctico strings
Clase Nº 24
Práctica
-Trabajo Práctico strings
Clase Nº 25
Práctica
-Trabajo Práctico strings
Clase Nº 26
Teórica
Conceptos básicos. Estructuras y funciones. Arreglos de estructuras. Punteros a estructuras. Campos. Uniones. Typedef.
Clase Nº 27
Teórica/Práctica
Ejemplos con estructuras
Clase Nº 28
Práctica
-Trabajo Práctico
Clase Nº 29
Práctica
-Trabajo Práctico
Clase Nº 30
Teórica
Acceso a la biblioteca estándar. Entrada y salida estándar: getchar y putchar. Entrada y salida de líneas. Otras funciones.
Clase Nº 31
Práctica
-Trabajo Práctico
Clase Nº 32
Práctica
-Trabajo Práctico
Clase Nº 33
Teórica
Salida con formato: printf y entrada con formato: scanf.
Clase Nº 34
Práctica
-Trabajo Práctico
Clase Nº 35
Práctica
-Trabajo Práctico
Clase Nº 36
Teórica
Acceso a los archivos. Manejo de errores, stderr y exit.
Clase Nº 37
Teórico/Práctica
Ejemplos de acceso a archivos desde un programa en C
Clase Nº 38
Práctica
-Trabajo Práctico
Clase Nº 39
Práctica
-Trabajo Práctico
Clase Nº 40
Práctica
-Trabajo Práctico
Clase Nº 41- hasta final de año
Práctica
Desarrollo de una aplicación completa aplicando todos los conceptos desarrollados a lo largo del curso
