Syllabus

SCC-1019 PROGRAMACIÓN LÓGICA Y FUNCIONAL

DR. JOSE LUIS LIRA TURRIZA

jlira@itescam.edu.mx

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

Prerrequisitos
PROGRAMACIÓN.
1. Paradigmas de programación
2. Lenguajes de programación Orientada a Objetos
AUTÓMATAS:
1. Implementa un compilador para un lenguaje específico considerando las etapas del mismo.

Competencias Atributos de Ingeniería
Identificar los paradigmas de los lenguajes de programación   Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería
Realiza una aplicación dando solución a un problema del entorno usando el paradigma de la programación funcional.   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas
Conoce las ventajas y desventajas del paradigma de programación lógica.   Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería
Identifica los elementos de la programación lógica.   Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería
Realiza una aplicación dando solución a un problema del entorno usando el paradigma de la programación lógica.   Desarrollar y conducir una experimentación adecuada; analizar e interpretar datos y utilizar el juicio ingenieril para establecer conclusiones

Normatividad
  • Se requiere una asistencia de por lo menos 80% por parcial para tener derecho a presentar el departamental.
  • Para la entrega de tareas, se tendrá una tolerancia de 24 horas después de la fecha y hora acordadas para poder realizar la entrega, con una penalización de puntaje.
  • Queda estrictamente prohibido el plagio de tareas. Si se descubren dos trabajos idénticos entregados por alumnos diferentes, se cancelarán ambos y se informará a la coordinación.

ACTIVIDADES EN LINEA POR CONTINGENCIA DE SALUD

  • El alumno deberá revisar las tareas en el moodle en el horario de clase asignado
  • Elaboración de la práctica descrita en P2A1F1 Conceptos básicos

Materiales
Computadora, papel, lápiz.

Bibliografía disponible en el Itescam
Título
Autor
Editorial
Edición/Año
Ejemplares
Inteligencia artificial: un enfoque moderno /
Russell, Stuart J.
Pearson prentice hall,
2a. / 2004.
4
Si
Inteligencia artificial e ingeniería del conocimiento /
Pajares Martinsanz, Gonzalo.
Alfaomega,
2006.
4
-

Parámetros de Examen
PARCIAL 1 De la actividad 1.1.1 a la actividad 2.1.7
PARCIAL 2 De la actividad 3.1.1 a la actividad 4.1.4

Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje)
1. Conceptos fundamentales
          1.1. Identificar los paradigmas de los lenguajes de programación
                   1.1.1. Visualizar los diversos estilos de programación
                           1.1 Estilos de programación: Rodriguez Artalejo Mario. Programación Funcional. Universidad complutense de Madrid. Enero 2004. pp. 4-9
                           http://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm
                          
                   1.1.2. Identificar los conceptos básicos de los diferentes paradigmas de programación.
                           1.2 Analizando diferentes tipos de programación: Rodriguez Artalejo Mario. Programación Funcional. Universidad complutense de Madrid. Enero 2004. pp. 10-51
                          
                   1.1.3. Reconocer las características de los diferentes paradigmas de programación.
                           https://www.infor.uva.es/~cvaca/asigs/docpar/intro.pdf
                          
                   1.1.4. Realizar mapa conceptual de los paradigmas y lenguajes de la programación representativa.
                           http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2010-2011/clases-cristina/s2.pdf
                          
2. Modelo de programación funcional
          2.1. Realiza una aplicación dando solución a un problema del entorno usando el paradigma de la programación funcional.
                   2.1.1. Conoce el paradigma de la programación funcional.
                           Carpio Cañada, Jose; Aranda Corral, Gonzalo; De la Rosa, Jose Marco; Programación declarativa; Universidad de huelva; pp 11-32
                          
                   2.1.2. Identificar los conceptos básicos de la programación funcional.
                           2.1 Tipos de Datos: Rodriguez Artalejo Mario. Programación Funcional. Universidad complutense de Madrid. Enero 2004. pp. 70-103
                          
                   2.1.3. Describir las características de la programación funcional.
                           2.2 Funciones: Fokker Jeroen; Programación funcional; Universidad de Utrecht;1996; pp 1-36
                          
                   2.1.4. Reconocer la estructura y elementos de la programación funcional.
                           https://wiki.haskell.org/Es/Haskell_en_5_pasos
                          
                   2.1.5. Investigar al menos un lenguaje de programación representativa diferente al establecido para la materia.
                           http://aprendehaskell.es/content/Empezando.html
                          
                   2.1.6. Realizar mapa conceptual de los lenguajes de la programación funcional vistos en la materia.
                           http://programacioncv.blogspot.es/1495790427/programacion-funcional-concepto-caracteristicas-y-lenguajes-/
                           https://wiki.python.org/moin/PythonVsHaskell
                          
                   2.1.7. Aplicar los conceptos de la programación funcional para resolver un problema real.
                           https://www.glc.us.es/~jalonso/vestigium/i1m2016-representacion-grafica-de-funciones-en-haskell/
                           https://www.ecured.cu/Programaci%C3%B3n_funcional
                          
3. Programación lógica
          3.1. Conoce las ventajas y desventajas del paradigma de programación lógica.
                   3.1.1. Identificar los conceptos básicos de la programación lógica.
                           https://www.ecured.cu/Prolog_(lenguaje_de_programaci%C3%B3n)
                          
          3.2. Identifica los elementos de la programación lógica.
                   3.2.1. Describir las cláusulas de Horn y resolución SLD, para identificar reglas de inferencia lógica y emplearlas en la representación del conocimiento.
                           Cláusulas de Horn y resolución SLD (121216 bytes)
                          
4. Modelo de programación lógica
          4.1. Realiza una aplicación dando solución a un problema del entorno usando el paradigma de la programación lógica.
                   4.1.1. Reconocer los elementos de la semántica de la programación lógica para interpretar el conocimiento y aplicarlo en su representación.
                           Prolog (611995 bytes)
                          
                   4.1.2. Investigar, al menos, un lenguaje de programación lógica diferente al establecido para la materia.
                           https://ferestrepoca.github.io/paradigmas-de-programacion/proglogica/logica_teoria/lang.html
                          
                   4.1.3. Realizar mapa conceptual de la programación lógica.
                           Notas prolog (500589 bytes)
                          
                   4.1.4. Aplicar la programación lógica para resolver un problema real.
                           Programación lógica con Prolog (936885 bytes)
                          

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

Cronogramas (20232024P)
Grupo Actividad Fecha Carrera
8 A 1.1.1 Visualizar los diversos estilos de programación 2024-01-29 ISIC-2010-224
8 A 1.1.2 Identificar los conceptos básicos de los diferentes paradigmas de programación. 2024-01-31 ISIC-2010-224
8 A 1.1.3 Reconocer las características de los diferentes paradigmas de programación. 2024-02-07 ISIC-2010-224
8 A 1.1.4 Realizar mapa conceptual de los paradigmas y lenguajes de la programación representativa. 2024-02-14 ISIC-2010-224
8 A 2.1.1 Conoce el paradigma de la programación funcional. 2024-02-19 ISIC-2010-224
8 A 2.1.2 Identificar los conceptos básicos de la programación funcional. 2024-02-21 ISIC-2010-224
8 A 2.1.3 Describir las características de la programación funcional. 2024-02-26 ISIC-2010-224
8 A 2.1.4 Reconocer la estructura y elementos de la programación funcional. 2024-02-28 ISIC-2010-224
8 A 2.1.5 Investigar al menos un lenguaje de programación representativa diferente al establecido para la materia. 2024-03-04 ISIC-2010-224
8 A 2.1.6 Realizar mapa conceptual de los lenguajes de la programación funcional vistos en la materia. 2024-03-06 ISIC-2010-224
8 A 2.1.7 Aplicar los conceptos de la programación funcional para resolver un problema real. 2024-03-11 ISIC-2010-224
8 A 2.1.7 Aplicar los conceptos de la programación funcional para resolver un problema real. 2024-03-13 ISIC-2010-224

Temas para Segunda Reevaluación