Professional Documents
Culture Documents
net/publication/267831853
Article
CITATIONS READS
0 107
1 author:
Germán Sáez
Universitat Politècnica de Catalunya
59 PUBLICATIONS 865 CITATIONS
SEE PROFILE
All content following this page was uploaded by Germán Sáez on 07 January 2016.
1. GENERACIÓN DE EJERCICIOS
En este apartado presentamos un procedimiento para crear una página web
que propone ejercicios a los estudiantes. Este ejercicio corresponde a un
modelo dado, pero cada vez que se visualiza la página aparece con datos
nuevos. Para establecer los datos nuevos, el visualizador utiliza un generador
de números aleatorios. Dividimos la realización de esta página web en tres
fases que describiremos en las secciones siguientes. En la primera sección
explicaremos la primera fase consistente en la elección del ejercicio tipo y su
resolución. En la segunda sección detallaremos las mínimas instrucciones
HTML que se necesitan para poder escribir el enunciado y la resolución del
ejercicio. La tercera fase consiste en la introducción de la aleatoriedad en los
datos del ejercicio por medio del uso de JavaScript.
No se puede pensar que con cualquier ejercicio se puede realizar una página
web aleatorizada. En primer lugar debe ser un ejercicio que sea fácil de escribir
en HTML. Así no son recomendables los ejercicios que se deban acompañar
con gráficos que dependan de los datos. Las herramientas que se requieren
para este tipo de ejercicios son mucho más complejas que las que
presentaremos aquí. En segundo lugar debe ser un ejercicio que para distintos
datos sea significativamente diferente. Con significativamente diferente nos
referimos a que parezca diferente a nuestros estudiantes. Los distintos
ejercicios que se generen corresponderán a un mismo tipo con datos
diferentes. Con el uso de instrucciones del tipo if, se puede conseguir
diferencias en las resoluciones que puedan dar una cierta variabilidad al
ejercicio.
<SUB>subíndice</SUB>
<SUP>superíndice</SUP>
a<SUB>n</SUB>=2n<SUP>3</SUP>-5n<SUP>2</SUP>+6n+1
Para describir un cálculo en HTML suele ser conveniente utilizar una tabla. En
cada celda escribiremos una expresión como puede ser una fracción, el signo =
para conectar expresiones, etc. Por ejemplo, la afirmación lim n →∞ an = ∞ se
escribe:
<TABLE ALIGN='CENTER'>
<TD>lim<SUB>n-->oo</SUB>a<SUB>n</SUB>=oo</TD>
</TABLE>
<TABLE ALIGN='CENTER'>
celdas_tabla
</TABLE>
<TD>celda</TD>
Una manera simple de escribir una celda que contenga una fracción es la
siguiente:
2n3 − 5n 2 + 6n + 1
Así, por ejemplo, podemos visualizar lim n→∞ escribiendo:
−7 n3 + 8n 2 + 5n − 9
<TABLE ALIGN='CENTER'>
<TD>lim<SUB>n-->oo</SUB></TD>
<TD NOWRAP='NOWRAP' ALIGN='CENTER'>
2n<SUP>3</SUP>-5n<SUP>2</SUP>+6n+1
<DIV CLASS='HRCOMP'><HR NOSHADE='NOSHADE' SIZE='1'/></DIV>
-7n<SUP>3</SUP>+8n<SUP>2</SUP>+5n-9
</TD>
</TABLE>
Existen editores para escribir en HTML de forma cómoda, como por ejemplo
Homesite o DreamWeaver. Los ficheros que debemos generar son ficheros de
texto que se pueden escribir con un editor cualquiera. No debemos olvidar que
hay que guardar el fichero como un fichero de texto sin formato. Los ficheros
en HTML se deben comenzar y finalizar con unas instrucciones a las que aquí
no daremos más importancia:
<HTML>
<HEAD><TITLE>
título que aparecerá en la barra superior del visualizador
</TITLE></HEAD>
<BODY>
instrucciones_HTML
</BODY>
</HTML>
<HTML>
<HEAD><TITLE>
Ejercicios de cálculo de límites
</TITLE></HEAD>
<BODY>
Calcular el límite siguiente:
(...tabla anterior...)
</BODY>
</HTML>
se visualizará como:
<SCRIPT LANGUAGE="Javascript">
instrucciones_de_JavaScript
</SCRIPT>
Como ejemplo de su utilización escribimos con la ayuda de JavaScript la
página HTML que tenemos construida hasta ahora:
<HTML>
<HEAD>
<TITLE>
Ejercicios de cálculo de límites
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="Javascript">
var texto;
texto="Calcular el límite siguiente:<TABLE ALIGN='CENTER'>
<TD>lim<SUB>n-->oo</SUB></TD> <TD NOWRAP='NOWRAP'
ALIGN='CENTER'>2n<SUP>3</SUP>-5n<SUP>2</SUP>+6n+1<DIV
CLASS='HRCOMP'><HR NOSHADE='NOSHADE' SIZE='1'/></DIV>-
7n<SUP>3</SUP>+8n<SUP>2</SUP>+5n-9</TD> </TABLE>";
document.write(texto);
</SCRIPT>
</BODY>
</HTML>
Vemos que en primer lugar se ha declarado una variable texto. En segundo
lugar se ha inicializado con todo el código que teníamos escrito para el
enunciado del ejercicio como si fuera una tira de caracteres. Después se ha
ejecutado una instrucción JavaScript (instrucción document.write(texto);)
que escribe una página web con todo el texto que contiene la variable texto. Si
se desea, se puede ver el código fuente en el menú correspondiente del
visualizador para comprobar que JavaScript ha escrito una página web con
estas instrucciones. Un punto importante a tener en cuenta es que en la
definición de la tira de caracteres texto no puede haber ningún control de carro
por lo que debe estar escrita en una sola línea.
Ahora nos ocuparemos del control del flujo del programa para poder dar la
oportunidad al estudiante de realizar el ejercicio. La página que estamos
construyendo se puede entender como una página generadora de ejercicios
junto con su solución. Pero queremos que el estudiante tenga la oportunidad de
hacer el ejercicio antes que la máquina genere la solución. Para ello
utilizaremos dos herramientas: una de HTML como son los botones de
formularios y otra las funciones definidas en JavaScript.
Los formularios en HTML se utilizan en muchas situaciones en las que se
necesita una cierta interacción con el usuario. La forma del formulario que
utilizaremos es la siguiente:
<FORM>
<INPUT TYPE=BUTTON VALUE='SOLUCIÓN'
onClick="javascript:solucion(texto);return true;">
</FORM>
Este formulario colocado a continuación del bloque de instrucciones de
JavaScript pone un botón rotulado con la palabra SOLUCIÓN. Si el estudiante
hace clic sobre el botón se ejecutará la función de JavaScript solucion con
variable de entrada texto. Esta ejecución generará la solución del ejercicio. A
diferencia de HTML, JavaScript es Case Sensitive, es decir, distingue entre
mayúsculas y minúsculas. Así no es lo mismo escribir 'solucion(texto);'
que 'solucion(TEXTO);'.
function nombre(variables)
{
instrucciones;
}
En nuestro ejemplo la función 'solucion', junto con el resto de la página web,
queda:
<HTML>
<HEAD>
<TITLE>
Ejercicios de cálculo de límites
</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="Javascript">
var texto;
texto="Calcular el límite siguiente:<TABLE ALIGN='CENTER'>
<TD>lim<SUB>n-->oo</SUB></TD> <TD NOWRAP='NOWRAP'
ALIGN='CENTER'>2n<SUP>3</SUP>-5n<SUP>2</SUP>+6n+1<DIV
CLASS='HRCOMP'><HR NOSHADE='NOSHADE' SIZE='1'/></DIV>-
7n<SUP>3</SUP>+8n<SUP>2</SUP>+5n-9</TD></TABLE>";
document.write(texto);
function solucion(texto)
{
document.clear();
document.open("text/html");
document.write("<HTML><HEAD><TITLE>Ejercicios de cálculo de
límites</TITLE></HEAD><BODY>");
document.write(texto+"<BR><BR><B>SOLUCIÓN</B>");
document.write("<BR><BR>Aquí viene la solución...");
}
</SCRIPT>
<FORM>
<INPUT TYPE=BUTTON VALUE='SOLUCIÓN'
onClick="javascript:solucion(texto);return true;">
</FORM>
</BODY>
</HTML>
for(contador=0; contador<=3;contador++)
{
coef=0;
while(coef==0){coef=aleatorio(12)};
pol_num[contador]=coef;
}
caracter=new Object( 25 );
caracter[-12]="-12";
caracter[-11]="-11";
...
caracter[10]="10";
caracter[11]="11";
caracter[12]="12";
for(contador=0; contador<=3;contador++)
{
coef=0;
while(coef==0){coef=aleatorio(12)};
pol_num[contador]=coef;
if(coef<0)
{
pol_num_car[contador]=caracter[pol_num[contador]];
if(contador!=0 && coef==-1) pol_num_car[contador]="-";
}
else
{
pol_num_car[contador]="+"+caracter[pol_num[contador]];
if(contador!=0 && coef==1) pol_num_car[contador]="+";
if(contador==3 && coef==1) pol_num_car[contador]="";
if(contador==3 && coef!=1)
pol_num_car[contador]=caracter[pol_num[contador]];
};
};
2Æ"+pol_num_car[3]+"
-5Æ"+pol_num_car[2]+"
+6Æ"+pol_num_car[1]+"
+1Æ"+pol_num_car[0]+"
function fraccion(numerador,denominador)
{
var tira_car;
tira_car="<TD NOWRAP='NOWRAP' ALIGN='CENTER'>"+numerador+
"<DIV CLASS='HRCOMP'><HR NOSHADE='NOSHADE' SIZE='1'/></DIV>
"+denominador+"</TD>";
return (tira_car);
}
function integral(integrando,diferencial)
{
var tira_car;
tira_car="<TD NOWRAP='NOWRAP' ALIGN='CENTER'> <FONT
FACE='SYMBOL'>ó<BR />õ<BR /></FONT></TD>" + integrando+
diferencial;
return (tira_car);
}
3. UTILIZACIÓN
Esta propuesta está indicada para ejercicios de tipo calculista o para aquellos
en los que el razonamiento es muy sistematizable. Al contrario que con los
libros de ejercicios resueltos, aquí los ejemplos de un determinado tipo no se
acaban ‘nunca’, ya que cada vez que se abre la página aparecen unos datos
nuevos.
Los tipos de enseñanza en los que se puede utilizar este material van desde
las presenciales hasta las virtuales. En el caso de enseñanza de tipo virtual,
estos materiales pueden suponer una buena herramienta. La experiencia del
autor con un material de este tipo[2] en una enseñanza virtual ha sido muy
positiva. Pero además estos materiales pueden jugar un buen papel en las
enseñanzas presenciales. El objetivo en este caso puede ser el de refuerzo de
unos temas que los alumnos tengan poco asimilados o no hayan trabajado
nunca. Otra posibilidad de utilización es para aquellos estudiantes que
necesitan más práctica en determinados ejercicios.
Hemos presentado una propuesta para generar un material TIC útil para las
asignaturas de matemáticas. El material propuesto se programa con muy pocos
conocimientos de HTML y JavaScript. Estas aplicaciones se utilizan con
cualquier visualizador (Netscape,Explorer,Mozilla, etc.) ya que tienen formato
de página web. Básicamente se trata de una página web en la que se presenta
el enunciado de un ejercicio con datos que han sido generados aleatoriamente
por el sistema. Al final del enunciado se encuentra un botón para generar la
solución. Formalmente, el resultado es parecido a los ejercicios resueltos que
se pueden encontrar en libros de problemas: ejercicios tipos y diferentes
versiones de ellos que difieren en los datos.
6. REFERENCIAS
[1] Alvarez García, A. HTML Creación de páginas Web. Anaya Multimedia.
1996.
[5] http://dessci.com/en/support/tutorials/mathml/gitmml/
[6] http://www.w3.org/Math/XSL/