Encabezado Facultad de Ciencias
Presentación

Actuaría (plan 2006) 2012-2

Segundo Semestre, Programación I

Grupo 6018 28 alumnos.
Profesor José Luis Torres Rodríguez lu mi vi 13 a 14 Taller de Finanzas
Ayudante Luis Enrique Serrano Gutiérrez ma ju 13 a 14 Taller de Finanzas
 

Programación I

Semestre 2012-2

José Luis Torres Rodríguez

Luis Enrique Serrano Gutiérrez

Requisitos

  1. Tener una cuenta de correo @ciencias.unam.mx (http://mail.ciencias.unam.mx)
  2. Asistencia regular a clase
  3. No tener materias encimadas, en el mismo horario de Programación I
  4. Dedicar al menos una hora diaria a la materia, adicional a las clases
Objetivos
  • Obtener conocimientos básicos de la creación de algoritmos para la solución de problemas.
  • Obtener conocimientos básicos de programación, y de los distintos procesos implicados en el desarrollo de software, que le permitan al estudiante generar implementaciones de soluciones a problemas, a través del uso de la computadora.
  • Obtener conocimientos del lenguaje de programación C, del manejo de los distintos tipos de datos simples y estructurados, así como de su representación en una computadora.
  • Conocer los fundamentos de los algoritmos recursivos para la solución de problemas.
  • Obtener conocimientos básicos de análisis de algoritmos.
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 Taller de Finanzas del edificio Tlahuizcalpan.

Se determinarán 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.


Contenido del curso

  1. Conceptos teóricos:
    • Estructura de una computadora
    • Representación de datos en una computadora
    • Descripción de los sistemas de numeración binario, octal y hexadecimal
    • Descripción teórica del funcionamiento de una computadora (Máquina de Turing)
  2. Descripción del proceso de desarrollo de un sistema, como solución a un problema
    • Descripción del Ciclo de Vida de un sistema
  3. Proceso de creación de una solución para un problema
    • Análisis
    • Diseño de una solución a partir del análisis
  4. Uso de diagramas de Warnier/Orr para la descripción de una solución a un problema
  5. Lenguaje C
    • Estructura general de un programa en C
    • Tipos de datos simples
    • Operadores (aritméticos, lógicos, relacionales)
    • Uso de variables
    • Uso de la biblioteca de funciones de C
    • Sentencias de ejecución condicional
    • Arreglos
    • Creación de funciones
    • Sentencias para creación de ciclos
    • Estructuras, uniones y enumeraciones
    • Manejo de arreglos empacados
  6. Manejo del ambiente de desarrollo Dev-Cpp
  7. Recursividad
  8. Desarrollo de soluciones recursivas a problemas
  9. Revisión del concepto de apuntador
  10. Uso de apuntadores para desarrollo de soluciones a problemas
    • Apuntadores a datos
    • Apuntadores a funciones
  11. Manejo de archivos
  12. Principios de análisis de algoritmos
    • Elementos básicos para determinar la conveniencia del uso de una solución a un problema, de entre varias opciones, en determinadas condiciones

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: 17 de febrero de 2012
    Parcial 2: 16 de marzo de 2012
    Parcial 3: 20 de abril de 2012
    Parcial 4: 18 de mayo de 2012


    Requisito para presentar examen: haber entregado puntualmente las tareas anteriores a la fecha del examen.
    No habrá reposiciones.
    PARA OBTENER CALIFICACIÓN FINAL EN EL SEMESTRE ES NECESARIO TENER PROMEDIO APROBATORIO EN LOS EXAMENES.
  3. Tareas teórico-prácticas. En éstas se aplicarán todos los conocimientos vistos a 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. Se tomarán en cuenta sobre todo aquellas participaciones que refuercen lo visto en clase y que constituyan una aportación importante.
  7. Proyecto final.
    Se propondrán varios temas a desarrollar en equipo; cada equipo deberá seleccionar uno, el cual será entregado a más tardar el día 1 de junio de 2012.
    Se informará acerca de los temas al menos un mes antes de la entrega.
    Este proyecto final se deberá presentar ante el grupo, 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 7 de junio de 2012, sin excepción ni prorroga.
    TÓMESE EN CUENTA EL REQUISITO DE TENER PROMEDIO APROBATORIO EN LOS EXAMENES, PARA OBTENER UNA CALIFICACIÓN FINAL, COMO SE MENCIONÓ ARRIBA.
    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 solo 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.

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.
    • El trabajo en equipo no implica la división de la tarea por partes iguales.
    • Se supondrá 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+prog1-20122@ciencias.unam.mx
    luis+prog1-20122@ciencias.unam.mx

  5. Para las tareas que se entreguen en papel, se sugiere hacer uso de papel reciclado.
    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

  • Practical C Programming.
    Oualline, Steve.
  • 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.
  • El arte de la programación.
    Kernighan, Bryan.
  • Logical Construction of Systems.
    Warnier, J. D.


Para llevar a cabo consultas en Internet, se sugiere NO HACER uso de Wikipedia, Wikimedia o algún otro WikiX, como un medio de consulta final.

 


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.