Planificación - Campus virtual

Anuncio
75.40 – 95.14
Algoritmos y Programación I
Curso Prof. Arturo Servetto
Propósitos del Curso
• Presentar al alumno un panorama general de la Informática a partir del concepto de algoritmo,
que le sirva como base para apreciar la importancia e interrelaciones de cursos futuros.
• Que el alumno comprenda los fundamentos de la tecnología actual y la forma en que influye en el
diseño de computadoras.
• Que el alumno comprenda cómo el software de sistema controla el funcionamiento de una
computadora y establece las rutas de comunicación básica entre una máquina y las personas que
la usan, y cómo pueden conectarse computadoras para compartir información y recursos.
• Capacitar al alumno en el descubrimiento y representación de algoritmos aplicando el principio
de dividir y conquistar y refinamientos sucesivos, e inculcarle la búsqueda de eficiencia y la
comprobación de corrección y completitud.
• Capacitar al alumno en la comunicación de algoritmos a las computadoras mediante el proceso
de programación y el dominio del lenguaje C, en el diseño de datos para representar información
y manipularlos con la mayor eficiencia, y en la presentación efectiva de información al usuario.
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
2
Contenidos
Descripción analítica del alcance del curso
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
3
Introducción a la Informática
• Fundamentos
Algoritmos y programación. Alcance de la informática. Repercusiones sociales. Desarrollo de máquinas
algorítmicas. Arquitectura de computadoras. Sistemas de numeración binario y hexadecimal.
Operaciones booleanas.
• Representación y Almacenamiento de Datos
Memoria principal. Almacenamiento masivo: sistemas magnéticos, ópticos y memorias flash.
Representación de información como patrones de bits: texto, valores numéricos, imágenes y sonido.
Confiabilidad: métodos de detección y corrección de errores.
• Manipulación de Datos
La unidad central de procesamiento (CPU). Codificación y almacenamiento de programas. Lenguaje de
máquina. Ejecución de programas. Ejercitación en una máquina virtual.
• Nociones de Software
Software de sistema, de desarrollo y de aplicación. Sistemas operativos: historia, arquitectura,
funciones y seguridad. Redes (clasificación, protocolos, comunicación entre procesos y sistemas
distribuidos) e Internet (arquitectura, aplicaciones, la www y seguridad).
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
4
Algoritmia y Lenguajes de Programación
• Algoritmia y Programación
Teoría de resolución de problemas de Pólya aplicada a la algoritmia.
Enfoques descendente (top down) y ascendente (bottom up).
Tipos estándar y definición de constantes y variables globales.
Expresiones: álgebra de Boole y Leyes de De Morgan.
Estructuras de control: de transferencia-retorno (entrada y salida estándar y definición de
subalgoritmos), de asignación, selectivas e iterativas.
Procesamiento de secuencias.
Eficiencia, generalidad y corrección de algoritmos.
• Lenguajes de Programación
Historia. La programación imperativa o por procedimientos como paradigma de comunicación de
algoritmos a computadoras. Traducción e interpretación de programas.
Paradigmas de programación abstracta: programación orientada a objetos, programación lógica,
programación funcional y lenguajes que las sustentan.
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
5
Programación Imperativa en Lenguaje C
• Ambientes de Desarrollo y Programas
Ambientes integrados de desarrollo.
Estructura de programas y documentación interna.
Definición de tipos: estructuras, uniones y enumeraciones.
Memoria estática en programas.
Archivos de texto (memoria persistente): estructura, caracteres de control, funciones
predefinidas y aplicaciones para captura de datos y comunicación de resultados de programas.
• Definición de Subprogramas
Parámetros por referencia y por valor. Definición de constantes, tipos y variables locales; reglas de
alcance.
Reusabilidad del software. Principios de modularización: cohesión y acoplamiento.
Invocación recursiva de subprogramas.
Memoria de pila (stack memory) en programas: registros de activación de subprogramas.
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
6
Estructuras de Datos en el Lenguaje C
• Agrupamiento de Datos en Arreglos (Memoria Principal)
Definición y manipulación de arreglos de una o más dimensiones. Arreglos como parámetros.
Algoritmos de búsqueda y de ordenamiento de elementos en arreglos. Aplicaciones: aritmética
de alta precisión, álgebra de polinomios y matrices, resolución algebraica de sistemas de
ecuaciones.
• Persistencia de Datos en Archivos Binarios (Memoria Secundaria)
Procesamiento de archivos. Funciones predefinidas; accesos secuencial y relativo. Creación y
actualización de archivos con registros desordenados con control de espacio libre. Ordenamiento
de archivos. Algoritmos de corte de control y de procesamiento coordinado de archivos
ordenados.
• Apuntadores (pointers) a Datos (Memoria Principal)
Definición de apuntadores a datos, asignación y liberación de memoria para datos apuntados,
referenciación de datos con apuntadores. Conceptos de listas, colas y pilas. Memoria dinámica
(heap memory) en programas.
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
7
Bibliografía
• Introducción a la computación (11ª edición)
J. Glenn Brookshear
Addison Wesley, 2012
• Fundamentos de programación
Algoritmos, estructura de datos y objetos (4ª edición)
Luis Joyanes Aguilar
McGraw-Hill, 2008
• Introducción a la Programación Estructurada en C
Teresa G. Márquez, Sonia Osorio y Noemí Olvera
Pearson, 2011
• CÓMO PROGRAMAR EN C, C++ y JAVA 4/E
Harvey M. Deitel y Paul J. Deitel
Pearson, 2004
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
8
Régimen de Cursado y Promoción
Modalidad de clases y de evaluaciones
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
9
Modalidad de Clases
• Clases teórico-prácticas (6 hs semanales)
• Principios conceptuales y procedimentales de cada unidad temática con planteo y discusión de
problemas
• Desarrollo analítico de casos de estudio
• Atención de consultas para el desarrollo de trabajos en pares y demostración de soluciones
• Los pares se conformarán cada clase según los alumnos que tengan computadoras portátiles y
trabajarán en aula o en un laboratorio del Departamento de Computación
• Materiales y Consultas (Campus Virtual)
• Síntesis de unidades temáticas y documentación de consulta
• Guías de problemas para cada unidad temática
• Atención de consultas sobre problemas de unidades temáticas
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
10
Modalidad de Promoción
• Trabajos Prácticos en Pares
• Se exigirá la resolución en clases de laboratorio de uno o más problemas, realizada por alumnos
agrupados de a dos; cada alumno deberá acreditar al menos el 70% de los trabajos que se exijan
• La corrección de los trabajos se basará en rúbricas y comprenderá tanto el proceso de desarrollo
(interacción con docentes) como la calidad (claridad, prediseño de datos de prueba, corrección y
eficiencia) de los resultados
• Evaluación Parcial Individual (teórico-práctica)
• Manejo de conceptos, aplicación de conocimientos y dominio de técnicas, mediante respuestas a
preguntas y resolución de problemas (3 oportunidades para aprobar: dos fechas durante el cursado y la
tercera en la primer semana postcursado)
• Comprende Introducción a la Informática, Algoritmia y Lenguajes de Programación, y Programación
Imperativa en Lenguaje C
• Evaluación Integradora Individual (complementaria a la parcial)
• Ídem evaluación parcial (en hasta 3 fechas de evaluación integradora de las 15 siguientes al cursado)
• Comprende Estructuras de Datos en Lenguaje C
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
11
Cronograma
Planificación de clases y evaluaciones parciales
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
12
Clases
Semana Conceptos
Práctica
1 Fundamentos
Sistemas de numeración binario y hexadecimal
(operaciones y conversiones de representación)
2 Representación y Almacenamiento de Datos
Codificación de símbolos y números (enteros y
fraccionarios)
Codificación de programas en una máquina virtual,
en el lenguaje de la máquina expresado en
hexadecimal
3 Manipulación de Datos
4 Nociones de Software
5 Algoritmia
Representación de algoritmos en lenguaje natural
6 Lenguajes de Programación
7
Ambientes de Desarrollo y Programas
8
75.40 - 95.14 Algoritmos y Programación I
Codificación de programas en C con estructuras
selectivas y repetitivas, y archivos de texto para
captura de datos y comunicación de resultados;
edición de salidas
Curso Prof. Servetto
13
Clases
Semana Teoría
9
Subprogramas
Modularización de programas, subprogramas
recursivos e implementación de tipos de datos
abstractos; reglas de estilo de programación
Arreglos
Aplicaciones con arreglos implementando tipos de
datos abstractos
Archivos Binarios
Aplicaciones con archivos binarios como tipos de
datos abstractos
Apuntadores
Programas con apuntadores
10
11
12
13
14
15
16
Práctica
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
14
Evaluaciones Parciales
• Primera fecha: semana 10
• Segunda fecha: semana 14
• Tercera fecha: semana 17
Las evaluaciones se desarrollarán en un día y horario normal de clases,
y el día de cada evaluación en la semana especificada para cada fecha
se determinará oportunamente según el avance en los contenidos.
75.40 - 95.14 Algoritmos y Programación I
Curso Prof. Servetto
15
Descargar