investigacion sobre la programacion By: Adán Garcia
1.
2. Liceo Mixto Cultura
Tema: La programación
Curso: Computación
Nombre: Lester Adán Garcia Del Cid
Grado: 5to Bachillerato
3. Índice
✓ Historia de la programación
✓ ¿Qué es la programación?
✓ Esencia de la programación
✓ Algoritmos
✓ Formas de describir el algoritmo
✓ Programación orientada a objetos
✓ Programas utilizados en la programación
• Microsoft Visual Studio.NET
• Java JDK
• NetBeans
• Delphi
• Ruby on Rails
4. Historia de la programación
Gottfried Wilheml von Leibniz (1646-1716), quien aprendió matemáticas de forma autodidacta
(método no aconsejable en programación) construyó una máquina similar a la de Pascal, aunque
algo más compleja, podía dividir, multiplicar y resolver raíces cuadradas.
Pero quien realmente influyó en el diseño de los primeros computadores fue Charles
Babbage (1793-1871). Con la colaboración de la hija de Lord Byron, Lady Ada Countess of
Lovelace(1815-1852), a la que debe su nombre el lenguaje ADA creado por el DoD (Departamento
de defensa de Estados Unidos) en los años 70. Babbage diseñó y construyó la "máquina
diferencial" para el cálculo de polinomios. Más tarde diseñó la "máquina analitica" de propósito
general, capaz de resolver cualquier operación matemática. Murió sin poder terminarla, debido al
escepticismo de sus patrocinadores y a que la tecnología de la época no era lo suficientemente
avanzada. Un equipo del Museo de las Ciencias de Londres, en 1991, consiguió construir la máquina
analítica de Babbage, totalmente funcional, siguiendo sus dibujos y especificaciones.
Un hito importante en la historia de la informática fueron las tarjetas perforadas como medio para
"alimentar" los computadores. Lady Ada Lovelace propuso la utilización de las tarjetas perforadas
en la máquina de Babbage. Para que se enteren todos esos machistas desaprensivos, el primer
programador/a fue una mujer. En 1880 el censo en Estados Unidos tardó más de 7 años en
realizarse. Es obvio que los datos no eran muy actualizados. Un asistente de la oficina del censo
llamado Herman Hollerit (1860-1929) desarrolló un sistema para automatizar la pesada tarea del
censo. Mediante tarjetas perforadas y un sistema de circuitos eléctricos, capaz de leer unas 60
5. tarjetas por minuto realizó el censo de 1890 en 3 años ahorrando tiempo y dinero. Más tarde
fundó la Tabulating Machine Company y en 1924 tras alguna que otra fusión nació la Internacional
Bussines Machines, IBM. ¿ Os suena ?
Las computadoras de hoy en día se sustentan en la lógica matemática basada en un sistema
binario. Dicho sistema se implementa sobre dispositivos electrónicos que permiten, o no, pasar la
corriente, con lo que se consiguen los 2 estados binarios: 0 y 1.A mediados del siglo XX, cuando se
empezaron a construir las primeras computadoras digitales, se utilizaban tubos de vacío para
implementar los 2 estados binarios, pero ¿ cómo aparecieron estos conceptos ? Alan Mathison
Turing (1912-1954) diseñó una calculadora universal para resolver cualquier problema, la "máquina
de Turing". Tuvo mucha influencia en el desarrollo de la lógica matemática. En 1937 hizo una de
sus primeras contribuciones a la lógica matemática y en 1943 plasmó sus ideas en una
computadora que utilizaba tubos de vacío. George Boole (1815-1864) también contribuyó al algebra
binaria y a los sistemas de circuitos de computadora, de hecho, en su honor fue bautizada el
álgebra booleana.
La primera computadora digital electrónica patentada fue obra de John Vincent Atanasoff (1903-
1995). Conocedor de las inventos de Pascal y Babbage, y ayudado por Clifford Berry (1918-1963),
construyó el Atanasoff Berry Computer (ABC).El ABC se desarrolló entre 1937 y 1942. Consistía
en una calculadora electrónica que utilizaba tubos de vacío y estaba basada en el sistema binario
(sistema numérico en el que se combinan los valores verdadero y falso, o 0 y 1).
Entre 1939 y 1944, Howard Aiken (1900-1973) de la universidad de Harvard en colaboración con
IBM desarrolló el Mark 1. Era una computadora electromecánica de 16 metros de largo y más de
dos de alto. Tenía 700.000 elementos móviles y varios centenares de kilómetros de cables. Podía
realizar las cuatro operaciones básicas y trabajar con información almacenada en forma de tablas.
Por desgracia, los avances tecnológicos suelen producirse gracias a los militares que se
aprovechan de la ciencia para perfeccionar sus armas. En la Moore School de la Universidad de
Pensilvania se estaba trabajando en un proyecto militar para realizar unas tablas de tiro para
armas balísticas. Los cálculos eran enormes y se tardaban semanas en realizarlos. Parece ser
que John W. Mauchly (1907-1980), quien dirigía el departamento de física del Ursine College de
Filadelfia vivió en casa de Atanasoff durante cuatro días a partir del 13 de Junio de 1941, lo que
seguramente aprovechó para conocer las ideas de Atanasoff.
6. Junto a John Presper Eckert (1919-1995), Mauchly desarrolló una computadora electrónica
completamente operacional a gran escala, para acelerar los complicados cálculos del proyecto
militar de la universidad Moore. Se terminó en 1946 y se llamó Electronic Numerical Integrator And
Computer (ENIAC). El ENIAC tenía 18.000 tubos electrónicos integrados en un volumen de 84
metros cúbicos. Pesaba unas 30 toneladas y consumía alrededor de 100.000 vatios. Su capacidad
de cálculo era de 5.000 operaciones por segundo, aunque tenía que programarse manualmente
conectándola a 3 tableros que contenían más de 6000 interruptores. Cargar un programa podía
ser una tarea de varios días. El calor dispado por semejante monstruo debía ser importante, y se
necesitaba una instalación de aire acondicionado. En definitiva, un ordenador portátil... más o menos.
Puede que no os suene, pero quien conozca de "los entresijos de la informática" seguro que
considera importante nombrar a Johann Ludwig Von Neumann (1903-1957), genio de las
matemáticas, quien tuvo el honor de asistir a las clases de Albert Einstein en la universidad de
Berlín. Autor de trabajos de lógica simbólica, matemática pura y aplicada, física y tecnología, publicó
un artículo acerca del almacenamiento de los programas, en 1945. Proponía que los programas se
guardaran en memoria al igual que los datos, en forma binaria. Esto tuvo como consecuencia el
aumento de velocidad de los cálculos y la ausencia de errores producidos por fallos mecánicos al
programar la máquina mediante cables.
En cuanto a la aparición de los lenguajes de programación, el archiconocido COBOL, que tantos
problemas causó con el "efecto 2000", fue el primer lenguaje en el que no había que programar
directamente en código binario, y fue Grace Murray Hoper en 1952, una oficial de la Marina de
Estados Unidos desarrolló el primer compilador, un programa que puede traducir enunciados
parecidos al inglés en un código binario comprensible para la maquina llamado COBOL (COmmon
Business-Oriented Languaje).
A partir de ahí, los avances han sido vertiginosos.
• La utilización del transistor en las computadoras en 1958, sustituyendo los tubos de vacío
• La aparición del circuito integrado de mano de Jack Kilby, también en 1958
• La miniaturización de un circuito electrónico en un chip de silicio en 1961
7. • El primer microprocesador, el 4004 de Intel, en 1971
• Gary Kildall crea el sistema operativo CP/M en 1973
• IBM comercializa el primer PC en 1980
Recordando a los primeros tiempos del ENIAC, con enormes computadores, en 1998 se terminó el
proyecto Blue Pacific. La "maquinita" tiene la nada despreciable cantidad de 5856 procesadores
que en conjunto tienen una velocidad de 3'9 teraflops, 2'6 Terabytes de memoria, ocupa 2400
metros cuadrados y tiene un peso de 47 toneladas. Se utiliza para la simulación de explosiones
nucleares, y "ha salido" por unos 13000 millones de pesetas... baratito.
Hay muchos más personajes que intervienen en la historia y que han realizado grandes
aportaciones, pero no es cuestión de extenders
8. La Programación es el proceso al que se recurre para crear algún tipo de aplicación o software,
para materializar un concepto o proyecto que requiere de la utilización de un lenguaje informático
para poder llevarse a cabo. Es algo que está completamente ligado a la figura del programador, y
que cada vez está cobrando más importancia dentro del mundo del marketing.
Decimos que tanto esta figura como el proceso en sí
son importantes actualmente porque es difícil dar forma
a una campaña de marketing sin que se pase por
alguno de estos dos elementos. Desde la elaboración de
una aplicación para smartphones hasta el propio
desarrollo de una página web son aspectos que
requieren de la labor de un profesional de este tipo si
realmente se quieren buenos resultados.
Hay muchos tipos de programación, dependiendo del lenguaje a utilizar. En el campo web, por
ejemplo, es habitual ver la programación en HTML, en JavaScript y en otros derivados. Si nos
desplazamos al sector de los smartphones o incluso al de la informática en general, el abanico se
amplía sobremanera para acoger infinidad de variantes más.
El marketing y la Programación ya están caminando de la mano, y no parece que vayan a
soltarse en mucho tiempo, sobre todo teniendo en cuenta cómo el marketing digital se ha
posicionado ya como el rey en este terreno.
En conclusión la programación es el proceso de creación de programas informáticos. Esta
definición se puede interpretar de la siguiente manera. La programación no es más que una
explicación a la computadora de qué, en qué forma y cómo llegar al usuario. En otras palabras, es
una especie de arte de traducir los deseos de una persona al lenguaje de la máquina.
9. La idea principal es crear un algoritmo y traducirlo a un lenguaje de programación. Al guía de
desarrollo se le suele aconsejar que empiece a desarrollar un programa respondiendo a la
pregunta: ¿Es posible implementar esta tarea de forma programada? Por ejemplo, incluso hoy en
día no se puede hacer que una computadora prediga lo que sucederá en unos días. E incluso si
este ejemplo no es del todo correcto, porque esta tarea es imposible en principio. Sin embargo, si
se limita la tarea a predecir el comportamiento de alguna divisa en el intercambio, tal tarea se
resuelve con la ayuda de un algoritmo suficientemente complejo y una gran base de datos
experimental.
esencia de la programación
10. Algoritmos
Una vez que se haya tomado la decisión sobre la posibilidad de implementar el software en una
tarea, es necesario construir un algoritmo para su solución. Es decir, es necesario describir la
secuencia de pasos para resolver la tarea con el máximo detalle teniendo en cuenta todas las
posibles ramas, ciclos y errores. De hecho, se puede construir un algoritmo para las operaciones
diarias más simples. Por ejemplo, se puede describir el algoritmo de la preparación del té:
1. Abrir la tetera.
2. Si no hay agua en la tetera, se le debe echar.
3. Poner la tetera en la estufa de gas.
4. Abrir el gas.
5. Encender el fuego.
6. Esperar a que el agua de la tetera hierva.
7. Colocar el sobre de té en la taza.
8. Echar el agua caliente de la tetera a la taza.
Este algoritmo no es universal, pero para una persona que se prepara una taza de té porque
cuenta con una estufa de gas, es válido todo este proceso.
11. Hay varias formas de describir el
algoritmo:
• Gráfico (esquemas).
• Verbal.
• Pseudocódigo.
• Código del programa
Lenguajes de programación
De hecho, un lenguaje de programación es un conjunto de reglas para describir comandos y
funciones predefinidas. Cada lenguaje de programación limita al desarrollador a un conjunto
estrictamente predeterminado de palabras clave y comandos que pueden ser utilizados en el
desarrollo. Hay varios niveles de lenguajes entre los cuales se distinguen:
• De bajo nivel (ensamblador): trabaja directamente con los comandos del procesador.
• De alto nivel (C++, C#, Java, etc.): es más como un lenguaje ordinario.
Durante el desarrollo de un producto de software se pueden distinguir diferentes niveles de
abstracción. Es decir, los objetos del mundo real pueden ser representados de manera diferente.
Dependiendo de ello, los lenguajes de programación se dividen en los siguientes tipos:
• Procedimiento: se determina la solución de la tarea paso a paso, todo el sistema se divide
en una serie de procedimientos relacionados.
• Orientado a objetos: el programa se desarrolla como un conjunto de objetos
interrelacionados, cada uno de los cuales puede generar una gran cantidad de
implementaciones concretas.
• Declarativo: son los lenguajes de la descripción del problema y el resultado esperado.
12. Programación orientada a objetos
Este enfoque implica desarrollar un programa como un sistema de objetos, cada uno de los cuales
refleja uno u otro objeto del mundo real. Los objetos del mundo real se corresponden con las
clases. Y de cada clase, a su vez, se pueden generar innumerables objetos. Por ejemplo, si se
desarrolla un programa para un taller de coches, las clases serán: coche, motor, suspensión,
carrocería, sistema de frenos y otras piezas de repuesto. Y los objetos de la clase son los modelos
específicos de estas partes, que se utilizan en el proceso.
13. Programas utilizados en la
programación
Básicamente, Microsoft Visual Studio.NET es un entorno de desarrollo integrado (IDE, en inglés)
desarrollado para crear aplicaciones para el sistema operativo Windows. Este entorno es capaz
de ofrecer soporte a múltiples lenguajes de programación como Visual C++, Visual C#, Visual J#, y
Visual Basic .NET. Del mismo modo, ofrece soporte a entornos de desarrollo web como ASP.NET.
Con Visual Studio se pueden desarrollar múltiples proyectos, incluyendo aplicaciones de escritorio y
aplicaciones y servicios web, y asimismo permite a los desarrolladores crear aplicaciones, sitios y
aplicaciones web para distintas versiones de Windows. También es posible desarrollar juegos,
aplicaciones 3D y software de negocios.
Si quieres conocer más información acerca de Microsoft Visual Studio, puedes hacerlo
pulsando sobre este enlace.
Java es un lenguaje de programación diseñado para que el producto desarrollado con el
lenguaje pueda ser interpretado y ejecutado independientemente del sistema operativo en el que
se utilice mediante una máquina virtual Java (JVM).
La principal característica de Java es que fue diseñado para tener la menor cantidad de
dependencias posibles, lo que favorece que los desarrolladores, ya que sólo tendrán que escribir el
programa una sola vez, sin necesidad de tener que recompilarlo para otras plataformas o
sistemas operativos.
Esto es debido a que las aplicaciones generadas con Java funcionan dentro de las
llamadas “Máquinas Virtuales Java”, permitiéndoles también ser ejecutadas en prácticamente
cualquier tipo de dispositivo.
Si lo deseas, puedes obtener más información sobre Java SDK pulsando sobre este enlace.
14. Básicamente, NetBeans es un entorno de desarrollo integrado (IDE) libre con el cual el
desarrollador podrá diseñar sus aplicaciones de escritorio usando el lenguaje Java a partir de un
conjunto de componentes llamados “Módulos”.
En el caso de que quieras obtener más información acerca de la interrelación entre Java y
NetBeans, pulsa sobre este enlace.
Delphi es un entorno de desarrollo de software orientado a la programación general con un
marcado hincapié en la programación visual. Utilizando Object Pascal como lenguaje, es posible
desarrollar programas para Windows y el sistema operativo Linux.
Algunos de los usos más comunes en los que se utiliza Delphi es el desarrollo de bases de datos
cliente-servidor y multicapas, aplicaciones de consola, aplicaciones y servicios web incluyendo CGI,
ISAPI, NSAPI, servicios COM y DCOM y servicios de sistema operativo.
En el caso de que desees conocer más acerca de Delphi, puedes hacerlo pulsando sobre este
enlace.
15. Ruby on Rails es un framework específicamente diseñado para trabajar en conjunto con el lenguaje
de programación Ruby. Ruby es un lenguaje de programación orientado a objetos que le brinda a
los desarrolladores una sintaxis similar a Perl, y cuya principal característica es la facilidad y
velocidad con que se pueden desarrollar aplicaciones web.
La velocidad con que se pueden desarrollar aplicaciones en Ruby on Rails se debe principalmente a
la reutilización de código ya existente. En este punto es primordial entender la filosofía detrás de
Ruby: “Don't repeat yourself”, es decir, “No te repitas”, lo que significa que no necesitaremos repetir
lo que ya ha definido en otro lugar, lo que hace a las aplicaciones creadas mediante Ruby muy
compactas y ligeras.
Si lo deseas, puedes obtener más información acerca de Ruby on Rails pulsando sobre este enlace.