Principal | Acerca de la asignatura  | Programa  

Página Web de las asignaturas

Tècniques de Computació i Programació  

(Enginyeria Tècnica Aeronàutica)

 

Laboratori de Programació

(Enginyeria Tècnica Telecomunicació)

 

Curso 2005-2006 (Q1)

 

  Acerca de la asignatura  

 

 


Índice

  1. Detalles sobre la asignatura, las clases y los profesores

  2. Objetivos de la asignatura

  3. El temario

  4. Organización del curso

  5. El material del curso

  6. Cómo sabrás si vas bien

  7. Evaluación

  8. Normas de comportamiento (en referencias a las copias)

1.  Detalles sobre la asignatura, las clases y los profesores

La asignatura Tècniques de Computació i Programació (TCP) pertenece al plan de estudios de la titulación de Ingeniería Técnica Aeronáutica (Especialidad en Aeronavegación) y la asignatura Laboratori de Programació (LP) pertenece al plan de estudios de la titulación de Ingenieria Técnica de Telecomunicación (Especialidades en Sistemas de Telecomunicación y Telemática), que se imparten en la Escuela Politécnica Superior de Castelldefels. Ambas asignaturas pertenecen a la fase selectiva de sus respectivas titulaciones, concretamente al cuatrimestre 1B.

La asignatura tiene 6 créditos y requiere una dedicación total de 128 horas de trabajo, con una media de 8 horas de trabajo por semana. De estas 8 horas de trabajo semanal, 2 o 4 (dependiendo de la semana) serán horas de clase y el resto serán horas de trabajo adicional, para realizar tareas individuales o en grupo.

Durante el curso 2005-2006 (Q1) habrán 5 subgrupos de alumnos, con los siguientes horarios de clase y profesores/as:

Subgrupo

Profesor/a

Sesión semanal

Sesión extra

1BM11

Angélica Reyes

Martes de 10 a 12

231G

Viernes de 8 a 10

Aula a determinar

1BM12

Isabel Gallego

Martes de 10 a 12

234G

Viernes de 8 a 10

Aula a determinar

1BM21

Angélica Reyes

Lunes de 9 a 11

132V

Jueves de 8:30 a 10:30

Aula a determinar

1BT41

Joaquim Anguas

Jueves de 17 a 19

231G

Martes de 19 a 21

Aula a determinar

1BT61

Joaquim Anguas

Jueves de 15 a 17

234G

Martes de 15 a 17

Aula a determinar

 

En otros apartados de esta página Web encontrarás:

  • Las fechas de todas las sesiones de clase de cada grupo

  • Los datos de todos/as los/as profesores/as de la asignatura

Inicio

2.  Objetivos de la asignatura

Las asignaturas TCP y LP son la continuación de la asignatura de Introducción a los Ordenadores (del cuatrimestre 1A) y pretenden profundizar en la programación de ordenadores en lenguaje C y C++, ampliando el catálogo de algoritmos y estructuras de datos, e introduciendo tecnologías complementarias tales como la programación orientada a objetos o la programación visual.

Además se prestará cierta atención al desarrollo de algunas competencias transversales muy importantes para el ejercicio profesional, como por ejemplo, la capacidad para trabajar en grupo, para aprender de forma autónoma o para comunicarse con los demás de forma efectiva.

En particular, al finalizar la asignatura serás capaz de:

-  Construir aplicaciones sencillas de forma modular.

-  Construir aplicaciones sencillas aplicando la filosofía de la programación orientada a objetos.

-  Construir interfaces de usuario sencillas utilizando el Visual Basic, para hacer que tus aplicaciones sean más amigables.

-  Implementar algoritmos de ordenación y búsqueda.

-  Utilizar estructuras de datos complejas como pilas y colas.

-  Utilizar adecuadamente los mecanismos de gestión dinámica de memoria.

-  Adquirir información de forma autónoma, explicarla a los compañeros y asegurarte que la han asimilado.

-  Autoevaluar el trabajo realizado e identificar los propios errores y aspectos a mejorar.

-  Consensuar decisiones con los compañeros de grupo sobre los aspectos de la implementación de un programa, especificar las tareas a realizar, repartirlas de forma equilibrada e integrar los resultados.

Inicio

3.  El temario

El temario es la lista organizada de los temas que son relevantes para conseguir los objetivos formativos de la asignatura. En el caso de las asignaturas Laboratorio de Programación / Técnicas de Computación y Programación, el temario es el siguiente:

1.   Programación orientada a objetos

1.1       Concepto de objeto y clase: Atributos y métodos

1.2       Criterios para la descomposición en módulos

1.3       Constructores y destructores

1.4       Funciones: Paso de parámetros y objetos

1.5       Objetos miembro de otros objetos

2.   Programación visual

2.1       El entorno de programación Visual Basic

2.2       Formularios (forms) y eventos

2.3       Procedimientos y funciones

2.4       Eventos y controles más usuales

3.   Esquemas algorítmicos

3.1       Algoritmo de ordenación por selección

3.2       Algoritmo de búsqueda binaria o dicotómica

4.   Gestión dinámica de la memoria

4.1       Estructuras de datos y objetos dinámicos

4.2       Operaciones básicas: Funciones malloc, realloc y free

5.   Estructuras de datos avanzadas

5.1       Clase Pila

5.2       Clase Cola Circular

6.   El entorno de programación Visual Studio (Visual C++ y Visual Basic)

6.1      Aplicaciones que utilizan Visual C++ y Visual Basic: Crear, editar, compilar, montar, modificar y ejecutar proyectos.

6.2      DLL (Dynamic Link Library) para aplicaciones que utilizan Visual C++ y Visual Basic.

6.3      El depurador para aplicaciones que utilizan Visual C++ y Visual Basic: Uso de puntos de parada o breakpoints, ejecución paso a paso, visualización de variables y estructuras de datos, etc.

Siempre que encuentres algún material (libro, página web, etc.) que trate alguno de estos temas, échale un vistazo porque quizá encuentres algo que te ayude en la asignatura.

Inicio

4.  Organización del curso
Dedicación

La asignatura requiere una dedicación aproximada de 8 horas de trabajo semanal. Dependiendo de la semana, dos o cuatro de estas horas corresponden a una sesión de clase. Las horas restantes deberás dedicarlas a realizar las tareas encomendadas por el profesor, algunas de las cuales serán de trabajo individual y otras de trabajo con algunos de tus compañeros.

Es imposible seguir el programa del curso con normalidad si no puedes dedicar estas 8 horas de trabajo semanal. En el caso de que preveas dificultades para mantener esta dedicación de forma regular, ponte en contacto con tu profesor lo antes posible para estudiar el problema.

Las actividades del programa

La idea fundamental del programa de la asignatura es la de aprender como consecuencia de la realización de un proyecto de programación en equipo. Por tanto, desde el primer momento formarás parte de un grupo (normalmente de tres alumnos) que llamaremos grupo base, y tu tarea fundamental será cooperar en tu grupo para desarrollar el proyecto asignado, aprendiendo por el camino todo lo que sea necesario para alcanzar el objetivo.

Las primeras semanas se llevará a cabo un proyecto sencillo (proyecto 0), en grupos de tres elegidos por el profesor en el que entrarán en juego conceptos ya aprendidos en la asignatura precedente (Introducción a los Computadores). Este proyecto servirá como prueba de diagnóstico para que tanto tu como el profesor podáis detectar puntos a reforzar antes de empezar con temas nuevos, y también para valorar si los grupos formados inicialmente por el profesor pueden funcionar razonablemente bien durante el resto del curso.

A partir de la tercera semana trabajareis en el proyecto de la asignatura. El profesor podrá hacer ajustes en la composición de los grupos, en función de los resultados del proyecto 0. Los temas nuevos se trabajarán esencialmente mediante la técnica del puzzle, y los nuevos aprendizajes deberán aplicarse al proyecto a medida que se van trabajando.

El trabajo dentro y fuera de clase

De forma regular, las clases comenzarán con una reunión de los grupos base, para repasar el trabajo realizado, y aclarar dudas. Después de esa reunión, el profesor realizará aclaraciones generales y resolverá las dudas de los diferentes grupos. También realizará explicaciones teóricas cuando sea necesario, aunque esto ocurrirá en pocas ocasiones, puesto que el aprendizaje de los aspectos teóricos se realizará normalmente mediante la lectura del libro del curso. En las clases se realizarán también con frecuencia ejercicios sobre papel y sobre ordenador. Podrás discutir, en la propia clase, tus soluciones con tus compañeros de grupo base, u otros compañeros, según determine el profesor en cada momento.

Fuera de clase deberás realizar diferentes tipos de tareas:

  • Leer capítulos del libro para adquirir los conocimientos teóricos necesarios

  • Realizar algunos ejercicios de aplicación, en papel o en ordenador, y preparar la lista de dudas que vas a comentar con tus compañeros en clase

  • Reunirte con tus compañeros de grupo base para realizar alguna tarea encomendada por el profesor

Los entregables

Normalmente, todas las tareas encomendadas tendrán algún resultado concreto que deberás aportar en la clase. A estos resultados concretos les llamaremos entregables. Si no  realizas esas tareas, y como consecuencia, no presentas el entregable correspondiente, de forma inmediata se pondrá de manifiesto, ante el profesor o ante tus compañeros, un problema de falta de dedicación por tu parte. Si esto ocurre con frecuencia (fíjate en los criterios de evaluación) el profesor asumirá que dejas la asignatura. Por el contrario, si vas realizando las tareas y presentando los entregables a tiempo, es prácticamente seguro que superarás la asignatura sin problemas.

Ten presente siempre la lista de entregables del curso que encontrarás entre el material del curso. Tu objetivo debe ser realizar todos esos entregables. Es muy importante que si prevés problemas de dedicación, se lo comuniques al profesor al inicio del curso.

 

Inicio

5.  El material del curso

Libros

Durante el curso te será útil el libro siguiente:

“Algoritmos y estructuras de datos. Una perspectiva en C” de L. Joyanes y I. Zahonero. Encontrarás copias en la biblioteca de la EPSC.

 

También te resultará útil el libro que se usó en la asignatura anterior.

Peña, M.A., Cela, J.M.

Introducción a la programación en C

Edicions UPC

Aula Politècnica ETSETB 42, 2000

En este libro encontrarás los principios básicos de la programación en C, y numerosos ejercicios. El libro tiene asociada una página web cuya dirección es la siguiente:

http://docencia.ac.upc.es/ETSETB/IO/LIBROC/frsprobl.htm

Aquí encontrarás unas transparencias que sintetizan el contenido de cada uno de los capítulos del libro, y una colección de problemas resueltos, también clasificados de acuerdo con la estructura del libro.

Recuerda también que sobre programación en C existen multitud de libros, muchos de los cuales podrás consultarlos en la biblioteca de la EPSC. En estos libros encontrarás explicaciones alternativas (que quizá te resulten más claras) y más ejercicios.

Acceder a la página web de la asignatura

La dirección de la página web de la asignatura es la siguiente:

  http://docencia.ac.upc.es/EPSC/TCP

En esta página encontrarás siempre la información más actualizada de la asignatura. En concreto, en el apartado Programa del Curso, tendrás todos los detalles de las actividades a realizar semana a semana, con los materiales asociados. Toda esta información se irá incorporando a medida que avanza el curso. Es muy importante que consultes ese apartado de forma periódica (una o dos veces por semana), aunque el profesor te informará en clase del material que se vaya incorporando en la página web.

Las guías y materiales de las actividades

Cada actividad del curso tiene una guía que describe en detalle lo que tienes que hacer, y también tiene una serie de materiales (texto para leer, colecciones de ejercicios) que necesitarás para la realización de la actividad. Este material estará a tu disposición en el servicio de reprografía de la EPSC, y también en la página Web de la asignatura.

Un ordenador y el Visual Studio (Visual C++ y Visual Basic)

Para tener un seguimiento  cómodo del programa del curso es ideal que tengas ordenador en casa, con conexión a internet. De esta forma, podrás realizar en casa muchas de las tareas encomendadas. En todo caso, recuerda que en la EPSC existen ordenadores de libre acceso que tienes a tu disposición para la realización de las tareas del curso.

Los ejercicios sobre ordenador se realizarán usando el software Visual C++ y Visual Basic de Microsoft. En la delegación de alumnos de la escuela podrás conseguir una copia legal de este software para que lo instales en tu propio ordenador.

Inicio

6.  Cómo sabrás si vas bien

Durante el curso tendrás muchos elementos de referencia para determinar si vas bien o no. Uno de esos elementos son las pruebas escritas que se realizarán en las semanas 8 y 14 (ver apartado de evaluación). Los otros elementos son:

Las reuniones con tus compañeros

Muchas de estas reuniones tendrán como objetivo el comparar soluciones, aclarar dudas y ponerse de acuerdo en la solución correcta. Al acabar cada una de estas reuniones tendrás muy claro si lo habías hecho bien o no, y cuáles habían sido tus errores

La verificación en ordenador

Puesto que muchos de los ejercicios del curso deberás hacerlos sobre el ordenador, será muy sencillo verificar que los estás haciendo bien: el programa debe funcionar correctamente, tras someterlo a múltiples pruebas.

La autoevaluación

De vez en cuando, el profesor te encargará algunos ejercicios y te proporcionará una posible solución para que, por comparación, decidas tu mismo si tus respuestas son correctas o no. Puesto que los ejercicios son muy simples, no pueden tener muchas soluciones correctas distintas. Por tanto, si tu solución es distinta de la proporcionada por el profesor, debes sospechar que hay algún error.

El profesor

De vez en cuando, el profesor te pedirá que le entregues alguno de los ejercicios encargados. En poco tiempo te lo devolverá con comentarios que te ayudarán a hacerlo mejor la próxima vez.

Inicio

7.  Evaluación

Tu calificación se determinará en base a los siguientes elementos

Elemento

Peso

Ejercicio individual Puzzle 1

10%

Ejercicio individual Puzzle 2

20%

Proyecto 1 Versión 2

20%

Proyecto 1 Versión 3

10%

Ejercicio individual ampliación del Proyecto 1

10%

Entrega a tiempo de al menos el 80% de los entregables individuales

10%

Entrega a tiempo de al menos el 80% de los entregables de grupo

10%

Calificación subjetiva

10%

Además, debes tener en cuenta los siguientes criterios adicionales:

-   En cada uno de los ejercicios individuales recibirás un punto adicional si TODOS los compañeros del grupo base obtenéis una calificación superior a 6 en ese ejercicio individual.

-   La calificación asignada por la entrega a tiempo de los entregables individuales y de grupo irá decreciendo en caso de que algunos de dichos entregables se entreguen con retraso o no se entreguen.

-   En el caso de que no entregues a tiempo al menos el 80% de los entregables establecidos (individuales o de grupo) se considerará que has abandonado la asignatura y, por tanto, quedarás suspendido.

-   Para aprobar la asignatura, es necesario tener unos conocimientos mínimos que se deberán poner de manifiesto en las pruebas individuales correspondientes a las semanas 7, 13 y 15. Un alumno no aprobará la asignatura si no aprende todos y cada uno de estos conocimientos mínimos, incluso aunque haya realizado muy bien el proyecto.

-   El /La profesor/a ofrecerá un mecanismo de recuperación en el caso de que no hayas superado los conocimientos mínimos en algún ejercicio individual.

Inicio

8.  Normas de comportamiento (en referencia a las copias)

En un curso como éste, en el que se estimula y se facilita el intercambio entre compañeros, es difícil trazar una frontera clara entre lo que se considera un comportamiento correcto y lo que debe considerarse una actuación fraudulenta por parte del alumno, cuando éste usa material o información facilitada por compañeros. A continuación, se intenta aclarar esta cuestión.

Se considerará correcto que un alumno utilice en su propio trabajo ideas o materiales producidos por otros compañeros, siempre y cuando se haga constar con claridad el origen de las ideas o material, y las motivaciones para utilizarlo. 

Un ejemplo de comportamiento correcto

Juan estaba encallado en la implementación de un procedimiento para el que no acababa de concebir el algoritmo adecuado. Después de varios intentos infructuosos se enteró de que Rosa había resuelto el problema. Se encontró con ella en la biblioteca y le preguntó cómo lo había hecho (incluso consiguió que le pasase un listado). La información ayudó mucho a Juan. En el código que entregó al profesor, incluyó el siguiente comentario en referencia al procedimiento en cuestión.

// La idea original de la implementación de este procedimiento se

// debe a Rosa, a quien acudí después de varios intentos

// infructuosos (en el anexo I explico las tres ideas que probé y

// las razones por las que ninguna funcionó). No obstante, tuve que

// hacer algunos cambios respecto al código que ha usado ella puesto

// que la configuración de sus parámetros no se adaptaba a mi

// planteamiento, ya que ella usaba una estructura ...., 

// mientras que yo usaba una ligeramente diferente (tal y como se 

// ha descrito antes). 

Finalmente, Juan invitó a una cerveza a Rosa como muestra de agradecimiento (el comportamiento no puede considerarse completamente correcto sin esta última operación).

Un ejemplo de comportamiento incorrecto

Juan y Rosa estaban un poco agobiados en un pico de trabajo. Acordaron que Juan haría la práctica 3 y Rosa la práctica 4, y que después intercambiarían los códigos de forma que cada uno pudiese introducir los cambios oportunos para poder presentarla como propia (cambiar el nombre de las variables, modificar los comentarios, etc.). De esta forma, reducirían un poco el trabajo, y, después de todo, esto también es una forma de colaboración.

En ambos ejemplos, Juan estaba en dificultades. La diferencia fundamental es que en el caso correcto, Juan ha descrito los esfuerzos infructuosos y el origen de la solución, mientras que en el caso incorrecto ha pretendido engañar al profesor.

Por otra parte, es importante tener presente que durante el curso deberás realizar algunas tareas de forma estrictamente individual (por ejemplo, los ejercicios de las semanas 8 y 14). Para realizar estas tareas podrás disponer de materiales de ayuda (según instrucciones que dará el profesor en su momento), pero NO PODRÁS RECIBIR NI OFRECER AYUDA A TUS COMPAÑEROS.

Debes tener presente que, en el caso de el profesor detecte un caso de comportamiento incorrecto por parte de un alumno, la calificación final del curso para ese alumno será un 0.0. Como es poco probable que el ejemplo anterior resuelva todas las dudas, y en vista de la gravedad de las consecuencias, es muy importante que acudas al profesor en caso de que tengas alguna duda. No obstante, ten en cuenta también que en esta asignatura el profesor realizará un seguimiento cercano del trabajo realizado por los alumnos, por lo que es poco probable que un comportamiento incorrecto pase desapercibido.

Inicio

 

Principal | Acerca de la asignaturaObjetivos Formativos | Profesores | Entregables | Calendario | Programa 

Inicio

 Departament d'Arquitectura de Computadors