Curso de programación
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 1 de 45
Curso de programación
Introducción: Curso de programación Este es un Curso de Programación básico que ofrecimos gratuitamente en DesarrolloWeb.com y EscuelaIT en enero de 2015. Está dividido en varias sesiones que te introducen los conceptos fundamentales que tienes que conocer antes de aprender cualquier lenguaje de programación. El curso está impartido en vídeo, con clases que fueron emitidas en directo ante los estudiantes suscritos. El equipo doncente lo formaron varios profesores con amplia experiencia enfocada a la programación. Entre los temas que se impartieron figuran una introducción a los lenguajes, tipos de datos, algoritmos, estructuras necesarias para la creación de algoritmos complejos como condicionales y repeticiones, así como subprogramación por medio de funciones. También se vieron asuntos relacionados con el mundo de los objetos y estructuras de datos complejas, para acabar con una sesión que nos ofrece una vista de pájaro a diferentes lenguajes y sus aplicaciones principales. El enfoque que se aplicó en este curso de programación es el de asentar las bases para la programación y el desarrollo en cualquier tipo de lenguaje. Osea, se dio más importancia a los conceptos de programación que a los lenguajes en si. El motivo es que esos conceptos son los mismos para cualquier lenguaje, al menos los principales, y nos deben servir de base para luego acercarnos a los lenguajes ya en específico. No obstante, para los ejemplos todos los profesores usaron Javascript, por lo que también sirve para aprender algunas de las utilidades y modos de trabajo de este lenguaje estándar en el desarrollo web y en numerosas plataformas. En definitiva, pretendimos dar una visión más académica y basada en los fundamentos de la programación, más que particular de un lenguaje en concreto. Un conocimiento que generalmente no se ofrece en otros cursos de programación donde, por querer abarcar mucho en poco tiempo, se dejan de lado conceptos importantes y necesarios para ser un buen programador en el futuro. Encuentras este manual online en: http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 2 de 45
Curso de programación
Autores del manual Las siguientes personas han participado como autores escribiendo artículos de este manual.
Miguel Angel Alvarez Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.
Luis Fernández Muñoz Profesor de la Escuela Superior de Informática de la UPM
José Dimas Luján José Dimas es fundador de Ockham Ti, empresa de desarrollo de software, app móviles, videojuegos y cursos.
Alberto Basalo
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 3 de 45
Curso de programación
Alberto Basalo es experto en Angular y otras tecnologías basadas en Javascript, como NodeJS y MongoDB. Es director de Ágora Binaria, empresa dedicada al desarrollo de aplicaciones y a la formación a través de Academia Binaria.
Claudio Morales Godinez
Eduard Tomàs Apasionado de la informática, los videojuegos, rol y... la cerveza. Key Consultant en Pasiona y MVP en #aspnet
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 4 de 45
Curso de programación
Introducción a los Lenguajes de Programación Primera clase, con Luis Fernández. Introducción a los lenguajes en general y al modo de comunicarse con un ordenador cuando estamos programando. En el Curso Gratuito de los Fundamentos de la Programación. Esta es la grabación de la clase dedicada a introducir los lenguajes de programación, primera sesión del Curso Gratuito de los Fundamentos de la Programación, impartida por Luis Fernández en enero de 2015. Luis es Profesor de Universidad de la UPM, en España y en esta ocasión tuvimos la ocasión dando una clase online masiva en la comunidad de DesarrolloWeb.com y EscuelaIT. Durante la clase se dedicó a ofrecer explicaciones respecto a dos temas principalmente, por un lado la introducción genérica a los lenguajes de programación y por otro una descripción de los tipos de datos y variables. De los dos temas introductorios a los lenguajes de programación. En este vídeo tenemos el primero de ellos, dedicado a los lenguajes en general. Es un contenido que se engloba en un curso en el que tendremos 8 sesiones para conocer los aspectos esenciales de la programación, que nos ofrezcan una base sólida para poder acercarnos luego a cualquier lenguaje. Esta es la primera sesión, que tiene este contenido:
Introducción a los lenguajes de programación Qué es un lenguaje de programación Para qué sirve
Qué es programación Es un término común que se puede describir según la Real Academia de la Lengua. Acción o http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 5 de 45
Curso de programación
efecto de programar. ¿Y programar? Idear y ordenar las acciones necesarias para realizar un proyecto. Todo esto en términos generales, no se refiere específicamente a la programación de lenguajes informáticos, pero nos da una idea de lo que es. Programar puedes programar cualquier cosa, por ejemplo, las vacaciones. Luis nos ofreció un ejemplo explicando qué tipo de cosas pensamos cuando tenemos que programar algo. Vimos que consta de una serie de decisiones y una serie de pasos para conseguir hacer todas aquellas pendencias antes de, en este ejemplo, salir de vacaciones. Luego nos hizo pensar en la posibilidad de programar las vacaciones con un mayordomo, o programar cualquier tipo de cosas en las que tenemos un asistente. El mayordomo está a tu servicio y no decide absolutamente nada. Entonces tendrás que darle las instrucciones precisas que quieres que realice y se lo tienes que dar en un lenguaje que ambos conozcáis. Programar para un ordenador, un programa informático, es muy parecido a eso. Entonces, ya entrando en el mundo de los ordenadores nos explicó qué es la informática y cómo el ordenador/computadora da unos servicios para el tratamiento de la información (informática): consultar, calcular, añadir, modificar o borrar información. En analogía al servicio del mayordomo, que nos prepara las vacaciones, organiza la limpieza, etc. A un ordenador debes darle las órdenes precisas en un lenguaje de programación, de manera similar al mayordomo.
¿Por qué programar? A continuación entramos en un bloque que nos explica por qué realizar programas informáticos, básicamente por automatizar diversos tipos de procesos y nos dio una serie de ejemplos fantásticos entra las maneras de actuar de las personas y de las máquinas que nos acercan al pensamiento que debe de tener un programador para desempeñar su trabajo y el pensamiento que debe tener un estudiante cuando comienza a pensar en términos de "líneas de código".
Lexicografía - sintaxis - semántica Luego vimos asuntos interesantes que nos deben hacer entender cómo funcionan los lenguajes, pero no específicamente los de programación, sino todos los lenguajes en general. Lexicografía es la colección de palabras, vocablos, de una lengua. La sintaxis es la forma en la que se combinan las palabras. Semántica son aspectos del significado y sentido o interpretación. Obviamente, en el vídeo se explican todos esos términos en detalle y Luis Fernández nos ofrece ejemplos clave para poder entenderlo, sobre varios tipos de lenguajes, hablados, signos, de programación o incluso algo tan sencillo como el lenguaje que implementan los semáforos que regulan la circulación. Todo ello nos hace entender mejor cómo funcionan los lenguajes y por extensión, cómo funciona un lenguaje de programación.
Conclusión, diapositivas y grabación de la clase Es una sesión básica, con enseñanzas que generalmente no te ofrecen cuando estás introduciéndote en los lenguajes de programación, pero que ayudan a establecer las bases del pensamiento en términos de lenguaje informático. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 6 de 45
Curso de programación
No trata de un lenguaje de programación en particular, sino que te sirve para entender cualquier tipo de lenguaje. En las siguientes sesiones del curso se explican ya asuntos relacionados con los lenguajes de programación. Esta clase tiene una duración corta, porque la primera sesión con Luis estaba dividida en dos partes, en la segunda nos habló de Tipos de datos y Variables, junto con otra serie de cosas relacionadas. Pero fíjate que para ser un vídeo de poco más de 10 minutos tiene una cantidad de información fantástica que nos ayudará mucho a adquirir la base necesaria para entender los lenguajes de programación. Las diapositivas usadas en la presentación las puedes ver embebidas aquí abajo.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/introduccion-lenguajes-programacionfundamentos.html
El vídeo de esta charla de introducción a la programación lo puedes ver a continuación.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/introduccion-lenguajes-programacionfundamentos.html Este artículo es obra de Luis Fernández Muñoz Fue publicado por primera vez en 12/01/2015 Disponible online en http://desarrolloweb.com/articulos/introduccion-lenguajesprogramacion-fundamentos.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 7 de 45
Curso de programación
Tipos de datos, variables, entrada y salida Segunda clase de los fundamentos de la programación, dedicada a tipos de datos, variables, operadores y muchas otras cosas básicas en lenguajes de programación en general y Javascript en particular. Esta es la segunda clase del Curso de Programación gratuito que dimos en EscuelaIT y DesarrolloWeb.com. En esta segunda clase abordamos los tipos y variables. La ofreció Luis Fernández, profesor de la Universidad Politécnica de Madrid en vivo a los estudiantes de esta comunidad. Se ofreció a continuación de la primera clase dedicada a dar una introducción a los lenguajes. (Esta sesión se dividió en dos partes bien diferenciadas que se hicieron contiguas, las dos temáticas con Luis). En este bloque nos dedicamos a conocer cosas básicas de los lenguajes de programación, introduciendo el concepto de Tipo de Dato, Variable, Operador, Entrada y Salida, etc. El esquema del guión general que se ofreció consta de estos puntos.
Introducción a las Variables y tipos de datos Tipos de datos Variables y constantes Expresiones Entrada y Salida de datos Sentencias de asignación
Señales, datos, información, conocimiento Comenzamos conociendo asuntos relacionados con lenguajes en general, orientados a http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 8 de 45
Curso de programación
entender las diferencias entre señales, datos, información y conocimiento. Esto nos da una idea sobre qué es lo que manejas en la vida real y qué es lo que manejas cuando estás expresando programas a una máquina. A un ordenador le suministras datos, no tiene información ni tiene conocimiento. Sin embargo, un dato de un ordenador nosotros lo podemos transformar en información y conocimiento. Esto lo dice para entender cómo piensa un ordenador y cómo se diferencia de las personas. Un ordenador es muy tonto, las personas somos muy listas. Los ordenadores son trabajadores y las personas son por lo general perezosas. Conviene ver el vídeo porque las explicaciones están geniales y nos hacen entender mejor a los ordenadores.
Tipo de datos En un ordenador tengo datos y los datos son de un tipo. Luis Fernández nos explica los motivos y la razón de ser. Además cómo eso nos afecta en la práctica en términos de lenguaje informático, pues a un tipo se le asocian una serie de operaciones básicas. Si son numéricos podríamos sumar, restar, etc. Si son cadenas concatenar y si son lógicos, operaciones lógicas de comparación, etc. Todo eso son tipos de datos simples. Los tres tipos básicos (numérico, cadena y lógico, o los que tenga cada lenguaje), son lo que se llaman tipos de datos primitivos y son en los que se centra la explicación. No obstante, también nos explicó qué pasa con tipos de datos complejos, fechas, facturas, alumnos de un curso, operaciones asociadas sobre esos tipos, etc. Con los tipos de datos primitivos son con los que se construye cualquier sistema en el mundo, en el fondo. Sobre esos datos nos explicó varias cosas como: Qué diferentes maneras o notaciones tenemos de expresarlos Qué operaciones se pueden hacer con ellos Qué ocurre cuando intentamos hacer operaciones que no son permitidas Sobre el asunto de operadores hubo bastantes explicaciones, ya que cada tipo de datos es capaz de atender a una serie de operadores, que sirven para realizar operaciones sobre ellos. Sobre tipos numéricos debes hacer operaciones matemáticas y sobre cadenas haces otro tipo de operaciones como la concatenación. Sobre los lógicos tienes operaciones como AND, OR y NOT.
Variables Luego nos explicó sobre las variables. Las variables tienen un nombre que sirve de referencia para almacenar un dato. Por tanto, las variables tienen un tipo, que es el tipo del dato que almacenan. El nombre de "variable" nos indica que bajo ese nombre, bajo esa referencia a un dato, podemos almacenar algo que puede cambiar con el tiempo. Por eso es variable.
Constantes http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 9 de 45
Curso de programación
Nos introdujo el concepto de constante, que a diferencia de la variable, una vez que cargas el valor en la constante, no puedes actualizarse durante la vida del programa.
Asignación Nos explicó al final del vídeo acerca de la asignación, que es la operación para insertar un valor en una variable, o una constante. Siendo que las variables, además de asignarle por primera vez un valor, se pueden asignar valores nuevos que sobreescriban a los que había anteriormente en una variable. Las operaciones de asignación se revisaron rápidamente, pues es un asunto que se repitirá incansablemente a lo largo de todo el curso.
Entrada y salida de datos La clase acaba con la entrada y salida de datos, que nos va a permitir solicitar información al usuario y devolver información. En este caso se explica usando las sentencias de Javascript prompt() y alert(). La primera me permite solicitar un dato al usuario y la segunda presentarlo. Ambas funciones lanzan una caja de diálogo que el usuario debe usar para interaccionar con las aplicaciones.
Conclusión, diapositivas y vídeo de la clase Esta es una clase imprescindible para todos aquellos que quieran aprender programación, impartida con maestria por Luis Fernández, al que agradecemos su participación en el Curso de Programación. Aprendimos además cuáles son los tipos de datos y operadores en Javascript, junto con los modos de producir entrada y salida. Merece la pena ver el vídeo con mucha atención y disfrutar con las explicaciones del profesor. A continuación puedes acceder a las diapositivas de esta clase:
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/tipos-datos-variables-entrada-salida.html
El vídeo de esta clase de programación básica, sobre los tipos de datos lo puedes ver aquí.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/tipos-datos-variables-entrada-salida.html Este artículo es obra de Luis Fernández Muñoz Fue publicado por primera vez en 16/01/2015 Disponible online en http://desarrolloweb.com/articulos/tipos-datos-variables-entradasalida.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 10 de 45
Curso de programación
Algoritmo Qué es un algoritmo, partes de un algoritmo, características y ejemplos de algoritmos, así como programas en el lenguaje Javascript. Este es el resumen de la primera parte de la charla dedicada a los algoritmos, realizada durante el Curso Gratuito de los Fundamentos de la Programación, en EscuelaIT, la comunidad y plataforma para la formación asistida de DesarrolloWeb.com. Este tema de los algoritmos se vio en la segunda sesión del curso. En la primera tuvimos una Introducción a los Lenguajes de Programación en plan general y una descripción detallada de los Tipos de Datos. La clase fue impartida por Miguel Angel Alvarez, fundador de DesarrolloWeb.com y EscuelaIT. En este artículo encontrarás un resumen de la exposición junto con el vídeo de la clase grabada y las diapositivas que se usaron para la presentación, embebidos en el propio artículo al final del presente texto.
Nota: Al publicar este contenido en DesarrolloWeb.com hemos dividido la sesión de los algoritmos en dos partes, para que puedas digerir mejor toda la información, aunque las dos partes se incluyeron en la misma clase. La primera parte está más orientada a los conceptos y características de algoritmos, con varios ejemplos sencillos, y la segunda parte más dedicada a presentar un par de ejemplos de algoritmos algo más complejos que nos ayudarán a entender cómo se hacen los programas en un lenguaje de programación como Javascript.
Concepto de Algoritmo El algoritmo es algo que forma parte de nuestro día a día, en realidad es un concepto tan común que resulta hasta raro que, muchos de nosotros, solo lo conozcamos cuando nos ponemos a estudiar programación. Comencemos leyendo la definición formal a ver si lo entendemos bien: http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 11 de 45
Curso de programación
Algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solución a un problema. Como detalle fíjate que no necesitas acudir a un libro de programación para conocer la palabra algoritmo, pues como decía es algo que cualquiera de nosotros hace en la vida normal. Ésta que está aquí es la definición de la Real Academia de la Lengua. En otras palabras un algoritmo es la descripción de un proceso o una serie de pasos que tenemos que dar para conseguir alguna cosa. Existen algoritmos en nuestro día a día a montones, de hecho nos pasamos el día ejecutando algoritmos. Preparar café Tomar un baño Hacer la cama ... Son operaciones tan habituales y tan simples que casi siempre obviamos que exista un algoritmo definido para ello. Aunque no todos los algoritmos son tan sencillos. Un algoritmo se define mediante la especificación de una serie de pasos, como en este ejemplo. Beber un vaso de agua: Saco un vaso del armario Saco la botella de agua de la nevera Lleno el vaso Aproximo el vaso a mi boca Trago el líquido Como podéis ver, no hace falta saber programación para diseñar un algoritmo. Entonces ¿Por qué es importante? Lo veremos claro enseguida, pero antes os formularé con otra pregunta ¿Habéis oído la frase "Los ordenadores son tontos"? ¿Estáis de acuerdo? Yo no estoy totalmente de acuerdo con esa frase. Pensar en todo lo que se puede hacer con un ordenador, trabajos digitales con programas como Photoshop, Películas increíbles y de un realismo acojonante hechas con computador, juegos, en 2D y 3D increíbles, o incluso la inteligencia artificial desarrollada en ellos. ¿Alguien ha intentado jugar contra la máquina en uno de esos juegos de fútbol actuales? Cuando veo las cosas que se pueden hacer con ordenador me hace pensar que es muy difícil que algo "tonto" consiga resultados tan impresionantes. Pero eso de que los ordenadores son tontos se dice porque a ellos todo les debe ser explicado. El ordenador es un conjunto de cables y circuitos que, en principio, no sabe hacer nada a no ser que creemos un programa para ello. En los programas necesitamos decirle a la máquina todos y cada uno de los pasos que debe realizar para completar nuestro objetivo. ¿Y qué es eso? no es más que la definición de algoritmo. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 12 de 45
Curso de programación
Qué es un programa Ahora, para ahondar en el concepto de algoritmo, debe quedar claro que éste es un paso previo a escribir código. Para escribir un programa antes debo pensar en el algoritmo que resuelve mi necesidad. El programa viene después del algoritmo: es la expresión de un algoritmo en un lenguaje de programación.
Cómo se expresan algoritmos Existen muchos modos de expresar algoritmos. Por ejemplo con palabras. Ya hemos expresado un algoritmo con palabras antes cuando pensamos en las acciones de beber un vaso de agua. Pero también se pueden expresar con: Gráficos o diagramas de flujo Pseudocódigo Aunque los diagramas de flujo o el pseudocódigo son útiles porque nos permiten un paso intermedio entre los algoritmos expresados por palabras y el código fuente de los programas, no los vamos a ver de momento. Dado que todos sabemos escribir, por ahora vamos a limitarnos a escribir los algoritmos con palabras.
Ejemplos de algoritmos y programas En este punto en el vídeo se vieron un par de ejemplos de algoritmos expresados con palabras y sus correspondientes programas en el lenguaje Javascript. Perímetro de un rectángulo Media En resumen "Programar es escribir algoritmos en un lenguaje que entienda la máquina" ¿Qué os parece esa frase? ¿Opináis que es correcta? Estos programas que hemos visto sin duda ilustran bien esa frase, pero pensar que cuando hacéis un programa grande (un juego, un programa de gestión), entran en juego cientos o miles de algoritmos distintos y como programadores debemos no solo escribirlos, sino hacer que se comporten bien los unos con los otros, se coordinen, comuniquen, compartan información, respondan a las acciones del usuario, etc, etc. Por tanto, podríamos decir que programar es mucho más que escribir algoritmos en un lenguaje de programación.
Fases para resolver un problema Ya las hemos visto de manera implícita en el bloque anterior de esta clase, pero en resumen: Partimos de un problema, diseñamos un algoritmo y escribimos un programa. Pero en esas fases se encuentran implícitas muchas acciones que deben ser realizadas. Por ejemplo: 1. Identificación del problema 2. Análisis 3. Diseño del algoritmo 4. Programación del http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 13 de 45
Curso de programación
algoritmo 5. Ejecución y validación del funcionamiento Muchos de nosotros pensamos que programar es simplemente escribir el código en un lenguaje de programación (paso marcado con 4 en el listado anterior), pero existen diversos pasos antes y después de codificar. Programar abarcan todos esos pasos.
Partes de un algoritmo En esta parte de la clase se explicaron las partes de un algoritmo, junto con diversos ejemplos para tratar de identificarlas ya en el código Javascript. Entrada de datos Procesamiento de los datos Salida de los resultados
Características de un algoritmo Estas son las características que debe tener un algoritmo. Algunas de ellas ya las hemos mencionado. Te darás cuenta que la mayoría son de sentido común. Estar bien detallado: No nos olvidemos que a los ordenadores hay que darles todos los pasos, uno a uno, sin olvidar u obviar ninguno de ellos, porque por si solos no son capaces de entender nada. Estar bien ordenado: Lógicamente, un algoritmo tiene unos pasos a ser realizados en una secuencia. Pensemos en el algoritmo de beber agua. ¿Qué os parece si después de sacar el vaso del armario de la cocina me lo llevo directamente a la boca para beber? Tener un principio y un fin: Tenemos que empezar por algún lugar y terminar en un número finito de pasos, si no, no es un algoritmo. Si nunca acaba nuestro proceso soy incapaz de llegar al final y por tanto no obtengo el resultado deseado, con lo que no se cumple la definición de algoritmo. Ser fiable: Este punto incluye muchas cosas, como que el algoritmo resuelva los problemas sin errores y también que una misma entrada de datos produzca una misma salida. Si estamos haciendo el algoritmo del área de un cuadrado y para un cuadrado de 2 metros una vez calculamos el área como 2 metros cuadrados y otras veces como 4 metros cuadrados, habrá algo que hemos hecho mal.
Conclusión, diapositivas y grabación de la clase Los algoritmos son un campo muy bonito de la informática y nos permiten pensar las cosas tal como se las debemos de expresar a los ordenadores. Pensar en términos de algoritmo nos ayudará a tener mayor facilidad para llevar a código cualquier propósito que tengamos. Para acabar, os dejamos las diapositivas de esta charla:
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 14 de 45
Curso de programación
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/algoritmo-caracteristicas-ejemplos.html
A continuación podrás ver el vídeo de la clase de algoritmos, recordando que este vídeo lo hemos dividido en dos partes, en esta más enfocada a conocer el concepto de algoritmo y sus características.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/algoritmo-caracteristicas-ejemplos.html Este artículo es obra de Miguel Angel Alvarez Fue publicado por primera vez en 22/01/2015 Disponible online en http://desarrolloweb.com/articulos/algoritmo-caracteristicasejemplos.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 15 de 45
Curso de programación
Primeros algoritmos y su codificación en Javascript Algoritmos expresados con palabras y sus correspondientes programas expresados con el lenguaje Javascript, una clase práctica para afianzar conoceptos básicos de programación. En esta entrega vamos a ahondar de manera más práctica en el concepto de algoritmo y vamos a ver nuestros primeros programas en el lenguaje de programación Javascript. Es una clase del Curso de Programación que realizamos recientemente en DesarrolloWeb.com / EscuelaIT. En esta clase realizamos un par de ejercicios interesantes que nos ayudan a asentar de manera empírica los conocimientos de la primera charla de Miguel Angel Alvarez, dedicada a los algoritmos. De hecho, esta parte con los primeros algoritmos de Javascript y la parte anterior, fueron realizados en el mismo bloque o misma sesión. En realidad forman parte de la misma clase, simplemente nosotros la hemos dividido para que el estudiante la pueda digerir mejor. La este segmento de la clase se divide a su vez en dos ejercicios realizados para entender mejor los algoritmos. Por una parte realizamos la descomposición en años, meses y días un número de días dado. Por otra parte calculamos la distancia entre dos puntos en un eje de coordenadas 2D.
Ejemplo de algoritmo: años, meses y días vividos Vamos a suponer que pregunto a una persona (usuario) cuántos días ha vivido. Me contesta algo como 10.000. Entonces quiero hacer un algoritmo y su correspondiente programa en Javascript para convertir ese número de días en un número de años, número de meses y días restantes. Para ese valor de días, 10.000, el programa nos devolvería un dato como este: "Ha vivido 27 años, 4 meses y 25 días.". En simples palabras, el algoritmo que usaríamos para obtener ese resultado lo podemos ver a continuación. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 16 de 45
Curso de programación
Nota: Para simplificar nuestros cálculos vamos a suponer que todos los años tienen 365 días y nos olvidamos de los años bisiestos. También supondremos todos los meses igual a 30 días.
1. Pido el número de días vividos 2. Calculo el número de años / 365 3. A los días vividos les quito los días de los años calculados. Esta operación es el resto de la división de los días vividos / 365. Ese resto de la división son los días restantes que necesito para seguidamente calcular el número de meses. 4. Sobre los días restantes calculo el número de meses / 30 5. A los días restantes les quito los días de los mese calculados. Es la misma operación del resto de la división de los días restantes / 30. Ese resto de la división son los días restantes que me quedan. 6. Muestro los resultados, años, meses y días restantes calculados En código Javascript este algoritmo lo puedes ver a continuación. var diasVida = parseInt(prompt("Cuántos días has vivido",""));
var numAnos = Math.floor(diasVida / 365); var diasRestantes = diasVida % 365 ; var numMeses = Math.floor(diasRestantes / 30); diasRestantes = diasRestantes % 30;
alert("Ha vivido " + numAnos + " años, " + numMeses + " meses y " + diasRestantes + " días.");
Si entendiste el algoritmo, este ejercicio no requiere muchas explicaciones. Simplemente para aclaraciones adicionales es mejor que veas el vídeo de la clase al final de este texto. Es un ejemplo interesante porque podemos ver el algoritmo como una serie de pasos secuenciales. Para calcular unos necesito haber calculado los anteriores.
Ejemplo de algoritmo: Distancia entre dos puntos Si nos dan dos puntos en un eje de coordenadas de 2 dimensiones, podemos calcular la distancia entre ellos. Si esos puntos se encuentran alineados en la horizontal o en la vertical, calcular la distancia es muy fácil, pues es el resultado de hacer una simple resta. ¿Pero qué pasa si esos puntos no están alineados, son dos puntos cualquiera? entonces la tarea no es tan sencilla. En realidad tampoco es tan complejo, solo se trata de un problema de trigonometría que, si recordamos el Teorema de Pitágoras es muy sencillo de resolver. Si os fijáis, la distancia entre dos puntos es la hipotenusa de un triángulo rectángulo y el Teorema dice así: En un triángulo rectángulo la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de los catetos. Eso es lo que expresa esa fórmula. Si no lo entendéis todavía no os preocupéis, existen decenas de vídeos en Youtube que lo explican mejor que yo y más despacio. De todos modos, vamos a verlo paso por paso, aunque http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 17 de 45
Curso de programación
nos centraremos no tanto en la trigonometría como en expresar la solución en términos de un algoritmo. 1. Pido la coordenada x del punto a 2. Pido la coordenada y del punto a 3. Pido la coordenada x del punto b 4. Pido la coordenada y del punto b 5. Calculo el tamaño de la componente horizontal (cateto 1) 6. Calculo el tamaño de la componente vertical (cateto 2) 7. Elevo al cuadrado componentes vertical y horizontal 8. Las sumo 9. Aplico la raíz cuadrada 10. Muestro la distancia Eso en código fuente Javascript es el siguiente. var ax = prompt("Dame punto a coordenada x",""); var ay = prompt("Dame punto a coordenada y",""); var bx = prompt("Dame punto b coordenada x",""); var by = prompt("Dame punto b coordenada y","");
var comp_horizontal = (bx-ax); var comp_vertical = (by-ay); comp_horizontal = comp_horizontal * comp_horizontal; comp_vertical = comp_vertical * comp_vertical; var distancia = Math.sqrt(comp_horizontal + comp_vertical);
alert(distancia);
La importancia de los algoritmos Para acabar volvemos sobre algo que ya se había expresado anteriormente, la importancia de los algoritmos en la programación. "En verdad son más importantes los algoritmos que el código" ¿Os parece correcta esa frase? Pensar en lo que hemos comentado, un programa no es más que la expresión de un algoritmo en un lenguaje de programación. El algoritmo, ese concepto que hemos conocido hoy es más importante por ser común a todos los lenguajes. El código no es más que la expresión de ese algoritmo. Es como una receta de cocina, la Paella, conocida en cualquier parte del mundo. Puedes escribir la receta de ese delicioso plato en español, valenciano o catalán, francés, japonés, etc. Pero el cocinero cuando se ponga a hacer la paella realizará los mismos pasos exactamente independientemente del idioma que hable. Así que es más importante el proceso en si que el idioma con el que quieras expresar la receta.
Conclusión Hemos aprendido qué es un algoritmo, qué es un programa, que escribir código en un lenguaje de programación es una pequeña tarea de las que un programador debe realizar. Hemos aprendido que los algoritmos deben diseñarse con cuidado, porque son la parte más importante de un programa. A continuación puedes encontrar el vídeo con la grabación de esta clase. La clase fue emitida en directo, pero aquí tienes la grabación para verla en el momento que desees. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 18 de 45
Curso de programación
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/algoritmos-codificacion-javascript.html
Para acabar os dejo unos ejercicios para que penséis sobre ellos: Diseñar un algoritmo para: Hacer una tortilla Cruzar la calle sin ser atropellado
Nota: Para cruzar la calle observareis que tenéis que preguntaros cosas que serán necesarias para algoritmos más complejos y que forman parte de las siguientes clases del curso.
Hacer el algoritmo y luego el programa en Javascript: Conversor de metros a litros Calcular el área de un círculo
Este artículo es obra de Miguel Angel Alvarez Fue publicado por primera vez en 30/01/2015 Disponible online en http://desarrolloweb.com/articulos/algoritmos-codificacionjavascript.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 19 de 45
Curso de programación
Alternativas o condicionales Esta clase está dedicada a entender el concepto de alternativa, o condicional, que nos permite tomar decisiones en los lenguajes de programación. Es una clase del Curso de los fundamentos de la Programación que realizamos en enero de 2015, orientado para todos aquellos que desean dar los primeros pasos en el mundo de las líneas de código. En esta ocasión nos dedicamos a exponer todas las nociones y ejemplos que nos ayuden a entender las primeras estructuras de control que aprende todo futuro programador, como son los condicionales o alternativas. La clase fue impartida por Alberto Basalo, colaborador de DesarrolloWeb.com co-autor del Manual de AngularJS y profesor en diversos cursos de EscuelaIT y otros centros de formación. En este artículo encontrarás el resumen de la clase en texto, así como la grabación en vídeo de la clase, que se impartió, en vivo a través de videoconferencia. Además también disponibilizamos las diapositivas usadas durante la clase. El vídeo y las diapositivas de la presentación lo encuentras al final de este texto.
Necesidad de los condicionales En el vídeo Alberto comienza hablándonos de la necesidad de los condicionales, dado que los ordenadores no toman decisiones por ellos mismos, tenemos que enseñarles de alguna manera y para ello construimos las estructuras de alternativa. Con ello ya le podemos aplicar algo más de inteligencia a nuestros programas y podrán dejar ser tan secuenciales como los que vimos en la clase de los algoritmos. Con la analogía de la receta, nos pone varios casos en los que debo tomar decisiones para hacer cosas, como agregar sal si está la comida sosa o apagar el fuego si está la comida lista.
Definición de las alternativas http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 20 de 45
Curso de programación
Las alternativas o condicionales controlan el flujo de un programa, tomando decisiones en base a expresiones. Nosotros como programadores debemos anticiparnos y deducir qué posibilidades pueden ocurrir en un algoritmo o programa y dar respuesta a cada una de ellas. Con ello el ordenador deja de ser "tonto" y comienza a poder tomar algún tipo de decisión. Luego se analiza que las condiciones son muy habituales en nuestros procedimientos cotidianos: Si llueve llevo paraguas Si me llega el dinero me compro un portátil, si no me compraré una tablet Los lunes y miércoles tengo partido, los martes clase de inglés y el jueves francés. Los demás días libres. Al realizar programas de gestión, o cualquier otro tipo de programas debemos pensar en esas situaciones, que a veces nos las marca la propia lógica de la aplicación que estamos realizando. Si te piden hacer un sistema que vende entradas para un partido y que se apliquen descuentos para ciertas personas, como jubilados o socios, pues entonces tendrás que usar condicionales para observar esas situaciones, si se cumplen o no, a fin de dar el precio de la entrada con el descuento que toca, si es que toca aplicar algún descuento. Sobre una situación como esa Alberto nos realizó diversos ejemplos.
Ejemplos de programación En el bloque principal de la clase Alberto nos introdujo ya código Javascript para resolver situaciones en las que entraban en juego los condicionales. Nos explicó: Partes de un condicional Cómo declarar las expresiones que se deben evaluar para saber si se debe ir por un lado o por otro del condicional Cómo se pueden hacer estructuras condicionales complejas. Para calcular expresiones se usan las variables del sistema, se pueden usar operadores lógicos que nos han explicado ya para crear todo tipo de expresiones, tan complejas como queramos. La estructura condicional en Javascript (y en la mayoría de los lenguajes) se declara con la palabra "if". La expresión se coloca a continuación entre paréntesis. Luego opcionalmente se puede colocar un bloque "else", que permite ejecutar acciones en el caso contrario. Tanto el bloque if como el bloque else tiene unas llaves que delimitan el código que debe ejecutarse en cada uno de esos casos. if(abonado){ precio = 90; } else {
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 21 de 45
Curso de programación
precio = 100; }
Todo se vio a lo largo de varios ejemplos en los que se fue agregando dificultad y nuevas expresiones como "else if". Al final también se introdujo la posibilidad de anidar los if, colocando unos dentro de otros, para crear todo tipo de flujo condicional tan complejo como sea necesario. Otro punto interesante explicado es la posibilidad de escribir una expresión condicional de varias maneras. Vimos que varios flujos de programa podrían resolver diversas situaciones, pero en la mayoría de los casos habrá una manera optimizada de expresar los condicionales, para resolver el problema con menos líneas de código y de una manera más clara. Como programadores muchas veces tenemos que optimizar esas situaciones para conseguir que el código sea lo más fácil de entender, ya sea por nosotros o por otras personas que estén en el mismo proyecto, ahora o en el futuro. Las diapositivas de esta sesión sobre alternativas en la programación las encuentras embebidas a continuación.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/alternativas-condicionales.html
Además también te dejamos el vídeo de la clase completa para conocer a fondo las estructuras condicionales, en términos generales y cómo escribir esas estructuras con los bloques if, else, else if, en Javascript.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/alternativas-condicionales.html Este artículo es obra de Alberto Basalo Fue publicado por primera vez en 05/02/2015 Disponible online en http://desarrolloweb.com/articulos/alternativas-condicionales.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 22 de 45
Curso de programación
Repeticiones o bucles Qué son las repeticiones, más conocidos por la palabra bucle, en los lenguajes de programación, el por qué de su importancia y cómo se realizan en Javascript, junto con los distintos tipos de bucles, for, while... Esta es una clase del Curso de Fundamentos de la Programación que realizamos con EscuelaIT, de manera gratuita para todos los compañeros de la comunidad de DesarrolloWeb.com. Se trata de un curso donde recorrimos los temas más importantes a la hora de aprender programación, desde cero. En el presente vídeo intervino como profesor José Dimas Luján, que es el director y presentador de los #androidIO que emitimos en DesarrolloWeb.com, autor también del Manual de Android de este sitio web. Profesor en diversos cursos de EscuelaIT y en universidades de El Caribe, México. En este texto encontrarás un resumen de la clase y luego, al final, el vídeo grabado en la sesión emitida en directo, junto con las diapositivas de la presentación.
Qué son las Repeticiones Las repeticiones forman parte de cualquier lenguaje de programación, al menos en la inmensa mayoría. Se les llama estructuras de control (en realidad son un tipo de estructuras de control) porque nos permiten controlar el flujo de ejecución de los programas. En estas estructuras de control lo que hacemos es repetir la ejecución de un código un número de veces. El concepto es bien simple, si hay que hacer algo varias veces, usamos una repetición. Algunas veces sabremos el número de veces que debemos realizar una o varias acciones, otras veces no se tendrá claro desde el inicio, pero sí se sabrá que hay que repetir algo. Incluso hay procesos en los que podríamos repetir algo tantas veces como ninguna, y también podría ser una repetición.
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 23 de 45
Curso de programación
El ejemplo que usa José en el minuto 2 del video es el de un revisor de entradas en la puerta de la sala del cine. Él tendrá que recibir la entrada de cada una de las personas que entran en la sala, así que encontramos una repetición. Sin embargo no sabe cuántas veces lo va a tener que hacer. Algunas veces pueden entrar muchas personas, hasta la capacidad máxima de la sala, pero en algunos horarios con menos público pueden venir pocas personas, incluso tan pocas como una, o ninguna persona. En térninos de programación informática, aunque no entre ninguna persona a la sala del cine, igualmente es una repetición. A veces las repeticiones son más complejas y no tienen por que ser una única acción, ya que el ciclo puede tener muchas operaciones a ser repetidas.
Partes de una repetición En una repetición, por muy simple o compleja que sea, vamos a encontrar tres elementos principalmente. Podemos encontrarlos en todas las repeticiones, aunque a veces nos podemos referir a ella con nombres distintos. José nos las introdujo a partir del minuto 10 del vídeo: Inicialización: es la creación de una variable o alguna estructura para poder llevar el control de las repeticiones. Condición: es la condición que se evaluará en cada paso de la repetición, para saber si se debe seguir ejecutando algo. El ejemplo que ponía era de un juego de ordenador. Tú tienes los enemigos del juego a los que disparas. Disparas hasta que el enemigo se muera. Esa condición "hasta que el enemigo se muera" es la condición. Incremento: en cada paso del bucle cambiarán las condiciones del programa, probablemente se incrementará algo en una variable, que luego se evaluará en la condición para ver si se debe de continuar el bucle.
Tipos de bucles A partir del cuarto de hora de clase nos muestra ya código en Javascript para mostrarnos los tipos de bucles o repeticiones que vamos a tener disponible en este lenguaje. El bucle FOR es el que explica para comenzar y es el bucle donde mejor se encuentran o se localizan las tres partes de una repetición. Su sintaxis es esta: for (inicialización; condición; incremento){ //instrucciones de la repetición }
También nos explica en la clase otros bucles disponibles en Jacascript, como son el while y el do...while, junto con una explicación sobre qué situaciones son ideales para uno y otro bucle. Muy en resumen: El bucle for se usa generalmente cuando sabes el número de veces que debes ejecutar algo y las condiciones las puedes expresar de manera numérica. El bucle while se usa generalmente cuando no sabes el número de veces que debes ejecutar algo. También es necesario cuando la condición para ejecutar el bucle no depende de algo que pueda ser numérico, por ejemplo, pedir una clave al usuario hasta http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 24 de 45
Curso de programación
que ésta sea la válida. Como podrás ver, no sabes el número de veces que un usuario introducirá texto hasta que acertará la clave. El bucle do...while es exactamente igual que while, solo que sabes con seguridad que debes hacer algo al menos una vez. Por ejemplo, el bucle del ejemplo anterior, pedir la clave hasta que el usuario te de la clave verdadera, sería bueno para realizar con una estructura do...while, porque siempre sabes que la clave la vas a tener que pedir al menos una vez. Durante los ejemplos que nos mostró José incidió mucho en que, muchas veces, un mismo problema lo puedes resolver de distinta manera. Una repetición que resuelves con un for, de una manera parecida la podrías resolver con un while, solo es cuestión de saber expresarse en el código. En fin, lo mejor es ver el vídeo para entenderlo todo y acceder a las explicaciones completas del profesor para introducirse en los bucles y cómo expresarlos en Javascript. Las diapositivas de la presentación las tienes a continuación:
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/repeticiones-bucles.html
Ahora tienes el vídeo completo de esta clase del curso de programación, dedicada a los bucles.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/repeticiones-bucles.html Este artículo es obra de José Dimas Luján Fue publicado por primera vez en 11/02/2015 Disponible online en http://desarrolloweb.com/articulos/repeticiones-bucles.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 25 de 45
Curso de programación
Subprogramación, funciones Subprogramación es la forma más básica de organizar el código de los programas informáticos, en la mayoría de los lenguajes de programación implementada por medio de las funciones. Vídeo de una clase completa con ejemplos en Javascript. La subprogramación es uno de los temas más básicos y fundamentales para poder hacer un código entendible y bien estructurado, algo que encontramos en todos los lenguajes de programación actuales. Esta es una clase en vivo, que ahora puedes ver en su grabación, emitida en el contexto del Curso de Programación que realizamos gratuitamente para todos los interesados de la comunidad de DesarrolloWeb.com / EscuelaIT. La impartió Claudio Morales @pronuer, que es el líder de la Comunidad de PHP de México. A continuación encontrarás un resumen de la clase y al final el vídeo con la grabación y las diapositivas usadas durante la presentación.
Qué es subprogramación La subprogramación es fundamental en cualquier lenguaje de programación, aunque no existe desde siempre. Al principio los lenguajes no facilitaban la creación de subprogramas y todo el código se escribía en una secuencia interminable de líneas con sentencias. Solo con la programación estructurada aparecieron las primeras herramientas para crear subprogramas. En definitiva, es una manera elemental de crear y mantener el código de los programas, que nos permite dividir los problemas en partes más pequeñas, más fáciles de implementar. Sirven por tanto para organizar nuestro código, pero nos ofrecen diversas otras ventajas. Los subprogramas se implementan por medio de lo que conocemos como funciones o procedimientos. No son más que una lista de sentencias que se escriben para resolver problemas, con algoritmos que pueden operar de manera independiente. Esas piezas de código http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 26 de 45
Curso de programación
se pueden invocar desde diversos sitios de un programa, las veces que se desee, o se necesite. Por ejemplo, si tenemos un aplicación de gestión empresarial, podrías tener un programa que te resuelva todo el tema de facturación. Sin embargo, ese objetivo puede ser lo suficientemente grande y complejo para crear varios subprogramas. Por ejemplo, uno para crear facturas, otro para borrarlas otro para enviarlas por email al cliente, y así puedes tener tantos subprogramas como necesites, abonar facturas, marcarlas como pagadas, crear clientes, etc. Incluso, puede haber subprogramas que llaman a otros subprogramas, quizás al crear la factura necesitas invocar el subprograma que crea un cliente. Esa estructura de funciones y funciones que llaman a otras funciones (aquí cuando me refiero a funciones no es más que un sinónimo de subprograma), es la base del primer modo de jerarquizar que apareció en los lenguajes de programación, que nos ayuda no solo a resolver un problema complejo, sino que nos permite entenderlo mejor y también facilita el mantenimiento del código, una vez el programa ya ha sido creado. Pero además, la subprogramación facilita muchas otras necesidades de un buen programa, como la de no repetirse uno mismo y reutilizar el código que se ha escrito en el mayor número de oportunidades posible. En el vídeo que verás má abajo nos explican muy bien la necesidad de las funciones y cómo y por qué sirven para reutilizar el código.
Cómo se implementan los subprogramas o funciones Una vez entendido el concepto de subprograma, y sabiendo que en muchos lenguajes se implementa por medio de las funciones, en esta clase de programación se ahondó en el modo de crearlas en el lenguaje Javascript. Durante la clase se explicaron los modos de crear subprogramas, es decir, la declaración de funciones. Nos referimos a las cosas básicas que todo programador debe conocer, como la definición de funciones, ya en código Javascript. Se explicó además todo lo relacionado con la subprogramación, como paso de parámetros, valores de devolución, etc. Sobre todo ello, realizamos varios ejemplos de funciones para que los estudiantes sean capaces de implementar ese conocimiento y ponerlo en marcha en líneas de código. También se muestra cómo se invocan las funciones en un código, por medio del nombre de la función y se hizo mucho hincapié en mostrar como un programa mejora en muchos sentidos cuando se realizan funciones para implementar aquellas tareas básicas. Durante la clase se vieron varios ejemplos de funciones distintas que servirán de banco de pruebas para cualquier persona que desee realizar sus propias prácticas.
API de Javascript En el último bloque de esta clase se dio a conocer el API de Javascript, de una manera introductoria. Se explicó que cualquier lenguaje ofrece un conjunto de funciones ya listas para realizar tareas básicas, como entrada y salida de datos, trabajo con fechas, estructuras de datos como arrays, trabajo con cadenas, matemáticas, etc. Javascript es un lenguaje con una extensísima cantidad de funciones, que no solo nos sirven http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 27 de 45
Curso de programación
para realizar programación básica, sino que nos permite además controlar miles de aspectos del navegador, como la ventana, el historial de navegación, el almacenamiento local y un largo etc.
Materiales para seguir esta clase de funciones A continuación te proporcionamos las diapositivas de esta clase dedicada a la subprogramación.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/subprogramacion-funciones.html
El vídeo de la clase, en su grabación, lo puedes ver ahora, esperamos que puedas aprender muchas cosas y disfrutes con las explicaciones del profesor.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/subprogramacion-funciones.html Este artículo es obra de Claudio Morales Godinez Fue publicado por primera vez en 18/02/2015 Disponible online en http://desarrolloweb.com/articulos/subprogramacionfunciones.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 28 de 45
Curso de programación
Qué son los objetos Una clase elemental de introducción a la programación orientada a objetos en la que se aclaran conceptos como objeto, clase, método, propiedad, estado o mensaje, conociendo la sintaxis de OOP en Javascript. En esta clase se ofreció una introducción los objetos en el contexto de la programación y la Programación Orientada a Objetos (siglas POO o en inglés OOP) en general. La impartió Miguel Angel Alvarez, fundador de DesarrolloWeb.com y EscuelaIT. La programación orientada a objetos es un tema ya algo avanzado y quizás en el Curso de Programación básico que estamos dando es un poco ambicioso querer tratarla con detalle. Sin embargo, hoy la mayoría de los lenguajes son orientados a objetos y en casi todos tenemos que trabajar con objetos para realizar nuestros objetivos. Ese es el motivo por el que hemos incorporado esta clase. El objetivo, por tanto, es explicar los conceptos fundamentales relacionados con los objetos, de modo que nos suenen y podamos entender las bases de este modelo de programación, presente en Javascript, pero también en muchos otros lenguajes populares.
Esta es una clase que requiere un esfuerzo especial, para abrir la mente y asimilar conceptos un poco más abstractos. Por eso os pido un poco de paciencia y aunque al principio puedan parecer conceptos complicados observareis que poco a poco se va entendiendo mejor de qué se trata esto de los objetos. A continuación tienes un resumen en texto del contenido de esta clase y al final encontrarás embebido el vídeo completo de esta clase, donde se amplia esta información, junto con las diapositivas.
Nota: La clase de objetos la hemos decidido partir en dos vídeos, en este tienes conocimientos generales de objetos y en el siguiente verás cómo aplicar esos conocimientos http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 29 de 45
Curso de programación a Javascript, explicando la sintaxis de objetos en ese lenguaje y ejemplos.
¿Qué es un objeto? Luis Fernández lo definió al hablarnos sobre tipos de datos : Agrupaciones heterogéneas de datos simples, con sus operaciones. Quizás de momento es un poco difícil de asimilar el mundo de los objetos por medio de esa definición, pero a lo largo de la clase se explicará más detalladamente y podrás entender la frase.
¿Qué es la Programación Orientada a Objetos? En esta clase comenzamos aclarando lo que es la Programación Orientada a Objetos. El objetivo es más ver lo que son los objetos en si, pero es interesante saber de dónde salen. La Programación orientada a objetos es un paradigma de la programación en el que, como en la vida real, un universo de objetos colaboran para llevar a cabo las acciones. Ej: ser humano. Cualquiera de nosotros podría ser descompuesto en una serie de objetos, que forman sistemas y que colaboran entre si para llevar a cabo una vida humana. En la OOP se intenta llevar este mismo esquema al desarrollo de software, que se repite tanto en la naturaleza como en las estructuras o sistemas creados por nosotros. De manera formal, un Objeto en el marco de la POO / OOP es un ejemplar concreto, una unidad de algo cuyas características han sido definidas en una clase. Como veis, ninguna de estas definiciones somos capaces de asimilarlas todavía al 100% y, ni mucho menos nos hacen entender qué son esto de los objetos. Así que tendremos que remontarnos un poco más atrás para poder dar una definición que seamos capaces de entender.
Al principio de los ordenadores, todo eran ceros y unos Hoy también, pero hemos pasado de largo esa etapa y para ti como programador saber que dentro son todo ceros y unos no debe pasar de ser una mera curiosidad. Pero imagina en una época en la que los programadores tuvieran que expresar los algoritmos en ceros y unos... Rápidamente llegó el lenguaje Ensamblador: Afortunadamente para los programadores de esa época pasó rápido y la mayoría nunca tuvo que enfrentarse a la construcción de un programa solamente con ceros y unos. En vez de eso se utilizan lenguajes como el ensamblador. Ese lenguaje nos provee unas instrucciones de muy bajo nivel con las que realizar operaciones muy muy básicas a nivel de hardware. Lenguajes de alto nivel y Javascript: Antes de la llegada de Javascript hay varios pasos intermedios, pero observáis que con Javascript es más sencillo de programar que con ceros y unos o con el lenguaje ensamblador. Esto es porque los lenguajes cada día se parecen más a la http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 30 de 45
Curso de programación
forma de expresarnos de las personas. Este tipo de lenguajes menos cercanos a la máquina y más a la expresión de los humanos se les llama lenguajes de alto nivel. ¿Por qué creéis que los lenguajes evolucionan? Para hacerle más sencillo al programador resolver las necesidades, expresando algoritmos en un idioma más próximo al lenguaje hablado o escrito, que ya conocemos perfectamente.
Lenguajes Orientados a Objetos En la evolución de los lenguajes de programación, por diversos motivos que se tardaría demasiado en explicar, los lenguajes orientados a objetos mejoran la manera de expresar los algoritmos. Estos lenguajes son capaces de mayores cotas de abstracción, modularidad, jerarquización, que son características deseables de cualquier programa. En resumen, con lo que te tienes que quedar ahora, es que por medio de POO los programadores pueden hacer programas más complejos de una manera más fácil. Y no solo eso, también nos permite un mantenimiento más sencillo, lo que redunda siempre en costes menores en el desarrollo de software, programas mejor hechos y capaces de realizar cosas más complejas. Una de las muchas cosas que evolucionaron en los lenguajes tiene que ver con los tipos de datos.
Tipos de datos en la evolución de los lenguajes Como recordarás, los tipos de datos en Javascript son: Numérico Cadena Lógico (boleano) Con estos tipos de datos, que son los principales en la mayoría de lenguajes, se llaman primitivos. Sobre ellos se construye cualquier cosa, se hace un excitante juego de carreras de coches, "se lleva un cohete a la luna"... Pero qué pasa con los tipos de datos más complejos? Por ejemplo, piensa en una coordenada en el eje 2D. La coordenada se define por dos valores (x,y).
Nota: Si recuerdas, en la clase de los primeros algoritmos resolvimos la coordenada creando dos variables por separado. Pero esto se puede mejorar.
Si quieres que vayan juntas puedes usar una estructura de un array, una variable con múltiples compartimentos para guardar cosas. Como las carpetas con compartimentos donde guardas por separado los apuntes de cada asignatura. Veremos soluciones como éstas de los arrays en la clase dedicada a las estructuras de datos.
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 31 de 45
Curso de programación
Una coordenada está compuesta por dos números (elementos de tipo de datos numérico), pero en la práctica, en muchas ocasiones queremos juntar cosas diferentes.
Agrupaciones heterogéneas Piensa en elementos como estos, que tienen que ser manejados en multitud de programas: numérico para el número de la factura. cadena para el nombre del cliente boleano para decir si está pagada o no… numérico para el id_usuario cadena para su nombre boleano para decir si tiene su email verificado Observarás que en estos, y muchos otros, elementos de los programas necesitas mezclar cosas distintas. Podríamos usar un array, pero enseguida veréis que se nos queda corto y lo que es peor, en muchos lenguajes no se pueden meter cosas de tipos distintos en un mismo array. Osea, si haces un array en C, todos los elementos de ese array deben tener el mismo tipo.
No solo hay datos, también hay operaciones Ahora, los lenguajes no solo permiten trabajar con datos. Es más, los programas toman sentido cuando permiten realizar operaciones con esos datos. Así pues, observarás que por otro lado tenemos las funciones. Volvemos a la coordenada. Dentro de un programa puedes querer hacer cosas con la coordenada: Restarle o sumarle otra coordenada Trasladarla en el eje x o en el eje y Con dos coordenadas podrás querer saber la distancia que las separan Todas esas funciones, con lo que sabéis ahora, se tienen que definir por separado. Es decir, en los lenguajes tenemos por una parte los datos, en variables o estructuras, y por otra tenemos las funciones. Quizás hoy todavía no sois capaces de ver la problemática de ello o la manera de mejorar esa situación, pero muchas personas pensantes han llegado a soluciones. Para que lo puedas ver, quizás sea bueno realizar un análisis. Plantéate que quieres saber la distancia de dos puntos (este algoritmo se explicó en la clase de primeros algoritmos en Javascript). function distancia_dos_puntos(ax, ay, bx, by){
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 32 de 45
Curso de programación
//Calculo componente horizontal //Calculo componente vertical //Hago el cuadrado de las componentes //Las sumo //Aplico la raíz cuadrada //Devuelvo el resultado }
¿Qué te parecería si a una coordenada (que en principio dijimos que eran dos datos con dos puntos, en el eje de las x y de las y) además pudieras pedirle que realizara operaciones. En ese caso podrías resolver esa operación de solicitar la distancia simplemente pidiéndole a la coordenada que te la indique. "Cooordenada, por favor, dame la distancia con otra_coordenada" Cuando tenemos estructuras de datos heterogéneas como una factura, o un usuario nos resulta extremadamente útil que dentro de ellas también se incluyan una serie de funcionalidades asociadas, porque simplifica mucho el trabajo con ellas. factura aparte de guardarme simplemente esos datos, también me resulta cómodo que responda a las cosas que yo necesito hacer sobre una factura: registrar pago calcular precio sin iva calcular precio con iva Agregar un nuevo producto a la factura imprimir Abonar factura en caso de devolución A un usuario me resultaría muy útil que pudiera realizarme operaciones como: Verificar si es válido abrir o cerrar sesión dar de baja Todo ello nos facilita la programación, simplifica el código y permite una mayor reutilización y modularidad. Resumo algunos detalles. Defino las facturas una vez y luego puedo crear tantas como desee, todas tendrán los datos de cada factura de mi programa y responderán a operaciones habituales que yo necesite. En mi programa de gestión, que trabaja con facturas, simplemente les pido a las facturas que hagan cosas, por favor factura, imprímete, abónate, dime tu precio sin iva... Soy capaz de reutilizar el código de mis facturas para cualquier programa de gestión que deba trabajar con facturas. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 33 de 45
Curso de programación
Volvamos a las definiciones de objetos Con lo que sabéis ya, ahora somos capaces de tomar de nuevo esas frases que nos servían para definir un objeto: Agrupaciones heterogéneas de datos simples, con sus operaciones. Es un ejemplar de un tipo de elemento, constituido por una serie de datos que lo definen, junto con una serie de operaciones que podrías hacer con este tipo de elemento.
Terminología cuando trabajamos con objetos Hasta lo que hemos visto en este punto del resumen de la clase hemos cubierto más o menos los primeros 15 minutos de clase. En realidad hay mucha más información, ya que hasta ahora solo se han explicado un poco los motivos por los que existe la programación orientada a objetos. En la presentación se abordó la programación orientada a objetos desde un punto de vista más académico, definiendo cada uno de los integrantes en este paradigma. Clase Objeto Propiedad Método En el siguiente vídeo veremos cómo aplicar este conocimiento ya en el lenguaje Javascript, viendo la sintaxis y algunos ejemplos interesantes que nos ilustren mejor todos estos mecanismos. A continuación tienes el vídeo de esta parte de la clase de objetos.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/objetos-lenguaje-informatico-introduccion.html Este artículo es obra de Miguel Angel Alvarez Fue publicado por primera vez en 27/02/2015 Disponible online en http://desarrolloweb.com/articulos/objetos-lenguaje-informaticointroduccion.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 34 de 45
Curso de programación
Trabajo con objetos en Javascript Clase dedicada a aprender a usar objetos en el lenguaje Javascript, creación de objetos, acceso a propiedades, métodos, objetos incorporados, etc. Esta es la clase dedicada a objetos del Curso de Programación básico que realizamos en DesarrolloWeb.com en enero de 2015. En ese curso impartimos una clase dedicada a los objetos, que estuvo muy bien para todos aquellos que quieran comenzar con este paradigma de la programación. La clase actual pertenece a la exposición de objetos, dedicada al uso de los objetos dentro del lenguaje Javascript. Consulta el vídeo anterior si quieres saber qué son los objetos y conocer sus conceptos relacionados. Ten en cuenta que en este texto encontrarás solo un resumen de la clase y para encontrar el contenido completo tendrás que ver el vídeo de la clase, impartida por Miguel Angel Alvarez. Al final de este texto está embebido el vídeo.
Programación orientada a objetos en Javascript Antes de empezar hay que mencionar dos puntos clave para entender los objetos en el contexto de este lenguaje: 1) Javascript acepta OOP, pero es un poco particular con respecto a aproximaciones más tradicionales como las de Java o PHP. 2) Además, en Javascript podemos programar con programación estructurada (uso de funciones y datos por separado) o OOP. Estos dos puntos hacen que Javascript no sea el mejor lenguaje para aprender a programar con orientación a objetos, pero esperamos que no sea un inconveniente para entender cómo se aplican los conceptos de OOP.
Sintaxis de OOP en Javascript http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 35 de 45
Curso de programación
El proceso de instanciación se realiza, como en muchos otros lenguajes, por medio del operador "new". //Operador new var factura1 = new Factura();
La variable sobre la que guardo un objeto es igual que cualquier otra variable conocida hasta ahora. Esto lo podrás leer como "asigna en la variable factura1 el resultado que se produzca al instanciar un nuevo objeto de la clase Factura".
Nota: Ojo, en Javascript no existen las clases como tal. Esto va a cambiar en futuras revisiones del lenguaje, pero, como veremos más tarde, no existe la "clase Factura" como tal, sino que simplemente es una función.
El acceso a propiedades y métodos de los objetos se realiza por medio del operador punto ".", indicando primero el objeto (el nombre de la variable donde he almacenado un objeto), seguido de punto (.) y luego el nombre de la propiedad o método a acceder, teniendo en cuenta que los métodos al ser funciones, requieren los paréntesis detrás para realizar el paso de parámetros. factura1.cliente = "EscuelaIT"; factura1.imprimir();
Ahora veamos cómo se define la clase factura, apreciando que no es más que una función. Eso es algo muy particular de Javascript, dado que en este lenguaje no existe el concepto de clase. function Factura(){ this.imprimir = function(){ alert("cliente: " + this.cliente); } }
Las operaciones de instanciación y de acceso a sus atributos o métodos se pueden hacer como hemos visto. var factura1 = new Factura(); factura1.cliente = "Miguel"; factura1.imprimir();
Objetos incorporados en Javascript En Javascript, como en cualquier lenguaje, nos ofrecen una serie de librerías para realizar http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 36 de 45
Curso de programación
operaciones típicas, como trabajo con fechas, matemáticas, arrays, cadenas, etc. En este lenguaje esas funciones nos las ofrecen por medio de objetos incorporados. En esta exposición se hizo un rápido listado de los objetos incorporados y el sentido de su existencia: Math (cálculos matemáticos) Date (trabajo con fechas y horas) String (operaciones con cadenas de caracteres) Array (realizar cosas sobre los arrays) ... Estos objetos incorporados los vimos ya en uso durante las clases del curso y en esta clase te explicamos cómo usarlos. Se vió un ejemplo de uso de las funciones de cadenas. var cadena = "EscuelaIT"; alert (cadena.length); alert (cadena.toLowerCase());
Al ver ese código aprecia que en Javascript las cadenas de caracteres se comportan como si fueran objetos. Con cadena.length accedemos a la propiedad que contiene el número de caracteres de la longitud del string. Con cadena.toLowerCase() alteramos una cadena, donde puede haber mayúsculas y minúsculas, para que solo tenga minúsculas. También vimos ejemplo del trabajo con la clase Date de Javascript, para trabajo con fechas. var fecha = new Date(); var diames = fecha.getDate(); var mes = fecha.getMonth() + 1; var ano = fecha.getFullYear(); document.write("Hoy: " + diames + "/" + mes + "/" + ano);
En este caso creamos una nueva fecha y luego extraemos los valores de dias, meses y años, para luego imprimirlos en la página.
Nota: Observarás que document.write() es muy parecido a lo que acabamos de conocer como "invocación a un método", de hecho es un método (write) sobre un objeto (document). Ese objeto document es un objeto que ya te da creado Javascript y corresponde con el documento o página que se está visualizando. El objeto document forma parte de las cosas que están disponibles al programar Javascript en el contexto de un navegador y es un elemento del DOM (document objetc model) que veremos a continuación y que te cansarás de ver si te introduces con detalle en las lecciones de Javascript que encontrarás en DesarrolloWeb.com.
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 37 de 45
Curso de programación
Se ofrecieron otros ejemplos de objetos incorporados dentro del vídeo completo.
DOM en Javascript El Document Object Model (DOM) contiene una correspondencia en objeto de cada uno de los elementos del navegador. Es decir, todos los elementos de la página están representados dentro de lo que se conoce como DOM y disponibles para los programadores en Javascript. En el DOM encontramos objetos que corresponden con elementos presentes en el navegador (ventana, historial, etc.) y en el documento o página que se está visualizando (cuerpo, etiquetas, elementos de formulario, etc.). Cambiando el estado del DOM, cambiamos el estado de los elementos de la página. Ese es el mecanismo por el cual mediante Javascript podemos alterar el estado de la página, muy habitalmente como respuesta a acciones del usuario (eventos). Dentro del DOM hay elementos simples, como podría ser un párrafo, o una etiqueta DIV, pero algunos tan complejos como el elemento CANVAS que tiene una complejidad muy grande y una cantidad enorme de funciones y métodos orientados a dibujar cualquier tipo de diseño de mapa de bits en una página web. En la penúltima parte de este vídeo veremos un ejemplo de trabajo con el API (juego de funciones) de Canvas, para crear una imagen realizada dinámicamente por medio de Javascript. El código lo dejo a continuación, aunque recordar que en DesarrolloWeb.com tenemos un manual completo para enseñar a trabajar con el elemento Canvas. var canvas = document.getElementById('micanvas'); var context = canvas.getContext('2d');
var circulos = prompt("dime cuantos circulos", ""); circulos = parseInt(circulos);
context.beginPath();
if(circulos > 0){
context.arc(75,75,50,0,Math.PI*2,true); context.fillStyle = '#272298'; context.fill();
if(circulos > 1){ context.beginPath(); context.arc(85,54,21,0,Math.PI*2,true); context.fillStyle = '#fcfdff'; context.fill();
context.beginPath(); context.arc(88,52,14,0,Math.PI*2,true); context.fillStyle = '#dbf6fd'; context.fill();
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 38 de 45
Curso de programación
context.beginPath(); context.arc(90,53,6,0,Math.PI*2,true); context.fillStyle = '#101010'; context.fill(); } }
Recorridos a propiedades de objetos La clase finalizó explicando acerca de los recorridos genéricos a las propiedades de un objeto, que es algo que nos quedó pendiente de ver cuando realizamos la clase sobre las estructuras de control. En el ejemplo se mostró además que en Javascript podemos definir objetos a partir de un literal, con una sintaxis como la que conoceremos si alguna vez hemos trabajado con JSON. var usuario = { nombre: "Manolo", edad: 35, autenticado: true };
for(campo in usuario){ alert(campo); alert(usuario[campo]); }
Las primeras líneas son la definición de un objeto por medio de su literal y el bucle for nos permite realizar un recorrido por todas sus propiedades. Decimos que es un recorrido genérico porque da igual el número o nombre de sus propiedades, independientemente de ellos el bucle los recorrerá todos, accediendo tanto al nombre del campo como a su valor. Por aquí os dejamos el corte del vídeo publicado en YouTube:
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/trabajo-objetos-javascript.html Este artículo es obra de Miguel Angel Alvarez Fue publicado por primera vez en 31/03/2015 Disponible online en http://desarrolloweb.com/articulos/trabajo-objetos-javascript.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 39 de 45
Curso de programación
Estructuras de datos Qué son las estructuras de datos más fundamentales en en mundo de la programación, y cómo se implementan algunos ejemplos en Javascript. En este vídeo os presentamos uno de los contenidos básicos que todo programador debe conocer cuando está empezando, como son las estructuras de datos. Es una clase del Curso de los fundamentos de la programación, que impartimos a principios de 2015. La clase la ofreció José Dimas Luján, profesor de universidad en Cancún. La clase trata de explicar en términos generales qué son las estructuras de datos y por qué son importantes en el mundo de la programación, aplicaciones e implementaciones básicas.
¿Qué son las estructuras de datos? Pensemos en algunas cosas del día a día. Siempre tenemos necesidades básicas, como agrupar las cosas. Por ejemplo el armario de tu casa, donde tienes un conjunto de camisetas, no las mezclas con los zapatos o los pantalones ¿no? Las estructuras de datos en la programación te sirven para acomodar los datos de cierta forma. Los tipos de estructuras de datos que se usan en la programación también son similares a los que encuentras en tu día a día. Por ejemplo, las camisetas de tu armario probablemente estén una encima de la otra y muchas veces (al menos los hombres solemos hacer eso) coges la camiseta que está arriba del todo porque es la más fácil de retirar y porque no quieres preocuparte con aquello de "qué me pongo hoy". Fuera de bromas, estructuras de datos encuentras en la pila de lavar los platos, en la cola de los ingresos del cine, en la fila para subir al autobús, etc. Ahora solo falta verlas en términos de programación. Además, en cada lenguaje de programación podemos usar diferentes estructuras de datos y diferentes implementaciones de las más básicas, como las listas, colas, pilas, que suelen estar presentes en la mayoría de los lenguajes. Si entendemos el concepto, importa poco la sintaxis, porque la podremos realizar nosotros mismos en términos de código o la encontraremos en diversas fuentes como libros o tutoriales. http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 40 de 45
Curso de programación
Tipo más usado de las estructuras de datos: arrays, arreglos A los arrays, palabra inglesa muy usada en términos de programación, también los conocemos como arreglos, vectores, matrices, etc. No importa mucho cómo quieras referirte a ellos, el caso es que están representados en casi todos los lenguajes de programación y se usan intensivamente para hacer todo tipo de programas y estructuras más complejas. Un array es una estructura de datos y es la más usada en la programación. Un array es un contenedor donde podemos agrupar diversos elementos dispuestos en casillas. Puede haber arrays de una única dimensión o de varias dimensiones. Empezando por arrays de una única dimensión, lo puedes entender como una barra con casillas, cada casilla es como una variable, solo que está agrupada con otras. Así pues, en un array tenemos diversas posiciones y en cada una de ellas se puede almacenar un dato. En cada posición de esa estructura de arreglo encontramos un dato diferente y para poder referirnos a él usamos lo que se llaman índices. En Javascript solo hay arrays con índices numéricos y la primera casilla de un array siempre empieza por el índice cero. Por tanto, un array de 10 posiciones iría desde el índice cero hasta el nueve. Sin embargo podemos tener arrays de varias dimensiones, por lo que pasaríamos de tener una estructura parecida a un vector (vectores de las matemáticas), a una estructura de matriz, con varias dimensiones. Te sugiero ver el vídeo completo, al pie de este texto, para más aclaraciones.
Estructuras de datos más complejas Sin abandonar la sencillez necesaria en estas clases de iniciación a la programación, en este vídeo luego se abordaron otras estructuras de datos más complejas, como las listas y sus comportamientos: pilas y colas. Para saber cómo son y cómo se comportan estas estructuras de datos simples, piensa nuevamente en cosas de tu día a dia. Los platos para fregar en la cocina se organizan en una pila. Los platos sucios se colocan encima del todo y cuando vas a fregarlos el primero que tomas es el que tienes arriba. Una cola (o en lugares también llamada fila) es como cuando vas al cine y quieres comprar tu entrada en la taquilla. El último que llega se coloca detrás y la taquillera atiende primero al que llegó antes. Esas estructuras de datos se implementan por medio de arrays, a los que se les otorga un poco de "inteligencia" por medio de código de programación. En este vídeo se ofrecen diversas implementaciones en Javascript. Nuevamente, te sugerimos prestar atención a la segunda mitad del vídeo para poder obtener más información.
Funciones de los lenguajes para trabajo con estructuras de datos Todos los lenguajes tienen diversas funciones que ofrecen al programador para hacer cosas habituales con las estructuras. Por ejemplo, dado un array es habitual que necesites ordenarlo, http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 41 de 45
Curso de programación
de mayor a menor, menor a mayor, orden alfabético, etc. Para todo eso generalmente los lenguajes tienen diversas funciones que también revisamos en el vídeo. Claro que ya esas implementaciones y el abanico de posiblidades de funciones ya listas dependen de la riqueza del lenguaje y de los tipos de estructuras de datos que ellos nos ofrecen. En el vídeo nos centramos en Javascript, sin dejar de mencionar que si vas a Java tendrás otras estructuras ya listas y sus funciones, así como en Python, PHP, etc. En el siguiente vídeo encontrarás mucha más información, así que te recomendamos concentrarte durante unos minutos para aprovecharlo al máximo y conocer algunas de las cosas típicas que se hacen en todos los programas, tanto los más simples como aquellos más complejos. Si te gusta el vídeo, no dejes de darle al botoncito con el pulgar levantado!
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/estructuras-datos-programacion.html Este artículo es obra de José Dimas Luján Fue publicado por primera vez en 29/04/2015 Disponible online en http://desarrolloweb.com/articulos/estructuras-datosprogramacion.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 42 de 45
Curso de programación
Historia y los tipos de lenguajes de programación Es una clase en la que profundizamos en los distintos tipos de lenguajes de programación, con una breve introducción histórica y una completa clasificación atendiendo a sus características. En este vídeo vamos a realizar un estudio de los distintos tipos lenguajes de programación, para conocer sus principales características y entender qué nos aporta cada uno y el motivo de su existencia. Se trata de un conocimiento general que cualquier programador debería tener, que le ayudará a entender mejor la disciplina de la programación, y en definitiva su profesión. Esta es la última clase del Curso de Programación básico que hemos realizado en DesarrolloWeb.com y EscuelaIT y la impartió Eduard Tomàs @eiximenis. Al final de este texto encontrarás el vídeo con la grabación de la clase. La clase está dividida en dos partes, en una se trata la historia de los lenguajes de programación y en otra se ve más acerca de los tipos de lenguajes que han ido apareciendo con sus detalles particulares.
Historia de los lenguajes de programación En la primera parte de esta clase se habló de la historia de la programación, con un repaso rápido, comenzando por Charles Babagge (1791 - 1871), un matemático que desarrolló una máquina de cálculo que se podía programar. La máquina nunca se llegó a construir por problemas tecnológicos de la época. Luego Ada Lovelace (1815 - 1852) que fue la primera programadora. Ella diseñó el primer algoritmo para la máquina de Babagge. Se comenta en la exposición una serie de datos curiosos cronológicos que nos hacen una idea buena de como ha evolucionado toda esta disciplina de la programación. Los primeros lenguajes, los primeros bug, los primeros ordenadores… hasta llegar al 1960 con el primer circuito integrado o 1971 el primer microprocesador o 1981 el PC.
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 43 de 45
Curso de programación
Se introducen también cronológicamente un listado de lenguajes de programación, junto con su fecha de lanzamiento, que serían los lenguajes "padre" a partir de los cuales se han creado toda una variedad de lenguajes que siguen sus filosofías. En los 50 y los 60 la primera generación de lenguajes: Fortran, Algol, Lisp, Cobol, Simula, CPL. En los 70 lenguajes como Pascal, C, Prolog, ML, Scheme, SQL. En los 80 se presentan los lenguajes imperativos, C++, Matlab, Eiffel, Erlang, Perl. En los 90 Haskell, Python, Ruby, Clos, Java, Javascript, C#. Incluso en la actualidad se siguen creando lenguajes, Dart, Swift...
Vista aérea de los lenguajes de desarrollo En esta segunda parte de la clase nos centramos en la clasificación de los lenguajes atendiendo a diversas características y ver ejemplos de implementación de un mismo código en diferentes lenguajes que nos permitan entender mejor sus filosofías. El objetivo no es fijarse en los detalles sintácticos, que son aspectos determinados de un lenguaje y que abordas cuando te pones a aprenderlo. Más bien hay que fijarse en los conceptos, estructuras y tipologías más allá de de cómo se escribe un lenguaje. En cuanto a clasificación se comentó las diferencias y distintos enfoques de los lenguajes de programación atendiendo a tipado y su paradigma. En cuanto a tipado se habló de los lenguajes con y sin tipos, con tipado estático y dinámico o fuerte o débil. Incluso de otros conceptos como el Duck Typing o Estructural Typing. En cuanto a Paradigma hay dos tipos de lenguajes, imperativos (que son los que más se conocen) y el declarativo. Los imperativos se dividen en secuenciales, estructurados, procedurales y orientados a objetos. Los declarativos a su vez se dividen en lógicos y funcionales. Cada uno de estos tipos se explicaron con detalle, explicando sus características y ejemplos de lenguajes representativos de cada caso. A partir de ahí se vieron ejemplos ya con código de algoritmos realizados con diferentes lenguajes, representativos de cada uno de los tipos mencionados, como Basic, C, Pascal, Javascript, Lisp, Prolog... y se mencionaron las novedades más importantes que presentaron cada uno de ellos y que representó una innovación en su época.
Conclusión En resumen, esta clase significa un baño de conocimiento que sería muy interesante para que las personas que quieren aprender programación consigan tener una idea global de las cosas que pueden encontrarse mediante el cual ubicar también las tecnologías que están utilizando. Como siempre, en este resumen solamente te estamos aportando una pequeña parte de esta charla dedicada a la programación y encontrarás mucha más información de utilidad si te ves el vídeo completo que puedes encontrar a continuación.
Para ver este vídeo es necesario visitar el artículo original en: http://desarrolloweb.com/articulos/historia-tipos-lenguajes-programacion.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 44 de 45
Curso de programación
Finalización del Curso de Programación Con este vídeo finaliza este Curso de los Fundamentos de la Programación. Si lo has seguido hasta aquí tendrás una serie de conceptos esenciales que son importantes de conocer antes de abordar con seriedad cualquier tipo de lenguaje. Los profesores y organizadores de este curso esperamos que te haya servido de utilidad. Estaremos agradecidos si nos das cualquier tipo de opinión o comentario, tanto a los profesores como a @deswebcom en general. Recuerda que tienes muchos otros manuales en nuestra web que te pueden enseñar de manera detallada muchos tipos de lenguajes.
Este artículo es obra de Eduard Tomàs Fue publicado por primera vez en 16/06/2015 Disponible online en http://desarrolloweb.com/articulos/historia-tipos-lenguajesprogramacion.html
http://desarrolloweb.com/manuales/curso-fundamentos-programacion.html
Página 45 de 45