Syllabus

SCC-1019 PROGRAMACIÓN LÓGICA Y FUNCIONAL

MGTI. OSCAR JOSUE UH PEREZ

ojuhperez@itescam.edu.mx

Semestre Horas Teoría Horas Práctica Créditos Clasificación
8 2 2 4 Ingeniería Aplicada

Prerrequisitos
Conocimiento y aplicación de programación orientada a objetos para resolver situaciones reales.

Competencias Atributos de Ingeniería

Normatividad
1.Para poder hacerse acreedor a los exámenes parciales la asistencia reglamentaria a clase es del 80%.
2.Queda prohibido el uso de aparatos electrónicos durante las horas de clase, excepto las laptop.
3.Cada alumno tendrá 10 minutos de tolerancia después de la entrada del maestro, posteriormente se tomara como inasistencia que equivale a la falta de los módulos.
4.El alumno tendrá la responsabilidad de avisar a su profesor de su inasistencia, el mismo día que falte.
5.El alumno es responsable de dejar su espacio de trabajo impecable y de notificarle a su profesor si existe alguna anomalía en dicho espacio.
6.Cada alumno debe portar de manera adecuada su vestimenta y dar una buena imagen. Para el caso de los caballeros no se permiten gorras, boinas, aretes, shorts, playeras sin mangas, pantalones rotos y piercing. Para las damas queda prohibido usar faldas, shorts y vestidos demasiado cortos.
7.Se utilizarán los primeros 10 minutos para comentarios y sugerencias de acuerdo a las clases impartidas.
8.Cada alumno que falte al respeto a su profesor de clase será sancionado de acuerdo al castigo emitido por el coordinador del área.
9.No se permiten insultos en el salón de clase, si se detecta a algún alumno insultando será sancionado con 2 faltas.
10.Cada alumno que sea sorprendido jugando dentro del salón de clase será sancionado con 4 horas de castigo, sin derecho a la entrega de sus tareas del día.
11.Se permiten las salidas necesarias sin hacer alboroto ni distraer la clase.
12.No se aceptan trabajos fuera del horario establecido y menos en otro medio que no sea el establecido.

Materiales
1.- Prolog.
2.- Datalog.
3.- Lisp.
4.- Netbeans 8.1 (Java).
5.- Visual Studio 2012 (C Sharp).

Bibliografía disponible en el Itescam
Título
Autor
Editorial
Edición/Año
Ejemplares

Parámetros de Examen
PARCIAL 1 De la actividad 1.1.1 a la actividad 2.1.2
PARCIAL 2 De la actividad 2.2.1 a la actividad 3.4.1

Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje)
1. Conceptos Fundamentales.
          1.1. Identificar los paradigmas y lenguajes de programación representativa.
                   1.1.1. Visualizar los diversos estilos de la programación.
                           Iranzo, P. J. (2007). Programación Lógica Teoría y Práctica. Madrid, España: PEARSON. Págs.1-27
                          
                   1.1.2. Identificar los conceptos básicos de la programación representativa.
                           https://www.infor.uva.es/~calonso/IAI/PracticasProlog/Tema1/T1_Introduccion_Prolog.PDF
                           http://www.gedlc.ulpgc.es/docencia/lp/documentacion/GB_Prolog.pdf
                          
                   1.1.3. Reconocer las características de la programación representativa.
                           http://www.lcc.uma.es/~pacog/apuntes/pd/guia.pdf
                          
                   1.1.4. Investigar, al menos, un lenguaje de programación representativa.
                           http://itescam.edu.mx/principal/sylabus/fpdb/recursos/r121656.PDF
                          
                   1.1.5. Realizar mapa conceptual de los paradigmas y lenguajes de la programación representativa.
                          
2. Programación Funcional.
          2.1. Conocer los principales puntos fuertes y debilidades del paradigma de programación funcional.
                   2.1.1. Identificar los conceptos básicos de la programación funcional.
                           Iranzo, P. J. (2007). Programación Lógica Teoría y Práctica. Madrid, España: PEARSON. Págs.12-18
                           https://we.riseup.net/assets/68470/progFuncional-Slides.pdf, Págs. 1-7
                          
                   2.1.2. Describir las características de la programación funcional.
                           http://rua.ua.es/dspace/bitstream/10045/4032/1/tema02.pdf
                          
          2.2. Identificar los elementos de la programación funcional.
                   2.2.1. Reconocer la estructura y elementos de la programación funcional.
                           https://onedrive.live.com/redir?resid=9CB9B42F3546CCE9!27556&authkey=!AOhfXwHXx9Vv630&ithint=file%2cpdf, PAG. 22-43
                           http://aprendehaskell.es
                           http://tryhaskell.org/
                           https://www.haskell.org/downloads
                          
          2.3. Aplicar la programación funcional en la resolución de problemas reales.
                   2.3.1. Aplicar los conceptos de la programación funcional para resolver un problema real, diseñando un programa sencillo.
                           Presentación HASKELL (411459 bytes)
                           Págs.87-99 - https://openlibra.com/es/book/download/programacion-funcional-2011-2012
                          
          2.4. Diseñar herramientas alternativas y complementarias de programación.
                   2.4.1. Investigar; al menos, un lenguaje de programación representativa diferente al establecido para la materia.
                          
                   2.4.2. Realizar mapa conceptual de los lenguajes de la programación funcional vistos en la materia.
                          
3. Evaluación perezosa.
          3.1. Conocer la evaluación perezosa.
                   3.1.1. Identificar los conceptos básicos de la evaluación perezosa.
                           Págs. 44-46, https://onedrive.live.com/redir?resid=9CB9B42F3546CCE9!27556&authkey=!AOhfXwHXx9Vv630&ithint=file%2cpdf (5336174 bytes)
                          
          3.2. Identificar la evaluación perezosa como una de las funciones de la programación representativa.
                   3.2.1. Describir las técnicas de la programación funcional perezosa.
                           Material tema(3.1.1) Págs. 47-49
                           https://prezi.com/lhnyd5gqlj_-/unidad-3-evaliacion-perezosa/
                          
                   3.2.2. Realizar mapa conceptual de la evaluación perezosa.
                           Material tema(3.1.1) Págs. 44-49
                          
          3.3. Aplicar la evaluación perezosa en la resolución de problemas.
                   3.3.1. Investigar, al menos, una técnica de programación funcional perezosa vista en clase.
                          
          3.4. Diseñar programación con modularidad.
                   3.4.1. Aplicar una técnica de la programación funcional perezosa, para resolver un problema real a través de la modularidad en una situación sencilla.
                           https://openlibra.com/es/book/download/piensa-en-haskell-ejercicios-de-programacion-funcional-con-haskell
                           https://openlibra.com/es/book/download/programacion-funcional-2011-2012
                           https://openlibra.com/es/book/download/ejercicios-de-programacion-funcional-con-haskell
                          
4. Fundamentos de la programación lógica.
          4.1. Conocer las ventajas y desventajas del paradigma de programación lógica.
                   4.1.1. Realizar mapa conceptual de la programación lógica.
                           http://www.sc.ehu.es/jiwhehum2/prolog/Temario/Tema1.pdf
                          
          4.2. Identificar los elementos de la programación lógica.
                   4.2.1. Identificar los conceptos básicos de la programación lógica.
                           https://openlibra.com/es/book/download/introduccion-a-la-programacion-logica-con-prolog
                           https://github.com/victorhtorres/Prolog
                          
                   4.2.2. Describir las clausulas de Horn y resolución SLD, para identificar reglas de inferencia lógica y emplearlas en la representación del conocimiento.
                           http://dit.upm.es/~gfer/ssii/rcsi/rcsisu39.html
                           http://arantxa.ii.uam.es/~dcamacho/logica/recursos/manual_prolog.pdf
                          
          4.3. Aplicar la programación lógica en la resolución de problemas reales.
                   4.3.1. Reconocer los elementos de la semántica de la programación lógica para interpretar el conocimiento y aplicarlo en su representación.
                           Página 63-74 URL:https://onedrive.live.com/redir?resid=9CB9B42F3546CCE9!27556&authkey=!AOhfXwHXx9Vv630&ithint=file%2cpdf (5336174 bytes)
                          
          4.4. Diseñar sistemas expertos con programación lógica.
                   4.4.1. Investigar, al menos, un lenguaje de programación lógica diferente al establecido para la materia.
                           Página 74-90 URL:https://onedrive.live.com/redir?resid=9CB9B42F3546CCE9!27556&authkey=!AOhfXwHXx9Vv630&ithint=file%2cpdf (5336174 bytes)
                          

Prácticas de Laboratorio (20232024P)
Fecha
Hora
Grupo
Aula
Práctica
Descripción

Cronogramas (20232024P)
Grupo Actividad Fecha Carrera

Temas para Segunda Reevaluación