Check the new version here

Popular channels

Curso de Java para Android (Para fines Educativos)



Cumpliendo con lo prometido a los distintos alumnos he decidido colgar la primera parte del curso que vimos en los 3 meses.
Debido a lo tedioso que resulta hacerlo todo de una sola vez, me he visto obligado a hacerlo de manera fragmentada -es decir, una clase, un post- Sepan entender, pero no resulta fácil o tal vez no tenga la debida paciencia para hacerlo.
Sin más prólogos les adelanto la clase 1 que fue dividida en 6 temas que a mi parecer son bastante útiles para empezar cualquier lenguaje de programación y saber entender cosas que más adelante tocaremos de manera más profunda, veamos:






CLASE 1
Tema 1: INTRODUCCIÓN A LA PROGRAMACIÓN

Contenidos

•Definiciones
•Historia de la Programación
•Pasos importantes de las lenguajes de programación
•Historia de las lenguajes de programación
•Perder el miedo del código

Definiciones
•Hardware: Componentes físicos de una Computadora, por ejemplo: monitor, mouse, teclado, webcam, impresora, etc.
•Software: Programas o elementos lógicos que hacen funcionar un ordenador o que se ejecutan en ellos, distinguir: sistema operativo, programa.



•Sistema Operativo (OS): un sistema operativo es un programa especial que se carga en un ordenador tras ser encendido y cuya función es gestionar los demás programas/aplicaciones que se ejecutarán en dicho ordenador, como, por ejemplo un procesador de texto o una hoja de cálculo, o la impresión de un texto en una impresora o una conexión a Internet. por ejemplo: DOS, Windows, MacOS, Unix, Linux, ...
•Aplicación/Programa: (dice a un ordenador que hacer) conjunto de instrucciones escritas en un determinado lenguaje que dirigen a un ordenador para la ejecución de una serie de operaciones, con el objetivo de resolver un problema que se ha definido previamente, por ejemplo: añadir dos números, compara dos números, ordenador interpreta instrucciones: enseñar una película en la pantalla, implementar un procesador de texto
•Lenguaje de programación: lenguaje que un ordenador entiende, muchas diferentes lenguajes, como mundo real muchas idiomas: Basic, C, C++, java, ... tiene que estar traducida a un código que ordenador entiende -> .exe
•Compilador: transforma el código escrito en un lenguaje de programación a un código que un ordenador pueda ejecutar -> bit / byte, ensamblador (assembler).



•Lenguaje de script: lenguaje que un ordenador entiende, esta traducida a un código que el ordenador entiende durante su ejecución, por ejemplo: vbs (Visual Basic Script), JavaScript, asp, jsp, php, perl, ActionScript.
•Bit: Unidad mínima de información digital que puede ser tratado por una PC. Proviene de la contracción de la expresión binary digit (dígito binario).
•Byte: Conjunto significativo de ocho bits que representan un carácter por ejemplo la letra "a", en un sistema informático.



Historia de la Programación

Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué capacidades que los idiomas más nuevos nos dan.

"Tan largo como no había máquinas, programar era ningún problema; cuando tuvimos unos pocas computadoras débiles, programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, tiene sólo los creó - ha creado el problema de usar su producto". [Edsger. W. Dijkstra. "El Programista Humilde" (la Conferencia del Premio de Turing), Comunicaciones del ACM, Vol 15, No. 10 (el octubre 1972).]


E. W. Dijkstra habló estas palabras proféticas casi hace 28 años en su es la conferencia del Premio de Turing. En aquel momento, el 'las computadoras gigantescas él radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera, y a lo más unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si él pensó que el problema era gigantesco entonces...

Uno de las llaves a programar exitoso son el concepto de la abstracción. La abstracción es la llave a la construcción sistemas complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente aumentos. En sistemas sencillos, característica de idiomas usados en el 1950s y '60s, un solo programista podría entender el problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programistas son hoy incapaces de entender todos los programas y los datos - es apenas demasiado grande. La abstracción se requiere a permitir que el programista para agarrar los conceptos necesarios.

La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.

Para seguir leyendo haga clic en la imagen:



Tema 2: Programación Estructurada

La visión clásica de la programación estructurada se refiere al control de ejecución. El control de su ejecución es una de las cuestiones más importantes que hay que tener en cuenta al construir un programa en un lenguaje de alto nivel. La regla general es que las instrucciones se ejecuten sucesivamente una tras otra, pero diversas partes del programa se ejecutan o no dependiendo de que se cumpla alguna condición. Además, hay instrucciones (los bucles) que deben ejecutarse varias veces, ya sea en número fijo o hasta que se cumpla una condición determinada.

Sin embargo, algunos lenguajes de programación más antiguos (como Fortran) se apoyaban en una sola instrucción para modificar la secuencia de ejecución de las instrucciones mediante una transferencia incondicional de su control (con la instrucción goto, del inglés "go to", que significa ir a). Pero estas transferencias arbitrarias del control de ejecución hacen los programas muy poco legibles y difíciles de comprender. A finales de los años sesenta, surgió una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción goto y la sustituye por otras más comprensibles.

Esta forma de programar se basa en un famoso teorema, desarrollado por Edsger Dijkstra, que demuestra que todo programa puede escribirse utilizando únicamente las tres estructuras básicas de control siguientes:

• Secuencia: el bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente, una detrás de otra.
• Selección: la instrucción condicional con doble alternativa, de la forma "if condición then instrucción-1 else instrucción-2".
• Iteración: el bucle condicional "while condición do instrucción", que ejecuta la instrucción repetidamente mientras la condición se cumpla.

Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes (como los bucles for, repeat o la instrucción condicional switch-case), pero no la instrucción goto, se llaman estructurados.
Ésta es la noción clásica de lo que se entiende por programación estructurada (llamada también programación sin goto) que hasta la aparición de la programación orientada a objetos se convirtió en la forma de programar más extendida. Esta última se enfoca hacia la reducción de la cantidad de estructuras de control para reemplazarlas por otros elementos que hacen uso del concepto de polimorfismo. Aun así los programadores todavía utilizan las estructuras de control (if, while, for, etc.) para implementar sus algoritmos porque en muchos casos es la forma más natural de hacerlo.

Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programación.
Este hecho es importante debido a que es mucho más fácil comprender completamente el trabajo que realiza una función determinada si todas las instrucciones que influyen en su acción están físicamente contiguas y encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras de control, y de eliminar la instrucción de transferencia de control goto.

La visión moderna de la programación estructurada: la segmentación

La realización de un programa sin seguir una técnica de programación produce frecuentemente un conjunto enorme de sentencias cuya ejecución es compleja de seguir, y de entender, pudiendo hacer casi imposible la depuración de errores y la introducción de mejoras. Se puede incluso llegar al caso de tener que abandonar el código preexistente porque resulte más fácil empezar de nuevo.
Cuando en la actualidad se habla de programación estructurada, nos solemos referir a la división de un programa en partes más manejables (usualmente denominadas segmentos o módulos). Una regla práctica para lograr este propósito es establecer que cada segmento del programa no exceda, en longitud, de una página de codificación, o sea, alrededor de 50 líneas.
Así, la visión moderna de un programa estructurado es un compuesto de segmentos, los cuales puedan estar constituidos por unas pocas instrucciones o por una página o más de código. Cada segmento tiene solamente una entrada y una salida, asumiendo que no poseen bucles infinitos y no tienen instrucciones que jamás se ejecuten. Encontramos la relación entre ambas visiones en el hecho de que los segmentos se combinan utilizando las tres estructuras básicas de control mencionadas anteriormente y, por tanto, el resultado es también un programa estructurado.
Cada una de estas partes englobará funciones y datos íntimamente relacionados semántica o funcionalmente. En una correcta partición del programa deberá resultar fácil e intuitivo comprender lo que debe hacer cada módulo.
En una segmentación bien realizada, la comunicación entre segmentos se lleva a cabo de una manera cuidadosamente controlada. Así, una correcta partición del problema producirá una nula o casi nula dependencia entre los módulos, pudiéndose entonces trabajar con cada uno de estos módulos de forma independiente. Este hecho garantizará que los cambios que se efectúen a una parte del programa, durante la programación original o su mantenimiento, no afecten al resto del programa que no ha sufrido cambios.

Esta técnica de programación conlleva las siguientes ventajas:

a) El coste de resolver varios subproblemas de forma aislada es con frecuencia menor que el de abordar el problema global.
b) Facilita el trabajo simultáneo en paralelo de distintos grupos de programadores.
c) Posibilita en mayor grado la reutilización del código (especialmente de alguno de los módulos) en futuras aplicaciones.

Para seguir leyendo haga clic en la imagen:




TEMA 3: CONSTANTES

Una constante es una variable del sistema que mantiene un valor inmutable a lo largo de toda la vida del programa. Las constantes en Java se definen mediante el modificador final.
La estructura sería:

static final nombreConstante = valor;

De esta forma si queremos definir las constantes DIAS_SEMANA ó DIAS_LABORABLES, que sabemos que son variables que no cambiarán su valor a lo largo del programa, generaremos el siguiente código:

static final int DIAS_SEMANA = 7;
static final int DIAS_LABORABLES = 5;



Para seguir haga clic en la imagen:



Tema 4: Variables

Una variable en Java es un identificador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable.
En Java, todas las variables deben ser declaradas antes de que puedan ser utilizados. La forma básica de una declaración de variable es la siguiente:

type identificador [ = valor][, identificador [= valor] ...] ;
•type, va a ser el tipo de dato que queremos declarar.
•identificador, es el nombre que le queremos dar a la variable.
•valor, es la cantidad o frase que le quieras asignar a la variable que estamos declarando.

Para seguir haga clic en la imagen:





TEMA 5: TIPOS DE DATOS

A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato específico.
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa.
Las variables son posiciones de memoria reservadas para almacenar valores. Esto significa que cuando se crea una variable para reservar algo se crea un espacio en la memoria.
Existen dos tipos de datos disponibles en Java:

1.- Tipos de datos primitivos.
2.- Tipos de datos de referencia.

Para seguir con el tema, haga clic en la imagen:





TEMA 6: OPERADORES BÁSICOS

Java proporciona un conjunto de operadores para manipular variables. Veremos los operadores más importantes:
•Operadores aritméticos.
•Operadores relacionales.
•Operadores lógicos.
•Operadores de asignación.
________________________________________
Operadores aritméticos
Los operadores aritméticos se utilizan en expresiones matemáticas de la misma manera que se utilizan en el álgebra. En la siguiente tabla se muestran los operadores aritméticos:



Veamos un ejemplo:

Para seguir con el tema, haga clic en la imagen:





Bueno gente, eso es todo por hoy. Espero que haya servido esta leve introducción a JAVA y que puedan implantarlos en su cotidianeidad. Hasta la clase 2 !!!


IR A LA CLASE 2 >>>
0
0
0
4
0No comments yet