Encabezado Facultad de Ciencias
presentacion

Presentación del grupo 6039 - 2011-1.

Programación II

Semestre 2011-1

José Luis Torres Rodríguez

Luis Enrique Serrano Gutiérrez

Requisitos

  1. Haber aprobado Programación I
  2. No tener materias encimadas
  3. Asistencia regular a clase
  4. Dedicar al menos una hora diaria a la materia, adicional a las clases
Objetivos
  • Conocer y comprender el concepto de "tipo de dato abstracto".
  • Conocer los fundamentos relativos al concepto, implementación y aplicación de las estructuras de datos básicas: listas, pilas, colas, árboles, gráficas; así como de las operaciones asociadas a estas.
  • Conocer, implementar y comparar distintos algoritmos de búsqueda y ordenamiento.
  • Obtener conocimientos básicos de análisis de algoritmos, que le permitan al alumno verificar la complejidad de un algoritmo dado, bajo distintas condiciones.
Lenguaje de programación
  • C

Entorno de desarrollo
  • Code::Blocks

    Code::Blocks es un Entorno de Desarrollo Integrado (IDE), para los lenguajes de programación C y C++. Cuenta con implementaciones para Linux, Windows y Mac OS. Soporta multiples compiladores, tales como GCC (MingW / GNU GCC), MSVC++, Borland C++ 5.5 y Open Watcom, entre otros. Code::Blocks puede obtenerse de forma gratuita, ya que es distribuido como "software libre", bajo la licencia GPL de GNU.

    Página principal: http://www.codeblocks.org/

    Página para descarga: http://www.codeblocks.org/downloads/5
Impartición de las clases

Las clases se llevarán a cabo de lunes a viernes, de 13:00 a 14:00 horas, en el salón O-222.
Se llevarán a cabo sesiones prácticas, de acuerdo a las tareas asignadas. Durante estas sesiones se revisará parte del material visto en clase, por lo que solamente se permitirá el acceso a quien asista con dicho material listo para su revisión. El espacio y los días en que se llevarán a cabo estas sesiones se indicarán más adelante.

Contenido del curso
  1. Repaso del lenguaje de programación C.
  2. Recursividad.
  3. Manejo de archivos.
  4. Revisión del concepto de "tipo de dato abstracto".
  5. Tipos de datos abstractos: definición, revisión e implementación.
    Revisión de los siguientes tipos de datos abstractos y sus operadores, su implementación y ejemplos de aplicación:
    • Listas
    • Pilas
    • Colas
    • Tablas "hash"
    • Árboles
    • Gráficas
  6. Algoritmos de ordenamiento:
    • Burbuja
    • Inserción
    • Quicksort
    • Merge sort
  7. Principios de análisis de algoritmos
    • Análisis del peor caso
    • Notación "O"
    • Complejidad computacional
    • Ejemplos

Evaluación del semestre

Se considerarán los siguientes elementos para llevar a cabo la evaluación:

  1. Asistencia regular a clase.
  2. Exámenes. Éstos se aplicarán en las siguientes fechas:

    Parcial 1: 30 de agosto de 2010
    Parcial 2: 27 de septiembre de 2010
    Parcial 3: 25 de octubre de 2010

    Requisito para presentar examen: haber entregado puntualmente las tareas anteriores a la fecha del examen.
    No habrá reposiciones.
  3. Tareas teórico-prácticas, con la misma periodicidad que los exámenes teóricos.
    En estas tareas se aplicarán todos los conocimientos vistos hasta la fecha, complementados con material adicional.
  4. Entrega de los programas vistos en clase, cada lunes. Esto incluye complementar los bloques de código vistos como ejemplo.
  5. Programas semanales (de tamaño y complejidad razonable).
    Éstos servirán para reforzar y complementar el material visto durante la semana.
  6. Participaciones en clase.
    Éstas son OBLIGATORIAS y son un elemento fundamental en la evaluación final. Se tomarán en cuenta sobre todo aquellas participaciones que refuercen lo visto en clase y que constituyan una aportación importante a la misma.
  7. Desarrollo de proyectos.
    Se propondrán varios proyectos por cada uno de los tipos de datos abstractos vistos en clase, para trabajarse en equipo, de tal forma que cada equipo deberá seleccionar uno a desarrollar.
    Estos proyectos se deberán presentar ante el grupo (en las fechas señaladas en su momento), incluyendo el análisis, diseño e implementación realizados.
  8. La entrega de todos los trabajos será improrrogable.
  9. Todos los trabajos duplicados serán evaluados con cero, sin hacer indagaciones.
  10. La calificación final se entregará PERSONALMENTE a más tardar el día 3 de diciembre de 2010, sin excepción ni prorroga.
    Quien no se presente el día señalado a recibir su calificación está aceptando la evaluación que se haga de su trabajo durante el semestre.
  11. Sin excepción, no se aceptarán reclamaciones fuera de la fecha señalada en el punto anterior.
  12. Sin excepciones, no se permitirá renunciar a ninguna calificación.
  13. La calificación de NP sólo se asignará a quien no haya entregado ningún trabajo y no haya presentado ningún examen.
  14. De ninguna manera se dará un trato ni una calificación especial a ningún estudiante, por el hecho de trabajar, tener un promedio alto, contar con algún tipo de beca o tener materias encimadas. Tampoco se tomarán en cuenta recomendados de ninguna persona para asignar la calificación final.

Observaciones adicionales

  1. Se prohíben los teléfonos celulares durante la clase.
    Éstos deberán apagarse o ponerse en modo vibrador y no contestarse en el salón o laboratorio.
    Quien responda llamadas dentro del salón o laboratorio deberá retirarse, por respeto a sus compañeros.
  2. Por ningún motivo se repetirán clases anteriores a ninguna persona, por el hecho de no haber podido asistir a las mismas, a menos que la mayoría lo solicite y justifique.
  3. Al inicio del semestre se formarán equipos de trabajo, para llevar a cabo las tareas que lo requieran, tomando en cuenta lo siguiente:
    • Los equipos constarán de a lo más cuatro integrantes.
    • No se permitirá hacer cambios de los integrantes de los equipos.
    • El trabajo en equipo no implica la división de la tarea por partes iguales entre los integrantes del mismo.
    • Se dará por sentado que estos trabajos se desarrollaron colectivamente por todos los integrantes, por lo que no se evaluará cada parte individualmente; cada uno de los miembros de un equipo deberá poder defender, en su totalidad, el trabajo entregado.
  4. Las tareas y programas podrán ser enviados por correo a las siguientes direcciones:
    jluis+prog2-20111@ciencias.unam.mx
    luis+prog2-20111@ciencias.unam.mx
  5. Para las tareas que se entreguen en papel, se sugiere hacer uso de hojas recicladas.
    No es necesario hacer la entrega de los trabajos en fólder, sobre, etc.
  6. De cada trabajo entregado se les podrá solicitar – en cualquier momento – responder preguntas acerca de o adicionales al mismo, por lo que todos deberán ser entregados, o enviados por correo, personalmente.
  7. Se prohíbe introducir alimentos y bebidas al laboratorio de cómputo.
  8. Ningún alumno deberá entrar al laboratorio de cómputo hasta que esté presente el titular o el ayudante; tampoco deberá permanecer dentro después de finalizada la clase.

Bibliografía básica
  • Mastering Algorithms with C.
    Loudon, Kyle
  • C/C++ y Java, Cómo Programar.
    Cuarta Edición.
    Deitel, Harvey M.; Deitel, Paul J.
  • El lenguaje de programación C.
    Kernighan, Bryan; Ritchie, Dennis.
  • Fundamentals of computing I: Logic, Problem solving, Programs and Computers.
    Tucker, Allen
  • Fundamentals of computing II: Logic, Problem solving, Programs and Computers.
    Tucker, Allen
  • El arte de la programación.
    Kernighan, Bryan.
  • Logical Construction of Systems.
    Warnier, J. D.

 


Hecho en México, todos los derechos reservados 2011-2016. Esta página puede ser reproducida con fines no lucrativos, siempre y cuando no se mutile, se cite la fuente completa y su dirección electrónica. De otra forma requiere permiso previo por escrito de la Institución.
Sitio web administrado por la Coordinación de los Servicios de Cómputo de la Facultad de Ciencias. ¿Dudas?, ¿comentarios?. Escribenos. Aviso de privacidad.