UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
FACULTAD DE CIENCIAS QUÍMICAS, FISICAS Y MATEMATICAS
DEPARTAMENTO ACADEMICO DE INFORMATICA
SILABO
DATOS GENERALES:
Nombre de la asignatura Algorítmica I
Categoría de la asignatura OE
Código de la asignatura IF421AIN
Número de créditos 04
Número de horas teóricas 03
Número de horas prácticas 02
Requisito (s) Introducción a la Informática
Horario y aula Ma –Ju 07- 09 y Vi 07-08 IN102
Semestre Académico 2009-1
Carrera Profesional de servicio Ingeniería Informática y de Sistemas
Docentes Ing. Julio César Carbajal Luna
Ing. Javier Arturo Rozas Huacho
E-Mail Docente jccarbajall@unsaac.edu.pe
SUMILLA
La asignatura propone una introducción a la disciplina de la algorítmica siguiendo un enfoque semi formal, dentro del paradigma imperativo, en el que se presentan al estudiante los conceptos elementales de la algorítmica sin ligarse en ningún momento a un lenguaje de programación concreto, sino utilizando una notación algorítmica estructurada cuyas características se van introduciendo progresivamente a lo largo del curso.
Esta asignatura tiene como finalidad desarrollar habilidades y adquirir destrezas para la concepción, diseño e implementación de algoritmos, haciendo uso de las metodologías de programación. Ejes temáticos: Estructuras de control, modularidad y recursividad, estructuras de datos, archivos y apuntadores.
OBJETIVOS
Identificar los elementos para la construcción de algoritmos..
Diseñar algoritmos eficaces y eficientes que permiten resolver problemas de mediana complejidad.
Codificar los algoritmos en un lenguaje de programación de alto nivel.
CONTENIDOS POR UNIDADES DIDACTICAS
UNIDAD DIDACTICA 1
ESTRUCTURAS DE CONTROL BÁSICAS:
OBJETIVOS ESPECIFICOS
Dominio y distinción de los conceptos fundamentales: algoritmo, programa y proceso.
Conocer los conceptos y las etapas generales involucradas en la construcción y ejecución de un programa.
Conocer los mecanismos básicos de composición de algoritmos: secuenciación, análisis de casos, iteración y recursión.
Comprender el concepto de especificación de un algoritmo y conocer el lugar que ocupa en el diseño de algoritmos, en contraposición a la implementación
Conocer las características generales que rodean a un lenguaje de programación: paradigmas, sintaxis, semántica y modos de traducción
Leer y explicar algoritmos de manera transparente, en relación con los problemas que soluciona
Dar cuenta de la pertinencia de un algoritmo, para la solución de un problema
Dar cuenta del proceso de construcción algorítmica como un proceso de expresión lógica.
Hacer un uso apropiado de las estructuras de control en el diseño e implementación de algoritmos para la solución de problemas.
CONTENIDO (4 semanas)
CAPÍTULO I: MAQUINAS QUE PROCESAN ALGORITMOS
Introducción
El computador, una máquina que procesa algoritmos. Algoritmo frente a programa. Algoritmos computables
Noción de proceso y estado de un proceso
Codificación de la información
Lenguajes de programación
La informática y su papel en la algorítmica
CAPÍTULO II: LEXICO Y ORGANIZACIÓN DE UN ALGORITMO
Introducción
Conceptos básicos: Variables, acciones, precondiciones y postcondiciones, constantes, léxico de un algoritmo, tipos de datos primitivos: dominio y operaciones. Entero, Real, Booleano, Carácter, Intervalos
Acciones primitivas. La asignación. Las acciones de entrada y salida. Organización de las acciones. Tipos de datos no primitivos
Estrategias para resolver problemas. Entienda el problema. Formule un plan. Ponga en práctica el plan. Revise y compruebe
Etapas en la construcción de un programa. Analizar: Entender el problema, Modelo, Especificación del algoritmo. Diseñar: Descripción del algoritmo en pseudocódigo, Verificación del algoritmo. Codificación en un lenguaje de programación. Puesta en funcionamiento. Mantenimiento
CAPÍTULO III: ESTRUCTURAS DE CONTROL
Introducción
Estructuras secuenciales. Composición secuencial de acciones
Estructuras selectivas. Análisis de casos. Análisis de casos en la notación algorítmica. Combinación de secuenciación y análisis de casos. Léxico, sintaxis y semántica. Sentencias selectivas anidadas y múltiples.
Estructuras iterativas. La necesidad de iterar. Composición iterativa. Componentes de una iteración. Iteración Mientras. Diseño iterativo: noción de invariante. Esquema general de una iteración. Léxico, sintaxis y semántica.
ACTIVIDADES: Proyecto de aplicación.
MATERIAL EDUCATIVO: Materiales impresos y módulos de aprendizaje; direcciones electrónicas para recabar información especializada sobre los contenidos planteados. Pizarra, plumones, mota Proyector multimedia, computadora, presentaciones en power point.
EVALUACION: Evaluación escrita (2 horas).
UNIDAD DIDACTICA 2
MODULARIDAD Y RECURSIVIDAD
OBJETIVOS ESPECIFICOS
Entender el papel crucial que juega la abstracción en el desarrollo de un programa y aprender los distintos tipos de abstracción empleados en la disciplina de la programación: abstracción por parametrización, abstracción por especificación, abstracción de datos, abstracción de control, abstracción procedural y operacional.
Dominar las técnicas de diseño de algoritmos ascendente (empleando reutilización) y descendente (refinamiento por pasos sucesivos), y su combinación con los patrones procedimentales y los mecanismos básicos de descomposición de algoritmos
Entender el razonamiento inductivo y aprender la técnica recursiva para la definición de estructuras de datos y la construcción de procedimientos y funciones.
Identificar las acciones en las que se puede descomponer un problema.
Implementar las acciones como módulos
Entender como pensar en forma recursiva.
Aprender a rastrear una función recursiva.
CONTENIDOS (4 semanas)
CAPÍTULO IV: MODULARIDAD
Introducción
Acciones. La utilización de las acciones. Acciones con parámetros. Ventajas de la parametrización.
Abstracción y acciones
Tipos de parámetros. Parámetros dato (o de entrada). Parámetros dato-resultado (o de entrada-salida).
Funciones. Especificación, utilización, descripción. Diferencias entre acciones y funciones
CAPITULO V: RECURSIVIDAD
Concepto de recursividad.
Fundamentos del diseño recursivo. Tipos de recursividad. Esquema general de una función recursiva lineal.
Técnicas de inmersión. Transformación en iterativa de la recursividad lineal.
Diseño y verificación de algoritmos recursivos.
Ejemplos del diseño recursivo.
ACTIVIDADES: Proyecto de aplicación
MATERIAL EDUCATIVO: Materiales impresos y módulos de aprendizaje; direcciones electrónicas para recabar información especializada sobre los contenidos planteados. Pizarra, plumones, mota Proyector multimedia, computadora, presentaciones en power point
EVALUACION: Evaluación escrita 2 horas
UNIDAD DIDACTICA 3
ESTRUCTURA DE DATOS
OBJETIVOS ESPECIFICOS
Conocer los principales patrones procedimentales (entrada-acción-salida, búsqueda, recorrido, etcétera), y ser capaces de identificarlos y concretarlos adecuadamente al tratar de resolver un problema.
Identificar las diferentes estructuras de datos.
Entender la pertinencia de los arreglos en la solución de variedad de problemas.
Proponer algoritmos que incorporen arreglos y estructuras de control que los manipulen, como soluciones a problemas.
CONTENIDOS (4 semanas)
CAPÍTULO VI: ARREGLOS
Estructuras de datos: Conceptos. Tipos de estructuras de datos: Estáticas, dinámicas.
Tipo de dato arreglo.
Tipo de dato registro
Arreglos unidimensionales.
Esquema de recorrido y búsqueda en arreglos.
Algoritmos de ordenación y búsqueda.
Arreglos multidimensionales.
ACTIVIDADES: Proyecto de aplicación
MATERIAL EDUCATIVO: Materiales impresos y módulos de aprendizaje; direcciones electrónicas para recabar información especializada sobre los contenidos planteados. Pizarra, plumones, mota Proyector multimedia, computadora, presentaciones en power point
EVALUACION:
UNIDAD DIDACTICA 4
ARCHIVOS Y PUNTEROS
OBJETIVOS ESPECIFICOS
Leer y escribir datos desde una unidad de almacenamiento secundario
Identificar los diferentes tipos de archivos y aplicarlos en la solución de problemas que requieran persistencia de datos.
Entender el concepto de apuntador
Implementar estructuras de datos dinámicas haciendo uso de apuntadores
CONTENIDOS (4 semanas)
CAPÍTULO VII: ARCHIVOS
Conceptos sobre persistencia de datos.
Manejo del sistema de archivos
Lectura y escritura de archivos
CAPÍTULO VIII: APUNTADORES
Apuntadores. Constantes y operaciones elementales
El tipo de dato apuntador. Acceso a datos mediante apuntadores
Tipos de datos auto referenciados
ACTIVIDADES: Proyecto de aplicación
MATERIAL EDUCATIVO: Materiales impresos y módulos de aprendizaje; direcciones electrónicas para recabar información especializada sobre los contenidos planteados. Pizarra, plumones, mota Proyector multimedia, computadora, presentaciones en power point
EVALUACION: Evaluación escrita 2 horas
METODOLOGIA
Actividades de Aprendizaje
De Docencia (Responsabilidad del docente):
Situar al estudiante y a la práctica de la profesión de la ingeniería, en el contexto general de las Tecnologías Informáticas, y en especial de los algoritmos y su programación, y en el papel que ellas han jugado, juega y jugarán en quehacer del ingeniero en la sociedad.
Presentación de los conceptos básicos sobre los algoritmos y su codificación en un lenguaje de programación de alto nivel.
Diseño, preparación y solución de ejemplos tipo. Resolución de ejemplos tipo.
Diseño, preparación y solución de ejercicios propuestos.
Dirección del análisis de ejercicios propuestos en sesiones presenciales.
Tutorías y consejerías
De trabajo Colectivo (Responsabilidad de docentes y alumnos:)
Construcción de conceptos.
Solución de ejercicios propuestos.
Ejercicios de análisis y diseño.
Dar sentido al uso de las tecnologías informáticas.
De Estudio Independiente (Responsabilidad del estudiante):
Estudio de textos pertinentes a los temas: Algoritmos, métodos de solución de problemas, lenguajes de programación.
Revisión de los ejemplos resueltos.
Resolución de ejercicios propuestos.
Implementación en la computadora de los ejemplos estudiados en clase.
Lectura y escritura de narrativas que den cuenta del papel de las tecnologías informáticas y en especial del computador y su programación, como soluciones a problemas sociales.
EVALUACION
Indicadores
|
Claridad y entendimiento de los conceptos.
Que se haya identificado correctamente el problema y que el modelo lo represente adecuadamente.
Que la solución diseñada resuelva el problema.
Apego a la formalidad y estándares requeridos.
Que el análisis de corrección sea exhaustivo.
Que el prototipo corresponda al algoritmo diseñado y no presente errores de sintaxis.
La asistencia a las clases
El esfuerzo y dedicación en la resolución de problemas.
Que la documentación permita reconocer la forma en que se ha abordado el problema y la estructura del programa implementado.
En las pruebas escritas se consideran en forma parcial los aspectos considerados en proyectos de programación bajo problemas que requieren un menor tiempo de desarrollo y en una modalidad que no requiere uso del computador, así como la comprensión conceptual.
|
Criterios de
Calificación
|
Las soluciones propuestas deben demostrar ser efectivas como soluciones a los problemas planteados.
Se valora tanto la calidad lógica de la solución como la aplicación de prácticas sanas de programación.
Se valora también el cumplimiento de las tareas propuestas en el término estipulado.
|
Instrumentos
|
Tres exámenes parciales ponderados de 0 a 20
Pruebas cortas no avisadas
Desarrollo de ejercicios prácticos
|
La evaluación se regirá a las disposiciones emanadas por la Oficina de Capacitación y Evaluación Académica (OCEA).
Se considerarán tres promedios parciales. Para cada promedio parcial se tomarán dos evaluaciones y se bonificarán con puntos a los estudiantes que cumplan con sustentar sus proyectos.
El promedio final se obtendrá por promedio aritmético simple de los tres promedios parciales.
Nota Final=(PP1+PP2+PP3)/3
BIBLIOGRAFIA
GRUPO LIEBRE. Algoritmica y programación. Un enfoque práctico. Editorial ALPHA. 2000.
BALCAZAR, J. Programación Metódica. Mc Graw Hill. 1993.
JOYANES, L. y otros. Estructura de datos. Libro de problemas. Mc Graw Hill. 1999.
PEÑA, R. Diseño de Programas. Formalismo y Abstracción. Prentice Hall. 2005
DROZDEK, A. Estructura de datos y algoritmos en Java. 2da. Edición. Thomson. 2007.
KOFFMAN, E. / WOLFGANG, P. Estructura de datos con C++. Objetos, abstracciones y diseño. Mc. Graw Hill. 2008.
GARCIA, J. y otros. Una Introducción a la Programación. Un Enfoque Algoritmico. Thomson Paraninfo. 2005.
|