domingo, 29 de junio de 2008

Solución Guia N° 7


Les envio la solución de la guía 7, en un proyecto BlueJ.
Saludos,
IPM.

viernes, 27 de junio de 2008

Guia 7, preparatoria para la 3° prueba y exámen


Guia 7, preparatoria para la 3° prueba y exámen.

Saludos,
IPM.

jueves, 26 de junio de 2008

Guia 6, preparatoria para la 3° prueba


Guia 6, preparatoria para la 3° prueba.

Saludos,
IPM.

martes, 24 de junio de 2008

IPF1501: Unidad III - Clase Nº 6


Javadoc
Como documentar, de forma correcta, un código Java.

Saludos,
IPM.

sábado, 21 de junio de 2008

Segunda sesión taller Java III



Adjunto proyecto BlueJ de la segunda sesión taller Java III.

Temas
- Arreglos
- API Java
- Solución Guía 6

Link de documentación API Java 5.0
http://java.sun.com/j2se/1.5.0/docs/api/

Saludos,
IPM.

viernes, 20 de junio de 2008

Proyecto BlueJ, Solución Prueba 2



Les envio la solución la prueba Nº2.

Saludos,
IPM.

IPF1501: Unidad III - Clase Nº 5



Les envio la última materia del ramo que corresponde a:

- API Java
- Documentación
- ArrayList (Arreglos)


Saludos,
IPM.

sábado, 14 de junio de 2008

Primera sesión taller Java III


Ajunto primera sesión taller Java III.

Temas
- Packages
- Arreglos
- API Java

Link de documentación API Java 5.0
http://java.sun.com/j2se/1.5.0/docs/api/

Saludos,
IPM.

miércoles, 11 de junio de 2008

Fe de Erratas - Solución Guía Nº5, pregunta 3

Estimados, he cometido un error en la solución de la pregunta 3 de la guía Nº5.
El error se dá cuando quiero contar las palabras de un String y para aquello utilizo los espacios blancos, es necesario contarlos preguntando si letra == ' ' y NO SI SON DISTINTOS (letra != ' ').
Acá los métodos involucrados y sus respectivas correciones.

//Clase CuentaCorriente.java
public void setIdentificacion(String nIdentificacion) {
//DEBE TENER 3 PALABRAS
nIdentificacion = nIdentificacion.trim();
int contador = 0;
for (int i = 0; i <= nIdentificacion.length()-1; i++) {
char letra = nIdentificacion.charAt(i);
if(
letra == ' '){
contador++;
}
}
if(contador == 0){
identificacion = nIdentificacion;
}
}


//Clase Cliente.java
public void setNombre(String nNombre) {
//DEBE TENER 3 PALABRAS
nNombre = nNombre.trim();
int contador = 0;
for (int i = 0; i <= nNombre.length()-1; i++) {
char letra = nNombre.charAt(i);
if(
letra == ' '){
contador++;
}
}
if(contador == 2){
nombre = nNombre;
}
}

Mil disculpas por el error cometido.
Saludos,
IPM.

martes, 10 de junio de 2008

Curso de Nivelación Java III CONFIRMADO!!!


Curso de Nivelación Java III - Confirmado!!!
Fecha de realización:
Sábados 14, 21 y 28 de Junio
Horario:
09:00 a 14:00 hrs.
Lugar:

A Confirmar
(SC1, SC2 o Auditorio)
Sede Padre Alonso Ovalle.
No falten!!!

Jornadas de preparación y reforzamiento para la tercera prueba y exámen.

domingo, 8 de junio de 2008

Solución pregunta N° 3, de Guia 5


Estimados,
acá les dejo la respuesta a la pregunta 3 de la guia 5.
Saludos,
IPM.

sábado, 7 de junio de 2008

Tercera sesión Curso nivelacion Java II



Les envio la clase realizada en la sesión 3/3 del curso nivelación Java II.
Deben completar la guía 5 para practicar para la prueba. Cualquier duda por mail.

Saludos,
IPM.

viernes, 6 de junio de 2008

IPF1501: Unidad II - Clase Nº 4



Programación Orientada al Objeto.
Clases y objetos.


Saludos,
IPM.

jueves, 5 de junio de 2008

REUNIÓN AUDITORIO, TODOS LOS ALUMNOS DE INFORMÁTICA Y TELECOMUNICACIONES

Citación Inicio de Talleres Escuela de Informática y Telecomunicaciones

Estimados alumnos deben presentarse mañana VIERNES 6 de JUNIO en el auditorium de la sede según la siguiente programación:

8:30 horas Auditorium
Carrera de Analista Programador Computacional
Secciones 7 y 9

Carrera Administración de Redes Computacionales
Secciones 1 y 3


16:00 horas Auditorium
Carrera de Analista Programador Computacional
Sección 11

Carrera Administración de Redes Computacionales
Sección 5

19:00 horas Auditorium
Carrera de Analista Programador Computacional
Secciones 6 y 8

Carrera Administración de Redes Computacionales
Secciones 2 y 4


Saludos,
IPM.

Trabajo: Sistema Java, para sección 6.



Estimados les entrego el proyecto que deberán realizar, este proyecto generará 2 notas pertenecientes al ramo.

Saludos,
IPM.

Guia Nº 5 Ejercicios






Guía Nº 5 de ejercicios preparatoria para la prueba IPF1501 número 2.

(Sección 6: a realizarse el día Viernes 13/06/2008)

Saludos,
IPM.

martes, 3 de junio de 2008

CORFO ofrece 1.000 becas de inglés intensivo para técnicos y profesionales del área tecnológica

Estimados,
Se busca preparar en el corto plazo a profesionales chilenos que puedan aprovechar las oportunidades que ofrece la instalación de empresas extranjeras en el país. Se costeará el valor total de un curso intensivo de al menos 350 horas con un mínimo de 15 horas semanales.

CORFO abre a partir del 2 hasta el 30 junio, las postulaciones para el Programa de Perfeccionamiento Intensivo en Inglés, que beneficiará a 1.000 profesionales y técnicos del área de las Tecnologías de Información y Comunicaciones, TICs.

La iniciativa, enmarcada en los esfuerzos del Gobierno por impulsar el desarrollo de capital humano, tiene un presupuesto de $1.500 millones y busca preparar con las competencias idiomáticas necesarias a profesionales que puedan desenvolverse posteriormente en la industria de servicios globales, liderada por las multinacionales que están eligiendo a Chile como plaza de inversión y operación.

La convocatoria es para chilenos titulados, egresados o alumnos del último año de carreras técnicas y universitarias del sector de las TICs que tengan un nivel medio de inglés acreditado.

Los cursos se iniciarán en agosto-septiembre y se impartirán en Santiago, en esta primera etapa. Serán dictados por diversas instituciones expertas en formación en inglés, de manera que los becados puedan elegir la alternativa más conveniente.

"Esta industria tiene un inmenso potencial y primordialmente exporta capital humano, es decir exporta la capacidad de sus profesionales. CORFO ha hecho un gran esfuerzo en generar un registro de 37 mil personas que a nivel nacional dominan el inglés, pero necesitamos a 28 mil personas más para poder absorber la demanda de inversión que hay en Chile", agrega Mateo Buninich, presidente de Amcham e integrantes del Consejo.

Para mayor información:

Noticia oficial, página CORFO
Formulario de postulación

Suerte!

Saludos,
IPM.

PD: Lo más destacado de la noticia es que el gobierno, a través de la CORFO, está apoyando a los técnicos y profesionales informáticos del mañana, todo esto para poder dar abasto a la demanda que existe hoy en día de mentes chilenas y ojalá con conocimientos avanzados de Inglés.
Tu puedes ser el próximo, todo depende de tí...

sábado, 31 de mayo de 2008

Segunda sesión Curso nivelacion Java II



Les envio la clase realizada en la sesión 2/3 del curso nivelación Java II.
Deben completar la clase Sala (todos los métodos que faltan y el constructor).

Saludos,
IPM.

jueves, 29 de mayo de 2008

Proyecto BlueJ Sistema Inscripcion (Arreglos)



Clases para sistema de inscripcion alumnos.
Proyecto BlueJ de manejo de arreglos.

Saludos, IPM.

domingo, 25 de mayo de 2008

Cuando se sientan desmotivados...

Según estudio
Carreras tecnológicas recuperan inversión en sólo cuatro años

Mientras un estudiante de Ingeniería Civil recuperará la inversión en su carrera en 13,8 años y uno de Periodismo lo hará en 20,3 años, un ingeniero informático puede recobrar el costo de sus estudios en 5,6 años y un Analista de Sistemas lo hará en menos de lo que dura su carrera, según cifras elaboradas por Trabajando.com y difundidas por ACTI.

SANTIAGO, mayo 2008.- Un alentador panorama están ofreciendo en nuestro país las carreras relacionadas con el área de la tecnología. Así lo demuestran las últimas cifras de Trabajando.com dadas a conocer por la Asociación Chilena de Empresas de Tecnologías de Información (ACTI), que indican que la tasa promedio en que un profesional del sector recupera la inversión hecha en sus estudios es de cuatro años, cifra mucho más baja que carreras tradicionales como Ingeniería Civil, Psicología o Ingeniería Comercial.

Así, mientras un estudiante de Ingeniería Civil recuperará la inversión en su carrera en 13,8 años y uno de Periodismo lo hará en 20,3 años, un ingeniero informático puede recobrar el costo de sus estudios en 5,6 años. Más aún, un Analista de Sistemas, cuyos estudios se completan en dos años, puede recuperar la inversión incluso en menos tiempo del que dura la carrera, con 1,6 años. Todo esto considerando el supuesto de que se destine el 30% de los ingresos a pagar la inversión y considerando que la deuda tenga un interés del 7% real anual.

"Estos datos indican que existe una alta demanda y valoración de los profesionales calificados por parte de la Industria Tecnológica, que requiere permanentemente de recurso humano capaz de participar y entregar aportes valiosos al desarrollo que estamos viendo en el sector en la actualidad", comentó Raúl Ciudad, presidente de ACTI.

Por otra parte, un estudio elaborado por Cisco dado a conocer recientemente, indicó que nuestro país tiene un déficit del 36% en profesionales de tecnología, específicamente en el área de conectividad y redes, lo que para el año 2010 podría incluso alcanzar el 43%. Esta falencia podría repercutir en un aumento en el nivel de los sueldos de los técnicos y profesionales del sector.

Es así como, según el último Informe de Remuneraciones de la Industria Tecnológica, elaborado por PriceWaterhouse Coopers para ACTI, los cargos propios de la industria TI, como analistas, programadores o ingenieros de sistemas, alcanzan altas rentas en las empresas del sector tecnológico, superando en cerca de un 10% al mercado general. Un analista programador, por ejemplo, en el mercado TI puede ganar en promedio $1.267.000.

"Es clave potenciar la preparación de nuestros jóvenes hacia las carreras tanto técnicas como profesionales relacionadas con la tecnología, para que el país aproveche la oportunidad de seguir creciendo y desarrollar la industria del offshore, que podría ser una excelente forma de que Chile se sume a las ventajas de la economía globalizada", explicó Ciudad.

Revisa las carreras más rentables

Fuente: Invertia - Terra, Domingo 25 de Mayo de 2008.

Saludos IPM.
PD: Cabe destacar que solo alcanzarán estas rentas los profesionales mejor preparados, es decir, solo los que están en constante esfuerzo por superarse, y que no sólo se quedan con lo enseñado en clases, si no que invierten parte de su tiempo libre en investigar y aplicar conocimientos adquiridos.

sábado, 24 de mayo de 2008

primera sesión Curso nivelacion Java II



Les envio la clase realizada en la sesión 1/3 del curso nivelación Java II.

Saludos,
IPM.

jueves, 22 de mayo de 2008

Curso de Nivelación Java II CONFIRMADO!!!


Curso de Nivelación Java II - Confirmado!!!
Fecha de realización:
Sábados 24, 31 de Mayo y 7 de Junio
Horario:
09:00 a 14:00 hrs.
Lugar:

A Confirmar
(SC1, SC2 o Auditorio)
Sede Padre Alonso Ovalle.
No falten!!!

Jornadas de preparación y reforzamiento para la segunda prueba.

Ejemplo Arrays y Objetos como atributos de otros objetos



Proyecto BlueJ donde aparace el ejemplo realizado en clases que utiliza un arreglo de String y un Objeto de clase Sala como atributos de la clase Listado.

Saludos,
IPM.

domingo, 18 de mayo de 2008

Intente realizar lo siguiente

1°) Cree en las clases Alumno, Lapiz, Notebook, Mesa, Silla un método llamado imprimirInfo() que muestre por pantalla el valor de sus atributos.

2°) Cree en la clase Sala un método llamado imprimirInfo() que utilice el método imprimirInfo() de todos sus atributos.

3°) Cree una clase ejecutable que se llame Listado, que genere un objeto de la clase Sala, saque cada uno de los objetos almacenados en los atributos, setee valores a cada atributo de esos objetos y vuelva a ingresarlo al objeto de la clase Sala.

4°) Finalmente invoque al método imprimirInfo() de la clase Sala, y deberia salir en pantalla un listado con todos los valores que le ingreso a los atributos de cada objeto.
Si algún valor del listado es null o 0 (cero), quiere decir que ha cometido un error.

Saludos
IPM.

viernes, 16 de mayo de 2008

ATENCIÓN ALUMNOS DuocUC

Estimados alumnos de DuocUC,
se necesitan DONÁNTES DE SANGRE de CUALQUIER TIPO para Felipe Berrios, alumno de DuocUC Sede Padre Alonso de Ovalle de la carrera de Administración de Redes Computacionales, jornada diurna.
Felipe sufrío un grave accidente el pasado día Miércoles 14 de Mayo, cuando un ascensor cayó al vacio en una clínica de Providencia.
Los donantes deberán dirigirse a Ramón Carnicer #185,
Hospital del Trabajador (Metro Parque Bustamante)
cualquier día hasta las 18:30 hrs.

Para mayor información:
"Las Ultimas Noticias" día 15 de Mayo, página 4.
"Las Ultimas Noticias" día 16 de Mayo, página 10.

Desde ya muchísimas gracias,
Saludos IPM.

jueves, 15 de mayo de 2008

Clases colaboradoras



Completar para mañana Viernes 16 de Mayo.

Saludos,
IPM.

viernes, 2 de mayo de 2008

Clase preliminar "Ciclos"

Estimados,
acá está la clase llamada "Ciclos" que realizamos en clases,
la idea es que terminen la Guía Nº4 completando la clase adjunta
y la envien por email antes de comenzar la clase del jueves.

ivan.paez.mora@gmail.com
asunto Guia Nº4: Su nombre.

Saludos, IPM.

jueves, 1 de mayo de 2008

Guia Nº 4 Ejercicios

Estimados les envío una guía de ejercicios para que practiquen CICLOS, CONDICIONES Y MÉTODOS DE LA CLASE STRING, favor de realizarla y consultarme sus dudas.

Saludos, IPM


domingo, 20 de abril de 2008

Clases que usan otras clases

Aquí les dejo las clases CuentaVista y Banco que realizamos en la última clase de nivelación Java, las cuales interactúan entre si creando objetos e invocando sus métodos.
Saludos y hasta pronto...
IPM.


viernes, 18 de abril de 2008

Guia Nº 2B Ejercicios

Estimados les envío una guía de ejercicios para que practiquen para la PRUEBA, favor de realizarla y consultarme sus dudas.

Saludos, IPM


martes, 15 de abril de 2008

Guia Nº 3 Ejercicios

Estimados, llegó la hora de aplicar los conocimientos adquiridos hasta ahora.
Valga decir:

definición de una Clase, accesadores, mutadores, constructores, atributos, métodos, variables locales, if/else (anidados) y operadores lógicos AND(&&) y OR(||).

A continuación les adjunto una guía donde se deben realizar clases de verdad!, aplicando todos los conocimientos que tienen o que sospechan sobre distintas máquinas que existen en el mundo cotidiano e intentar llevarlos al mundo Java.

Consejo: No es fácil, pero tampoco imposible, la idea es que empiecen a pensar como Analista Programador y que lean muy bien las preguntas tomando decisiones de como llevar lo que les piden a un programa computacional sin miedo a equivocarse (cuando uno se equivoca es cuando más aprende).

Desde ya, cualquier consulta al mail, vía chat en gmail o en clases.
Saludos y suerte!
IPM.


Guia Nº 2 Ejercicios

Estimados les envío una guía de ejercicios para que practiquen, favor de realizarla y consultarme sus dudas.

Saludos, IPM


martes, 8 de abril de 2008

Guia Nº 1 Ejercicios


Estimados les envío una guía de ejercicios para que practiquen, favor de realizarla y consultarme sus dudas.

Saludos, IPM.


sábado, 5 de abril de 2008

Clase Silla realizada en curso de nivelación

public class Silla{
public String color;
private int patas;

public Silla(){
color = "Negro";
patas = 0;
}

public Silla(String nuevoColor, int nuevoPatas){
color = nuevoColor;
patas = nuevoPatas;
}

public String getColor(){
return color;
}

public void setColor(){
color = "NEGRO";
}

public void setColor(String nuevoColor){
color = nuevoColor;
}

public int getPatas(){
return patas;
}

public void setPatas(int nuevoPatas){
patas = nuevoPatas;
}

public void imprimirInformacion(){
System.out.println(getColor());
System.out.println(getPatas());
}
}

lunes, 31 de marzo de 2008

Curso de Nivelación Java - CONFIRMADO!!!

Curso de Nivelación Java -Confirmado!!!
Fecha de realización:
Sábados 5, 12 y 19 de Abril.
Horario:
10:45 a 14:30 hrs.
Lugar:
Auditorio (Subterráneo),
Sede Padre Alonso Ovalle.

No falten!!!

Los tópicos a tratar son los siguientes:
  • ¿Que es java?
  • La simplicidad de Java
  • Tipos de Java
  • Breve Historia
  • Arquitectura
  • Programación Orientada a Objetos (POO)
  • Conceptos (POO)
  • Características (POO)
  • IDE's
  • Variables
  • Operadores
  • Estructuras de control
  • Entre otros.
Saludos,
IPM.

viernes, 28 de marzo de 2008

Suspención de clases

Señores hoy, Viernes 28 de Marzo, se suspenden las clases a partir de las 19:00 hrs.
La clase se recuperará en el curso de nivelación Java a realizarce pronto, es obligación que se inscriban.

Saludos y muy buen fin de semana.
IPM.

martes, 25 de marzo de 2008

IPF1501: Unidad I - Clase Nº 3



Elementos básicos del lenguaje

Variables
Palabras claves
Ejemplos de identificadores
Tipos de variables
Tipos básicos (primitivos)
Tipos Referencias (Objetos)
Constantes

Operadores
Operadores aritméticos
Operadores aritméticos unarios
Operadores de relación
Operadores lógicos
Tabla de la Verdad
Operadores de asignación abreviada
Operador cast

Estructuras de control
Bloque de instrucciones
If-else
Ciclos while
Ciclos do-while
Ciclos for


miércoles, 19 de marzo de 2008

Curso Nivelación Java

Click en la imágen para agrandar

Atención Alumnos,
Debido a solicitudes recibidas se realizará un "Curso de Nivelación Java" pueden asistir todos los alumnos que no entiendan que es Java o si quieren alumnos que deseen repasar toda la materia vista hasta ahora conmigo. Les recomiendo que asistan todos los alumnos de la sección 6 (la que tiene clase conmigo) y ojalá las otras secciones también.
Por favor les pido que si tienen algún conocido o escuchan comentarios de alumnos de otras secciones o diurnos, les informen de este curso.
Muchas gracias,

PD: Es absolutamente gratis!!!

IPM.

Clase Java que crea un objeto Alumno

Estimados, les dejo la Clase Alumno que hicimos el día Martes donde creamos un objeto usando new. Recuerden que si "COMPRENDEN" que se hace al momento de hacer new ya han comprendido Java!!!.



Suerte y saludos, que tengan buen fin de semana,
IPM.


lunes, 17 de marzo de 2008

IPF1501: Unidad I - Clase Nº 2



A continuación los temas a tratar en la segunda clase.

Desarrollo de programas usando Java

- Configuración del ambiente de desarrollo
- Pasos a seguir

Hola Mundo, nuestro primer programa en Java

- Escribiendo el código
- Compilando el código (generando el bytecode)
- Ejecutando el programa Java

De que nos sirven los IDE’s

- BlueJ
- Instalación
- Primer uso
- Nuevo proyecto para empezar

Programas a realizar usando BlueJ

- HolaMundo

Estructura de una clase

Inténtalo tú
Crea una clase Automovil con los atributos marca, modelo, color, numero de puertas y precio, que nos permita ingresar (por separado o todos juntos en el constructor) los valores correspondientes a la siguiente tabla, intentando representar cada una de las filas como un objeto de la vida real en nuestro sistema. Además agregaremos un método que nos permita imprimir en pantalla la información que contiene el objeto con el siguiente formato.

Marca:
Modelo:
Color:
Puertas:
Precio: $

Marca

Modelo

Color

Puertas

Precio

Chevrolet

Corsa

Gris Plata

3

$ 4.500.000.-

Jeep

Compass

Verde Oscuro

5

$11.990.000.-

Chrysler

C300

Blanco

5

$30.000.000.-

Suzuki

Alto

Azul

3

$3.500.000.-



jueves, 13 de marzo de 2008

IPF1501: Unidad I - Clase Nº 1



¿Qué es Java?
No es solo un lenguaje de programación, si no que una “PLATAFORMA” para el desarrollo de aplicaciones.
Es completamente orientado a objetos (OO). Usa una sintaxis conocida, tomando sus estructuras sintácticas del lenguaje C++, además, omite algunos conceptos complejos de programación como el manejo de memoria a bajo nivel (Punteros), eliminando de raíz la fuente de muchos problemas en las aplicaciones, problemas casi siempre de un muy alto costo de corrección debido a su complejidad.
La plataforma Java se compone de los siguientes elementos:
  • Un lenguaje de programación orientado a objetos (POO). Su sintaxis es similar a la de C++.
  • Un ambiente de desarrollo capaz de transformar un programa en lenguaje Java en un programa en código Java denominado Java Byte Code. El Byte Code no corresponde al lenguaje de una máquina en particular, sino que a un código intermedio independiente de la plataforma en la que se ejecutará la aplicación (JDK, refiérase Arquitectura Java).
  • Un ambiente de ejecución, al que se le denomina Maquina Virtual de Java o Java Virtual Machine (JVM). En esencia la aplicación corre sobre la JVM y es esta es la que se preocupa que conversar con el SO correspondiente. Es la encargada de implementar las bibliotecas estándares o librerías (JRE, refiérase Arquitectura Java).
La plataforma de Java otorga un ambiente de desarrollo multiplataforma, gracias a la JVM, en el que las aplicaciones se escriben y prueban en una única máquina, para luego migrarlas o transportarlas, sin necesidad de modificaciones, entre distintos SO (Write once, run anywhere).

La simplicidad de Java
Java es un lenguaje moderno completamente OO, lo que permite a los programadores hacer un uso en forma natural de las nuevas técnicas de análisis y diseño de aplicaciones. Utilizando la experiencia aprendida de sus predecesores (C y C++) Java ha eliminado las complejidades que constituyen un riesgo para el desarrollo de aplicaciones.
  • Java no posee aritmética de punteros, práctica que constituye el origen de muchos errores de programación, además de ser muy difíciles de detectar y corregir.
  • Java posee un recolector de basura o Garbage Collector (GC), perteneciente a la JVM, que tiene la responsabilidad de liberar la memoria reservada por nuestras aplicaciones que ya no se esté utilizando.
  • Java puede ser utilizado tanto en celulares, electrodomésticos como en Internet (Web).
  • Permite la realización de programas más grandes y complejos, con equipos de trabajo más pequeños y en menos tiempo (No muy cercano a la realidad :().

Tipos de Java

  • J2SE/JSE – Java StandardEdition, orientado al desarrollo de aplicaciones de escritorio (similares a VB) y, lo más importante, se utiliza en la creación de librería para ser utilizadas en los distintos tipos de Java.
  • J2EE/JEE – Java Enterprise Edition, como su nombre lo dice está orientado al desarrollo de sistemas empresariales, consta de una serie de normas que determinan patrones y comportamientos, orientado fuertemente a aplicaciones Web. Es en este tipo donde aparecen elementos como JSP, Servlet, Applet, EJB, entre otros.
  • J2ME/JME – Java Micro Edition, orientado al desarrollo de aplicaciones en dispositivos móviles como celulares, GPS, PALM, PocketPC, etc.

Historia
Línea de tiempo
(Fuente: PC Magazine, vol. 17, No. 7, 7 Abril de 1998).

Enero 1991
Java nace como Oak, con el objetivo de permitir el desarrollo de aplicaciones para electrodomésticos. Uno de los personajes más relevantes del “Green Team” es James Gosling.

Marzo 1993
SUN enfoca Oak hacia un proyecto de televisión interactiva de la Time Warner. Silicon Graphics se gana la propuesta.

Agosto 1994
Se desecha el proyecto, y se pierde la propuesta.

Julio 1994
Sun orienta el potencial de Oak hacia Internet, donde se requiere correr aplicaciones en estaciones en las que no se tiene el control sobre su configuración, apuntando la tecnología hacia su actual funcionalidad.

Mayo 1995
Java es oficialmente presentado en la Sun World 1995. Netscape es la primera empresa en adherirse al ambiente Java. Sun libera una versión alfa de su navegador de Internet llamado Hot Java.

Diciembre 1995
Symantec libera el primer ambiente de desarrollo Java para Windows 95 y Windows NT, llamado Symantec Café, el que tiene un éxito inmediato.

Enero 1996
Sun forma JavaSoft, para el desarrollo de productos basados en Java y para trabajar con otros desarrolladores.

Enero 1996
Sun libera el ambiente de desarrollo Java 1.0 (JDK 1.0). Incluye el Java Applet View, el compilador de Java y la primera JVM (JRE).

Febrero 1997
Sun libera JDK 1.1, que incluye la especificación para Java Beans.

Abril 1997
Sun anuncia Personal Java orientado a desarrollar aplicaciones en dispositivos del hogar y oficina.

¡JAVA HA VUELTO A SU ORIGEN!

Arquitectura
La arquitectura de Java consta de dos grandes piezas conocidas bajo las siglas JDK (Java Development Enviroment) y JRE (Java Runtime Enviroment), quienes tienen distintas responsabilidades a la hora de compilar y ejecutar un programa Java.

JDK
Es el encargado de proveer las herramientas necesarias para llevar a cabo la COMPILACIÓN (Archivo.java) del código fuente Java y transformarlo en Byte Code (Archivo.class).
Algunos incluyen otras piezas tales como editores de texto sensible y herramientas de debug (Depuración, búsqueda de errores), estos ambientes reciben el nombre de IDE (Integrated Development Enviroment), en este curso utilizaremos BlueJ.

JRE
Es el ambiente que provee las herramientas necesarias para llevar a cabo la EJECUCIÓN de un Byte Code. Es donde se encuentra la JVM, además de un módulo conocido como Cargador de Clases y un Intérprete de Java.


Programación Orientada a Objetos
La Programación Orientada
a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas computacionales. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos entre ellos Java.


Conceptos
Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:

Objeto: Entidad provista de un conjunto de propiedades o atributos y de comportamiento o funcionalidad conocidos como métodos. Corresponden a los objetos reales del mundo que nos rodea, o a objetos internos del sistema o programa. Corresponde a una instancia de una clase.

Clase: Definiciones de las propiedades y comportamientos de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

Propiedad o atributo: Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.

Método: Algoritmo asociado a un objeto (que se define en las clases), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.

Evento: Un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.

Mensaje: Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.

Estado interno: Es una propiedad invisible de los objetos, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos).

Características
Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como "orientado a objetos", pero hay un consenso general en que las características siguientes son las más importantes:

Abstracción: Es el proceso de generalización o agrupamiento de objetos, es decir, es el proceso en el cual se intenta mirar el modelo de objetos desde un nivel más alto buscando un objeto que contenga de forma generalizada a otros.
Por ejemplo, imaginemos que estamos en casa sentados viendo TV de pronto nuestra atención se centra en nuestros perros (para este caso de nombre Pillin y Camila), vamos a aplicar el concepto de abstracción e intentemos llevar a Pillin y Camila a un diagrama OO.

Pillin
y Camila son objetos (tienen características distintas, como color, tamaño, etc.) si quisiéramos representar a Pillin y Camila en un nivel más abstracto deberíamos decir que son de la clase Perro, ahora si queremos subir un nivel de abstracción más podríamos decir que la clase Perro y la clase Gato (que es una abstracción de las mascotas de mi vecino llamados Luna y Estrella) corresponden a la clase Mamífero y si quisiéramos generalizar aún más subiendo otro nivel de abstracción podríamos decir que la clase Mamífero extiende (extends) de la clase Animal.

Herencia: Como en la vida real, la herencia es el legado o cualidad que nos dejan nuestros antecesores o personas mayores (en la mayoría de los casos), en Java sufre una leve modificación y se dice que es el mecanismo en el cual “un Padre hereda (extends) cualidades a un Hijo y esas cualidades son nada más que atributos o métodos, en otras palabras código Java, por esta razón la herencia se utiliza para ordenar nuestro esquema de clases y para la reutilización de código.

Por ejemplo recordemos el esquema anterior basándonos en la herencia y se podría traducir de la siguiente manera:

La clase Perro extiende de la clase Mamífero, quien a su vez extiende de la clase Animal.

Eso quiere decir que todas los atributos y métodos que tiene implementada la clase Animal se encuentran, también, en la clase Mamífero y que a su vez todas las propiedades y métodos de la clase Mamífero se encuentran en la clase Perro.

¿La clase Perro posee atributos y métodos de la clase Animal?
R: Si, al hacer herencia se heredan todos los atributos y métodos inclusive los ya heredados anteriormente.

La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes.

Encapsulamiento: Es el término utilizado en la POO que describe la acción en la cual se definen métodos y propiedades (como definición, no sus valores) especificas de una clase, que las caracteriza en el mundo real. Está íntimamente relacionada con el Principio de ocultación de información, definiendo que partes estarán ocultas y cuales visibles.

Por ejemplo, tenemos la clase Ampolleta y vamos a aplicar la encapsulación para poder definir su estructura de clase (definir atributos y propiedades, y sus respectivas visibilidades):

Atributos o valores IMPORTANTES de una Ampolleta

  • Estado (si esta encendida o apagada) (Privado)

Métodos IMPORTANTES de una Ampolleta

  • Encender (Público)
  • Apagar (Público)
  • Energizar la ampolleta (Privado)
  • Desenergizar la ampolleta (Privado)

En relación a la visibilidad de los atributos, recordemos que los atributos son variables que contienen datos o valores y en Java SIEMPRE los datos son privados. A menos que explícitamente te definan lo contrario, el manejo de los valores de los atributos de Java SIEMPRE debe ser a través de métodos de la clase y nunca directamente utilizando los atributos.
Ahora, en los métodos encontramos algunos públicos y otros privados y esto depende del aislamiento que se quiera tener en los sistemas, solo los métodos públicos podrán ser
accesados desde otros objetos, mientras que los métodos privados solo se podrán invocar desde la misma clase.
En este caso se declararon dos métodos públicos que corresponde al conocimiento natural de las acciones que realiza una ampolleta Encender y Apagar estos pueden ser invocados desde otros objetos de nuestra aplicación, quienes a su vez (y de forma interna, en la misma clase) invocan a los métodos privados Energizar y Desenergizar.

Polimorfismo: Se dice que dos objetos son polimórficos cuando poseen una interfaz común (generalmente una clase abstracta) pero que al momento de heredar y sobrescribir los métodos tienen un comportamiento distinto.
Este término es el más complicado de entender y generalmente se le da menos importancia, pero es uno de los más poderosos ya que permite tener una alta cohesión y un bajo acoplamiento de los modelos de clases.

Por ejemplo, tenemos una clase abstracta llama Figura que tiene un método implementado llamado Dibujar Contorno, de esta clase extienden dos llamadas Triangulo y Cuadrado en ambas se sobrescribe el método de la clase padre y se implementa el necesario para cumplir con el objetivo: Dibujar la figura correspondiente. A simple vista nos damos cuenta que ambas clases son polifórmicas ya que ambas heredan de la clase Figura, ambas sobrescribieron el método Dibujar Contorno y al llamar al mismo método pero en clases distintas producen resultado completamente distintos (en este caso un triángulo y un cuadrado respectivamente).

Cohesión: Que todas las clases tengan un fin en común y lógico, por ejemplo en una clase Auto se debería implementar atributos y métodos que me permitan acelerar, frenar, doblar (Izq. y Der.) y NO que se preocupe de los datos pertenecientes al seguro. Un buen diseño siempre busca mantener una ALTA COHERSIÓN.

Acoplamiento: Es la interdependencia que existe entre clases, esto ocurre normalmente cuando una clase necesita saber demasiados detalles internos de otra clase para su buen funcionamiento, es decir rompe con el esquema del encapsulamiento y produce que la mantención del sistema sea tediosa y complicada (no es el principio de Java). En un buen diseño mientras más BAJO ACOPLAMIENTO mejor.

Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.


martes, 11 de marzo de 2008

Introducción a la Programación, DuocUC.

Profesor de "Introducción a la programación", carrera "Analista Programador Computacional".
DuocUC, Sede Alonso de Ovalle.

Esta vía será usada para compartir archivos, noticias e información referentes al curso.

Descripción curso:
Nombre: Introducción a la programación.
Sigla: IPF1501.

Temario del curso:
Unidad I) Fundamentos lenguaje programación Java.
Unidad II) Clases y Objetos.
Unidad III) Bibliotecas y documentación.

Calificaciones:
3 pruebas (1 por unidad).
2 trabajos individuales (Unidades II y III).
* cada nota equivale a un 20% de la nota presentación exámen.

Programas útiles para el ramo:
BlueJ 2.0: Entorno de desarrollo (IDE).

Para Windows
Para MacOS X
Otros SO

JDK 5.0: Kit desarrollo Java.
java.sun.com

Bibliografía:
Piensa en Java 3º Edición, Bruce Eckel.

¿Quieres saber cuanto gana un Informático con conocimientos de Java, en el mundo?

Ni te lo imaginabas?... Ya sabes asi que a estudiar!!! :)