Grado en Ingeniería Informática - Curso...
Transcript of Grado en Ingeniería Informática - Curso...
Programación 1Grado en Ingeniería Informática - Curso 2017-18
webdiis.unizar.es/asignaturas/PROG1
Profesores de la asignatura
Javier Martínez responsable del grupo 411 de mañanas supervisor de 1 subgrupo de prácticas del grupo 411
Miguel Ángel Latre responsable del grupo 412 de tardes supervisor de 3 subgrupos de prácticas del grupo 411
José Luis Pina y Alfredo Roy supervisores de los cuatro subgrupos de prácticas del
grupo 412
Trabajo coordinado entre profesores y evaluación encomún de la asignatura
Tutorías de la asignatura
Profesor Horario de Tutorías Lugar de Tutoría
Javier MARTÍ[email protected]
M de 12:00 a 14:00M y J de 15:30 a 17:30 Despacho D.1.08
Miguel Ángel [email protected] Consultar web asignatura Despacho D.2.22
Alfredo [email protected] Consultar web asignatura Despacho D.1.10
José Luis [email protected] Consultar web asignatura Despacho D.0.05
Programación 1 Carácter: formación básica (obligatoria) 6.0 créditos En el primer cuatrimestre de los estudios Programación 1 Programación 2
Estructuras de Datos y Algoritmos Prog. Sistemas Concurrentes y Distribuidos Tecnología de la Programación Ing. Software Proyecto Software Más en las especialidades de Computación e
Ingeniería del Software
Programación 1 La programación es:
un pilar básico de la formación de un Ingeniero enInformática
imprescindible para estudiar prácticamente cualquierotra materia de las que intervienen en los estudios
Programación 1 es una asignatura de formaciónbásica: es un primer paso en el aprendizaje de la
programación de computadores (se parte de cero)
y tiene continuidad en asignaturas posteriores
Programación 1 Objetivo: diseño de programas que resuelvan
problemas de tratamiento de información. Se enseñan metodologías para facilitar y sistematizar el
análisis de problemas y el diseño de programas quelos resuelvan en los cuales se procederá: a la representación de la información relevante para
resolver el problema
al tratamiento de la información hasta haber resuelto elproblema
Se presenta una tecnología (C++) para representar lainformación y para tratarla.
¿Qué voy a aprender (1)?1. Conceptos básicos fundamentales ligados a la programación y
la informática.
2. A comprender, analizar y resolver problemas de tratamientode información de complejidad baja o media-baja y aescribir algoritmos que los resuelven.
3. A definir las estructuras de datos más adecuadas pararepresentar la información asociada a cada problema.
4. A diseñar de forma descendente (comenzando por lo másgeneral para acabar con los aspectos de detalles) y adocumentar las acciones algorítmicas que resuelven cadaproblema de forma eficaz y eficiente.
5. A conocer algoritmos para resolver algunos de los problemasmás frecuentes que se presentan al trabajar con estructurasde datos secuenciales e indexadas.
¿Qué voy a aprender (y 2)?6. A conocer y comprender la sintaxis y la semántica de las
construcciones básicas de un lenguaje de programación (C++).
7. A escribir programas con buen estilo, con una documentaciónadecuada, con los comentarios precisos y con lasespecificaciones necesarias.
8. A utilizar herramientas de edición, compilación, depuración yejecución para desarrollar programas, así como sistemasoperativos y otros programas con aplicación en ingeniería.
9. A utilizar estrategias para corregir los programas cuando nofuncionan bien.
10. A poner a punto y ejecutar en un computador programas escritosen un lenguaje de programación determinado (C++).
Resumiendo Aprenderemos algunos conceptos básicos ligados a la
programación de computadores. Aprenderemos a analizar problemas concretos, a
plantear soluciones y a desarrollar programas quepermitan resolverlos en un computador.
Aprenderemos a utilizar una tecnología para el desarrollode programas (lenguaje C++ y entorno integradoCodeLite).
Nos ejercitaremos como programadores decomputadores de forma individual y en equipo, aplicandosiempre unas determinadas metodologías.
Proceso de aprendizaje El aprendizaje de la programación exige el estudio y trabajo
continuado desde el primer día de clase dedicado a: la comprensión de conceptos, el análisis y resolución de problemas utilizando “lápiz y papel” y la puesta a punto en computador de un buen número de
programas. El aprendizaje de conceptos, una tecnología y una
metodología de diseño de programas a través de las clasesmagistrales.
La aplicación de tales conocimientos al diseño de algoritmos yprogramas en las clases de problemas.
Las prácticas en las que el alumno aprenderá, esencialmentemediante el trabajo personal, la tecnología necesaria paraponer a punto programas escritos en C++. Contará con el apoyode un profesor que supervisará su trabajo.
El trabajo en equipo analizando y resolviendo algunosproblemas de programación.
Calendario (grupo de mañana)
Clases “teóricas” (2 horas semanales) Lunes y viernes de 12:10-13:00 en el aula TQ18
Clases de problemas (1 hora semanal) Jueves, de 12:10-13:00 (en el aula TQ19) o
de 13:10-14:00 (en el aula TQ18)
Sesiones prácticas en laboratorio (2 horas cada dos semanas en el Lab.0.04) G1: lunes A, 10-12, Lab.0.04 G3: martes A, 10-12, Lab.0.04 G2: lunes B, 10-12, Lab.0.04 G4: martes B, 10-12, Lab.0.04
Distribución de alumnos (grupo de mañana) Sesiones prácticas en laboratorio:
Grupo 1: Apellidos desde AA hasta CEG Grupo 2: Apellidos desde CEH hasta GARCIA G Grupo 3: Apellidos desde GARCIA H hasta FER Grupo 4: Apellidos desde HES hasta ZZ
Clases de problemas Jueves de 12:10-13:00: alumnos de los
grupos de prácticas 3 y 4, es decir, cuyos apellidos están entre GARCIA H y ZZ
Jueves de 13:10-14:00 alumnos de los grupos de práctica 1 y 2, es decir, cuyos apellidos están entre AA y GARCIA G
Calendario (grupo de tarde) Clases “teóricas” (2 horas semanales)
Martes, 17-18 y miércoles, 18-19, Aula TQ18 Clases de problemas (1 hora semanal)
Jueves, de 18:10-19:00 (en el aula TQ14) o de 19:10-20:00 (en el aula TQ18)
Sesiones prácticas en laboratorio(2 horas cada dos semanas) G3: lunes A, 15-17, Lab.0.04 G1: martes A, 15-17, Lab.0.04 G4: lunes B, 15-17, Lab.0.04 G2: martes B, 15-17, Lab.0.04
Distribución de alumnos (grupo de tarde) Sesiones prácticas en laboratorio:
Grupo 1: Apellidos desde AA hasta MARS Grupo 2: Apellidos desde MART hasta OTD Grupo 3: Apellidos desde OTD hasta SANS Grupo 4: Apellidos desde SANT hasta ZZ
Clases de problemas Jueves de 18:10-19:00: alumnos de los
grupos de prácticas 3 y 4, es decir, cuyos apellidos están entre OTD y ZZ
Jueves de 19:10-20:00: alumnos de los grupos de prácticas 1 y 2, es decir, cuyos apellidos están entre AA y OTD
Prácticas de Programación 1 Prácticas trabajo de programación
A programar se aprende programando Cada práctica implica la resolución de varios problemas Cada alumno debe resolverlos por su cuenta, como parte
esencial del estudio de la asignatura. También es muy buenointercambiar experiencias y resolver dudas concompañeros
Acude a las sesiones de prácticas con los problemas yaresueltos, si es posible, y con las dudas identificadas. En lassesiones de prácticas: Puedes consultar tus dudas a tu profesor de prácticas Tu trabajo será supervisado por tu profesor de prácticas
A las sesiones de prácticas no se debe acudir sin haberdedicado un número de horas suficiente a resolver losproblemas planteados en cada práctica. Excepción parcial: la primera sesión de prácticas
Prácticas de Programación 1 Puestos de trabajo del Lab.0.04
Las máquinas son computadores personales con sussistemas operativos: Linux (CENT OS), Windows, etc.
Cada alumno tiene una cuenta para acceder a cadasistema operativo (se le informará del nombre ycontraseña de su cuenta por email a su correo de la UZ).
Los ficheros se almacenan, de forma transparente alusuario, en un clúster (hendrix-ssh) que hacefunciones de servidor de ficheros.
Prácticas ¿Dónde desarrollar programas C++?
Trabajando desde cualquier puesto del Lab.0.04 (ode otro laboratorio) con CodeLite, un entorno dedesarrollo de programas
Trabajando desde tu computador personal conCodeLite, un entorno de desarrollo de programas
Para programas muy simples se puede hacer uso delentorno C++Shell de programación en línea[ http://cpp.sh/]
Cuenta en los computadores de prácticas Correo electrónico enviado cuando se abre la
cuenta: De: "J.A. Gutierrez" <jagutierrez at unizar.es> Para: <[email protected]> Asunto: Cuenta en el nuevo servidor de docencia del
DIIS. Cuerpo:
HolaPor estar cursando alguna asignatura impartida por el Dpto. de Ingeniería de Sistemas e Informática, se te ha creado una cuenta en el servidor de practicas "hendrix".Los detalles de su utilización te los dará la persona que imparte las asignaturas en cuestión.Datos de acceso:
Nombre de usuario: XXXXClave de entrada: XXXXNombre de la persona: XXXX
Localización
Aula 18, edificio Torres
Quevedo
Despacho D.2.22, edificio
Ada Byron Laboratorio L.0.04, edificio
Ada Byron
Aula 19, edificio Torres QuevedoParada tranvía
«Campus Río Ebro»
Despacho D.1.08, edificio
Ada Byron
Programa I. Conceptos y elementos básicos de Programación
Problemas de tratamiento de información, algoritmos y programas Lenguajes de programación y ejecución de un programa Información, datos, operaciones y expresiones
II. Diseño de los primeros programas Diseño de programas elementales Instrucciones simples y estructuradas Problemas de cálculo con enteros. Problemas de cálculo con reales Diseño modular y descendente de programas
III. Diseño de programas que trabajan con datos estructurados Estructuración indexada de datos Representación de cadenas de caracteres Estructuración agregada de datos Algoritmos básicos de trabajo con estructuras de datos indexadas
IV. Diseño de programas que trabajan con ficheros Entrada y salida de datos Trabajo con ficheros de texto. Trabajo con ficheros binarios Trabajo con ficheros: acceso directo y lectura/escritura
V. Diseño modular de nuevos tipos de datos en un programa
Volumen de trabajo Estimación de 150 horas efectivas de trabajo:
56 horas de actividades presenciales activas clases “teóricas” clases de problemas prácticas en laboratorio
91 horas de estudio y trabajo personal efectivo estudio de apuntes y textos resolución de problemas preparación clases y prácticas desarrollo de programas correspondientes a problemas, a
prácticas, a pruebas voluntarias de evaluación, etc.
3 horas de examen final escrito
¿Qué hacer para aprender? Asistir a clase:
Habiendo leído previamente cada lección Atendiendo y participando activamente en la clase Repasando después y comprendiendo lo tratado en cada
lección y resolviendo los problemas abordados en ella Resolver los problemas de programación propuestos por el
profesor como trabajos voluntarios evaluables y los problemas deprogramación asociados a cada práctica: Lápiz y papel + programación en computador +
validación del código desarrollado mediante un completoproceso de pruebas
Colaborar con otros compañeros, pedirles ayuda y ayudarles Acudir a las tutorías de tus profesores para consultarles sobre la
estrategia de estudio de la asignatura y resolver dudas puntuales
Evaluación: cómo se va a verificar lo que se ha aprendido El objetivo de la evaluación es verificar que se han
alcanzado los resultados de aprendizaje previstos mediante: P1. Una prueba escrita. Conceptos y diseño con “lápiz
y papel”. Nota mínima 4.0. Ponderación 70%
P2. Una prueba muy práctica de programación enlaboratorio y, en su caso, un trabajo deprogramación. Ponderación 30% Febrero: Trabajo de programación (15%) y prueba de
programación en laboratorio (15%) Septiembre: Prueba de programación en laboratorio (30%)
Pruebas voluntarias. Se plantearán a lo largo delcuatrimestre. Permiten subir la nota, hasta 1.0 punto, aquienes aprueben en febrero y hayan participado entodas las pruebas.
Material de trabajo básico Javier Martínez: Curso de Programación 1. Servicio
de reprografía de la EINA. 2017 Miguel Ángel Latre y Javier Martínez: Prácticas de
Programación 1. Servicio de reprografía de la EINA yweb de la asignatura. 2017
Miguel Ángel Latre y Javier Martínez: Diversosmateriales docentes. Web de la asignatura:webdiis.unizar.es/asignaturas/PROG1
Bibliografía de consulta Webs con documentación sobre el lenguaje C++
http://www.cplusplus.com/ http://www.cprogramming.com/ http://es.wikibooks.org/wiki/Programación_en_C++
Manual "on-line" de bibliotecas predefinidas en C++: http://www.cplusplus.com/reference/
Entorno de ejecución “on-line”: http://cpp.sh/
Hay muchos textos para apoyar la enseñanza de unprimer curso de programación utilizando el lenguajeC++. La mayoría de ellos puede ser útiles como librosde consulta
Webs de la asignatura https://webdiis.unizar.es/asignaturas/PROG1/
https://moodle2.unizar.es/