User Tag List

Página 1 de 17 1234511 ... ÚltimoÚltimo
Resultados 1 al 15 de 245

Tema: Ayuda con problemilla básico de Arrays JAVA (SPOILER: Soy muy malo)

  1. #1

    Fecha de ingreso
    Sep 2009
    Ubicación
    Donde quiero
    Mensajes
    6,160
    Mencionado
    175 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,848
    Agradecer Thanks Received 
    2,378
    Thanked in
    Agradecido 1,309 veces en [ARG:2 UNDEFINED] posts

    Ayuda con problemilla básico de Arrays JAVA (SPOILER: Soy muy malo)

    Hola pamiques, estoy sacando DAM a distancia en mis ratos libres y me he atascado en un problemilla con arrays en JAVA.

    Básicamente necesito codificar un texto en cifrado Cesar (codificado por desplazamiento de caracteres) y luego volverlo a decodificar. La parte del codificado (aunque seguramente con código muy rudimentario) va bien, he solventado el posible OutOfBounds tirando del resto y de la función length.

    Código:
    Scanner sc= new Scanner(System.in);
            
            String lower = "abcdefghijklmnopqrstuvwxyz ";
            String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
            String text1, text2, text3;
            int code;
            text2 = "";
            text3 = "";
            
            System.out.println("Ingresa la frase a codificar");
            text1 = sc.nextLine();
            do{
     
                System.out.print("Ingresa el número de clave para codificar [0-26]: ");
     
                code = sc.nextInt();
     
            }while(code<0 || code>26);
    
            for (int i = 0; i < text1.length(); i++) {
                for (int j = 0; j < lower.length(); j++) {
                    if (text1.charAt(i) == lower.charAt(j)) {
                        if (j + code >= lower.length()) {
                            text2 += lower.charAt((j + code) % lower.length());
                        } else {
                            text2 += lower.charAt(j + code);
                        }                   
                    }else if (text1.charAt(i) == upper.charAt(j)) {
                        if (j + code >= upper.length()) {
                            text2 += upper.charAt((j + code) % upper.length());
                        } else {
                            text2 += upper.charAt(j + code);
                        }                   
                    }                                
                }            
            }
            System.out.println(text2);
    Sé (o eso he visto por ahí) que hay formas mejores y más sencillas de hacerlo, pero el profesor exige que se no se emplee nada que él no haya utilizado o explicado (ejem) en clase (que vienen a ser métodos de la clase String). El problema viene al hacer la inversa, al recorrer el array en sentido negativo, no sé cómo evitar el OutOfBounds (y continuar al final del array) cuando los índices sobrepasan la primera posición. Tengo esto hecho para la decodificación, pero evidentemente no funciona cuando j<code.

    Código:
            //DECODIFICAR
            do{
     
                System.out.print("Ingresa el número de clave para decodificar [0-26]: ");
     
                code = sc.nextInt();
     
            }while(code<0 || code>26);
            
            for (int i = 0; i < text2.length(); i++) {
                for (int j = 0; j < lower.length(); j++) {
                    if (text2.charAt(i) == lower.charAt(j)) {
                        //ETO NO VALE if (j - code >= lower.length()) {
                            //ETO TAMPOCO text3 += lower.charAt((j - code) % lower.length());
                        } else {
                            text3 += lower.charAt(j - code);
                        }                   
                    }else if (text2.charAt(i) == upper.charAt(j)) {
                        //ETO NO VALE if (j - code >= upper.length()) {
                            //ETO TAMPOCO text3 += upper.charAt(upper.length()- code);
                        } else {
                            text3 += upper.charAt(j - code);
                        }                   
                    }                                
                }            
            }
            System.out.println(text3);
    Jrasias por halludar ha heste provre nub, mis dies.

  2. #2

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,202
    Mencionado
    247 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    675
    Agradecer Thanks Received 
    1,847
    Thanked in
    Agradecido 1,264 veces en [ARG:2 UNDEFINED] posts
    A ver, en una lectura super rápida, veo que tu problema se debe a que cuando tienes "j + code", usas correctamente el módulo para evitar que se salga de tu rango [0..lower.length].
    Sin embargo, cuando tienes "j - code" no puedes evitar que en ocasiones te salga un valor negativo, ya que puede pasar que code > j.

    La solución fácil es que, dado que j siempre 0 <= j <= lower.length, es que
    Código:
    int valor = j - code;
    if (valor < 0)
       valor += lower.length();  //Esto te devuelve dentro de tu ventana de valores
    Ten en cuenta lo dicho, j nunca será > que lower.length(), así que compararlo con >= no sirve. Y el módulo de una división negativa devuelve un valor negativo, y te dará el out of bounds.

    Seguramente hay alguna forma más elegante de hacerlo, pero por mi experiencia con mapas cíclicos de tiles, esta es tu solución más simple.

    -----Actualizado-----

    Poniéndotelo más fácil, el código que deberías usar podría ser:

    Código:
    for (int i = 0; i < text2.length(); i++) {
                for (int j = 0; j < lower.length(); j++) {
                    if (text2.charAt(i) == lower.charAt(j)) {
                        if (j - code < 0) {
                            text3 += lower.charAt(j - code + lower.length());
                        } else {
                            text3 += lower.charAt(j - code);
                        }                   
                    }else if (text2.charAt(i) == upper.charAt(j)) {
                        if (j - code < 0) {
                            text3 += upper.charAt(j - code + upper.length());
                        } else {
                            text3 += upper.charAt(j - code);
                        }                   
                    }                                
                }            
            }
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  3. Los siguientes 2 usuarios agradecen a Drumpi este post:

    Karkayu (11/01/2022), selecter25 (11/01/2022)

  4. #3

    Fecha de ingreso
    Sep 2009
    Ubicación
    Donde quiero
    Mensajes
    6,160
    Mencionado
    175 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,848
    Agradecer Thanks Received 
    2,378
    Thanked in
    Agradecido 1,309 veces en [ARG:2 UNDEFINED] posts
    Qué velocidad @Drumpi! Tiene todo el sentido del mundo, en llegar a casa lo acabo, mil millones de gracias.

  5. #4

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Aqui tienes el if para trabajar con los chars `c` de la cadena, para el código `cod`. Juega con que los chars ya son números en ascii, donde a=65 y A=97

    Código:
    if (c < 65 || c > 122 || (c > 90 && c < 97))  { // Not rotable
      return c;
    } else {
      char target = c + cod;
      if (c > 90) { // Uppercase
        return target > 122 ? 97 + (target - 122): target;
      } else { // Lowercase
        return target > 90 ? 65 + (target - 90): target;
      }
    }
    Itera por la cadena como quieras, yo soy un chico moderno y uso streams

    Código:
    String str = "patatas";
    int cod = 20;
    String result = str.chars().map(c -> {
                if (c < 65 || c > 122 || (c > 90 && c < 97))  {
                    return c;
                } else {
                    char target = c + cod;
                    if (c > 90) {
                        return target > 122 ? 97 + (target - 122): target;
                    } else {
                        return target > 90 ? 65 + (target - 90): target;
                    }
                }
    }).collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append);
    
    System.out.println(result);
    Última edición por pakoito; 11/01/2022 a las 18:54

  6. El siguiente usuario agradece a pakoito este mensaje:

    selecter25 (11/01/2022)

  7. #5

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,202
    Mencionado
    247 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    675
    Agradecer Thanks Received 
    1,847
    Thanked in
    Agradecido 1,264 veces en [ARG:2 UNDEFINED] posts
    No hay de qué
    De todas formas, por el bien de tu formación, piensa si la solución que te doy es la correcta o si existe alguna otra más eficiente o elegante, ahora que conoces la raíz del problema
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  8. #6

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Cita Iniciado por pakoito Ver mensaje
    Aqui tienes el if para trabajar con los chars `c` de la cadena, para el código `cod`. Juega con que los chars ya son números en ascii, donde a=65 y A=97

    Código:
    if (c < 65 || c > 122 || (c > 90 && c < 97))  { // Not rotable
      return c;
    } else {
      char target = c + cod;
      if (c > 90) { // Uppercase
        return target > 122 ? 97 + (target - 122): target;
      } else { // Lowercase
        return target > 90 ? 65 + (target - 90): target;
      }
    }
    Itera por la cadena como quieras, yo soy un chico moderno y uso streams

    Código:
    String str = "patatas";
    int cod = 20;
    String result = str.chars().map(c -> {
                if (c < 65 || c > 122 || (c > 90 && c < 97))  {
                    return c;
                } else {
                    char target = c + cod;
                    if (c > 90) {
                        return target > 122 ? 97 + (target - 122): target;
                    } else {
                        return target > 90 ? 65 + (target - 90): target;
                    }
                }
    }).collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append);
    
    System.out.println(result);
    Acabo de leer lo de no usar cosas raras, no cambia mucho.


    Código:
    char rotate(char c, int cod) {
     if (c < 65 || c > 122 || (c > 90 && c < 97))  { // Not rotable
      return c;
     } else {
      char target = c + cod;
      if (c > 90) { // Uppercase
        return target > 122 ? 97 + (target - 122): target;
      } else { // Lowercase
        return target > 90 ? 65 + (target - 90): target;
      }
     }
    }
    Código:
    String input = "patatas";
    int code = 1;
    String output = "";
    
    for (int i = 0; i < input.length(); i++) {
      output += rotate(input.charAt(i), code);
    }
    Última edición por pakoito; 11/01/2022 a las 19:03

  9. El siguiente usuario agradece a pakoito este mensaje:

    selecter25 (11/01/2022)

  10. #7

    Fecha de ingreso
    Sep 2009
    Ubicación
    Donde quiero
    Mensajes
    6,160
    Mencionado
    175 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,848
    Agradecer Thanks Received 
    2,378
    Thanked in
    Agradecido 1,309 veces en [ARG:2 UNDEFINED] posts
    Meteré el arreglo que ha hecho Drumpi a mi cutrecódigo, que va perfecto y da el pego, y el de pakoito me lo quedo para disfrute personal (me va a llevar un rato entenderlo), es muy parecido a soluciones que encontré por la red.

    El profesor sigue una metodología que roza el absurdo. Por cada elemento detectado en el código que no aparezca en sus apuntes, resta 0.1 a la práctica.

    Gracias a los 2!

  11. #8

    Fecha de ingreso
    Sep 2006
    Ubicación
    Malaga
    Mensajes
    7,561
    Mencionado
    47 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,668
    Agradecer Thanks Received 
    1,922
    Thanked in
    Agradecido 1,289 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por selecter25 Ver mensaje
    El profesor sigue una metodología que roza el absurdo. Por cada elemento detectado en el código que no aparezca en sus apuntes, resta 0.1 a la práctica.
    WTF!?!? Si programar es buscar soluciones a un problema, lo ideal es que no ponga estas restricciones para que cada uno presente la solución que se le ocurra y si se expone en clase vereis que las cosas se pueden hacer de mil maneras, es mejor tener la mente abierta.

    La restricción sera para que la entienda el profesor XD
    No es lo mismo tener diez años de experiencia, que tener un año de experiencia diez veces.


    It is an undisputed truth that the Atari ST gets the best out of coders. No dedicated hardware, just the CPU and a frame buffer! Some call it Spartan, others name it Power Without The Price, and a select few say `challenge accepted'! --- by spkr from smfx

  12. #9

    Fecha de ingreso
    Jun 2004
    Ubicación
    Vivo en el pito foro...
    Mensajes
    20,686
    Mencionado
    70 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    230
    Agradecer Thanks Received 
    742
    Thanked in
    Agradecido 466 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    28
    Cita Iniciado por selecter25 Ver mensaje
    el de pakoito me lo quedo para disfrute personal (me va a llevar un rato entenderlo)
    La clave para entenderlo es saber que Java pone los chars como ASCII, asi que en el fondo son números. La correspondencia entonces es: https://upload.wikimedia.org/wikiped...Table-wide.svg

    El resto es jugar con números para comprobar que el caracter está en el rango (el primer if), y que el resultado de la rotación de la vuelta con una ecuacuón muy sencillita. Experimenta con distintos valores en esta ecuación: `target > MAX ? MIN + (target - MAX): target`

    Cita Iniciado por selecter25 Ver mensaje
    El profesor sigue una metodología que roza el absurdo. Por cada elemento detectado en el código que no aparezca en sus apuntes, resta 0.1 a la práctica.
    Toooonto.
    Última edición por pakoito; 11/01/2022 a las 22:57

  13. El siguiente usuario agradece a pakoito este mensaje:

    selecter25 (12/01/2022)

  14. #10

    Fecha de ingreso
    Mar 2007
    Ubicación
    Barna
    Mensajes
    10,341
    Mencionado
    93 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    368
    Agradecer Thanks Received 
    1,791
    Thanked in
    Agradecido 944 veces en [ARG:2 UNDEFINED] posts
    Drumpi ya te ha dicho lo que pasa: que en el segundo bucle estabas usando números negativos como índices. En Java eso no se puede hacer

    (en Python, los índices negativos sí se pueden usar y a[-2] significa "el segundo empezando por el final)

    Pero dos apuntes:

    Código:
    if (j + code >= lower.length()) {
        text2 += lower.charAt((j + code) % lower.length());
    } else {
        text2 += lower.charAt(j + code);
    }
    El if no es necesario. Fíjate que " 3 % 5 = 3". Es decir que si calculas un resto con un divisor más grande que el dividendo, el resto es el propio dividendo: el if es innecesario. Esto basta y es equivalente a tu código:

    Código:
    text2 += lower.charAt((j + code) % lower.length());
    Por otro lado, te lo han asignado como ejercicio, bien que mires arrays y límites y qué sé yo. Pero precisamente en el cifrado Caesar el descifrado con la clave K es igual que el cifrado con 26-K. Es decir que para descifrar un texto cifrado con K=3 puedes "cifrar el cifrado" con K=26-3=23. Así que el primer código, si te funciona, también te vale para descifrar, simplemente usa text1.length()-K como clave y todo lo demás es exactamente igual. Como curiosidad, esto pasa a menudo con los algoritmos de cifrados y descifrados criptográficos: el descifrado es casi igual que el cifrado simplemente cambiando algún detalle y se puede reaprovechar casi todo el código.

    Aprovechar código es lo siguiente que aprenderás Así te evitas errores y si un código funciona, reaprovéchalo. En la enseñanza Java el "reaprovechamiento de código" está en su ADN porque en Java todos son clases y objetos reaprovechables.
    Última edición por juanvvc; 12/01/2022 a las 02:05
    "Todo es absolutamente falso, salvo alguna cosa"

  15. El siguiente usuario agradece a juanvvc este mensaje:

    selecter25 (12/01/2022)

  16. #11

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,630
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    188
    Agradecer Thanks Received 
    2,626
    Thanked in
    Agradecido 1,639 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Cita Iniciado por swapd0 Ver mensaje
    WTF!?!? Si programar es buscar soluciones a un problema, lo ideal es que no ponga estas restricciones para que cada uno presente la solución que se le ocurra y si se expone en clase vereis que las cosas se pueden hacer de mil maneras, es mejor tener la mente abierta.

    La restricción sera para que la entienda el profesor XD
    Seguramente sea uno de esos profesores que quiere inculcar la "manera de pensar de un programador", es decir, intenta hacerte elaborar el algoritmo con las funciones más básicas en lugar de recurrir a soluciones más avanzadas; es una manera de hacer que la gente que aprende a programar tenga muy claras las bases antes de meterse con cosas más avanzadas y abstractas.
    Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.

  17. #12

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,202
    Mencionado
    247 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    675
    Agradecer Thanks Received 
    1,847
    Thanked in
    Agradecido 1,264 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por swapd0 Ver mensaje
    WTF!?!? Si programar es buscar soluciones a un problema, lo ideal es que no ponga estas restricciones para que cada uno presente la solución que se le ocurra y si se expone en clase vereis que las cosas se pueden hacer de mil maneras, es mejor tener la mente abierta.

    La restricción sera para que la entienda el profesor XD
    Cita Iniciado por chipan Ver mensaje
    Seguramente sea uno de esos profesores que quiere inculcar la "manera de pensar de un programador", es decir, intenta hacerte elaborar el algoritmo con las funciones más básicas en lugar de recurrir a soluciones más avanzadas; es una manera de hacer que la gente que aprende a programar tenga muy claras las bases antes de meterse con cosas más avanzadas y abstractas.
    Bueno, yo entiendo el punto de vista del profesor: cuando uno empieza a programar, su mente no está en "modo código", y lo ideal es forzar a sus alumnos a que busquen soluciones por sí mismos. Los "novatos" darán antes con la "solución sencilla" o "cutre" que las opciones más avanzadas, y es lo que él espera. Cualquier tipo de código más avanzado sería sospechoso de haber sido encontrado por internet, lo que significa que el alumno ha hecho copia y pega sin siquiera razonar el por qué, y eso a corto plazo pasa factura.
    Muchos de mis compañeros de carrera empleaban el copia-pega como método de hacer ejercicios, y el que no tenía problemas de errores desconocidos (por copiar las comillas que no eran), en cuanto se complicaban los ejercicios y dejaba de haber "ayudas", se atascaban y empezaban los suspensos.
    A base de pegarse golpes contra el código, uno aprende a detectar problemas. ¿Recordáis en Matrix lo de "yo ya no veo código, sólo veo una rubia, una pelirroja..."? Llega un punto que has corregido tantos fallos propios que con un vistazo rápido al código sabes dónde está el error.

    Yo entiendo que Selecter es un tío inteligente, y habrá intentado sus propias soluciones antes de acudir al foro en busca de ayuda

    Cita Iniciado por juanvvc Ver mensaje
    Código:
    if (j + code >= lower.length()) {
        text2 += lower.charAt((j + code) % lower.length());
    } else {
        text2 += lower.charAt(j + code);
    }
    El if no es necesario. Fíjate que " 3 % 5 = 3". Es decir que si calculas un resto con un divisor más grande que el dividendo, el resto es el propio dividendo: el if es innecesario. Esto basta y es equivalente a tu código:

    Código:
    text2 += lower.charAt((j + code) % lower.length());
    Emmm, no estoy seguro de que eso sea más eficiente.
    Supongo que depende del lenguaje, pero en algunos la operación módulo es bastante "ineficiente", ya que no hay un mnemónico que ejecute la operación en un ciclo, y los he visto que tardan más de 4.
    Hice la prueba en BennuGD (ya sé que es una porquería de ejemplo, pero es el que tengo) y una operación if y una resta tardaban menos en realizarse que un módulo, pero un if con dos restas tardaba más.
    Si alguien me lo puede desmentir, se lo agradecería.

    Cita Iniciado por juanvvc Ver mensaje
    Por otro lado, te lo han asignado como ejercicio, bien que mires arrays y límites y qué sé yo. Pero precisamente en el cifrado Caesar el descifrado con la clave K es igual que el cifrado con 26-K. Es decir que para descifrar un texto cifrado con K=3 puedes "cifrar el cifrado" con K=26-3=23. Así que el primer código, si te funciona, también te vale para descifrar, simplemente usa text1.length()-K como clave y todo lo demás es exactamente igual. Como curiosidad, esto pasa a menudo con los algoritmos de cifrados y descifrados criptográficos: el descifrado es casi igual que el cifrado simplemente cambiando algún detalle y se puede reaprovechar casi todo el código.

    Aprovechar código es lo siguiente que aprenderás Así te evitas errores y si un código funciona, reaprovéchalo. En la enseñanza Java el "reaprovechamiento de código" está en su ADN porque en Java todos son clases y objetos reaprovechables.
    No metas al pobre en meta-código antes de aprender a iterar dentro de los límites de un array Déjalo que aprenda a programar clases antes de empezar con arrays dinámicos y "los caracteres no existen, son los números"

    Ahora, lo de reaprovechar código, a mi me lo enseñaron llevado al extremo. Hasta el punto de meter en una función un simple bucle en lugar de escribirlo dos veces: tenía más código declarando variables que ejecutando cosas.
    Pero visto cómo funciona Java, que es una función, dentro de una función, dentro de una función, dentro de una función, dentro de una función, dentro de una función... hay tantas capas que para escribir una simple letra tiene que llamar a 6 sub-funciones (comprobado con el debugger y el código interno de todas las librerías) ¡no me extraña que sea tan ineficiente!
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  18. #13

    Fecha de ingreso
    Sep 2009
    Ubicación
    Donde quiero
    Mensajes
    6,160
    Mencionado
    175 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,848
    Agradecer Thanks Received 
    2,378
    Thanked in
    Agradecido 1,309 veces en [ARG:2 UNDEFINED] posts
    Mil gracias por las aclaraciones a todos, sé que algunos aparte de programar os dedicáis a la docencia, ojalá tener un profesor así.

    El único aspecto positivo que puedo comentar del mío es que hacemos los exámenes en papel, es algo que al principio me pareció un handicap, pero una vez puestos me ayudó mucho a retener sintáxis y a no depender tanto del autocompletado del IDE. A efectos prácticos, sé que es como picar piedra para escribir y es un escenario totalmente irreal, pero ahora soy un niño en pañales y no me ha venido mal.

    El resto es un absoluto desastre:

    - La improvisación y la resolución de cualquier ejercicio que proponga mediante un método que no aparezca explícitamente en sus ejemplos es tomado como una herejía (aunque mejore la resolución en términos de optimización y limpieza).
    - Los temarios se reducen a un pdf anodino con teoría pseudomilitar, y unos ejemplos de ejercicios resueltos (que por supuesto no ha hecho él).
    - A estos les acompaña una hoja de ejercicios propuestos, con un plazo de entrega y adiós muy buenas.
    - Las tutorías (una por semana, al ser semipresencial no tenemos clase) se reducen a leer el pdf de teoría y el de los ejercicios resueltos, y en ellas el profesor se niega a resolver dudas porque el tiempo es muy limitado. También se niega a usar el foro de la plataforma (moodle) para resolver dudas globales del grupo, todas las dudas personales se resuielven de forma privada y vía mail.

    Si ya de por sí la educación a distancia es jodida, el compaginarlo con la vida laboral y el que te caiga un elemento así como profesor de la asignatura más importante del ciclo es una locura. Imagino que si aparte de aprobar (la primera evaluación ha ido muy bien, rozo el 9.5 de media) quiero aprender, tendré que meterle horas por mi cuenta.

  19. #14

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,202
    Mencionado
    247 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    675
    Agradecer Thanks Received 
    1,847
    Thanked in
    Agradecido 1,264 veces en [ARG:2 UNDEFINED] posts
    A la docencia no, pero pegarme palos con los lenguajes sí... y cada lenguaje nuevo es casi volver a la casilla cero

    Oye, no menosprecies el programar en papel, porque te ayuda a desarrollar las capacidades para entender cómo trabaja el ordenador ejecutando código. Y ya me conoces, el obseso de Fenix y BennuGD, que durante casi 15 años ha estado programando con el Notepad++ como IDE, y ahora que estoy con Visual Studio, vuelo

    Que a ver, para aprender está muy bien, sobre todo si tienes tiempo, pero habiendo IDEs, es tontería ponerse en plan Picapiedra con el código

    Sí que tienes un profesor un poco pasota, desde luego, pero no te creas que el laboratorio de programación era mucho más: 3 horas para explicar la práctica, y nos vemos dentro de un mes, mis tutorías están en el panel de la entrada, y el foro para que resolváis las dudas entre vosotros está en construcción. Chao
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  20. #15

    Fecha de ingreso
    Feb 2005
    Ubicación
    Malaga
    Mensajes
    5,310
    Mencionado
    77 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2,757
    Agradecer Thanks Received 
    1,024
    Thanked in
    Agradecido 599 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    5
    Cita Iniciado por selecter25 Ver mensaje
    Mil gracias por las aclaraciones a todos, sé que algunos aparte de programar os dedicáis a la docencia, ojalá tener un profesor así.

    El único aspecto positivo que puedo comentar del mío es que hacemos los exámenes en papel, es algo que al principio me pareció un handicap, pero una vez puestos me ayudó mucho a retener sintáxis y a no depender tanto del autocompletado del IDE. A efectos prácticos, sé que es como picar piedra para escribir y es un escenario totalmente irreal, pero ahora soy un niño en pañales y no me ha venido mal.

    El resto es un absoluto desastre:

    - La improvisación y la resolución de cualquier ejercicio que proponga mediante un método que no aparezca explícitamente en sus ejemplos es tomado como una herejía (aunque mejore la resolución en términos de optimización y limpieza).
    - Los temarios se reducen a un pdf anodino con teoría pseudomilitar, y unos ejemplos de ejercicios resueltos (que por supuesto no ha hecho él).
    - A estos les acompaña una hoja de ejercicios propuestos, con un plazo de entrega y adiós muy buenas.
    - Las tutorías (una por semana, al ser semipresencial no tenemos clase) se reducen a leer el pdf de teoría y el de los ejercicios resueltos, y en ellas el profesor se niega a resolver dudas porque el tiempo es muy limitado. También se niega a usar el foro de la plataforma (moodle) para resolver dudas globales del grupo, todas las dudas personales se resuielven de forma privada y vía mail.

    Si ya de por sí la educación a distancia es jodida, el compaginarlo con la vida laboral y el que te caiga un elemento así como profesor de la asignatura más importante del ciclo es una locura. Imagino que si aparte de aprobar (la primera evaluación ha ido muy bien, rozo el 9.5 de media) quiero aprender, tendré que meterle horas por mi cuenta.
    Poco me sorprende lo que cuentas, la verdad. Hay cada personaje por ahí dando clases que ... En muchos casos, es lo que tiene no tener miedo de poder perder tu trabajo.

Página 1 de 17 1234511 ... ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •