Principal | Acerca de la asignatura  | Objetivos  |Profesores  | Entregables Calendario  | Programa  

Página web de la asignatura

Introducció als Computadors  

 

 

Curso 2005-2006 (Q1)

 


  Programa del curso   

En esta página web se irán publicando los materiales del curso, a medida que se vayan necesitando.

Esta es una guía fácil de imprimir para las semanas de la 1 a la 7..

Esta es una guía fácil de imprimir para las semanas de la 9 a la 15.

 

Semana 1

 

1.         Sesión de clase S1 (2h)

En esta primera sesión del curso, el profesor presentará brevemente la asignatura y te pedirá que rellenes un cuestionario inicial. Finalmente, el profesor dará instrucciones sobre el trabajo a realizar durante la semana.

Para presentar la asignatura, el profesor repartirá y explicará brevemente un documento denominado Acerca de Introducción a los Computadores. Este documento (que también está en la página web) es un resumen de los aspectos más importantes de la organización del curso. En concreto, habla de: 

Objetivos

Temario

Organización del curso

Material del curso

Cómo sabrás si vas bien

La evaluación

Normas de comportamiento

Es importante que prestes atención sobre todo a la forma en que se organizan las clases y en la división en subgrupos (debes tener claro a qué subgrupo perteneces).

El cuestionario que deberás rellenar en clase servirá al profesor para conocer un poco la situación inicial de la clase, y tomar algunas decisiones, como por ejemplo, la formación de grupos base.

Finalmente, presta mucha atención al trabajo que hay que hacer durante la semana, que está perfectamente especificado en esta guía.

Entregable individual (#1): Cuestionario inicial

2.         Visitar la página web de la asignatura (15’)

Durante el curso, deberás consultar la página web de la asignatura con frecuencia. Dedica unos minutos para visitarla y conocer cómo está organizada. La dirección de esta página web es:

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

Verás que contiene todos los detalles de la organización de la asignatura (el profesor te habrá hecho un resumen en la sesión de presentación). Dale un vistazo al apartado Programa del curso. Es el apartado más importante porque allí encontrarás siempre los detalles del trabajo a realizar cada semana. En concreto, encontrarás ya los materiales que necesitas para realizar las actividades de la primera semana, que están descritos en el resto de esta guía.    

3.         Leer los primeros capítulos del libro (2h)

Leer los capítulos 1, 2, 3 y la sección 4.1 del libro. Después de esta lectura deberías ser capaz de:

·       Enumerar diferentes tipos de periféricos, y dar al menos dos ejemplos de cada uno de ellos.

·       Definir los conceptos de lenguaje de programación, programa y compilador.

·       Enumerar las fases a seguir para la creación de un programa.

·       Escribir la declaración de una constante o variable en C.

·       Evaluar el resultado de expresiones aritméticas, lógicas o relacionales escritas en C.

·       Escribir las sentencias necesarias para leer números introducidos por teclado e imprimir información por pantalla.

·       Usar correctamente la instrucción condicional en C.

·       Realizar programas sencillos en C, compilarlos y ejecutarlos en tu ordenador con Visual C++.

Cuando acabes la lectura, intenta resolver los ejercicios 1 y 4 de la página 20 del libro. Fíjate que en el ejercicio 4, algunas de las expresiones son aritméticas (dan como resultado un número) pero otras son expresiones lógicas (dan como resultado verdadero o falso).

Intenta resolver finalmente el ejercicio 1 de la página 31. Anota cualquier duda o problema que te surja realizando estos ejercicios, para poder comentarla en la siguiente clase con tus compañeros de grupo base y con el profesor.

4.            Instalar en tu ordenador el Visual C++ (30’)

Durante el curso usaremos el Visual C++ de Microsoft. En la Delegación de alumnos conseguirás un CD con este software que podrás instalar en tu ordenador, siguiendo las instrucciones de esta guía.

5.         Leer el manual de Visual C++ (30’)

Debes hacer una primera lectura rápida del Manual de Visual C++. Lo ideal es que lo hagas delante del ordenador y vayas localizando en pantalla los elementos del Visual C++ que se van describiendo. No se espera que te aprendas de memoria lo que dice el manual, sino que te hagas una primera idea de las cosas que hay, para que luego cuando las vayas necesitando puedas localizar rápidamente la información correspondiente.

6.            Realizar la práctica: “Mi primer proyecto en Visual C++” (1h 30’)

Se trata de una práctica muy guiada que deberás realizar delante del ordenador, y con el manual de Visual C++ cerca por si lo necesitas. Este es el enunciado de la práctica. Durante la práctica necesitarás éste fichero de código (mayor.c).

7.         Volver a repasar la primera parte del manual de Visual C++ (30’)

Después de realizar la práctica anterior, es conveniente que vuelvas a leer los puntos 1, 2 y 3 del manual de Visual C++, porque ahora encontrarás más sentido a cosas que en la primera lectura quizá no entendiste muy bien.

8.            Ejercicios sobre el ordenador (1h)

Realiza en el ordenador los ejercicios que aparecen a continuación. Cuando funcionen correctamente, copia en un papel (o imprime) el código para que puedas mostrarlo a tus compañeros o al profesor.

Ejercicio 1: Construye un programa que lea un número entero del ordenador y diga si es múltiplo de 5 y, al mismo tiempo, múltiplo de 3.

Ejercicio 2: Construye un programa que lea del teclado un número de minutos y nos diga a cuantos días, horas y minutos corresponde. Por ejemplo, 4565 minutos corresponden a 3 días, 4 horas y 5 minutos.

Ejercicio 3: Construye una minicalculadora. Se trata de un programa que leerá del teclado dos números y un carácter. El carácter sólo puede ser uno de los signos de operación aritmética: ‘+’, ’ –‘, ‘*’ y ‘/’. El programa debe escribir en pantalla el resultado de realizar la operación aritmética correspondiente con los dos números introducidos.  

9.            Preparación de dudas (15’)

Prepárate para la reunión que tendrás al inicio de la próxima clase con tus compañeros del grupo base. En concreto, anota en un papel las tres o cuatro dudas más importantes que tienes, después de realizara las actividades de la semana, y prepara bien todo el material que has generado (en particular, los ejercicios) para poder mostrarlos y explicarlos en esa reunión, si es necesario.

Entregable individual (#2): Hoja con las dudas sobre el material trabajado

 

 

Semana 2

 

1.         Sesión de  clase S2 (2h)

Al inicio de la sesión el profesor anunciará la composición de los grupos base. Los grupos se reunirán para presentarse, intercambiarse coordenadas (teléfono, e-mail, etc.), e identificar franjas horarias en las que pueden reunirse fuera de clase cuando sea necesario. Después tendréis unos 20’ para que discutir las tareas realizadas e identificar vuestras dudas comunes sobre los contenidos de las actividades. Debéis escribir esas dudas en un papel firmado por los tres miembros del grupo.

Durante los siguientes 40’ el profesor hará un resumen en la pizarra  de lo que él considere más importante (por ejemplo, poner en pizarra un programa muy simple y explicar los elementos que hay), y requerirá a alguno de los grupos que explique sus dudas para poder hacer un debate a partir de eso. Finalmente, recogerá las dudas de todos los grupos.

A continuación el profesor planteará un ejercicio que deberéis hacer de forma individual, aunque podréis consultar a los compañeros del grupo base y al profesor. Deberás estar preparado para discutir tu solución del ejercicio con otros compañeros (diferentes de los del grupo base), con los que deberás ponerte de acuerdo sobre la solución correcta.

Para acabar la clase, el profesor explicará el plan de trabajo para la siguiente semana.

Entregable de grupo (#3): Dudas comunes sobre el material de la semana

Entregable de grupo temporal (#4): Ejercicio resuelto

 

2.            Realizar la práctica “Funciones básicas del depurador” (1h)

Se trata de otra práctica muy guiada que deberás realizar en tu ordenador. Sigue las instrucciones del guión paso a paso, en el orden establecido. Éste es el enunciado de la práctica.

3.            Repasar el manual del Visual C++ (30’)

Después de haber realizado la práctica sobre el depurador, debes volver a leer el apartado 4 del manual del Visual C++, en el que se habla de ese tema. Cuando lo leíste la primera vez probablemente no lo entendiste muy bien. Ahora entenderás mejor el contenido, aunque continuarás encontrando cosas sobre las que no hemos trabajado todavía. Ya llegarán.

4.            Ejercicios sobre el ordenador (2h)

Realiza los siguientes ejercicios en el ordenador, usando todo lo que has aprendido hasta ahora (por ejemplo, las funcionalidades del depurador). Puesto que está muy claro lo que debe hacer cada uno de los programas, haciendo varias pruebas de ejecución de cada uno de ellos, y verificando que funcionan correctamente, podrás comprobar si los has hecho bien o no.

Ejercicio 1: Lee la sección 4.3 del libro, en la que se describe la sentencia switch. Después, reescribe el código del ejercicio de la minicalculadora usando la sentencia switch, en vez de las sentencias if-else que probablemente usaste en la primera versión de la minicalculadora.

Ejercicio 2: Escribe un programa que pida al usuario un número del 1 al 9 y le conteste diciendo si el número es primo o no. Por ejemplo, si el usuario introduce un 4 el programa ha de responder “El número 4 no es primo”. Si el número introducido es menor que 1 o mayor que 9 el programa dará un mensaje de error.

5.            Lectura sobre sentencias iterativas (2h)

Realiza ésta práctica sobre sentencias iterativas y los ejercicios que en ella se indican. Las secciones 5.1 y 5.3 del libro te ayudarán en este tema.

6.            Preparación de dudas (15’)

Escribe en una hoja las dudas que tienes con el material trabajado. Recuerda al inicio de la clase tendrá una reunión con el grupo base, y será una buena ocasión para aclarar juntos esas dudas.

Entregable individual (#5): Hoja con las dudas sobre el material trabajado


 

Semana 3

 

1.         Sesión de clase S3 (2h)

Al inicio de la clase te reunirás con tu grupo base para compartir y resolver tus dudas. Deberéis escribir las dudas comunes en un papel para entregar al profesor (20’).

Después, el profesor resolverá en la pizarra las dudas que le trasladen los grupos base  y como ejemplo, solucionará alguno de los siguientes ejercicios. (20’)

Después, deberás resolver en el ordenador los dos ejercicios restantes. Podrás consultar tus dudas en primera instancia con los compañeros, y también con el profesor (60’)

Ejercicio 1: Escribe un programa que lea una secuencia de 20 números reales introducidos por teclado. Al acabar la secuencia el programa debe mostrar el valor máximo y el valor mínimo introducidos.

Ejercicio 2: Escribe un programa que calcule la potencia x^y para dos número enteros dados x e y, mediante una acumulación sucesiva de productos. Previo al cálculo se verificará que el valor de y sea positivo. En caso contrario no se realizará el cálculo.

Ejercicio 3: Escribe un programa que cuente el número de dígitos (cifras) de un número entero X introducido por teclado. Usaremos un bucle que divida X por 10 sucesivamente hasta que el cociente de la división sea 0, en cuyo caso ya no podemos seguir dividiendo.

Para acabar la clase, el profesor explica el plan de trabajo para la siguiente semana.

Entregable de grupo (#6): Hoja con dudas del grupo

Entregable individual (#7): Dos ejercicios funcionado en el ordenador.

2.            Ejercicios sobre sentencias iterativas (2h)

Resuelve los siguientes ejercicios en el ordenador:

Ejercicio 4: Escribe un programa que permita decidir si un número entero dado es primo o no. Para decidir si un número es primo probaremos sucesivamente todos sus posibles divisores. Si ninguno de ellos divide exactamente al número en cuestión, entonces éste es primo.

Ejercicio 5: Escribe un programa que, dado un número entero, calcule la suma de todos sus dígitos que sean pares. Para extraer los dígitos usaremos un bucle que divida X por 10 sucesivamente. El resto de cada división corresponde a cada uno de los dígitos.

Ejercicio 6: Escribe un programa que calcule la suma de todos los divisores de un número entero X dado. Y divide a X si al dividir X entre Y el resto es 0.

 

3.         Puesta en común con grupo base (1h 30’)

Reúnete con tus compañeros de grupo base. Comparad las soluciones a los ejercicios realizados, y ponte de acuerdo con ellos sobre cuales son las soluciones correctas. Escribid esas soluciones en un papel firmado por los miembros del grupo, para entregar en la clase siguiente.

Entregable de grupo (#8): Hoja las soluciones acordadas

 

4.            Ejercicios y autoevaluación (2h)

Resuelve en el ordenador el ejercicio 7 (su enunciado está más abajo). Cuando los hayas resuelto, compara tu solución con esta solución, y decide si tu código es correcto (bien, regular o mal) y si es claro (bien, regular o mal) según los criterios siguientes:

Código correcto:

Bien:                El código es prácticamente igual a la solución. Hay alguna pequeña diferencia con la solución, pero puedo justificarla perfectamente.

Regular:            El código es similar a la solución. Hay uno o dos errores en el código que se pueden arreglar sin tener que empezar de nuevo.

Mal:                 Hay muchos errores. Para arreglar mi solución debería empezar de nuevo.

Código claro

Bien:                El código está bien indentado, y hay un criterio coherente para usar los {}. Los comentarios ayudan a identificar claramente los componentes del esquema que se ha aplicado.

Regular:            Hay alguna parte del código que no está bien indentada, y algún comentario no es suficientemente claro.

Mal:                 El código no está indentado, y no hay comentario, o los que hay no aclaran nada.

 

Prepara una hoja para entregar al profesor, con el ejercicio resuelto y con la calificación que te podrías. Añade también una justificación a esa calificación.

Ejercicio 7: Escribe un programa que calcule la suma de todos los enteros positivos no primos comprendidos entre dos números entero positivos dados A y B.  Por ejemplo, si A es 4 y B es 15, los enteros positivos no primos entre ambos son: 4, 6, 8, 9, 10, 12, 14 y 15. Por lo tanto la suma que calculará el programa es: 4 + 6 + 8 + 9 + 10 + 12 + 14 + 15 = 78 .

Entregable individual (#9): Informe de autoevaluación del ejercicio.

 

5.            Preparación de dudas (15’)

Prepara las dudas que querrás comentar con tus compañeros de grupo base y con el profesor, al inicio de la próxima clase.

Entregable individual (#10): Hoja con dudas sobre el trabajo realizado.


 

Semana 4

 

1.         Sesión de clase S4-1 (2h)

Comparte tus dudas con los compañeros de grupo. Preparad la hoja con las dudas comunes (20’).

En los siguientes 30’ el profesor aclarará las dudas.

En la siguiente hora harás un ejercicio individual que deberás después discutir en grupos temporales (compañeros distintos a los del grupo base).

Entregable de grupo (#11): Dudas comunes sobre el material de la semana

Entregable de grupo temporal (#12): Ejercicio resuelto

2.            Nuevas sentencias iterativas (2h)

Lee la sección 5.3.2  del capítulo 5 (equivalencia while-for), y traduce a bucle while al menos dos ejercicios que hayas codificado antes con un bucle for.

Lee la sección 5.2  del capítulo 5 (Construcción do-while), y traduce a bucle do-while al menos dos ejercicios que hayas codificado antes con bucles for o while. a formato do-while.

Entregable individual (#13): Una hoja con los 4 ejercicios de transformación de sentencias interativas.

 

3.            Lectura sobre esquemas algorítmicos (45’)

Cada problema de programación (por ejemplo, los que hemos trabajado en la actividad de sentencias iterativas) parece un mundo aparte, con peculiaridades y dificultades distintas a las de los demás. No obstante, dos problemas distintos pueden en realidad ser muy parecidos, de forma que si hemos sido capaces de resolver uno, por mera comparación tenemos casi resuelto el segundo.

Un esquema algorítmico es una plantilla que nos permite plantear la solución a cualquier problema de programación que tenga unas ciertas características. Naturalmente, el esquema algorítmico hay que adaptarlo a cada caso, pero si está bien planteado, esa adaptación es un problema muy sencillo.

En esta actividad aprenderemos dos esquemas: recorrido y búsqueda. Os sorprenderéis al ver la cantidad de problemas que pueden resolverse con esos dos esquemas. Aprenderemos a identificar cuál de los dos esquemas es el adecuado para resolver un problema dado, y a adaptar el esquema para resolver definitivamente el problema.

Trataremos de momento problemas sencillos, que se resuelven adaptando fácilmente el esquema elegido. Más adelante en este curso trataremos problemas complejos, cuya solución exige la aplicación de varios esquemas algoritmos para diferentes componentes del problema.

Una advertencia: muchos alumnos se encuentran incómodos usando esquemas algorítmicos. Piensan que pueden resolver el problema “a su aire”, y seguramente es verdad. Los problemas con los que trabajaremos en esta actividad son tan sencillos que el uso de un esquema os puede parecer innecesario. Sin embargo, cuando los problemas se complican (y, en este curso, se complicarán) entonces el uso sistemático de esquemas es la mejor garantía de éxito. Por eso se insistirá en que apliquéis esquemas, incluso a pesar de que el problema parezca no necesitarlo.

Al acabar esta actividad, debéis ser capaces de:

1.      Determinar si un problema determinado requiere un esquema de recorrido o un esquema de búsqueda, e identificar la secuencia subyacente del problema.

2.      Aplicar el esquema de recorrido a un problema sencillo (requiere la aplicación de un solo esquema)

3.      Aplicar el esquema de búsqueda a un problema sencillo

 

Para empezar la actividad, y como preparación de la próxima clase, debes leer el documento: “Primeros esquemas algorítmicos: recorrido y búsqueda”.

4.            Primeros ejercicios sobre esquemas algorítmicos (1h)

A continuación, echa un vistazo a la colección de 18 ejercicios que hemos preparado para esta actividad.  Verás que hay tres grupos de ejercicios (en cada grupo la secuencia que se recorre es diferente). Cada uno de esos ejercicios se resuelve de forma muy simple aplicando el esquema algorítmico adecuado (el de recorrido o el de búsqueda). Por ejemplo, el ejercicio 3 requiere un esquema de búsqueda porque recorreremos los números enteros HASTA QUE hayamos encontrado tres divisores de n. En cambio, el ejercicio 9 requiere un esquema de recorrido porque debemos recorrer TODOS los números que se introduzcan por teclado para poder determinar cuál es el mayor.

Repasa ahora el enunciado de todos los ejercicios y determina, para cada uno de ellos, si el esquema requerido es de recorrido o de búsqueda. Después, intenta ya resolver el ejercicio 3 y el ejercicio 9, aplicando lo aprendido en la lectura sobre esquemas algoritmicos. Recuerda que la colección de ejercicios incluye las soluciones para todos ellos. No mires esas soluciones hasta que no hayas hecho todos los esfuerzos para resolverlos por ti mismo.

               

5.            Preparación de dudas (15’)

Prepara bien las dudas que te hayan surgido para discutirlas en la próxima clase, con tus compañeros de grupo base y con el profesor.

Entregable individual (#14): Dudas sobre el material de la semana

6.         Sesión de clase de repaso S4-2 (2h)

En esta semana hay prevista una sesión de clase de repaso, cuyos contenidos los decidirá el profesor en función de la marcha del curso.

 

 

Semana 5

 

1.         Sesión de clase S5 (2h)

En los primeros 30’ discutirás con tus compañeros de grupo base las dudas sobre el trabajo realizado. En concreto, debéis

Aclarar dudas sobre las lecturas, y escribir las dudas comunes

Poneros de acuerdo en la clasificación de los problemas (recorrido y búsqueda)

Poneros de acuerdo en la solución de los ejercicios 3 y 9.

Los resultados de este trabajo deben quedar escritos en una hoja de grupo, a entregar al profesor.

En los siguientes 30’ el profesor hará las explicaciones que estime pertinentes (conviene repasar los conceptos básicos a partir de un par de ejemplos), y solicitará preguntas de los grupos base, antes de recoger todas las hojas.

En los 55’ restantes los alumnos deben resolver sobre ordenador dos ejercicios de la colección, a elegir por el profesor (uno de recorrido y otro de búsqueda):

Entregable de grupo (#15): Resultados del trabajo de grupo, al inicio de la clase

Entregable individual (#16): Ejercicio de ordenador

 

2.            Resolución de ejercicios sobre esquemas algorítmicos (2h)

Resuelve sobre el papel al menos 10 de los 18 ejercicios de la colección sobre esquemas algorítmicos (5 de recorrido y 5 de búsqueda). Cuando los hayas resuelto, compara tu solución con la que aparece en la colección y decide, para cada uno de los ejercicios resueltos, si lo has hecho bien, regular o mal, según los criterios siguientes:

Aplicación correcta del esquema:

Bien:                El código es prácticamente igual a la solución. Se ha identificado perfectamente el esquema y la secuencia subyacente. En el código cada elemento del esquema está bien identificado y la operación correspondiente está bien. Hay alguna pequeña diferencia con la solución, pero puedo justificarla perfectamente.

Regular:           El código es similar a la solución. Se ha identificado bien el esquema pero hay uno o dos errores en el código que se pueden arreglar sin tener que empezar de nuevo.

Mal:                 No he sabido plantear el esquema, o lo he planteado mal. Para arreglarlo debería empezar de nuevo.

Código claro

Bien:                El código está bien indentado, y hay un criterio coherente para usar los {}. Los comentarios ayudan a identificar claramente los componentes del esquema que se ha aplicado.

Regular:            Hay alguna parte del código que no está bien indentada, y algún comentario no es suficientemente claro.

Mal:                 El código no está indentado, y no hay comentario, o los que hay no aclaran nada.

 

Prepara una hoja para entregar al profesor, en la que indicarás qué ejercicios has resuelto y qué calificación (bien, regular, mal) has puesto a cada uno de ellos. Debes estar preparado para mostrar también al profesor cualquiera de los ejercicios que has resuelto.

Entregable individual (#17): Hoja con la autoevaluación

 

3            Programar dos ejercicios (1h)

Elige dos de los ejercicios que has resuelto (uno de recorrido y otro de búsqueda) y prográmalos en el ordenador.

5          Mas ejercicios y verificación en grupo base (2h)

Resuelve en papel el ejercicio siguiente. Después, fija una reunión con tus compañeros de grupo base para comparar vuestras soluciones al ejercicio y para poneros de acuerdo en una solución correcta. Escribid esa solución en un papel firmado por todos los miembros del grupo que hayan estado presentes en la reunión. Entregaréis al profesor ese papel en la clase siguiente.

Ejercicio 1:

Un polígono puede representarse mediante una secuencia de parejas de números. Cada pareja representa las coordenadas de uno de los vértices del polígono en el plano. En la secuencia, los vértices aparecen ordenados de forma que entre dos vértices consecutivos en la secuencia existe una arista en el polígono. Además, para marcar el fin de la secuencia de vértices, el último vértice de esa secuencia coincide con el primero. Por ejemplo, la secuencia (2,3), (7,3), (7,5), (2,5) y (2,3) corresponde a un cuadrado. El perímetro de ese cuadrado (la suma de las longitudes de todos los lados) es 14 (porque el cuadrado tiene una base de 2 y una altura de 5).

Se trata de escribir un programa que calcule el perímetro de un polígono cuyos vértices se introducen por teclado (cada vértice es una pareja de números). La secuencia se acaba cuando el último vértice leído coincide con el primero.

Aprovechad esa reunión para alcararos mútuamente las dudas que os hayan surgido hasta el momento en este tema de esquemas algorítmicos.

Entregable de grupo (#18): Solución acordada en la reunión

 

4.            Lectura sobre vectores y matrices (1h)

Realiza esta práctica guiada sobre vectores y matrices. Intenta hacer haz los ejercicios que se indican en este material. El capítulo 7 del libro te ayudará en el estudio de este tema.

 

5.            Preparación de dudas (15’)

Prepara bien las dudas que te hayan surgido para discutirlas en la próxima clase, con tus compañeros de grupo base y con el profesor.

Entregable individual (#19): Dudas sobre el material

 

 


 

Semana 6

 

1.         Sesión de clase S6 (2h)

En los primeros 30’ los grupos base se reúnen, discuten sus dudas sobre el trabajo realizado, y elaboran tres preguntas por escrito.

En los siguientes 30’ el profesor hará las explicaciones que estime pertinentes y solicitará preguntas de los grupos base, antes de recoger todas las preguntas.

En los siguientes 30’ los alumnos harán de forma individual los ejercicios siguientes. En la última parte de la clase se hará una verificación en grupos temporales.

Ejercicio 1: Suponer la siguiente declaración de un vector de números reales:

#define N 100

float vec[N];

Escribir el código necesario, utilizando un esquema de recorrido, para poner en cada elemento del vector la media del valor actual y del siguiente. El último elemento del vector se queda igual.

Ejercicio 2: Suponer las siguientes declaraciones:

#define MAX 100

char frase[MAX];

Escribir el código, usando un esquema de recorrido,  para contar el número de veces que aparece la letra   n   (tanto si es mayúscula ‘N’, como minúscula ‘n’) dentro del vector frase.

Entregable de grupo (#20): Dudas comunes sobre el material de la semana

Entregable de grupo temporal (#21): Ejercicios resueltos

 

2            Ejercicios individuales sobre vectores (2 h)

Realiza sobre ordenador los siguientes ejercicios.

Ejercicio 4: Escribe la declaración de una variable de tipo vector de N  enteros  (N debe ser una constante) y escribe el código necesario para dar la vuelta a los elementos del vector (el primero pasa a ser el último, el segundo pasa a ser el penúltimo, etc). Considera dos casos diferentes (ambos deben emplear un esquema  de recorrido):

·        El vector resultante queda en una variable distinta a la original

·        El vector resultante queda en la misma variable que el vector original.

 

Ejercicio 5: Escribe el código necesario para poner en la variable entera i la posición que ocupa dentro de un vector de enteros un determinado valor entero v (si v no está en el vector, entonces i debe acabar valiendo –1). Por ejemplo, si el contenido del vector es [7,4,2,9,8,6] y el valor de v es 9, entonces el valor que debe tomar la variable i es 3, porque el número 9 ocupa la posición 3 del vector (recuerda que las posiciones del vector se numeran empezando por 0).

Considerar los dos casos siguientes (ambos deben emplear un esquema  de búsqueda):

·          El vector está desordenado

·          El vector está ordenado (de menor a mayor)

 

Ejercicio 6: Escribir el código necesario para determinar si una palabra (almacenada en un vector de N caracteres) es palindrome (se lee igual de izquierda a derecha que de derecha a izquierda. En este caso será necesario un esquema de recorrido.

 

2          Puesta en común en grupos base (2h).

Reúnete con los compañeros de grupo base para acordar las soluciones a los ejercicios. Preparad una hoja con las soluciones acordadas.

Entregable de grupo (#22): Soluciones acordadas para los ejercicios

 

3            Ejercicio y autoevaluación. (2 h).

Resuelve en el ordenador el ejercicio 7 (su enunciado está más abajo). Cuando los hayas resuelto, compara tu solución con esta solución oficial, y decide si tu código es correcto (bien, regular o mal) y si es claro (bien, regular o mal) según los criterios siguientes:

 

Código correcto:

Bien:                 El código es prácticamente igual a la solución. Hay alguna pequeña diferencia con la solución, pero puedo justificarla perfectamente.

Regular:            El código es similar a la solución. Hay uno o dos errores en el código que se pueden arreglar sin tener que empezar de nuevo.

Mal:                 Hay muchos errores. Para arreglar mi solución debería empezar de nuevo.

Código claro

Bien:                 El código está bien indentado, y hay un criterio coherente para usar los {}. Los comentarios ayudan a identificar claramente los componentes del esquema que se ha aplicado.

Regular:            Hay alguna parte del código que no está bien indentada, y algún comentario no es suficientemente claro.

Mal:                 El código no está indentado, y no hay comentario, o los que hay no aclaran nada.

 

Prepara una hoja para entregar al profesor al inicio de la próxima clase, con el ejercicio resuelto y con la calificación que te podrías. Añade también una justificación a esa calificación.

 

Ejercicio 7: Suponer la siguiente declaración de un vector de números enteros:

       #define N 100

     int vec[N];

     int num;/*numero de elementos que hay en el vector */

     int valor;

Suponer que el vector vec está ordenado de mayor a menor. Escribir el código necesario para insertar el número almacenado en valor en la posición que le corresponde dentro del vector ordenado. Suponer que hay sitio libre en el vector (es decir, num < N). Para encontrar la posición donde insertar valor, usaremos un esquema de búsqueda. Posteriormente usaremos un esquema de recorrido para desplazar los elementos a la derecha de dicha posición, y así dejar hueco para valor.

Entregable individual (#23): Informe de autoevaluación

 

4            Preparación de dudas (15’)

Prepara las dudas que quieres compartir con tus compañeros de grupo base al inicio de la próxima clase

Entregable individual (#24): Hoja con las dudas


 

Semana 7

 

1          Sesión de clase S7-1 (2h)

Durante los primeros 30’ los grupos base reunirán para discutir sus dudas y escribir las dudas comunes en un papel.

El resto de la clase será un simulacro de examen, y deberéis resolver un ejercicio individual similar al del examen parcial, sin ayuda.

Entregable de grupo (#25): Hoja con las dudas comunes

Entregable individual (#26): Ejercicio individual resuelto

 

2            Ejercicio individual (4h)

 

Este es un ejercicio similar al de la prueba individual 1. Inténtalo y después autoevaluate, comparando tu solución con esta.

 

3         Sesión de clase S7-2 (2h)

 

En esta sesión se realizará la prueba individual 1.

Entregable individual (#27): Prueba individual resuelta

 

 

 

Semana 8

 

Semana 9

 

1.         Sesión de clase S9 (2h)

Durante la primera hora, el profesor comentará los resultados del examen parcial y resolverá las dudas más generalizadas. Los grupos base volverán a hacer alguno de los ejercicios de la prueba parcial.

Durante la segunda hora, el profesor presentará el proyecto que hay que realizar durante la segunda mitad del curso, y resolverá las dudas iniciales respecto al proyecto.

Este es el enunciado del proyecto, y estos son los criterios de calidad que se usarán para evaluar el proyecto.  

Puesto que en esta segunda parte del curso el trabajo en grupo será fundamental, durante la clase deberéis realizar un ejercicio para prevenir posibles problemas de funcionamiento del grupo.

Finalmente, se presentará la tarea del puzzle. Cada grupo debe decidir quién se encarga de cada parte del puzzle.

Las tres partes del puzzle son:

Estructuras

Procedimientos y funciones

Ficheros

Entregable de grupo (#28): Ejercicios de la prueba individual, al final de la sesión

2.         Puzzle: Estructuras + procedimientos y funciones + ficheros (4h)

En la última sesión de clase, cada grupo decidió quién se ocupaba de cada una de las tres partes del puzzle. Haz la práctica correspondiente a la parte del puzzle que te ha tocado. 

3.            Preparación de dudas (15’)

Prepara una hoja con las dudas más importantes que has tenido al trabajar el material del puzzle.  

 

 

Semana 10

 

1.         Sesión de clase S10-1 (2h)

Al iniciar la sesión el profesor organizará grupos de expertos. Los grupos deben discutir sus dudas sobre el material trabajado, y comparar las soluciones a los ejercicios.

Después el profesor os propondrá un ejercicio individual sobre el tema que habéis trabajado, que deberéis resolver durante la clase.

Estructuras

1.      En una ciudad hay 50 colegios. Declara la estructura de datos necesaria para almacenar la información de todos esos colegios (para cada colegio se requerirá una estructura de tipo Tcolegio).

2.      Escribe el código necesario para actualizar el campo pasa de todos los alumnos de todos los colegios.

3.      Escribe el código necesario para escribir en pantalla el identificador de todos los colegios en los que van a pasar de curso la mitad o más de sus alumnos.

4.      Escribe el código necesario para escribir en pantalla el número del colegio en el que la nota media de los alumnos en la asignatura k (la que ocupa la posición k en el vector de asignaturas) es mayor.

Funciones

  Escribe una función para calcular el seno de un número, según la siguiente expresión:

 

Para ello, escribe primero una función para calcular el factorial y otra para calcular la potencia. Usa esas funciones para codificar la función sen. La suma infinita se acabará cuando el último término sumado sea más pequeño que una constante COTA.

Ficheros

1.      Supón que tenemos un fichero de texto llamado “expresiones.txt”. En cada línea de ese fichero hay una expresión aritmética en el siguiente formato:

<operador> <operando1> <operando2>

donde operador puede ser ‘+’, ‘-‘, ‘x’,’/’ o ‘%’ y operando1,operando2 son enteros. Una línea de este fichero podría ser:

       * 34 2

Escribe un programa que cree el fichero “calculos.txt” donde aparezca, para cada expresión del fichero “expresiones.txt”, el resultado de evaluar esa expresión, escrito con el siguiente formato:

<operando1> <operador> <operando2> = <resultado>

La línea en el fichero “calculos.txt” correspondiente a la línea del ejemplo sería:

       34 * 2 = 68

El programa debe escribir mensajes de error adecuados para cada uno de los casos siguientes:

·        No se ha podido abrir el fichero “expresiones.txt”

·        No se ha podido crear el fichero “calculos.txt”

·        La expresión del fichero “expresiones.txt” no está en el formato establecido.

 

Entregable individual (#29): Ejercicio propuesto por el profesor, sobre materiales del puzzle, funcionando correctamente en el ordenador, al final de la sesión.

 

2.         Preparación de la reunión con el grupo base (2h)

Prepárate para explicar tu parte del puzzle a tus compañeros del grupo base. Dispondrás de 30’ para esa explicación, que debe incluir no sólo los aspectos teóricos, sino también alguno de los ejemplos que has trabajado. Conviene que te prepares un esquema o guión que te ayude en la presentación.

Inventa también dos o tres ejercicios sobre el tema, de dificultad creciente, con sus correspondientes soluciones. Entregarás esos ejercicios a tus compañeros de grupo para que, después de tus explicaciones, puedan practicar un poco el tema, y puedan autoevaluarse. También deberás mostrar esos ejercicios al profesor.

Entregable individual (#30): Ejercicios (con sus soluciones) para compañeros de grupo base, sobre materiales del puzzle I, para el inicio de la próxima sesión.

3.         Sesión de clase S10-2: Explicación de las partes en el grupo base (2h)

En clase, cada uno de vosotros debe explicar al resto su parte, usando el esquema que ha preparado.

Cuando hayáis acabado las explicaciones, intercambiad los ejercicios que habéis preparado para que vuestros compañeros puedan practicar.

4.         Ejercicios de compañeros (3h)

Resuelve los ejercicios que te han proporcionado tus compañeros de grupo, sobre los otros dos temas del puzzle 1. Después mira las soluciones para ver si los has hecho bien.

5.         Preparación de dudas (15’)

Prepara una hoja con las dudas más importantes que has tenido en las tareas de esta semana.

 

 

Semana 11

 

1.         Sesión de clase S11 (2h)

Los grupos se reúnen y discuten sus dudas, se muestran las soluciones a los ejercicios que se habían intercambiado, y escriben en un papel las dudas más importantes.

El profesor hará una explicación de los aspectos más destacados de los materiales del puzzle, y resolverá las dudas de los grupos.

Después haréis una práctica guiada sobre paso de parámetros por referencia, y el profesor propondrá un ejercicio para el grupo, que deberéis entregar funcionando al inicio de la clase siguiente. Para realizar este ejercicio necesitáis este fichero.

Entregable de grupo (#31): Dudas comunes sobre los temas del puzzle.

2.         Finalización del ejercicio de integración (4h)

Realiza las tareas que te hayan correspondido del ejercicio de integración. Probablemente tendrás que reunirte con tu grupo para ponerlo a punto y asegurarte de que todo funciona para la clase siguiente.

3.         Repaso a los otros materiales del puzzle (2h)

Mírate el material de las otras dos partes del puzzle. En teoría, de estas dos partes ya sabes bastante, por las explicaciones y ejercicios de tus compañeros. Sin embargo, un repaso al material te puede ayudar. Lo encontrarás todo en la página web


Semana 12

 

1          Sesión de clase S12 (2h)

Al inicio de esta clase deberéis hacer una demostración de ejercicio de integración que habéis hecho en grupo.

En el resto de la clase, el profesor propondrá un ejercicio individual sobre los temas del puzzle, que deberá estar funcionando la final de la sesión

Entregable de grupo (#32): Ejercicio de integración funcionando.

Entregable individual (#33): Ejercicio individual funcionando.

 

2          Diseño del primer prototipo  (2h)

Reúnete con tus compañeros de grupo para tomar las decisiones correspondientes al diseño del primer prototipo del proyecto, según se establece en el enunciado del proyecto. Debéis elaborar el documento de diseño y entregarlo al profesor antes de la clase siguiente.

Decidid qué tareas hay que hacer para implementar el primer prototipo, y repartir esas tareas entre los miembros del grupo. Tened presente que durante la semana tenéis cuatro horas cada uno para realizar una parte de las tareas que habéis previsto, y que en la próxima clase tendréis una hora más para conseguir que funcione correctamente el prototipo. Así que organizaos bien para sacar el máximo partido de todo ese tiempo de trabajo.

Entregable de grupo (#34): Documento de diseño.

 

3.         Tareas del proyecto (4h)

Realiza las tareas que te correspondan, según el reparto que se realizó en la reunión del grupo.

 

Semana 13

 

1          Sesión de clase S13-1 (2h)

Durante la primera parte de la clase, el profesor comentará los diseños presentados por los diferentes grupos.

Durante el resto de la clase podréis continuar trabajando en el desarrollo del primer prototipo, que deberá estar funcionando en la sesión S14.

2          Preparación de la prueba individual (2h)

Prepárate para la prueba individual realizando estos ejercicios (de dificultad similar a los de la prueba), y comparando tus soluciones con estas.

3          Sesión de clase S13-2: Prueba individual (2h)

En esta sesión realizarás una prueba individual escrita sobre los materiales del puzzle.

Entregable individual (#35): Prueba escrita

 

4          Diseño del prototipo (2h)

Reúnete con tus compañeros y revisa el diseño del proyecto para incorporar las novedades correspondientes al prototipo final. Preparad el documento de diseño revisado, que debéis hacer llegar al profesor antes de la próxima clase.

Entregable de grupo (#36): Documento de diseño revisado

 

Semana 14

 

1          Sesión de clase S14 (2h)

Durante esta sesión debéis hacer una demostración de que el primer prototipo  funciona correctamente.

Además, el profesor discutirá con vosotros los diseños del prototipo final.

También tendréis tiempo para empezar las tareas correspondientes al prototipo final.

Entregable de grupo (#37): Primer prototipo funcionando correctamente.

 

2          Tareas del prototipo 2 (6h)

Dedicar este tiempo a realizar las tareas correspondientes al prototipo final del proyecto, que debe estar funcionado correctamente al inicio de la sesión siguiente.

 

 

Semana 15

 

 1         Sesión de clase S15-1 (2h)

En la primera hora de esta sesión debéis finalizar el prototipo final del proyecto.

Durante la segunda hora se realizará una evaluación entre compañeros de los proyectos realizados.

Entregable de grupo (#38): Prototipo final funcionando

Entregable individual (#39): Informe de evaluación de compañeros, al final de la sesión.

 

1           Sesión de clase S15-2 (2h)

En esta clase, deberás realizar una ampliación individual del prototipo final.

Entregable individual (#40): Ampliación individual del prototipo final.

 

  

 

Principal | Acerca de la asignaturaObjetivos ProfesoresEntregables | Calendario |  Programa 

Inicio

 Departament d'Arquitectura de Computadors