Download Paradigmas de programación
Document related concepts
Transcript
DES: Ingeniería Ingeniería de Programa(s) Educativo(s): Software Tipo de materia: Optativa Clave de la materia: OPSW18 Semestre: Séptimo UNIVERSIDAD AUTÓNOMA DE Ciencias de CHIHUAHUA la Área en plan de estudios: Clave: Computación e Informática Créditos 4 Clave: Total de horas por semana: 4 FACULTAD DE INGENIERÍA Teoría: 1 Práctica: 3 PROGRAMA DEL CURSO: Taller: PARADIGMAS DE PROGRAMACIÓN Laboratorio: 3 Prácticas complementarias: Trabajo extra clase: 1 Total de horas semestre: 64 Fecha de actualización: Agosto 2013 Clave y Materia requisito: Propósito del curso : En la actualidad todo egresado de un programa relativo a sistemas computacionales o tecnologías de información requiere de un conocimiento amplio y profundo sobre lenguajes de programación y sus principales aplicaciones, que le permita seleccionar el lenguaje o lenguajes más adecuados para el desarrollo de un sistema computacional. En el curso se estudiaran algunos paradigmas de programación aplicando la metodología y modelos formales para su estudio. Al final del curso el estudiante: Comprende el concepto de paradigma de programación. Distingue entre paradigmas de programación. Aplica un paradigma específico en el mejor caso de uso. Desarrolla aplicaciones básicas en más de un paradigma de programación. Identifica y resuelve los conflictos de aplicación de uso de paradigmas de programación. COMPETENCIAS (Tipo y Nombre de las Competencias que nutren a la materia y a las que contribuye) CONTENIDOS (Unidades, Temas y Subtemas) UNIDAD I:INTRODUCCIÓN El curso promueve las siguientes competencias: Competencias Básicas: Solución de problemas Trabajo en equipo y liderazgo Comunicación Competencias Profesionales: Programación de Aplicaciones para habientes Móviles Programación Cliente/Servidor para tecnologías para Aplicaciones Móviles 1. Elementos de un Lenguaje. a. Alfabeto. b. Sintaxis c. Semántica 2. Implementación de Lenguajes. a. Por traducción (Compiladores). b. Por interpretación (Interpretes). 3. Clasificación de Lenguajes. a. Por nivel de abstracción. b. Por propósito (General o Específico). c. Por Paradigmas. 4. Notaciones Formales para definir un Lenguaje. a. Expresiones Regulares. b. Gramáticas Independientes del Contexto. i. Notación BNF ii. Notación BNF Extendida. c. Diagramas de Sintaxis. UNIDAD II: PROGRAMACIÓN IMPERATIVA 1. 2. 3. 4. RESULTADOS DE APRENDIZAJE (Por Unidad) Identifica el método tradicional para el estudio de un lenguaje y conocerá las notaciones formales que se emplean en el estudio de un lenguaje de programación. Reconoce los conceptos que Representación Estática y Dinámica de un aporta este Programa. paradigma y la a. Archivo Fuente. forma en que b. Estados de un Programa. se implementan Sentencias y Programación Estructurada. esos conceptos a. Análisis de Sintaxis por: en lenguajes i. Gramáticas Independientes del conocidos Contexto. como lenguaje ii. Diagramas de Flujo o C, Pascal, Seudocodigo. Fortran, etc. b. Tipos de Datos. i. ¿Para qué sirven? ii. Tipos Básicos. iii. Tipos Estructurados. c. Sistemas Supervisores de Tipo. Activación de Procedimientos. a. ¿Para qué sirven los Procedimientos? b. Métodos para pasar parámetros. i. Por Valor. ii. Por Referencia. iii. Por Nombre. c. Reglas de Alcance. d. Activación de Registros. Proyecto Competencias Específicas: Básicos de Computación en Programación de Aplicaciones Móviles Diseño de Interfaces Gráficas para Aplicaciones Móviles Modelado y Análisis de Software Programación Cliente/Servidor UNIDAD III: PROGRAMACIÓN LÓGICA. 1. 2. 3. 4. 5. 6. Reconoce los conceptos que Predicados de Primer Orden. este a. Cuantificador Universal y Cuantificador aporta paradigma y la Existencial. forma como los Relaciones. implementa el a. Los operandos y resultados son lenguaje de igualmente importantes. programación Introducción a la Programación con Prolog. Prolog. a. Máquina de Inferencias. Identifica a b. Base de Conocimientos. detalle el i. Reglas. lenguaje Prolog ii. Hechos. y sus c. Razonamiento Basado en principales Procedimientos. aplicaciones. d. Proceso de Unificación. e. Programando en Prolog. Estructuras de Datos en Prolog. a. Estructuras y Listas. Implementando Aprendizaje y Autocuestionamiento en Prolog. Proyecto UNIDAD IV: PROGRAMACIÓN FUNCIONAL. 1. Elementos de la Programación Funcional. a. Funciones, Símbolos, Caracteres, Números, Listas, Cadenas de Caracteres. 2. Reglas de Evaluación. 3. Programación Funcional con LISP. 4. Proyecto UNIDAD V: PROGRAMACIÓN ORIENTADA A OBJETOS. 1. Programación Basada en Objetos (Clases, Objetos y Sobrecarga de Operadores y Objetos). 2. Programación Orientada a Objetos (Herencia y Polimorfismo). 3. Programación Genérica (Plantilla de Funciones y de Clases). 4. Proyecto Reconoce los conceptos que aporta este paradigma y la forma como los implementa el lenguaje de programación Lisp. Además aprenderá a detalle el lenguaje Lisp y sus principales aplicaciones Reconoce los conceptos que aporta este paradigma y la forma como los implementa el lenguaje de programación C++.. UNIDAD VI: OTROS PARADIGMAS. 1. Presentaciones preparadas por los alumnos sobre algún paradigma no visto anteriormente en el curso. Aplica el método tradicional para estudiar algún lenguaje perteneciente a un paradigma no visto previamente en clase y desarrollará una presentación sobre ese lenguaje. METODOLOGIA OBJETO DE ESTUDIO UNIDAD I: INTRODUCCIÓN UNIDAD II: PROGRAMACIÓN IMPERATIVA UNIDAD III: PROGRAMACIÓN LÓGICA UNIDAD IV: PROGRAMACIÓN FUNCIONAL UNIDAD V: PROGRAMACIÓN ORIENTADA A OBJETOS UNIDAD VI: OTROS PARADIGMAS (Estrategias, secuencias, recursos didácticos) EVIDENCIAS DE APRENDIZAJE. Para el logro de los objetivos del curso, se propiciará la participación activa del alumno, el proceso enseñanza aprendizaje consistirá de las siguientes actividades: Tareas de Investigación • Exposición y guía por parte del maestro Exposiciones Prácticas de Laboratorio • Participación del alumno en los diferentes temas • Exposición de temas por parte del alumno • Prácticas de laboratorio • Desarrollo de tareas e investigaciones • Solución de casos de estudio • Desarrollo de proyectos FUENTES DE INFORMACIÓN (Bibliografía/Lecturas por unidad) 1) Sethi, R .( 1996).Programming Languages: Concepts & Constructs. Addison-Wesley Pub. Co.. 2) Deitel, H. & Deitel .( 2004).C / C++ y Java: Cómo Programar., P. Pearson EVALUACIÓN DE LOS APRENDIZAJES (Criterios e instrumentos) Se toma en cuenta para integrar calificaciones parciales: Discusión Individual y por equipo, tareas, practicas y proyecto final, lo cual otorga un valor del 40% Educación. 3) Sterling & Shapiro. (1994).The Art of Prolog. MIT Press Series. 4) M. Nute, y D.Vellino, A.( 1997).Prolog: Programming in Depth Covington, Prentice Hall. 3 Exámenes parciales escritos donde se evalúan conocimientos, comprensión y aplicación con un valor de 60% cada uno. La acreditación del curso se integra por promedio de las 3 calificaciones parciales. Nota: para acreditar el curso la calificación mínima aprobatoria será de 6.0 5) Touretzky, D .( 1990).Common Lisp: A gentle Introduction to Symbolic Computation..Benjamin / Cummings Pub. Co.. 6) Tatar, D. ( 1987).A programmer´s guide to Common Lisp. Digital Press. Cronograma del Avance Programático S e m a n a s Objetos de estudio I: INTRODUCCIÓN II: PROGRAMACIÓN IMPERATIVA II: UNIDAD PROGRAMACIÓN LÓGICA IV: PROGRAMACIÓN FUNCIONAL V: PROGRAMACIÓN ORIENTADA A OBJETOS VI: OTROS PARADIGMAS 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 0 1 2 3 4 5 6