• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Introducción a la Programación con Java
 

Introducción a la Programación con Java

on

  • 7,683 views

Slides del taller homonimo dictado durante las Jornadas del Sur 2009, en Bahía Blanca, Argentina, los días 15 a 17 de Agosto de 2009. ...

Slides del taller homonimo dictado durante las Jornadas del Sur 2009, en Bahía Blanca, Argentina, los días 15 a 17 de Agosto de 2009.

El taller se centró en enseñar lo básico del funcionamiento de una computadora, y como se llega hoy día a los lenguajes de alto nivel. Luego, se explicaron los conceptos básicos de la programación utilizando el lenguaje Java. Finalmente, se dio un vistazo a algunas aplicaciones orientadas a la enseñanza de Java en colegios secundarios, como Alice, BlueJ y Greenfoot

Statistics

Views

Total Views
7,683
Views on SlideShare
7,505
Embed Views
178

Actions

Likes
1
Downloads
413
Comments
5

8 Embeds 178

http://isaeuniversidadvirtual.com 78
http://www.slideshare.net 59
http://blogs.sun.com 13
http://campusvirtual1.sabes.edu.mx 11
http://desarrollaconingenio.blogspot.com 9
http://planets.sun.com 4
https://blogs.oracle.com 3
http://version03.formaciondigital.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

15 of 5 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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.

Introducción a la Programación con Java Introducción a la Programación con Java Presentation Transcript

  • TALLER DE INTRODUCCIÓN A LA PROGRAMACIÓN Ezequiel Aranda Sun Campus Ambassador
  • Disclaimer
    • Even though Ezequiel Aranda is a full-time employee of Sun Microsystems, the contents here are created as his own personal endeavor and thus does not reflect any official stance of Sun Microsystems.
    • 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
      • http://creativecommons.org/licenses/by-nc-sa/3.0/
  • 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?
    • El kit de desarrollo Java – obligatorio
    • 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
    • www.greenfoot.org
  • 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
    • www.alice.org
  • 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
    • www.bluej.org
  • 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
  • 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%
  • ¿Preguntas?
  • MUCHAS GRACIAS! Ezequiel Aranda Ezequiel.Aranda@sun.com blogs.sun.com/argentina_ambassador twitter.com/ambassadorsarg twitter.com/fleko