Autómatas y Lenguajes Formales, 2023-1
Grupo 7046

Facultad de Ciencias, UNAM


Profesor: Noé Salomón Hernández S.

Horario: lu, mi y vi de 9 a 10 hrs.      Aula: TBD  El curso se impartirá en modalidad virtual

Profesor ayudante: Carlos Naranjo Robledo

Horario: ma y ju de 9 a 10hrs.       Aula: TBD  El curso se impartirá en modalidad virtual

Atención: El lunes 15 de agosto de 2022 a las 9am se tendrá una reunión para presentar el curso por Zoom. A las personas inscritas se les enviará la invitación a su correo registrado en el sistema de la Facultad. También pueden escribir al correo del profesor (ver Contacto) solicitando acceso a dicha reunión.

Ver el curso en los horarios de la facultad, click aquí.


El enlace para ver las grabaciones de las clases es este.

La dirección de email para responder dudas de los temas tratados en el curso es dudas_aylf_fc@turing.iimas.unam.mx. Al mandar mensaje a esa dirección nos llegará al ayudante y al profesor.



Dinámica del curso

Se usará la plataforma Google Classroom, el código de acceso se dará la primera clase en una reunión de Zoom. A los alumnos y las alumnas inscritas les mandaré el link de dicha reunión a su correo electrónico registrado en el sistema de la Facultad. También pueden solicitar el código del classroom mediante mensaje al correo electrónico del profesor (ver Contacto), manden nombre y número de cuenta.

Las características de la impartición de este curso se dan a continuación:

  • El temario se cubrirá en buena parte con las notas en pdf de la clase y con videos de Youtube.
  • Al menos una vez por semana el profesor dará clase por Zoom para cubrir material, mostrar ejemplos y resolver dudas.
  • Antes de cada examen se tendrá una reunión de Zoom para aclarar dudas.
  • Los puntos extra se darán en su mayoría en las reuniones de Zoom.
  • Todas las videoconferencias que tendremos en el curso se llevarán a cabo en el horario de clase.
  • Las clases se grabarán y se subirán a una carpeta de drive.
  • Los exámenes y las tareas las entregarán escaneadas o en un pdf generado por un editor de texto.
  • Los exámenes se dividen en dos partes: asíncrona y síncrona. La parte asíncrona consiste en responder las preguntas en un pdf que se dejará en el classroom a la hora que comienza la clase, es decir 9am, y se entregará escaneada también por classroom una hora y media después. Entonces comenzará la parte síncrona del examen, se tendrá una reunión de Zoom donde se responderán preguntas de opción múltiple, esto dura 5-8 minutos. Con eso termina el examen.
  • De preferencia expresen sus dudas por mensajes en el Tablón del Classroom. Aunque los mensajes a los correos electrónicos de los profesores son bienvenidos.
En caso de que Zoom falle, se considerarán otros servicios de videoconferencia como Cisco Webex o Google Meet.

Con lo anterior podemos enumerar las herramientas que vamos a usar:

  1. Este sitio web.
  2. Google Classroom.
  3. Zoom (si falla, Cisco Webex o Google Meet).
  4. Archivos pdf con las notas de clase.
  5. Videos de Youtube.
  6. Correo electrónico.
  7. Escáner, la app CamScanner o algún editor de texto (como LaTex).



Introducción

El curso de Autómatas y Lenguajes Formales es fundamental en la licenciatura en Ciencias de la Computación, en él se pretende definir de manera formal la idea de computabilidad. Para ello necesitamos algunas definiciones tales como estado, transición, no-determinismo, reducción y derivación. La formalidad que buscamos se encuentra en los conceptos matemáticos que serán estudiados: autómatas, expresiones regulares, gramáticas y máquinas de Turing. Estos formalismos tienen un valor incalculable para la ciencia de la computación, sugieren propiedades para el hardware y software; además, a través de ellos podemos determinar qué puede y qué no puede resolver una computadora.


Personas estudiosas de la filosofía de principios del siglo veinte quisieron reducir toda la matemática a la manipulación formal de símbolos, de modo que los problemas estudiados en este curso serán expresados generalmente como problemas de pertenencia de una cadena a un lenguaje particular.


Los temas tratados en este curso tienen un impacto en otras áreas tales como: lenguajes de programación, compiladores, complejidad computacional, analizadores sintácticos y reconocedor de expresiones regulares (tales como grep).



Temario

  1. Introducción
  2. Autómatas finitos deterministas y no deterministas
  3. Expresiones regulares
  4. Gramáticas libres del contexto
  5. Autómatas de pila
  6. Jerarquía de Chomsky
  7. Máquinas de Turing
  8. Introducción a la complejidad y decidibilidad

Todos los pormenores del temario y plan de estudio para esta asignatura pueden ser consultados dando click aquí.



Evaluación

La evaluación consiste en exámenes, tareas y prácticas. Los resultados obtenidos se mostrarán en la pestaña de Calificaciones.

En caso de detectarse copia, las personas involucradas tendrán cero en el trabajo en cuestión. Si encuentran la solución de un ejercicio de alguna tarea en recursos en línea o impresos, pueden usarla pero complementarla y explicarla a detalle. En su tarea indiquen la referencia de donde sacaron la respuesta. Si no indican la referencia de donde obtuvieron la respuesta o si la transcriben sin ninguna explicación adicional, se considerará copia y tendrán cero en esa tarea. No consulten ningún recurso ajeno a la clase para resolver prácticas o exámenes. Si se copian una segunda vez, entonces estarán automáticamente reprobados. Se aconseja guardar los borradores de sus soluciones y estar listos para realizar una defensa de su trabajo en caso de que se les pida.

El NP es para quienes no presenten ninguna evaluación o para quienes abandonen el curso de manera que ya no presenten las tareas 7 y 8, ni la práctica 3 ni el examen 4. Quienes planean abandonar el curso en los términos anteriores, favor de solicitar el NP mandando un correo electrónico a la dirección nohernan@unam.mx. En resumen, para obtener NP no deben presentarse, o si entregan algún trabajo, deben de abandonar el curso y no entregar las tareas 7 y 8, ni la práctica 3 ni el examen 4. Avísenme por correo si desean el NP ya que así se facilita la administración del curso.

Adicionalmente, los docentes encargados del curso solemos otorgar puntos extra por ejercicios hechos en clase. Tales puntos extra ayudan a la calificación del examen parcial, tarea o práctica más próxima.

Personas con comportamientos que menoscaben el ambiente de respeto en la clase o el bienestar de cualquier otra persona serán acreedores a la reducción de puntos en la calificación, además de que la parte afectada tendrá el apoyo del docente en la presentación de denuncias ante la autoridad competente. Prestando especial atención y cuidado a aquellos actos que van en contra de la equidad de género.

Los porcentajes correspondientes a cada uno de los rubros de la evaluación se dan a continuación.

  • Exámenes. Tienen un peso del 60%. Los exámenes se diseñan para que el alumnado pueda obtener 11 como máximo de calificación. Algunos de los ejercicios que se preguntan forman parte de tareas previas o ejercicios vistos en clase, notas o videos de YouTube. Se apliacarán cuatro exámenes durante el semestre en las siguientes fechas:

    Examen 1 13/sept
    Examen 2 6/oct
    Examen 3 3/nov
    Examen 4 22/nov

  • El jueves 1o de diciembre tendrán la posibilidad de presentar una reposición, o si prefieren, un examen final que sustituirá únicamente la calificación de exámenes.


  • Tareas. Se les asigna un porcentaje de 20%. Algunas tareas tienen un puntaje máximo de 11. Los días de publicación de las tareas y de entrega son:

    Fecha de publicación Fecha de entrega
    22/ago
    29/ago
    2/sept
    9/sept
    12/sept
    19/sept
    23/sept
    30/sept
    4/oct
    11/oct
    21/oct
    28/oct
    31/oct
    7/nov
    11/nov
    18/nov

    Las tareas se realizan por equipos de dos y aparecerán el día de la publicación en la pestaña de Archivos, que se encuentra en el menú de la izquierda.

  • Prácticas. Tienen un peso del 20%. Los lineamientos, el contenido y el calendario de prácticas pueden ser consultados en la pestaña de Laboratorio.


Curva

Las calificaciones finales de exámenes, tareas y prácticas estarán sujetas a la siguiente fórmula

Calif_final = Calif_inicial * X

donde Calif_inicial es el promedio individual de una persona para el rubro en cuestión, y X es una constante que toma en cuenta el promedio del grupo (Prom) para dicho rubro. La constante X se define a continuación.

Si Prom<5 o Prom>=8, entonces X = 1.

Si 6.5<= Prom <8, entonces X = 1.065.

Si 5<= Prom <6.5, entonces X=1.05.

Por ejemplo, un miembro del estudiantado obtiene las siguientes calificaciones al final del semestre Calif_inicial_exámenes = 5.05, Calif_inicial_tareas = 6.98 y Calif_inicial_laboratorio = 6.5. En su grupo los promedios para exámenes, tareas y laboratorio son Prom_exámenes = 6.61, Prom_Tareas = 7.32 y Prom_laboratorio = 5.73. Así,

Calif_final_exámenes = 5.05 * 1.065 = 5.37825

Calif_final_tareas = 6.98 * 1.065 = 7.4337

Calif_final_laboratorio = 6.5 * 1.05 = 6.825

‬ Por lo tanto, la calificación final para esta situación ficticia aplicando la curva es (5.37825*0.6) + (7.4337*0.2) + (6.825‬*0.2) = 6.07869‬.