Download Paradigmas de programación

Document related concepts

Oz (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

Scala (lenguaje de programación) wikipedia , lookup

Common Lisp wikipedia , lookup

Clojure wikipedia , lookup

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