|
Índice
-
Detalles
sobre la asignatura, las clases y los profesores
-
Objetivos
de la asignatura
-
El
temario
-
Organización
del curso
-
El
material del curso
-
Cómo
sabrás si vas bien
-
Evaluación
-
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:

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.

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.
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.
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.
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.
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.
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.
|