SlideShare una empresa de Scribd logo
1 de 81
TALLER DE INTRODUCCIÓN A LA PROGRAMACIÓN Ezequiel Aranda Sun Campus Ambassador
Disclaimer ,[object Object]
Sun Microsystems is not responsible for any inaccuracies in  the contents.
This slides are Licensed under a Creative Commons  Attribution – Noncommercial – Share Alike 3.0  ,[object Object]
Agenda Parte 1: ¿Qué es una computadora? Parte 2: Java Parte 3: Herramientas para enseñar Java
PARTE 1 ¿Qué es una computadora?
Todo esto no es tan nuevo... En el siglo VIII, el matemático e ingeniero Muhammad ibn Musa al-Khwarizmi, inventó el algoritmo. 1642 – Blaise Pascal inventa la “Pascalina” ( ninguna relación con la “Pastalinda” ).
Todo esto no es tan nuevo... (II) 1801 – El francés Joseph Marie Jacquard, utilizó un mecanismo de tarjetas perforadas para controlar el dibujo formado por los hilos de las telas confeccionadas por una máquina de tejer. 1822 – Charles Babbage completó su “Artefacto de la diferencia”. 1843 – Lady Ada Augusta Lovelace sugirió la idea de que las tarjetas perforadas se adaptaran de manera que  causaran que el motor de Babbage repitiera ciertas operaciones .
Todo esto no es tan nuevo... (III) 1854 – El desarrollo del Álgebra de Boole fue publicado por el lógico inglés George Boole. 1919 – El primer circuito multivibrador o biestable (en léxico electrónico flip-flop) fue desarrollado por los inventores americanos W.H. Eccles y F.W. Jordan 1924 - Walther Bothe  construyó  una  puerta   lógica  AND 1936 – Alan Turing describe la  máquina  de Turing
Todo esto no es tan nuevo... (IV) 2004 – Mark Zuckerberg funda Facebook, y la mayoría de las personas de esta generación descubren el resultado de cientos de años de investigación científica.
Entonces, ¿Quien inventó la computadora? En realidad, la computadora no es un invento de una persona en particular.  Es el resultado evolutivo de ideas y realizaciones de muchas personas relacionadas con áreas tales como la electrónica, la mecánica, los materiales semiconductores, la lógica, el álgebra y la programación.
Volviendo a la pregunta original: ¿Qué es una computadora? Una computadora es una máquina de proposito general que recibe y procesa datos para convertirlos en información útil Esta formada por numerosos componentes que, en combinación pueden ejecutar con exactitud y rapidez una gran variedad de secuencias o rutinas precisamente determinadas.
Volviendo a la pregunta original: ¿Qué es una computadora? (II) La computadora, además de la rutina o programa informático, necesita de datos específicos  ("Input")  que deben ser suministrados, y que son requeridos al momento de la ejecución,  para proporcionar el producto final del procesamiento de datos, que recibe el nombre de  "output" .
Volviendo a la pregunta original: ¿Qué es una computadora? (III) La información puede ser entonces utilizada, reinterpretada, copiada, transferida, o retransmitida a otra(s) persona(s), computadora(s) o componente(s) electrónico(s) local o remotamente usando diferentes sistemas de telecomunicación, pudiendo ser grabada, salvada o almacenada en algún tipo de dispositivo o unidad de almacenamiento.
Entoces, ¿Cómo funciona? Arquitectura de von Neumann. Unidad aritmético lógica (ALU) Unidad de control  Memoria central Dispositivos de entrada y salida (E/S)
Entendido. Ahora a darle ordenes: Mmmm... FAIL. Pensándolo bien: ¿Cómo hago para decirle a cada componente que hacer y que la combinación de esas ordenes de lugar a la función que yo quiero realizar?
¿En que idioma habla una computadora? Habla en lenguaje de máquina. Son secuencias de unos y ceros que representan instrucciones. Y cada máquina programable tiene su propio lenguaje de máquina (aunque suelen ser similares).
¿O sea que un programador escribe secuencias de unos y ceros durante 8 horas diarias? Aunque eso haría más sencillo responder a muchas incógnitas sobre los programadores, no. Existen lo que se conocen como “lenguajes de programación”, que básicamente son instrucciones de alto nivel que luego son traducidas a código de máquina.
Lenguaje de programación Existen dos tipos de lenguaje de programación: de bajo nivel. de alto nivel. El “nivel” hace referencia al nivel de abstracción respecto del lenguaje de máquina.
Lenguaje de alto nivel Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. Ada Basic C++ COBOL Fortran Java Python Perl Pascal PHP PL/SQL
Genial, ya tengo la definición de lenguaje. Pero aún no tengo ni idea de como escribir un programa Los lenguajes de programación, cuentan todos en su haber con un juego de "instrucciones". Un  programa   es una secuencia de instrucciones   pensada para resolver un problema. Si no sabemos resolver el problema, no podremos escribir el programa. A uno se le puede ocurrir una manera de resolverlo. A otra persona, otra. Este “método” con el que resolvemos el problema, es lo que se llama  “algoritmo” .
Algoritmo Un algoritmo no es más que una secuencia de pasos que, seguidos uno a uno, me permiten resolver un problema.  Por ejemplo, para ver una película: 1. Elijo una película de las de mi colección. 2. Compruebo SI TV y vídeo están conectadas a la red (y procedo). 3. SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con la vídeo. 4. Abro el estuche de la película. 5. Saco la película de su estuche.
Algoritmo (II) 6.  Introduzco  la  película  en la  vídeo.   Dejo  el  estuche  sobre la vídeo. 7. SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. 8. Tomo los controles remotos (el del TV y el de la vídeo). 9. Me pongo  cómodo. 10. Pulso PLAY en el control de la vídeo. Dos detalles importantes: 1. La descripción de cada paso no me lleva a ambigüedades: los pasos son absolutamente explícitos y no inducen a error. 2. El número de pasos es finito.
Ejercicio 1 Intentar escribir una sucesión de pasos para alguna tarea cotidiana.
Elementos básicos para describir algoritmos Marcadores de principio fin. Variables: espacios de memoria donde almacenar valores que pueden variar (de ahí su nombre) durante la ejecución del programa.  Tienen un tipo y un valor . Asignaciones: I <- 3 Estructuras de control de flujo.
Estructuras de control de flujo Su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo.  Pueden ser  1. Secuenciales 2. Selectivas 3. Repetitivas
Secuencias Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero se haya escrito será el que primero se ejecute. inicio mostrar por pantalla 'dame el radio del circulo' leer del teclado la variable radio area <- 3.14159*radio mostrar por pantalla 'el area del circulo es:' mostrar por pantalla el contenido de la variable area fin
Selección Son los conocidos &quot;si... entonces&quot;. Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple, entonces realizaré una serie de pasos.  inicio mostrar por pantalla 'introduce un numero' leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar por pantalla 'la raiz cuadrada es:' mostrar por pantalla raiz fin del SI fin
Bucles, estructuras repetitivas En este tipo de estructura, el cuerpo del buclese repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis. Su estructura, genéricamente, es esta: mientras(condición) hacer acción 1 ........ acción N fin mientras
Bucles, estructuras repetitivas (II) Una forma diferente de escribir una estructura “mientras”, que es más conveniente y resumida en ciertas ocasiones es el “for” o “desde”. inicio  desde Contador<-300.000.000 hasta Contador=1 , decrementar, hacer mostrar por pantalla 'Prometo ser bueno O:-)' fin desde fin
Ejercicio 2 Realizar un algoritmo para calcular la suma de los números del 1 al 10 .
Genial, ya tengo mi primer programa, ¿Y ahora? Una vez que tenemos un programa escrito en pseudocódigo (nombre que recibe esa forma en la que veníamos escribiendo los algoritmos en las slides anteriores), el primer paso es traducirlo a algún lenguaje de programación (más adelante podremos saltarnos este paso). Por suerte, esta traducción es, en general, bastante directa.
Genial, ya tengo mi primer programa, ¿Y ahora? (II) A continuación tendremos que convertir el programa que acabamos de escribir en algo que pueda comprender la máquina. Este proceso se conoce con el nombre de compilación, y es automático
¿Eso es todo amigos? En general, si. Salvando un pequeño detalle: El ejecutable generado solo funcionará en la plataforma (combinación de hardware y sistema operativo) para la que fue compilado.
¿Y qué es eso del sistema operativo? Para facilitar aún más la comunicación entre el humano y la máquina, existen los sistemas operativos. Un sistema operativo es una pieza de software que simplifica el manejo de la computadora, desempeñando una serie de funciones básicas esenciales para la gestión del equipo. Windows, Linux, Symbian, Solaris, Mac OS, FreeBSD y Android, son  algunos  ejemplos de sistemas operativos.
¿Y Por qué no puedo hacer un programa que funcione en todas las plataformas? En el caso del hardware, la respuesta es sencilla y ya la vimos antes: las distintas máquinas no necesariamente hablan el mismo idioma. En el caso del sistema operativo, sucede que, dado que el sistema operativo realiza las operaciones de acceso al hardware, nuestro programa no necesitará rescribirlas, sino reutilizarlas (linkearlas). Pero cada sistema operativo realiza estas tareas en forma diferente.
Parte 2: Java
¿Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel. Es independiente de la plataforma. Las primeras implementaciones de Java rezaban: “write once, run anywhere”. Posee un sistema de administración de memoria automático.
Un poco de historia Fue realizado por un equipo de 13 personas, dirigidas por James Gosling. Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++.  Java se creó originalmente como una herramienta de programación para un proyecto set- top -box conocido como *7.
Un poco de historia (II) En un principio, el sistema *7 no encontró un lugar en el mercado. A principios de los noventa, y sin un mercado para su herramienta, Gosling y su equipo se reunieron y notaron que “la nueva y popular Internet” tenia exactamente el tipo de configuración de red que ellos habían visionado para la industria de la TV por cable. Con esto en mente Gosling y su equipo crearon el navegador WebRunner y realizaron un demo que mostraba una molécula animada en una reunión de profesionales de la industria del entretenimiento e Internet. Todos sabemos como termina esta historia….
¿Porqué Java? El lenguaje se denominó inicialmente  “Oak” . Luego pasó a denominarse  “Green”  tras descubrir que Oak era ya una marca comercial registrada. El término  “JAVA”  fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo.  No está claro si es un acrónimo o no, algunas hipotesis indican que podría tratarse de las iniciales de sus creadores:  J ames Gosling,  A rthur  V an Hoff, y  A ndy Bechtolsheim. Otras abogan por “ J ust  A nother  V ague  A cronym”.  La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería.
.java, .class, JVM??? En Java el código fuente se escribe en un archivo de texto plano con extensión  .java . Luego, el código es compilado a archivos  .class . Un archivo .class no contiene código nativo a un tipo de procesador, en cambio contiene  bytecodes . Finalmente, la aplicación es interpretada por la maquina virtual de Java, transformando los bytecodes en código nativo en tiempo de ejecución.
Bytecode El bytecode es lenguaje nativo de cualquier implementación de la maquina virtual de Java. De esta forma se logra que un programa Java corra en cualquier plataforma que disponga de una JVM.
La plataforma Java Una plataforma es el ambiente de software o hardware en el que corre un programa. La plataforma Java consta de dos componentes La maquina virtual de Java La API de Java ( A pplication  P rogramming  I nterface ) La API de Java es una vasta colección de componentes de software que proveen un conjunto de funciones útiles.
Java en detalle Inicialización de Variables El lenguaje Java es fuertemente tipado, lo que significa que todas las variables deben ser declaradas antes de utilizarse. int unaVariable = 1;
Java en detalle Tipos Primitivos
Java en detalle Tipos Primitivos (II)
La clase String Java provee soporte especial para las cadenas de caracteres a través de la clase  java.lang.String No es un tipo primitivo. Sin embargo, mediante sobrecarga de operadores pueden realizarse operaciones como: String unString = “Juan” + “ ” + “Perez” ; Java también provee un amplio conjunto de operaciones para manipular las instancias de esta clase.
Operadores: precedencia y funcionalidad
Operadores: precedencia y funcionalidad (II)
Ejemplo con operadores arimeticos int i=2+3;  // i vale 5 i=i+1;  //i vale 6 i=6*2;  //i vale 12 i=2+5*2%8;  //i vale4
Ejemplo con operadores posfix y unarios int i=5;  // i vale 5 System.out.println(i);  //Imprime:5 System.out.println(++i);  //Imprime:6 System.out.println(i++);  //Imprime:6 System.out.println(i);  //Imprime:7
Sentencias de control:  if if(expr){ .... } if(expr) sentencia; if(expr){ .... } else { .... }
Sentencias de control:  switch Switch (num){ case num1:...break; case num2:...break; default:...break; }
Sentencias de control:  while y do-while while (expr){ .... } do { .... }while(expr);
Sentencias de control:  for for (exprInic; condCorte; pasoSig){ .... } for (int i=0; i<10; i++) { System.out.println(i); } //Imprime los numeros del 0 al 9
Estructura de un programa Java La programación orientada a objetos se basa en que cada programa es  una simulación de un mundo real o virtual . Cada uno de estos mundos esta compuesto de  objetos . Los objetos se comunican a través de  mensajes Por lo tanto, un programa orientado a objetos no es mas que  una configuración de un conjunto de objetos y los mensajes que se envían entre ellos . El  “molde”  que guarda la descripción de todos los objetos de un mismo tipo e lo que conocemos como  clase . A su vez, las clases con propósitos similares pueden agruparse en  paquetes . La ejecución de un programa comienza en el método  “main”  de  una clase.
Ejemplo de paquete
Reglas para la creación de clases y paquetes Las clases Java se implementan en archivos separados. Cada clase se debe encontrar dentro de un paquete. El nombre del archivo de la implementación de clase debe ser igual al nombre de la clase. La estructura de paquete debe corresponderse a la estructura de directorio. Ej: edu.sun.Ejemplo seria mapeado al archivo .../edu/sun/Ejemplo.java
Estructura de una clase
Ejemplos de paquetes Java java.lang Incluye las clases del lenguaje Java propiamente dicho: Object, Thread, Exception, System, Integer, Float, Math, String, etc. java.util Miscelánea de clases útiles para muchas cosas en programación.  Incluyen, Date (fecha), Dictionary (diccionario), Random (números aleatorios) y Stack (pila FIFO ). java.io El paquete de entrada/salida contiene las clases de acceso a archivos: FileInputStream y FileOutputStream, etc.
¿Y qué necesito para programar en Java? ,[object Object]
Un ambiente de desarrollo - recomendado
Java Development Kit (JDK) El JDK consiste de: El Java development tools, incluyendo el compilador, debugger y el intérprete Java. Las Java class libraries organizadas como una colección de paquetes. Un número importante de programas de demostración. Varias herramientas de soporte y componentes, incluyendo el código fuente de las clases en la biblioteca. URL :  java.sun.com/javase/downloads
Ambientes de desarrollo Java (IDEs) Un IDE (del inglés  I ntegrated  D evelopment  E nviroment) es un  ambiente   que  integra   un conjunto de herramientas (editor con prestaciones especiales, compilador, administración de proyectos, debugger,etc) que permiten realizar todo el proceso de  desarrollo   dentro del mismo. Si bien es posible escribir nuestros programas java en cualquier editor de texto y compilarlos desde una consola con javac, es mas cómodo y recomendable trabajar desde un IDE.
¿Y qué tiene un IDE que no tenga mi bloc de notas? En general, todos los editores de los IDEs mas modernos proveen: Un editor  language aware : indentación de código, resaltador de sintáxis, matching de variables y llaves, etc. Parsing en tiempo de ejecución : corrección de errores, remarcado de ocurrencias, tips, arreglos sencillos, etc. Generación automática de código y funciones para completar código mientras escribimos. Administración de proyectos Debugger Múltiples opciones de configuración
Algunos de los IDEs mas utilizados
El  IDE NetBeans  es un ambiente de desarrollo de código abierto creado a partir de la plataforma homónima Originalmente desarrollado por  Sun Microsystems , actualmente mantenido por la comunidad  NetBeans  (aunque aun recibe soporte de Sun como producto) . Es  multiplataforma Licencias  CDDL y GPL 2 . Todas las funciones en NetBeans son provistas por  módulos .
Proceso de instalación de NetBeans Bajar e instalar la última versión del JDK  (requerido) . Ingresar a  http://download.netbeans.org  y bajar la versión correspondiente a nuestro sistema operativo. Ejecutar el instalador  ( .sh,   .exe , o  .dmg  dependiendo). Seguir el proceso de instalación y ejecutar la aplicación  netbeans  al finalizar el mismo.
Ejemplo de aplicación en NetBeans
Ejercicio 3 Repetir el ejercicio 2, esta vez en Java.
Parte 3: herrmientas para enseñar Java
GreenFoot GreenFoot es un editor especialmente diseñado para programadores novatos.  Si bien soporta el lenguaje Java en su totalidad, es especialmente útil para programar ejercicios que tengan contenido visual. En GreenFoot la interacción y visualización de objetos son los componentes claves. Está dirigido a programadores de nivel secundario (13 años en adelante).
Demo Greenfoot ,[object Object]
Alice  Alice es un ambiente de programación que facilita la creación de animaciones para “contar historias”. Esta diseñado para ser el primer contacto de los estudiantes con la programación orientada a objetos. Permite a los estudiantes aprender programación mientras crean películas animadas y vídeo juegos sencillos.
Demo Alice ,[object Object]
BlueJ El ambiente de desarrollo BlueJ fue desarrollado como parte de un proyecto de investigación académico para enseñar programación orientada a objetos a principiantes. El objetivo de BlueJ es proveer un ambiente sencillo de utilizar para la enseñanza del lenguaje Java a estudiantes. Se ha puesto especial enfasis en las tecnicas de visualizacion e interacción para crear un ambiente interactivo que fomente la experimentación y exploración.
Demo BlueJ ,[object Object]
Aprender Java en la web Sun's Java Tutorials http://java.sun.com/docs/books/tutorial/ Learning Connection http://learningconnection.sun.com Java Passion http://www.javapassion.com/
Un OSUM es un grupo de personas que comparten su interés por las tecnologías libres. Ya existe al menos un OSUM por cada universidad en donde hay un Campus Ambassador, y nuevos grupos se están formando día a día. Dentro de la red de OSUMs encontrarás respuestas a tus interrogantes técnicas y filosóficas sobre tecnologías libres, participarás de reuniones y proyectos, etc. Unirte es muy sencillo,  http://osum.sun.com
SAI - Iniciativa Academica de Sun Entrenamiento  GRATIS  vía web de  Java TM ,  Solaris TM  y más. Página de la iniciativa:  http://ar.sun.com/training/sai/index.jsp Cursos en:  http://sailearningconnection.skillport.com/ Program name:  SAI-Argentina Program ID:  tbwg1fq8

Más contenido relacionado

La actualidad más candente (18)

Programación en Java (I)
Programación en Java (I) Programación en Java (I)
Programación en Java (I)
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Curso Java Inacap
Curso Java InacapCurso Java Inacap
Curso Java Inacap
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos Basicos
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Ppt java
Ppt javaPpt java
Ppt java
 
Trabajo java
Trabajo javaTrabajo java
Trabajo java
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Java desde 0 pre
Java desde 0 preJava desde 0 pre
Java desde 0 pre
 
Portafoliojava
PortafoliojavaPortafoliojava
Portafoliojava
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Portafoliojava
PortafoliojavaPortafoliojava
Portafoliojava
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Manual.curso.de.java.desde.cero
Manual.curso.de.java.desde.ceroManual.curso.de.java.desde.cero
Manual.curso.de.java.desde.cero
 

Similar a Introducción a la Programación con Java (20)

Practica 0.6
Practica 0.6Practica 0.6
Practica 0.6
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
Practica 11
Practica 11Practica 11
Practica 11
 
Practica 10
Practica 10Practica 10
Practica 10
 
In 9
In 9In 9
In 9
 
10 porta
10 porta10 porta
10 porta
 
06 porta
06 porta06 porta
06 porta
 
09 porta
09 porta09 porta
09 porta
 
Practica 6
Practica 6Practica 6
Practica 6
 
06
0606
06
 
10
1010
10
 
09
0909
09
 
Conjuntos
ConjuntosConjuntos
Conjuntos
 
07 porta
07 porta07 porta
07 porta
 
Presentación tic
Presentación ticPresentación tic
Presentación tic
 
Practica 13
Practica 13Practica 13
Practica 13
 
Informe#13
Informe#13Informe#13
Informe#13
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
 
07
0707
07
 
11 porta
11 porta 11 porta
11 porta
 

Más de flekoso

JavaFX 1.2 - Introducción
JavaFX 1.2 - IntroducciónJavaFX 1.2 - Introducción
JavaFX 1.2 - Introducciónflekoso
 
Ruby: a Programmer's best friend
Ruby: a Programmer's best friendRuby: a Programmer's best friend
Ruby: a Programmer's best friendflekoso
 
De 0 A Python En 40 Minutos
De 0 A Python En 40 MinutosDe 0 A Python En 40 Minutos
De 0 A Python En 40 Minutosflekoso
 
Cultura Libre: Origenes, Definiciones y Alcances
Cultura Libre: Origenes, Definiciones y AlcancesCultura Libre: Origenes, Definiciones y Alcances
Cultura Libre: Origenes, Definiciones y Alcancesflekoso
 
SCJP, Clase 10: Strings, I/O
SCJP, Clase 10: Strings, I/OSCJP, Clase 10: Strings, I/O
SCJP, Clase 10: Strings, I/Oflekoso
 
SCJP, Clase 9: Threads
SCJP, Clase 9: ThreadsSCJP, Clase 9: Threads
SCJP, Clase 9: Threadsflekoso
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classesflekoso
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Genericsflekoso
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collectionsflekoso
 
SCJP, Clase 5: Control de Flujo
SCJP, Clase 5: Control de FlujoSCJP, Clase 5: Control de Flujo
SCJP, Clase 5: Control de Flujoflekoso
 
SCJP, Clase 4: Operadores
SCJP, Clase 4: OperadoresSCJP, Clase 4: Operadores
SCJP, Clase 4: Operadoresflekoso
 
Introducción a JavaFX
Introducción a JavaFXIntroducción a JavaFX
Introducción a JavaFXflekoso
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Pooflekoso
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignacionesflekoso
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...flekoso
 

Más de flekoso (15)

JavaFX 1.2 - Introducción
JavaFX 1.2 - IntroducciónJavaFX 1.2 - Introducción
JavaFX 1.2 - Introducción
 
Ruby: a Programmer's best friend
Ruby: a Programmer's best friendRuby: a Programmer's best friend
Ruby: a Programmer's best friend
 
De 0 A Python En 40 Minutos
De 0 A Python En 40 MinutosDe 0 A Python En 40 Minutos
De 0 A Python En 40 Minutos
 
Cultura Libre: Origenes, Definiciones y Alcances
Cultura Libre: Origenes, Definiciones y AlcancesCultura Libre: Origenes, Definiciones y Alcances
Cultura Libre: Origenes, Definiciones y Alcances
 
SCJP, Clase 10: Strings, I/O
SCJP, Clase 10: Strings, I/OSCJP, Clase 10: Strings, I/O
SCJP, Clase 10: Strings, I/O
 
SCJP, Clase 9: Threads
SCJP, Clase 9: ThreadsSCJP, Clase 9: Threads
SCJP, Clase 9: Threads
 
SCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner ClassesSCJP, Clase 8: Inner Classes
SCJP, Clase 8: Inner Classes
 
SCJP, Clase 7: Generics
SCJP, Clase 7: GenericsSCJP, Clase 7: Generics
SCJP, Clase 7: Generics
 
SCJP, Clase 6: Collections
SCJP, Clase 6: CollectionsSCJP, Clase 6: Collections
SCJP, Clase 6: Collections
 
SCJP, Clase 5: Control de Flujo
SCJP, Clase 5: Control de FlujoSCJP, Clase 5: Control de Flujo
SCJP, Clase 5: Control de Flujo
 
SCJP, Clase 4: Operadores
SCJP, Clase 4: OperadoresSCJP, Clase 4: Operadores
SCJP, Clase 4: Operadores
 
Introducción a JavaFX
Introducción a JavaFXIntroducción a JavaFX
Introducción a JavaFX
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Poo
 
SCJP, Clase 3: Asignaciones
SCJP, Clase 3: AsignacionesSCJP, Clase 3: Asignaciones
SCJP, Clase 3: Asignaciones
 
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
SCJP, Clase 1: Introducción al curso, Intro a Java, Declaración y Control de ...
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Último (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Introducción a la Programación con Java

  • 1. TALLER DE INTRODUCCIÓN A LA PROGRAMACIÓN Ezequiel Aranda Sun Campus Ambassador
  • 2.
  • 3. Sun Microsystems is not responsible for any inaccuracies in the contents.
  • 4.
  • 5. Agenda Parte 1: ¿Qué es una computadora? Parte 2: Java Parte 3: Herramientas para enseñar Java
  • 6. PARTE 1 ¿Qué es una computadora?
  • 7. Todo esto no es tan nuevo... En el siglo VIII, el matemático e ingeniero Muhammad ibn Musa al-Khwarizmi, inventó el algoritmo. 1642 – Blaise Pascal inventa la “Pascalina” ( ninguna relación con la “Pastalinda” ).
  • 8. Todo esto no es tan nuevo... (II) 1801 – El francés Joseph Marie Jacquard, utilizó un mecanismo de tarjetas perforadas para controlar el dibujo formado por los hilos de las telas confeccionadas por una máquina de tejer. 1822 – Charles Babbage completó su “Artefacto de la diferencia”. 1843 – Lady Ada Augusta Lovelace sugirió la idea de que las tarjetas perforadas se adaptaran de manera que causaran que el motor de Babbage repitiera ciertas operaciones .
  • 9. Todo esto no es tan nuevo... (III) 1854 – El desarrollo del Álgebra de Boole fue publicado por el lógico inglés George Boole. 1919 – El primer circuito multivibrador o biestable (en léxico electrónico flip-flop) fue desarrollado por los inventores americanos W.H. Eccles y F.W. Jordan 1924 - Walther Bothe construyó una puerta lógica AND 1936 – Alan Turing describe la máquina de Turing
  • 10. Todo esto no es tan nuevo... (IV) 2004 – Mark Zuckerberg funda Facebook, y la mayoría de las personas de esta generación descubren el resultado de cientos de años de investigación científica.
  • 11. Entonces, ¿Quien inventó la computadora? En realidad, la computadora no es un invento de una persona en particular. Es el resultado evolutivo de ideas y realizaciones de muchas personas relacionadas con áreas tales como la electrónica, la mecánica, los materiales semiconductores, la lógica, el álgebra y la programación.
  • 12. Volviendo a la pregunta original: ¿Qué es una computadora? Una computadora es una máquina de proposito general que recibe y procesa datos para convertirlos en información útil Esta formada por numerosos componentes que, en combinación pueden ejecutar con exactitud y rapidez una gran variedad de secuencias o rutinas precisamente determinadas.
  • 13. Volviendo a la pregunta original: ¿Qué es una computadora? (II) La computadora, además de la rutina o programa informático, necesita de datos específicos (&quot;Input&quot;) que deben ser suministrados, y que son requeridos al momento de la ejecución, para proporcionar el producto final del procesamiento de datos, que recibe el nombre de &quot;output&quot; .
  • 14. Volviendo a la pregunta original: ¿Qué es una computadora? (III) La información puede ser entonces utilizada, reinterpretada, copiada, transferida, o retransmitida a otra(s) persona(s), computadora(s) o componente(s) electrónico(s) local o remotamente usando diferentes sistemas de telecomunicación, pudiendo ser grabada, salvada o almacenada en algún tipo de dispositivo o unidad de almacenamiento.
  • 15. Entoces, ¿Cómo funciona? Arquitectura de von Neumann. Unidad aritmético lógica (ALU) Unidad de control Memoria central Dispositivos de entrada y salida (E/S)
  • 16. Entendido. Ahora a darle ordenes: Mmmm... FAIL. Pensándolo bien: ¿Cómo hago para decirle a cada componente que hacer y que la combinación de esas ordenes de lugar a la función que yo quiero realizar?
  • 17. ¿En que idioma habla una computadora? Habla en lenguaje de máquina. Son secuencias de unos y ceros que representan instrucciones. Y cada máquina programable tiene su propio lenguaje de máquina (aunque suelen ser similares).
  • 18. ¿O sea que un programador escribe secuencias de unos y ceros durante 8 horas diarias? Aunque eso haría más sencillo responder a muchas incógnitas sobre los programadores, no. Existen lo que se conocen como “lenguajes de programación”, que básicamente son instrucciones de alto nivel que luego son traducidas a código de máquina.
  • 19. Lenguaje de programación Existen dos tipos de lenguaje de programación: de bajo nivel. de alto nivel. El “nivel” hace referencia al nivel de abstracción respecto del lenguaje de máquina.
  • 20. Lenguaje de alto nivel Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. Ada Basic C++ COBOL Fortran Java Python Perl Pascal PHP PL/SQL
  • 21. Genial, ya tengo la definición de lenguaje. Pero aún no tengo ni idea de como escribir un programa Los lenguajes de programación, cuentan todos en su haber con un juego de &quot;instrucciones&quot;. Un programa es una secuencia de instrucciones pensada para resolver un problema. Si no sabemos resolver el problema, no podremos escribir el programa. A uno se le puede ocurrir una manera de resolverlo. A otra persona, otra. Este “método” con el que resolvemos el problema, es lo que se llama “algoritmo” .
  • 22. Algoritmo Un algoritmo no es más que una secuencia de pasos que, seguidos uno a uno, me permiten resolver un problema. Por ejemplo, para ver una película: 1. Elijo una película de las de mi colección. 2. Compruebo SI TV y vídeo están conectadas a la red (y procedo). 3. SI la TV está apagada, la enciendo, SI NO, pues no. Y lo mismo con la vídeo. 4. Abro el estuche de la película. 5. Saco la película de su estuche.
  • 23. Algoritmo (II) 6. Introduzco la película en la vídeo. Dejo el estuche sobre la vídeo. 7. SI la TV no está en el canal adecuado, la cambio, SI NO, pues no. 8. Tomo los controles remotos (el del TV y el de la vídeo). 9. Me pongo cómodo. 10. Pulso PLAY en el control de la vídeo. Dos detalles importantes: 1. La descripción de cada paso no me lleva a ambigüedades: los pasos son absolutamente explícitos y no inducen a error. 2. El número de pasos es finito.
  • 24. Ejercicio 1 Intentar escribir una sucesión de pasos para alguna tarea cotidiana.
  • 25. Elementos básicos para describir algoritmos Marcadores de principio fin. Variables: espacios de memoria donde almacenar valores que pueden variar (de ahí su nombre) durante la ejecución del programa. Tienen un tipo y un valor . Asignaciones: I <- 3 Estructuras de control de flujo.
  • 26. Estructuras de control de flujo Su objetivo es ir señalando el orden en que tienen que sucederse los pasos de un algoritmo. Pueden ser 1. Secuenciales 2. Selectivas 3. Repetitivas
  • 27. Secuencias Una estructura de control secuencial, en realidad, no es más que escribir un paso del algoritmo detrás de otro, el que primero se haya escrito será el que primero se ejecute. inicio mostrar por pantalla 'dame el radio del circulo' leer del teclado la variable radio area <- 3.14159*radio mostrar por pantalla 'el area del circulo es:' mostrar por pantalla el contenido de la variable area fin
  • 28. Selección Son los conocidos &quot;si... entonces&quot;. Se usan de la siguiente manera: yo quiero evaluar una condición, y si se cumple, entonces realizaré una serie de pasos. inicio mostrar por pantalla 'introduce un numero' leer del teclado la variable numero SI numero >= 0 ENTONCES: raiz <- raiz_cuadrada(numero) mostrar por pantalla 'la raiz cuadrada es:' mostrar por pantalla raiz fin del SI fin
  • 29. Bucles, estructuras repetitivas En este tipo de estructura, el cuerpo del buclese repite MIENTRAS se cumple una determinada condición, que especificamos entre paréntesis. Su estructura, genéricamente, es esta: mientras(condición) hacer acción 1 ........ acción N fin mientras
  • 30. Bucles, estructuras repetitivas (II) Una forma diferente de escribir una estructura “mientras”, que es más conveniente y resumida en ciertas ocasiones es el “for” o “desde”. inicio desde Contador<-300.000.000 hasta Contador=1 , decrementar, hacer mostrar por pantalla 'Prometo ser bueno O:-)' fin desde fin
  • 31. Ejercicio 2 Realizar un algoritmo para calcular la suma de los números del 1 al 10 .
  • 32. Genial, ya tengo mi primer programa, ¿Y ahora? Una vez que tenemos un programa escrito en pseudocódigo (nombre que recibe esa forma en la que veníamos escribiendo los algoritmos en las slides anteriores), el primer paso es traducirlo a algún lenguaje de programación (más adelante podremos saltarnos este paso). Por suerte, esta traducción es, en general, bastante directa.
  • 33. Genial, ya tengo mi primer programa, ¿Y ahora? (II) A continuación tendremos que convertir el programa que acabamos de escribir en algo que pueda comprender la máquina. Este proceso se conoce con el nombre de compilación, y es automático
  • 34. ¿Eso es todo amigos? En general, si. Salvando un pequeño detalle: El ejecutable generado solo funcionará en la plataforma (combinación de hardware y sistema operativo) para la que fue compilado.
  • 35. ¿Y qué es eso del sistema operativo? Para facilitar aún más la comunicación entre el humano y la máquina, existen los sistemas operativos. Un sistema operativo es una pieza de software que simplifica el manejo de la computadora, desempeñando una serie de funciones básicas esenciales para la gestión del equipo. Windows, Linux, Symbian, Solaris, Mac OS, FreeBSD y Android, son algunos ejemplos de sistemas operativos.
  • 36. ¿Y Por qué no puedo hacer un programa que funcione en todas las plataformas? En el caso del hardware, la respuesta es sencilla y ya la vimos antes: las distintas máquinas no necesariamente hablan el mismo idioma. En el caso del sistema operativo, sucede que, dado que el sistema operativo realiza las operaciones de acceso al hardware, nuestro programa no necesitará rescribirlas, sino reutilizarlas (linkearlas). Pero cada sistema operativo realiza estas tareas en forma diferente.
  • 38. ¿Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel. Es independiente de la plataforma. Las primeras implementaciones de Java rezaban: “write once, run anywhere”. Posee un sistema de administración de memoria automático.
  • 39. Un poco de historia Fue realizado por un equipo de 13 personas, dirigidas por James Gosling. Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Java se creó originalmente como una herramienta de programación para un proyecto set- top -box conocido como *7.
  • 40. Un poco de historia (II) En un principio, el sistema *7 no encontró un lugar en el mercado. A principios de los noventa, y sin un mercado para su herramienta, Gosling y su equipo se reunieron y notaron que “la nueva y popular Internet” tenia exactamente el tipo de configuración de red que ellos habían visionado para la industria de la TV por cable. Con esto en mente Gosling y su equipo crearon el navegador WebRunner y realizaron un demo que mostraba una molécula animada en una reunión de profesionales de la industria del entretenimiento e Internet. Todos sabemos como termina esta historia….
  • 41. ¿Porqué Java? El lenguaje se denominó inicialmente “Oak” . Luego pasó a denominarse “Green” tras descubrir que Oak era ya una marca comercial registrada. El término “JAVA” fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. No está claro si es un acrónimo o no, algunas hipotesis indican que podría tratarse de las iniciales de sus creadores: J ames Gosling, A rthur V an Hoff, y A ndy Bechtolsheim. Otras abogan por “ J ust A nother V ague A cronym”. La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería.
  • 42. .java, .class, JVM??? En Java el código fuente se escribe en un archivo de texto plano con extensión .java . Luego, el código es compilado a archivos .class . Un archivo .class no contiene código nativo a un tipo de procesador, en cambio contiene bytecodes . Finalmente, la aplicación es interpretada por la maquina virtual de Java, transformando los bytecodes en código nativo en tiempo de ejecución.
  • 43. Bytecode El bytecode es lenguaje nativo de cualquier implementación de la maquina virtual de Java. De esta forma se logra que un programa Java corra en cualquier plataforma que disponga de una JVM.
  • 44. La plataforma Java Una plataforma es el ambiente de software o hardware en el que corre un programa. La plataforma Java consta de dos componentes La maquina virtual de Java La API de Java ( A pplication P rogramming I nterface ) La API de Java es una vasta colección de componentes de software que proveen un conjunto de funciones útiles.
  • 45. Java en detalle Inicialización de Variables El lenguaje Java es fuertemente tipado, lo que significa que todas las variables deben ser declaradas antes de utilizarse. int unaVariable = 1;
  • 46. Java en detalle Tipos Primitivos
  • 47. Java en detalle Tipos Primitivos (II)
  • 48. La clase String Java provee soporte especial para las cadenas de caracteres a través de la clase java.lang.String No es un tipo primitivo. Sin embargo, mediante sobrecarga de operadores pueden realizarse operaciones como: String unString = “Juan” + “ ” + “Perez” ; Java también provee un amplio conjunto de operaciones para manipular las instancias de esta clase.
  • 49. Operadores: precedencia y funcionalidad
  • 50. Operadores: precedencia y funcionalidad (II)
  • 51. Ejemplo con operadores arimeticos int i=2+3; // i vale 5 i=i+1; //i vale 6 i=6*2; //i vale 12 i=2+5*2%8; //i vale4
  • 52. Ejemplo con operadores posfix y unarios int i=5; // i vale 5 System.out.println(i); //Imprime:5 System.out.println(++i); //Imprime:6 System.out.println(i++); //Imprime:6 System.out.println(i); //Imprime:7
  • 53. Sentencias de control: if if(expr){ .... } if(expr) sentencia; if(expr){ .... } else { .... }
  • 54. Sentencias de control: switch Switch (num){ case num1:...break; case num2:...break; default:...break; }
  • 55. Sentencias de control: while y do-while while (expr){ .... } do { .... }while(expr);
  • 56. Sentencias de control: for for (exprInic; condCorte; pasoSig){ .... } for (int i=0; i<10; i++) { System.out.println(i); } //Imprime los numeros del 0 al 9
  • 57. Estructura de un programa Java La programación orientada a objetos se basa en que cada programa es una simulación de un mundo real o virtual . Cada uno de estos mundos esta compuesto de objetos . Los objetos se comunican a través de mensajes Por lo tanto, un programa orientado a objetos no es mas que una configuración de un conjunto de objetos y los mensajes que se envían entre ellos . El “molde” que guarda la descripción de todos los objetos de un mismo tipo e lo que conocemos como clase . A su vez, las clases con propósitos similares pueden agruparse en paquetes . La ejecución de un programa comienza en el método “main” de una clase.
  • 59. Reglas para la creación de clases y paquetes Las clases Java se implementan en archivos separados. Cada clase se debe encontrar dentro de un paquete. El nombre del archivo de la implementación de clase debe ser igual al nombre de la clase. La estructura de paquete debe corresponderse a la estructura de directorio. Ej: edu.sun.Ejemplo seria mapeado al archivo .../edu/sun/Ejemplo.java
  • 61. Ejemplos de paquetes Java java.lang Incluye las clases del lenguaje Java propiamente dicho: Object, Thread, Exception, System, Integer, Float, Math, String, etc. java.util Miscelánea de clases útiles para muchas cosas en programación. Incluyen, Date (fecha), Dictionary (diccionario), Random (números aleatorios) y Stack (pila FIFO ). java.io El paquete de entrada/salida contiene las clases de acceso a archivos: FileInputStream y FileOutputStream, etc.
  • 62.
  • 63. Un ambiente de desarrollo - recomendado
  • 64. Java Development Kit (JDK) El JDK consiste de: El Java development tools, incluyendo el compilador, debugger y el intérprete Java. Las Java class libraries organizadas como una colección de paquetes. Un número importante de programas de demostración. Varias herramientas de soporte y componentes, incluyendo el código fuente de las clases en la biblioteca. URL : java.sun.com/javase/downloads
  • 65. Ambientes de desarrollo Java (IDEs) Un IDE (del inglés I ntegrated D evelopment E nviroment) es un ambiente que integra un conjunto de herramientas (editor con prestaciones especiales, compilador, administración de proyectos, debugger,etc) que permiten realizar todo el proceso de desarrollo dentro del mismo. Si bien es posible escribir nuestros programas java en cualquier editor de texto y compilarlos desde una consola con javac, es mas cómodo y recomendable trabajar desde un IDE.
  • 66. ¿Y qué tiene un IDE que no tenga mi bloc de notas? En general, todos los editores de los IDEs mas modernos proveen: Un editor language aware : indentación de código, resaltador de sintáxis, matching de variables y llaves, etc. Parsing en tiempo de ejecución : corrección de errores, remarcado de ocurrencias, tips, arreglos sencillos, etc. Generación automática de código y funciones para completar código mientras escribimos. Administración de proyectos Debugger Múltiples opciones de configuración
  • 67. Algunos de los IDEs mas utilizados
  • 68. El IDE NetBeans es un ambiente de desarrollo de código abierto creado a partir de la plataforma homónima Originalmente desarrollado por Sun Microsystems , actualmente mantenido por la comunidad NetBeans (aunque aun recibe soporte de Sun como producto) . Es multiplataforma Licencias CDDL y GPL 2 . Todas las funciones en NetBeans son provistas por módulos .
  • 69. Proceso de instalación de NetBeans Bajar e instalar la última versión del JDK (requerido) . Ingresar a http://download.netbeans.org y bajar la versión correspondiente a nuestro sistema operativo. Ejecutar el instalador ( .sh, .exe , o .dmg dependiendo). Seguir el proceso de instalación y ejecutar la aplicación netbeans al finalizar el mismo.
  • 70. Ejemplo de aplicación en NetBeans
  • 71. Ejercicio 3 Repetir el ejercicio 2, esta vez en Java.
  • 72. Parte 3: herrmientas para enseñar Java
  • 73. GreenFoot GreenFoot es un editor especialmente diseñado para programadores novatos. Si bien soporta el lenguaje Java en su totalidad, es especialmente útil para programar ejercicios que tengan contenido visual. En GreenFoot la interacción y visualización de objetos son los componentes claves. Está dirigido a programadores de nivel secundario (13 años en adelante).
  • 74.
  • 75. Alice Alice es un ambiente de programación que facilita la creación de animaciones para “contar historias”. Esta diseñado para ser el primer contacto de los estudiantes con la programación orientada a objetos. Permite a los estudiantes aprender programación mientras crean películas animadas y vídeo juegos sencillos.
  • 76.
  • 77. BlueJ El ambiente de desarrollo BlueJ fue desarrollado como parte de un proyecto de investigación académico para enseñar programación orientada a objetos a principiantes. El objetivo de BlueJ es proveer un ambiente sencillo de utilizar para la enseñanza del lenguaje Java a estudiantes. Se ha puesto especial enfasis en las tecnicas de visualizacion e interacción para crear un ambiente interactivo que fomente la experimentación y exploración.
  • 78.
  • 79. Aprender Java en la web Sun's Java Tutorials http://java.sun.com/docs/books/tutorial/ Learning Connection http://learningconnection.sun.com Java Passion http://www.javapassion.com/
  • 80. Un OSUM es un grupo de personas que comparten su interés por las tecnologías libres. Ya existe al menos un OSUM por cada universidad en donde hay un Campus Ambassador, y nuevos grupos se están formando día a día. Dentro de la red de OSUMs encontrarás respuestas a tus interrogantes técnicas y filosóficas sobre tecnologías libres, participarás de reuniones y proyectos, etc. Unirte es muy sencillo, http://osum.sun.com
  • 81. SAI - Iniciativa Academica de Sun Entrenamiento GRATIS vía web de Java TM , Solaris TM y más. Página de la iniciativa: http://ar.sun.com/training/sai/index.jsp Cursos en: http://sailearningconnection.skillport.com/ Program name: SAI-Argentina Program ID: tbwg1fq8
  • 82. SAI - Iniciativa Academica de Sun (II) Incrementá tu potencial de obtener salarios mayores con certificaciones Sun Sun Certified Associate/Programmer for the Java 2 Platform SE Sun Certified Web Component Developer for Java EE Sun Certified Mobile Application Developer for Java ME Sun Certified System/Network Admin for Solaris Operating System Exámenes de entrenamiento gratis Exámenes oficiales rebajados un 60%
  • 84. MUCHAS GRACIAS! Ezequiel Aranda Ezequiel.Aranda@sun.com blogs.sun.com/argentina_ambassador twitter.com/ambassadorsarg twitter.com/fleko

Notas del editor

  1. In order to land high paying jobs, students need to find ways to differentiate themselves from other recent graduates. Through the Sun Academic Initiative, Sun offers free training that will help you fast-track your career. As an example, a recent article in CIO Magazine included the Sun Certified Programmer for Java 2 platform and the Sun Certified Systems Administrator for Solaris as two of the hot certifications that are able to demand higher wages. Refer to the hand-out with instructions for online registration and certification exams.