Universidad de Costa Rica
|
|
Periódicamente, los estudiantes, en grupos de dos personas, deben entregar una tarea corta, que consiste en implementar dos algoritmos. El pseudo-código de la implementación estará disponible en Internet, o en alguno de los dos libros de texto del curso:
Los estudiantes trabajarán en parejas para que implementen, cada algoritmo, en dos lenguajes diferentes. Siempre deben incluir una implementación C++, pero el segundo lenguaje puede ser cualquiera (Pascal, Eiffel, Visual Basic, xBase, Power Builder, Perl, C-Shell: ¡lo que sea!).
Aunque dos compañeros pueden trabajar juntos en varias tareas, no pueden hacerlo en más de cuatro. Tampoco puede un estudiante hacer todas sus tareas en un sólo lenguaje, pues es importante que cada uno haga aproximadamente la mitad de los trabajos en C++, y la otra mitad en algún otro lenguaje.
La lista de las tareas programadas a realizar es la siguiente:
LinearSearch()
BinarySearch()
BubbleSort()
SelectionSort()
InsertionSort()
QuickSort()
SelectionSort()
MergeSort()
Una vez implementados los algoritmos, cada estudiante debe hacer
el análisis teórico de su implementación, y
debe medir el rendimiento del algoritmos usando muchas corridas de
prueba. A fin de cuentas, cada equipo de dos estudiantes debe
producir un reporte
HTML,
que también debe entregar impreso, que contenga la
comparación de las pruebas de corrida del algoritmo,
escritas en los dos lenguajes.
Para comparar los tiempos de corrida se puede usar el reloj
interno del computador, usando una clase simila a la clase
SFCtimer.pas
disponible en:
http://www.di-mare.com/adolfo/binder/pas/SFCtimer.pas
La comparación del rendimiento de varios algoritmos debe hacerse cuidadosamente pues de lo contrario se pueden presentar problemas de medición. Por eso, al desarrollar este proyecto, se debe usar una buena metodología. A fin de cuentas, los estudiante deben entregar un reporte de investigación que contenga, al menos, los siguientes puntos:
http://www.di-mare.com/adolfo/binder
El reporte de investigación
debe ser entregado en clase, impreso. Además,
también debe enviar todo el material a los
asistentes del curso por correo electrónico. Para
esto, haga un archivo empacado
.zip
cuyo nombre sea su número de carnet. Incluya en ese archivo
lo siguiente:
Después de la fecha de entrega del programa, puede usted instalar en su cuenta personal su solución (no instale antes su solución en Internet, pues en ese caso sería usted culpable de facilitar la copia de su trabajo, y en consecuencia se haría acreedor a la sanción respectiva).
Las cuentas de computador en la
ECCI se asignan de acuerdo
al número de carnet. Por ejemplo, si su carnet es el
número 95-28-09, para entregar su tarea usted debe crear el
archivo
952809.zip
para enviarlo por correo electrónico a los
asistentes del curso.
ños
Luego haga en su cuenta personal un subdirectorio llamado
public_html
, que es bajo el que se instalan todas sus
páginas Internet. Por ejemplo, si su solución
está en el archivo
HTML
llamado
"OLP/t3sol952809.htm
", entonces usted debe instalar esa
página en el archivo
public_html/OLP/t3sol952809.htm
de su cuenta. Luego, para acceder esa página Internet, debe
entrar a este sitio:
http://anubis.ecci.ucr.ac.cr/~e952809/OLP/t3sol952809.htm
Como todas las cuentas de estudiante son la letra "e" seguida del
número de carnet, para el estudiante de carnet "952809" la
cuenta es
"e952809
".
Para indicarle al servidor Internet a cuál cuenta entrar se
usa el caracter "~" (Alt-126), seguido del nombre de
la cuenta:
"~e952809
".
Marilyn Bolaños y Mario Tenorio
Soluciones
Adolfo Di Mare <adolfo@di-mare.com>.
|