jdk como herramienta en la enseñanza de la programacion

Dificilmente se puede encontrar en la enseñanza de la programacion un lenguaje que sea didactico y a decir verdad
Java a pesar de tener cierto grado de complejidad, para mi ha sido una excelente herramienta en el aula.

En este sentido se parece al famosisimo Pascal de los 80`s cuano empezo a darlo, que dias aquellos, se imaginan sin bibliografia en español, la unica que existia era en ingles y a pesar de eso lo sigo admirando, ya que mis primeras clases que di de programacion fueron con este programa.

saludos y comenta de tus experiencias en la enseñanza de la programacion y si quieres comparte TIPS.

Hasta la proxima
Dolphin_al

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Java? no

Yo no creo que Java sea un buen primer lenguaje. Pascal era mejor en todo caso; hablabas directo con el hardware. Puedes hacer funciones, procedures (funciones que devuelven void), units (librerias de código reutilizable), y despues sin cambiar de lenguaje puedes empezar a ver objetos (alojados estáticamente o dinámicamente). Puedes hablar directo al hardware, mover memoria de manera directa, etc. Compilas directo a un ejecutable del sistema operativo en el que estás.

En Java para empezar tienes que entender que tu programa corre dentro de una máquina virtual. bytecode, etc. No puedes hacer simples funciones (tendrías que simularlas, haciendo puros métodos estáticos dentro de una clase). Tienes que empezar viendo objetos, ya no puedes ver nada de programación funcional, ni estructurada... en todo caso C sería mejor. Y luego vas subiendo de nivel a cosas como Java o C# o demás cosas.

Por ejemplo si aprender a programar C ves más cosas de apuntadores y manejo directo de memoria, que con Java no ves nunca, está muy oculto; si nunca has tenido que manejar directamente la memoria, no es algo que tengas presente cuando programas ya en el trabajo y luego por eso hay gente que hace cosas muy enredadas, complicadas, lentas, que usan muchisima memoria, etc.

Luego de C puedes pasarte ya sea a C++ o a Objective-C y empezar a enseñar OOP. Pero primero lo primero; no creo que sea bueno que tu primera experiencia sea

public class Hola {

<code>    public static void main(String[] args) {
<code>        System.out.println("hola mundo");
<code>    }

<code>}

cuando podria ser simplemente

#include &lt;stdio.h&gt;

<code>int main() {
<code>    printf("hola\n");
<code>}

o incluso, aprovechando algunos lenguajes más nuevos como Python:

print "hola"

en fin, recordando mis clases de la universidad, creo que mucha gente se cerraba a aprender programacion si veian que las cosas eran complicadas de entrada, en cambio si empiezas en algo muy simple, la curva de aprendizaje no es tan empinada...

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time.
Steve Riley

Imagen de Gabriel

Estoy de acuerdo con el

Estoy de acuerdo con el compañero "ezamudio" mi primer lenguaje es java, es lo unico que se. He leido otros lenguajes y java a pesar de q es portable y todo lo que dicen a nivel comercial esta bien bonito... pero, es verdad, se pueden hacer programas mas simples con otros lenguajes y sobretodo la logica de programacion que se ha ido perdiendo, tengo a mi cargo unas 4 personas que estan por graduarse y no saben como sacar si un numero es par o impar, digo a muchas personas les cuesta, pero ya graduandote... mmm no creo que deba ser asi.

Los lenguajes mas antiguos tendian a que el programador analizara mas y desarrollaran un nivel de logica superior al que los nuevos programadores traen (no todo siempre hay uno que otro geek por ahi).

Creo que un buen lenguaje para emprender es C++ o python, aunque solo los he visto por arriba.

Como dice mi hermano "desde que visual basic y luego java salieron... cualquier idiota dice que es programador...." suena muy odioso y todo eso... pero es la verdad y creo que yo estoy dentro de esos idiotas ... hehehe

Saludos,

Sun Certified Java Developer
Sun Certified Java Programer
Brainbench Certified JavaServer Pages

Imagen de ezamudio

EnterpriseEvenOddBean

jajaj seguramente para determinar si un numero es par o non te van a hacer primero que nada un enum que PAR e IMPAR, una interfaz que define el comportamiento del objeto que determina la paridad de un número, un ServiceLocator o algo asi para obtener el bean que implementa esa interfaz, un EJB que implementa la interfaz EnterpriseEvenOddBean, y un web service para tener un frontend flexible y ponerle despues la interfaz que sea (un cliente multi-tier o algo). Todo esto en tres dias.

Luego dos dias mas en lo que toman un manual de programacion y se ponen a ver cómo carajos van a hacer la implementación porque resulta que nunca han visto el operador % o ven referencias en C pero no saben que Java tambien lo tiene, asi que usan un BigDecimal:

BigDecimal x = new BigDecimal(sInputNumber).divide(new BigDecimal("2"), 1, RoundingMode.HALF_EVEN);
if (x.toString().endsWith(".5")) {
    return ParImpar.IMPAR;
} else {
    return ParImpar.PAR;
}

y luego para llamar al bean... ya que obtuviste un servicelocator y te da la referencia al EJB:

if (bean.parImpar(x) == ParImpar.PAR) {
//par
} else {
//impar
}

en vez de simplemente en el momento que necesitan saber si un entero es par o impar hacer

if (x % 2 == 0) {
//par
} else {
//impar
}

Ese es el problema con Java. Es muy bueno para hacer sistemas grandes pero el marketing es muy fuerte y se olvidan de que para hacer sistemas grandes hay que saber hacer cosas pequeñas primero y Java no es bueno para cosas pequeñas. Todo mundo se enfoca mucho ahora a los Enterprise Design Patterns, Best Practices, y cualquier cantidad de paradigmas, metodologías, procesos, etc y se olvidan de programar este tipo de cosas simples.

Puntos extras a quien me diga el operador de XOR por bits en Java (sin Google por favor, a poco nadie se lo sabe de memoria?)...

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time.
Steve Riley