>>recomendaciones

 

Este apartado contiene una serie de instrucciones que es importante que sigas para iniciar el estudio de cada lección.

Java 1.0 es la primera versión del lenguaje de programación Java creado por Sun Microsystems. En la fecha de publicación de este curso se está utilizando la versión 1.3. El lenguaje Java es un lenguaje completo que fue diseñado para crear programas para internet.

Para seguir el curso se necesita el siguiente material, que se encuentra a su disposición en el Aula Mentor:

Los ejemplos deberás tenerlos forzosamente en su ordenador para poder realizar algunos de los ejercicios. De hecho se te recomienda descargar el curso para poder utilizarlo localmente en tu ordenador.

Las páginas y ejemplos del curso se encuentra en

http://www.mentor.mecd.es/cursoJava/cursoJava.ZIP

que mide aproximadamente 1.3 MB.

Este fichero deberás descargarlo y desempacarlo sobre la raíz de tu disco duro. Los ficheros desempacados se acomodarán en subdirectorios de un directorio llamado cursoJava. Para entrar al curso en modo local deberás abrir con tu navegador la página:

c:\cursoJava\index.html

La última versión del JDK puedes descargarla directamente de

http://java.sun.com.  

Si lo deseas, para el curso puedes usar la versión 1.3 del JDK que puedes descargar directamente del servidor del :

http://www.mentor.mecd.es/cursoJava/JDK13.ZIP

y mide aproximadamente 2.6 MB. Encontrarás instrucciones para instalar el JDK en la Lección 01.

El material del curso tiene muchos ejemplos desarrollados específicamente para el curso. Muchos de ellos son applets y además hay un applet que se usa mucho para mostrar el código de los programas de ejemplo. Así que cada página del curso puede incluir varios applets. Esto hace sufrir a los navegadores, que todavía son novatos en este tipo de páginas y a veces no saben qué hacer con tanto applet y ... se rinden. Tú no te rindas, vuelve a cargar la página, normalmente el navegador cargará la página y todos sus applets en un segundo intento. A veces hay que cerrar el navegador y volver a empezar. Estos fallos son molestos, pero seguramente irán desapareciendo con las versiones más modernas de los navegadores. Si los fallos son demasiado frecuentes es posible que necesites un navegador nuevo o un ordenador más potente.

Aunque tal vez cuando comiences el curso ya estarán disponibles versiones superiores del JDK a la 1.3,  este curso usará sólo lo que se encuentra en la versión 1.1.8  porque para ejecutar los programas creados por la versión 1.2 y superiores es necesario que el usuario cuente con versiones muy modernas del Netscape o el Explorer y en el sistema educativo todavía son comunes los navegadores anteriores. Además los conceptos fundamentales de Java están claramente integrados en el JDK desde su primera versión. Las versiones posteriores tienen adiciones que son útiles, pero no son necesarias para un primer curso.

El plan del curso es muy sencillo y uniforme. El alumno deberá realizar las siguientes actividades para cada una de las lecciones del curso:

1. leer el material de cada lección,
2. estudiar los ejemplos,
3. realizar los ejercicios,
4. enviar los ejercicios señalados (si los hay) al tutor.
6. realizar tres evaluaciones:

Los ejemplos y los ejercicios son una parte fundamental del curso.

Los ejemplos fueron desarrollados específicamente para este curso. Ilustran los conceptos fundamentales de cada lección.  Todos los ejemplos son programas que funcionan y por lo tanto tienen aspectos adicionales a los que se desean ilustrar. Así el alumno estará expuesto desde un principio a aspectos del lenguaje Java que aún no ha estudiado. Esto es inevitable pero también es conveniente pues el programador debe aprender a buscar en el código las partes que le interesen aunque a veces no entienda el resto. Al hacerlo estará ejercitando esta habilidad y al mismo tiempo estará familiarizándose con temas que estudiará posteriormente.

Muchos ejemplos son applets. En tales casos el alumno tendrá una versión del ejemplo funcionando en la misma página de la lección. Si el ejemplo no es un applet, el alumno tendrá que usar la línea de comandos en una ventana del DOS para ejecutar el ejemplo. En ambos casos deberá mirar lo que el ejemplo hace ya sea interactuando con la interfaz gráfica, pasándole parámetros al llamarlo o simplemente observando lo que muestra. En todos los casos tendrá a la mano el código Java y deberá estudiar el código encontrando en él las partes relevantes. Finalmente el alumno deberá modificar el código con un editor de textos (por ejemplo el WordPad) cambiando alguna cosa, ya sea un texto, un color, o cualquier cosa que le ayude a asegurar que ha comprendido el programa y que lo puede dominar. Luego deberá compilar y ejecutar para observar los cambios que ha hecho. Este proceso es fundamental para que se familiarice con la programación y comprenda a fondo los conceptos. Resumiendo, el estudio de los ejemplos debe hacerse siguiendo estos pasos:

  1. Interactuar con el programa o applet y observar lo que hace.
  2. Identificar en el código las partes relevantes a los conceptos que ilustra.
  3. Realizar modificaciones sencillas
  4. Compilar, ejecutar y verificar las modificaciones.

Los ejercicios de cada lección fueron diseñados para que el alumno practique escribiendo programas que usen los conceptos aprendidos en el material de la lección. En los ejercicios deberá escribir programas y applets, compilarlos, corregir errores de compilación, volver a compilar, ejecutar, corregir errores de funcionamiento, hasta llegar finalmente al resultado que se le pide. Esta actividad cíclica de escribir código, compilarlo, ejecutarlo y corregirlo es en lo que consiste la actividad del programador. El alumno no debe desfallecer ante la aparición de errores de compilación. Son normales e inevitables. De hecho, se estima que sólo el 10% del tiempo de trabajo de un programador se dedica a escribir código nuevo, mientras que el 90% restante lo dedica a corregir y depurar lo que ha escrito. No debe extrañar pues al alumno que la mayor parte del tiempo que dedique al curso lo pasará haciendo los ejercicios.

No se han incluido muchos ejercicios porque se pretende que el alumno les dedique tiempo no solo a obtener una versión de lo que se le pide sino a depurarla e incluso mejorarla.

Al terminar los ejercicios de una lección deberás enviar el código que has escrito a tu tutor junto con un e-mail explicando las dudas que le hayan quedado. Recibirás después de unos días comentarios a tu trabajo y consejos para mejorarlo. Es conveniente que realices las modificaciones que el tutor te pida y vuelvas a enviarle los ejercicios corregidos.

Las evaluaciones son conjuntos de preguntas que el alumno deberá responder y enviar al tutor. Con ellas se verifica que el alumno ha aprendido los conceptos fundamentales del curso. Las evaluaciones no pueden medir la habilidad que el alumno haya adquirido como programador y eso es lo más importante de su aprendizaje. Por lo tanto las evaluaciones no pueden considerarse medidores del aprovechamiento del alumno. La mayor parte del aprovechamiento se irá midiendo en cada lección con los ejercicios que vaya realizando. El tutor le mantendrá informado de su nivel de aprovechamiento a través de los comentarios a sus ejercicios. De todas formas las evaluaciones servirán para medir de manera resumida y puntual la adquisición de los conocimientos teóricos más importantes.

Recomendaciones específicas para las lecciones.

Lección 1
Esta lección deberá resultarte fácil de comprender. La mayor dificultad en esta lección consistirá en utilizar por primera vez el compilador, el intérprete de programas de Java y aprender a ejecutar applets usando páginas Web. Lo que aprenderás en esta lección lo seguirás usando durante todo el curso. No te preocupes en este momento de comprender cada detalle de los programas, no es el momento de hacerlo. Aquí debe bastarte hacer que todo funcione.
Lección 2
Esta es una lección bastante teórica y fundamental para todo el curso. Todavía no es momento de preocuparse por detalles de los programas. En lo que hay que presta atención es en el conceptos de clase y en la idea fundamental de la programación orientada a objetos.
Lección 3
Es posible que esta lección te resulte más difícil que otras por la sutileza de los conceptos presentados. En general este tipo de conceptos se van aclarando con el tiempo y la práctica, así que no te desanimes si te resulta difícil. Los ejercicios de esta lección son particularmente importantes y requieren mucho trabajo. 
Lección 4
El estudio de los tipos básicos de variables puede resultar un poco árido. Trata de pasar rápidamente por esta lección. Léela y haz los ejercicios rápidamente y sin mucho detenimiento. Tendrás muchas ocasiones de practicar los conceptos de esta lección a lo largo de todo el curso. Revisa la documentación del JDK para familiarizarte con las clases del paquete java.lang. Presta particular atención a las clases String y StringBuffer que te resultarán de gran utilidad a lo largo de todo el curso.
Lección 5
Si eres principiante en la programación, estudia con cuidado esta lección. No dudes en pedir ayuda al asesor para comprender bien su contenido. No hay que preocuparse demasiado por las etiquetas, se usan poco. Sólo recuerda que en algún lugar las has visto en uso y cuando las necesites, repasa otra vez la lección. En cambio, la claúsula condicional if ... else, el for( ; ; ), el while, el do...while y el switch con sus case serán el pan nuestro de cada día, así que hay que dominarlos a fondo. Si ya tienes experiencia en otros lenguajes de programación, esta lección te resultará muy fácil, sin embargo presta particular atención al try {...} catch (Exception e) {...} que probablemente te resulte poco familiar. Si vienes de Pascal, ¡cuidado con el switch! No olvides poner break al terminar cada case.
Lección 6
En esta es la lección aprenderás a usar componentes para poder poner diferentes objetos gráficos. También verás los contenedores que son los objetos en donde están los componentes. Para ayudarte a recordar los métodos que tienes a su disposición es importante entender la estructura jerárquica de los componentes.
Se estudia aquí el manejo de los cursores.
Lección 7
Esta lección trata sobre uno de los temas más complejos del paquete java.awt. Aquí aprenderás a usar despliegues y con ello podrá desarrollar interfaces de usuario tan complejas como desees. Es casi imposible memorizar todo lo que convendría de este material. Así que lo importante es que lo entiendas y adquieras habilidad en consultar la documentacion del JDK para saber qué métodos hay disponibles en cada clase.  Los ejercicios son importantes pero resultan algo tristes pues antes de estudiar la lección 10 no se pueden aprovechar las interfaces desarrolladas. Para dar mayor interés a los ejercicios de la lección se les ha dado una continuación en la lección 10 donde se aprovechan sus interfaces para crear applets interactivos.
Lección 8
En esta lección conocerás las ventanas, los cuadros de diálogo y los menús.
Lección 9
Esta lección no debe ser muy difícil y en cambio debe ser divertida. Lo que en ella se aprende es el uso de las partes más sencillas del paquete java.awt. Presta atención especial a la clase Graphics. Es posible que estés acostumbrado a otras formas de programar dibujos. En Java siempre es necesario usar un objeto de tipo Graphics y también es indispensable obtenerlo a partir del componente en donde uno va a dibujar. Los componentes se estudiaronn en la lección 6, pero toda la lección usa como componente solamente applet para simplificar el tema. En los ejercicios creará varios applets sencillos y al terminar la lección podrás considerarse un programador principiante de applets.
Lección 10
El control de eventos es lo que permite crear interacciones en los programas gráficos. Sobra decir que esta lección es una de las más importantes del curso. Es necesario haber dominado el material anterior para poder concentrarse en los eventos y no distraerse con los componentes y los despliegues que ocupan buena parte del código pero que, para los propósitos de esta lección, son secundarios. Los ejercicos de esta lección son continuación de los de la lecciones anteriores. Con esta lección se redondea el estudio del paquete java.awt. En lecciones posteriores se estudiarán otros paquetes y técnicas para crear aplicaciones, pero ya se dará por conocido todo lo referente a las interfaces gráficas.
Lección 11
El material de esta lección no es muy complicado pero es importante. Se trata de aprender a organizar el trabajo de programación en clases reutilizables que puedan aprovecharse en diversas aplicaciones. El material del curso se desarolla alrededor del ejemplo de la calculadora y sus diferentes versiones. En los ejercicios se pide al alumno repetir la experiencia de la calculadora pero ahora él solo, con un ejemplo más sencillo: un convertidor de pesetas a euros. A pesar de tratarse de un asunto muy sencillo, el trabajo que se desarrolla para realizar correctamente el redondeo, justifica ampliamente desarrollar una clase reutilizable que contenga el código fundamental y que las aplicaciones usen este código y no alguna versión chapucera que uno ponga allí con prisas y sin los cuidados necesarios.
Lección 12
Mucho de lo que se estudia en esta lección ya se ha visto en diversos ejemplos. Es un buen momento para precisar los conceptos y aclarar todas las dudas que pueda tener sobre los applets. Al terminar esta lección ya deberás dominar los applets. Esta vez deberás comprender todo el código de los ejemplos y de los ejercicios, ya no deben quedar partes obscuras. A partir de este capítulo aprenderás a usar otras clases que te permitirán enriquecer tus applets y crear nuevas aplicaciones, pero ya no se volverá a estudiar la clase Applet.
Lección 13
Esta lección podría ser más bien un apéndice. No se pretende enseñar en ella el lenguaje JavaScript. Solamente se pretende mostrar algunos ejemplos de cómo se puede aprovechar este lenguaje para enriquecer páginas Web y sobre todo cómo se puede relacionar con los applet de Java. Los ejercicios pretenden dar experiencia al alumno sobre la preparación de applets para poderlos combinar con JavaScript.
Lección 14
En esta lección el alumno aprenderá  el uso de hilos para crear aplicaciones concurrentes.
Lección 15
Esta es una lección divertida. Sin duda es la más avanzada del curso y probablemente la más difícil, pero también debe ser la más satisfactoria. En esta lección el alumno aprenderá  las técnicas avanzadas de animación. El material sobre animación gira en torno a dos ejemplos: la mesa de billar y un applet configurable sobre el que se mueven unos textos rebotando en las paredes. Son ejemplos avanzados y contienen un número considerable de líneas de código. A pesar de ello no son demasiado grandes y su estudio dará una experiencia muy útil al alumno. La lección está organizada en dos páginas, no tanto por ser larga sino porque en ella hay varios applets que son Runnable y, si todos aparecieran en la misma página, el procesador podría tener demasiado trabajo.
Lección 16
Esta lección trata de directorios, ficheros, lectura y escritura en disco. Las clases File y RandomAccessFile se usan exclusivamente en aplicaciones independientes, nunca en applets.
Los ejercicios llevan al alumno a crear un editor de textos sencillo y un manejador de una tabla de datos.
Lección 17
Esta lección trata de los temas relacionados sobre corrientes de datos (Streams). El alumno debe separar mentalmente el tema de directorios y ficheros del de las corrientes de datos a pesar de que encontrará mucha relación entre ambos. Los Streams se usan tanto en relación con ficheros en disco como en las comunicaciones por internet y en otros campos. Para apoyar esta distinción, los ejemplos y ejercicios sobre Streams se presentan en la lección 18. Las razones que relacionan esta lección con la anterior son dos:
(1) tanto RandomAccessFile como los Streams usan métodos con los mismos encabezados para la escritura y la lectura,
(2) las clases sobre Streams están en el mismo paquete java.io que File y RandomAccessFile.
Lección 18
En este capítulo se estudian las clases del paquete java.net que son útiles para la programación de applets. El paquete java.net tiene otras clases útiles para aplicaciones distribuidas en internet pero estas no se estudian en la lección porque para aplicarlas sería necesario tener acceso como programador a un servidor de internet y en este curso eso no es posible. Esencialmente se estudia el tema de los URL's y se aplican las clases sobre Streams para leer datos en servidores de internet. Hay una aplicación que ejemplifica, sin profundizar mucho, el uso de los sockets.
ANEXO
Esta página pretende mostrar al alumno diversos temas importantes y útiles de Java que por el alcance del curso ya no pueden verse en detalle. El alumno podrá adentrarse en ellos si le interesan.