aam0093 / Proyecto-Quiz-Prog.-Dinamica

Trabajo de Fin de Grado. GII14.F
0 stars 0 forks source link

Diseño 2º tipo de pregunta #5

Open aam0093 opened 9 years ago

aam0093 commented 9 years ago

Diseño en moodle de el segundo tipo de preguntas sobre la subsecuencia común más larga.

aam0093 commented 9 years ago

subse2

aam0093 commented 9 years ago

Código:

-

-

-

$course$/Default for My first course

-

-

subsecuencia

-

-

<![CDATA[

Dada la siguiente tabla del algoritmo subsecuencia común mas larga aplicada sobre las cadenas "ABCBDAB" y "BDCABA"

B D C A B A
A 0 0 0 1 1 1
B 1 1 1 1 2 2
C 1 1 2 2 2 2
B 1 1 1 1 2 2
D 1 2 2 2 3 3
A 1 2 2 3 3 4
B 1 2 2 3 4 4

Introduzca una posible solución

]]>

-

1.0000000 0.3333333 0 0

-

BABA
  -<feedback format="html">
  • Respuesta Correcta

    ]]>

-

BCBA

- - <![CDATA[

Respuesta Correcta

]]>

clopezno commented 9 years ago

Creo que es mejor que definas una única issue para el diseño de las preguntas "subsecuencia" y asi tenemos toda la conversación asociada en un único hilo. Consideralo para los siguientes preguntas.

clopezno commented 9 years ago

Me cuesta leer el comentario anterior porque no encuentro el contenido de algunos campos. ¿Cuál es la retroalimentación de la pregunta? es decir que pista le das al alumno para que pueda aprender como resolver el problema. En estos casos suele ser a partir de la ejecución del algoritmo paso a paso. Entiendo que la puntiación BABA es 1.000 y que la BCBA es 0.3333 ¿En qué se basa?

Si el texto de la pregunta no tiene imágenes es conveniente utilices el formato GIFT y si las tiene MoodleXML (formateado mira menú Markdown supported) para presentar el diseño. Ese texto GIFT o MoodleXML es el que tendrá que ser capaz de generar tu proyecto.

Ejemplo abreviado de pregunta formateada. en xml donde

-<question type="category">
-<category>
<text>$course$/DMS/S04_PersistenciaSerialización</text>

</category>

</question>

<!-- question: 61346 -->
-<question type="cloze">
-<name>
<text>Serialización en Java</text>
</name>
-<questiontext format="html">
-<text>
// aquí iría el texto de lapregunta
</text>
</questiontext>
-<generalfeedback format="moodle_auto_format">
<text/>
</generalfeedback>
<penalty>0.3333333</penalty>
<hidden>0</hidden>

</question>
aam0093 commented 9 years ago

Código:

// question: 0  name: Switch category to $course$/Default for My first course
$CATEGORY: $course$/Default for My first course

// question: 1  name: subsecuencia
::subsecuencia::[html]<p>Dada la siguiente tabla del algoritmo subsecuencia común mas larga aplicada sobre las cadenas "ABCBDAB" y "BDCABA" <br> </p> 
<table align\="center" border\="1" width\="50%"> <caption></caption> <thead> 
<tr> 
<th scope\="col"></th> 
<th scope\="col">B</th> 
<th scope\="col">D</th>
 <th scope\="col">C</th>
 <th scope\="col">A</th> 
<th scope\="col">B</th> 
<th scope\="col">A</th>
 </tr> 
</thead> <tbody>
 <tr> <td><b>A</b></td> 
<td>0</td> <td>0</td> 
<td>0</td> <td>1</td> 
<td>1</td> <td>1</td>
 </tr>
 <tr> <td><b>B</b></td> 
<td>1</td> <td>1</td> 
<td>1</td> <td>1</td> 
<td>2</td> <td>2</td> 
</tr> 
<tr> <td><b>C</b></td> 
<td>1</td> <td>1</td>
 <td>2</td> <td>2</td>
 <td>2</td> <td>2</td>
 </tr> 
<tr> <td><b>B</b></td>
 <td>1</td> <td>1</td> 
<td>1</td> <td>1</td> 
<td>2</td> <td>2</td> 
</tr> 
<tr> <td><b>D</b></td>
 <td>1</td> <td>2</td>
 <td>2</td> <td>2</td>
 <td>3</td> <td>3</td> 
</tr> 
<tr> <td><b>A</b></td>
 <td>1</td> <td>2</td> 
<td>2</td> <td>3</td>
 <td>3</td> <td>4</td>
 </tr>
 <tr>
 <td><b>B</b></td> 
<td>1</td> <td>2</td>
 <td>2</td> <td>3</td>
 <td>4</td> <td>4</td>
 </tr> 
</tbody> </table>\n\n <br> 
<p>Introduzca una posible solución</p>{
    =%100%bdab#
    =%100%bcba#
    ####<p>Recorrer la tabla desde la ultima celda hacia atrás buscando los valores mas altos</p>
}
aam0093 commented 9 years ago

Creo que el 0.3333 que aparece en el código anterior es una penalización creada por defecto, ambas respuestas tenían el mismo peso.

clopezno commented 9 years ago

Describe los pasos de un algoritmo (pseudocódigo y diagramas de actividad UML) que a partir de unos parámetros de entrada genere ese código. Utiliza UMLLet http://www.umlet.com/

jjrodriguez commented 9 years ago

Una visualización de este problema: http://www.cs.usfca.edu/~galles/visualization/DPLCS.html

aam0093 commented 9 years ago

Diagrama de actividad UML diag_actividadsubsecuencia

aam0093 commented 9 years ago

Pseudocodigo Subsecuencia Común Más Larga

subsecuenciaComun(String cad1, String cad2){
    int [cad2.length()+1][cad1.lenghth()+1] tabla;
    //Rellenar Tabla
for (int i =1;i< cad2.length();i++){
        for (int j =1; j< cad1.length(); j++){
            if (cad2(i-1) == cad1(j-1)){
                t[ i ][ j ] = t[ i-1 ][ j-1 ] +1;
            else{
                t[ i ][ j ] = MAX (t [ i-1 ] [ j ], [ i ][ j-1 ] )
    //Recorrer Tabla y obtener solución
    int j = cad1.length();
    int i = cad2.length();
    int [] pos = new int [2];
    String solucion = new String();
while(pos[0] != 0 && pos[1] != 0 ){
        if( cad2[i] == cad1[j] )
            solucion = solucion + cad1[j];
            pos[0] = i-1;
            pos[j] = j-1;
        }else{
            if (  t[i][j -1] > t[i-1][j] ){
                pos[0] = i;
                pos[1] = j-1;
            else{
                pos[0] = i-1;
                pos[1] = j;
            }
        }
clopezno commented 9 years ago

No sé si estoy torpe pero me cuesta entender ciertas descripciones ¿qué devuelve? ¿cómo se obtiene la retroalimentación?

De todas formas si lo ves claro, carga los fuentes del proyecto que te pasamos en GitHub e implementa esta primera versión de tipo de preguntas primero sin retroalimentación. Cuando hagas los cambios en el código (commit) haz referencia a esta Issue #5

aam0093 commented 9 years ago

He creado la primera versión de este tipo de pregunta, creo que si que aparece referenciada a esta Issue. la he introducido en principio con el resto de preguntas realizadas en el anterior proyecto, no sé si es lo correcto.