domingo, 26 de febrero de 2017

"La programación y sus lenguajes explicado para no informáticos"



El tema 2 trata de como se forma un lenguaje, para ello va a ser necesario saber que es información; los procesos que se necesitan para llegar a esta; como se representa la información dependiendo del elemento, ya que no es lo mismo pasar información a imagen, que transformar esa información en un audio. Finalmente llegaremos al lenguaje de programación, este sistema se instala en un etapa del proceso de Software llamada implementación. Cabe destacar, que en este tema hablaremos de los diferente procesos de creación de Software, la "calidad" tan subjetiva que pueden llegar a tener y sobre aspectos éticos como la confiabilidad. Este tema lo terminaremos con la evolución de la informática y por tanto con la evolución de los lenguajes de programación. 


¿Qué es información?
La información se hace presente mediante palabras o figuras, una serie de conocimientos que permiten ampliar o precisar otros que se poseen sobre una materia determinada. 
La información es el resultado del sumario de datos simples de una investigación, creación, descubrimiento... En el momento que se tienen datos e información pasada (experiencias) se consigue el conocimiento. Es decir, hay un proceso jerárquico para llegar al conocimiento o la sabiduría, esta ultima es el máximo nivel. Por ello, es muy importante que lo datos sean verdaderos y exactos porque sino se llegaría a concluir en un conocimiento falso. 




LA INFORMACIÓN EN EL ÁMBITO DE LA INFORMÁTICA
El proceso jerárquico es diferente en la informática en cuestión de herramientas; ya que es una jerarquía de lo mas físico (HARDWARE) hasta el mayor nivel de abstracción (Aplicación); este último nivel es el dominio de la información; esta etapa es la más delgada porque la mayoría de los procesos subyacen como soluciones predefinidas en el motor de la información. 




TEORÍA DE LA INFORMACIÓN 
La Teoría de la información de Claude E. Shanon, dice que existen 6 elementos: fuente, elemento codificador, Mensaje, Canal Descodificador y Receptor. 

El modelo de Shannon  es la representación de la información; en el cual se muestra la posible distorsión de esta. 
Nos centraremos en la representación de la información en Internet; en el cual se hace a través del sistema binario. El sistema binario es un sistema de numeración en el que los números se representan utilizando las cifras 0 y 1, es decir solo 2 dígitos ( bi= dos). 
Se utilizan los dígitos 1 y 0 por las señales eléctricas, siendo la señal positiva (+5KW) y negativa (-5KW). Esto en la informativa y en electrónica tiene mucha importancia ya que los ordenadores trabajan internamente con 2 niveles: hay o no hay de Tensión, hay o no hay corriente, pulsando o sin pulsar, etc.
Siendo la mínima unidad el bit; con este sistema se puede representar cualquier tipo de información desde un numero natural hasta los textos; pero estos numero deben mantenerse dentro de un rango y una presión limitada.




Hay diferentes códigos para destinos elementos; Texto: ASCII; Sonido: WAV; Imagen: DXF...

EL LENGUAJE BINARIO PARA LOS REPRESENTAR TEXTOS
La misma lógica que se utiliza para representar los números se puede utiliza para representar texto. Lo que necesitamos es un esquema de codificación, es decir, un código que nos haga equivalencias entre un número binario y una letra de abecedario. 
Por ejemplo, 0100 0001 es el número binario que representa la letra A. 
Varios códigos estándar para convertir texto en binario se han desarrollado a lo largo de los años, los más famosos y utilizados son ASCII Y Unicode. 



ASCII, el Código Estándar Americano para el intercambio de Información; fue desarrollado a partir de los códigos telegráficos, pero con el paso del tiempo fue adaptado para a representación de textos en código binario en los años 1960 y 1970. La versión original de ASCII utiliza 8 bits para representar cualquier carácter, con una total de 128. 

El código estándar actual es Unicode, a pesar de ser muy parecido a ASCII, Unicode contiene más de 110 000 caracteres, cubriendo la mayor parte de as lenguas impresas del mundo. La diferencia entre Unicode y ASCII es, que tiene versiones de 16 y 32 bits; esto le permite la representación de casi cualquier tipo de lenguaje.  
El problema que tienen ambos códigos es la limitación a 256 símbolos, esto hace que haya dificultades para la representación de algunos lenguajes.





REPRESENTACION DE IMÁGENES
Las imágenes se muestran en pantalla como una matriz de puntos de distintos colores (pixels). Para representar una imagen se  puede hacer de dos formas describiendo dichos pixels( imagen raster) o enumerando una serie instrucciones para construir la imagen final 

(imagen vectorial)

  • Imagen Vectorial; son gráficos formulados a base de curva y líneas. Las imágenes  vectoriales componen de contornos y rellenos definidos, matemáticamente mediante precisas ecuaciones.


  • Imagen Raster, estan formadas por pixel; estos pixels tienen uno o más valores que describen su color. 




Los formatos más comunes para representar imágenes en Internet son GIF y JPEG. 


 GIF,formato de 8 bits, es decir, una imagen puede utilizar hasta 256 colores diferentes. Cada pixel va asociado a un indice de la paleta de colores no a un color. GIF es adecuado para dibujos y texto pero poco recomendable para fotografías.






JPEG, formato de 24 bits; esto permite almacenar 16 777 216 colores, más de los que distingue el ojo. Cada pixel va asociado  a un valor que representa su color en formato RGB. JPEG es adecuado para fotografías. 





 

Los formatos vectoriales permiten describir una imagen en base a un número limitado de objetos. Líneas. Curvas. Polígonos.  Estos sistemas se utilizan para producir fichero muy pequeños y adecuado para la transmisión por Internet. 

Los formatos más comunes son Flash(su principal finalidad es el desarrollo de clips multimedia y no los gráficos vectoriales, producto de Macromedia) y VML(su finalidad es la visualización de gráficos vectoriales vinculados a SVG, producto creado por Microsoft). 

REPRESENTACIÓN DE AUDIO 
Hay muchos formatos para la transmisión de audio a través de Internet: MIDI, MOD. AU, MP3, MP4... Los más populares son los formatos MP3 Y MP4; estos formatos comprimen a costa de sacrificar la calidad del sonido; pero la compresión es razonable. Voice XML es un vocabulario para construir interfaces de voz.  

REPRESENTACIÓN DE VIDEO
Existen múltiples formatos pero los más extendidos son Quick Time y MPEG. Este último, permite almacenar audio/video; cabe destacar que los archivos MP3 son archivos MPEG. MPEG utiliza técnicas de compresión para reducir el tamaño final e fichero sin afectar a la calidad de la imagen o del sonido. 




Par la representación en Internet de contenido y presentación se usa el lenguaje HTML surgió para poder representar hipertexto, el problema es que mezcla contenido y presentación; para tratar de solucionar esto se propuso XML. 

LOS LENGUAJES DE PROGRAMACIÓN EN EL MODELO DE INGENIERÍA DEL SOFTWARE


Antes de hablar sobre los lenguajes del Software, es necesario saber que es la Ingeniería del Software; esta tiene como objetivo hacer un software de calidad tanto con aspectos técnicos y no técnicos. El software, son programas de ordenador, normalmente creado por grupos de ingenieros,  asociados a un producto o a una aplicación. Además, implica la correcta documentación, instalación, uso y mantenimiento. 
La calidad de un software es relativa; depende del punto de vista y del producto que estamos construyendo. Hay dos tipos de calidad:
   - Calidad Externa, hay un observador externo, usuario. 
  - Calidad Interna, es la calidad de la estructura internad del Software, son capaces de examinarla los informáticos. 
La calidad mas importante es la que se sabe vender; ya que Windows tiene una calidad interna nefasta, pero con el uso de un buen Marketing de cada externa consigue que su producto sea el más consumido. 





Las características más importantes de la calidad son la funcionalidad(hay funcionalidad correcta se si comporta de acuerdo a las funciones que debe proveer); confiabilidad(confianza del usuario en el software; probabilidad baja de que el software funcione de forma no adecuada); usabilidad (facilidad de uso para los usuarios) y robustez (comportamiento razonable en circunstancias especiales). Adquirir un producto de calidad en la actualidad es sencillo ya que hay responsabilidad profesional y prácticas consensuadas para tener productos de alta calidad sin errores; sin embargo, hace unos años lo importante era que funcionara, no existían prácticas consensuadas. 

El procedimiento a seguir en un proyecto de Ingeniera de Software son la definición de requerimientos, análisis, diseño, implementación, pruebas y mantenimiento. Para ello son necesarias aplicaciones como, Bohm(práctica del conocimiento científico al diseño y construcción de programas); IEEE(se encarga del desarrollo, operación y mantenimiento del software);por lo tanto se puede entender como aplicación todos lo producido durante el proceso por el cual se desarrolla el software. 
El proceso de software, es la manera en que los requerimientos son trasladados al producto software. Este proceso tiene una serie de etapas:

1. ¿Comprar o desarrollar? Para la producción de un software se necesita saber si es conveniente desarrollarlo, si va a solucionar los problemas existentes y si la tecnología actual podría crearlo.

2. Planificación y seguimiento del proyecto; en esta fase se concretan las herramientas necesarias para la producción (editores de texto, gestión de configuraciones, soportes a la especificación..)

3. Análisis completo de los problemas del usuario y por tanto de requerimientos; estableciendo que debe ofrecer el software. Esta tarea tiene una complejidad extra debido a las dificultades en la compresión, en dificultades accidentales(falta de requerimientos, objetivo equivocado... En la videoconferencia se hablo de la construcción de un puente por dos países, estos países usaron medidas de longitud diferentes y en el momento de unión de los puentes, una mitad estaba por encima de la otra)

4. Arquitectura y Diseño; como se proyectaran los requerimientos en el software, dueño previo a la codificación.

5. Pruebas del software,¿Adecuación del sistema a los requerimientos funcionales y no funcionales?; estas pruebas empiezan junto al análisis de requerimientos y continua durante todo el desarrollo del software.


Hay varios modelos de desarrollo de Software:

1. Modelo de ingeniería del Proceso 

2. Modelo del Ciclo de Vida del Software  



3. Modelo De Cascada; con este modelo hay un alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseño; pero hay bajo riesgo para desarrollos bien comprendidos utilizando tecnología conocida.  



4. Desarrollo Evolutivo; en este modelo hay una serie de inconvenientes como poca visibilidad en el proceso, se requiere de habilidades especiales y sistemas procedente especificados. Se usa para sistemas interactivos pequeños o medianos; partes de sistemas grandes o sistemas de corta vida. 




Durante el proceso de desarrollo del Software, hay aspectos éticos como la confidencialidad, derechos de propiedad intelectual... debido a la competencia entre empresas o solamente por la dependencia de la empresa del software, es decir la empresa tiene beneficios  o poder de mercado gracias al sistema software. 

En la etapa de implementación se añade lenguaje de programación, hay multitud de lenguajes ya que ni dos sirven para lo mismo. Para ello se selecciona un programa con un compilador ; a continuación se seleccionan unos ficheros que formaran ese programa. 








Hay cuatro niveles en los lenguajes de programación:
1. Código máquina




2. Código ensamblador, se usan identificados en lugar de códigos reales para las operaciones, los valores y las localidades.



3. Código alto nivel, es parecido a la sintaxis matemática y de sintaxis de lengua inglesa.  


4. Código lenguaje natural 




La evolución del lenguaje 


La primera experiencia fue en 1957, FORTRAN( FORmula TRANlation); su objetivo era tener un lenguaje parecido al lenguaje matemático, debido a su facilidad de uso y bajo costo de desarrollo de programas. Fortran tuvo éxito ya que sobrevive hoy día; tiene gran cantidad de adeptos, portabilidad de programas y es la opción preferida de los científicos.

La evolución de este lenguaje llego a los lenguajes de alto nivel; que tiene numerosos beneficios como la creación de programas que nunca hubiesen escrito los autores en ensamblador; la transportabilidad y la legibilidad, los programas escritos en lenguajes de alto nivel son mucho más ágiles de leer, modificar y mejorar. 
Los lenguajes se encuentra en la memoria del ordenador; una buena memoria sabe gestionar de forma adecuada el sistema. 


Un poco de historia ....

En 1950, tras la Segunda Guerra Mundial se crean los primeros ordenadores para descifrar códigos; usaban lenguaje ensamblador y lenguajes experimentales de alto nivel; los métodos que tenían eran subprogramas y estrujador de datos.

En 1956, los ordenadores son pequeños, lentos y caros, con sistemas de almacenamiento masivo en cinta magnética. Utilizaban lenguajes como FORTRAN, LISP Y COBOL; los métodos que tenían eran optimizados de código, compiladores, manejo de almacenamiento dinámico y optimizaron de código. 

En 1961, los ordenadores empiezan a aumentar su tamaño y mantienen su alto precio, su sistema de almacenamiento es de disco magnético. Los lenguajes que usaban estos ordenadores son SNOBOL APL, FORTRAN IV Y COBOL 61. Estos ordenadores ya tenían sistemas operativos, multiprogramación, computadoras orientadas a la sintaxis y un propósito general en el diseño del lenguaje.Desde 1966 hasta 1970; los ordenadores son compatibles con conjuntos de instrucciones, tienen varios tamaños, velocidad y coste. Los sistemas de almacenamiento masivo grandes y caros. Estos ordenadores tenían sistemas operativos interactivos, microprogramación y usaban los primeros lenguajes estándar como BASIC,APL 360.En 1971 los ordenadores ya usaban el lenguaje PASCAL y tenían pruebas de corrección de programas e ingeniería de software. a partir de 1976 los ordenadores son potentes y baratos, usaban el lenguaje FORTRAN 77 y tenían sistemas distribuidos de computación; además, eran de confiabilidad y facilidad de mantenimiento. 



En 1981, los ordenadores ya son de uso personal, laboral y de ocio, usaban el lenguaje ADA 83. Entre 1986-1990, hay microordenadores y se contaba con Internet; utilizaban el leguaje FORTRAN 90, C++ Y SML; además tenían modelo Cliente- Servidor. En 1991 se incorpora a los ordenadores voz, video, fax y multimedia. En 1996 se inventan los PCs portátiles y gigabytes se almacenamiento en disco duro.  
A partir de 2005 hay redes sin cable, integración de dispositivos como el móvil, hipermedia y Terabytes de almacenamiento en disco; se usa un lenguaje dependiendo de la plataforma. 




La finalidad de la evolución de los lenguajes de programación, es llegar a un "lenguaje ideal", este lenguaje debe ser multiuso, portable, aceptado por todo el mundo, fácil de usar y con una sintaxis fácil de entender. 





La evolución de la informática ha sido muy rápida y eficaz; debido a que en los últimos años los informáticos han podido conseguir un lenguaje de alto nivel; además gracias a la inteligencia artificial cada vez resulta más fácil llegar al objetivo de un lenguaje natural. La programación empezó en un mundo devastador debido a la Segunda Guerra Mundial, los programas solo tenían la finalidad de descifrar códigos de los bandos enemigos; pero en la actualidad gracias la programación se ha podido conseguir numerosos logros para el ser humano. En este momento, los programas tienen infinitos objetivos pero desde mi punto de vista el objetivo principal es ayudar al ser humano a poder desarrollar un mundo mejor.Por ello, este es el principio de una etapa prospera en descubrimientos tecnológicos que cada vez están más cerca de nosotros. 








Bibliografía:





  • (https://es.slideshare.net/cristina20g/imagen-raster-e-imagen-vectorial-10586253)
  • (http://www.areatecnologia.com/sistema-binario.htm)












    1. sábado, 11 de febrero de 2017

      Actividad 1: INFORMACIÓN Y DOCUMENTACIÓN



      Actividad 1: Información y Documentación 


      En esta primera publicación  vamos a tomar contacto con las diferentes plataformas de las que podemos obtener información y documentación.

      1.1.Fuentes de Información 

      Las Fuentes de Información son recursos que contiene datos formales, informales, escritos, orales o multimedia. Hay tres tipos:

      Fuente Primaria, es la información original y no modificada, ni filtrada o interpretada; su origen es como resultado de una investigación.  Por ejemplo; revistas científicas, literatura gris, informes de investigación, actas de congreso, tesis doctorales, normas, patentes, etc.
      Fuente Secundaria, es información de una Fuente Primaria reorganizada. Su objetivo es facilitar y maximizar el acceso a las Fuentes Primarias. Se utilizan para confirmar investigaciones o ampliar contenidos de una Fuente Primaria. Por ejemplo; directorios, almanaques, diccionarios y enciclopedias, fuentes geográficas, índices y resúmenes, etc.
      Fuente Terciaria, son guías que contiene información sobre Fuentes Secundarias; es decir facilitan el control y acceso de Fuentes Secundarias.
      La calidad de la información se va degradando en el proceso de Fuente Primaria a Fuente Terciaria; por ello, hay que hacer un análisis de información. Este se consigue a través de tres pasos: localización de la información; entendimiento y evaluación de esta y finalmente llegar a la conclusión de si esa información responde a la necesidad de información. Para evaluar la calidad de la información se hace a partir de la comparación de esa información con la de la Fuente Primaria. 



      1.2. Información y Documentación





      En la actualidad podemos obtener de forma fácil la información, esto no implica que el conocimiento este asegurado ya que los seres humanos no tienen capacidades para absorber toda la información que podamos encontrar. Además, la información que podemos ver por Internet no suele ser de gran calidad ya que no hay ningún revisor como pasa en los periódicos. Cabe destacar, que este fenómeno anteriormente descrito, ser capaz de tener tanta información de forma fácilmente accesible, es gracias a la ciencia de la documentación para almacenar, dirigir y difunde la información para que pueda llegar a todo el mundo. Ejemplos de la ciencia de documentación son:
      Informática: Base de Datos, IA, ..
      Teledocumentación: Accesos “on-line” a las Bases de Datos
      Bibliometría: En esta tipología se hace uso de las matemáticas y métodos estadísticos para informar sobre los procesos de comunicación; es decir hace recuento y análisis de las diferentes formas de comunicación como consecuencia se interpretan los datos obtenidos.
      Ej: número de autores que se interesan en una revista deportiva y época del año.
      Terminología científica: Conocimientos científicos mediante la creación de sistemas de conceptos, transferir conocimientos a través de la enseñanza y la información, comunicar conocimientos de un lenguaje a otro a través de símbolos lingüísticos, resumir y sintetizar información científica, recuperar y almacenar información  y lenguajes documentales, ...
      Bibliografía: En la documentación es importante para que al lector pueda adquirir la información del documento.
      Biblioteconomía: Concede más importancia a las fuentes finales de la documentación, mientras que la documentación dedica sus objetivos hacia el receptor de la información y la recuperación y difusión de la misma. Ambas recogen, analizan y difunden información.
      Ciencia cognitiva: estudio detallado de los métodos para adquirir conocimiento humano, su realización en el cerebro, la estructura de la mente..., así́ como manifestaciones como la inteligencia, el lenguaje, el aprendizaje ...


      CIENCIAS DE LA COMUNICACIÓN:
      El alma de estas ciencias esta dentro de las ciencias sociales debido a que se ocupan de la reflexión y el estudio de los procesos comunicativos de los seres humanos; así como también de los medios. Las disciplinas pertenecientes a estas ciencias de la comunicación hacen referencia a las tecnologías de la comunicación, que dividimos en:

      • Tecnologías de comunicación visual
      • Redes y telecomunicaciones
      • La comunicación y las profesiones 




      INTELIGENCIA ARTIFICIAL:
      Programa de computación diseñado para realizar determinadas operaciones que se consideran propias de la inteligencia humana, como el autoaprendizaje.











      Toda la información puede tener un soporte físico, como soportes de papel, micrográficos, audiovisuales, magnéticos, ópticos y electrónicos. La característica fundamental de estos es que son independientes de su contenido.  Cabe destacar, que dependiendo del soporte se tendrán en cuenta una serie de parámetros para elegir uno u otro soporte; por ejemplo, periodo de validez, necesidad e actualización, tiempo y acceso...
      En la videoconferencia se debatió sobre la siguiente pregunta:

       ¿Desaparecerá el papel con internet? La respuesta mayoritaria de la clase fue afirmativa; pero la realidad es muy diferente; la clave está en la proporción de información. El profesor nos explicó que hace 20 años la accesibilidad de la información era bastante complicada y cuando se obtenía la información se fotocopiaba por debidos motivos; como por ejemplo para hacer un estudio más intensivo de esa información. En la actualidad tenemos muchos recursos informáticos con los que podemos conseguir la información de forma sencilla y rápida, pero, aun así, tenemos los mismos motivos para llegar a imprimir. En conclusión, hace 20 años se podía obtener unas 500 páginas de información de la cuales se imprimían o fotocopiaban el 100%; en la actualidad tenemos muchísima más información y por pequeño que sea el  % a imprimir será igual o mayor a esas 500 páginas de hace 20 años.

      Para que la documentación cumpla sus objetivos, es imprescindible que obedezca a unas funciones documentales determinadas. Estos procesos siguen en mayor o menor profundidad el esquema de una cadena, la llamada cadena documental
      En las bibliotecas se hace una previa selección, se recogen los documentos que son importantes para la transmisión de información, este proceso se hace tanto en fuentes externas como internas.  La siguiente fase es el análisis; operaciones para representar el contenido de forma diferente al formato original, resultado de este proceso son las referencias bibliográficas. La tercera fase, es la búsqueda, son diversos procedimientos con el fin de obtener un fondo bibliográfico con el fin de responder a una búsqueda concreta. La última fase es la difusión, esta fase se consigue a través de servicios específicos como, servicio de búsquedas documentales; servicio de difusión selectiva de la información (DSI) y servicio de obtención de documentos (SOD): pone a disposición del usuario el texto completo mediante fotocopias, prestamos, microfichas, ...

      Este primer apartado lo vamos a concluir con las siguientes fuentes de información; las cuales son:
      Literatura Gris; son publicaciones de difícil obtención debido a que son tesis, actas de congresos... y por lo tanto no se encuentra en canales de información convencionales.
      Bibliotecas depositarias; son bibliotecas científicas cuya finalidad es conservar y difundir documentos científicos originales. 
      El siguiente link lleva a un apartado PDF sobre la Biblioteca Depositaria Española:

      http://gredos.usal.es/jspui/bitstream/10366/119199/1/EB17_N148_P129-133.pdf


      1.3. Las Tecnologías de la Información y las Comunicaciones(TIC)

      Conjunto de avances tecnológicos que nos proporciona la informática, las telecomunicaciones y las tecnologías audiovisuales. Estas tecnologías proporcionan información, herramientas para su proceso y canales de comunicación.  Gracias a las TIC, tenemos un acceso más fácil a la información; procesamos datos; tenemos canales de comunicación inmediata; capacidad de almacenamiento en pequeños soportes; interactividad… Las TIC se usan con el fin de ser una fuente de información, un medio de expresión o incluso un medio tanto didáctico como de ocio.

      Las TIC tiene numerosas ventajas, como la navegación con libertad, la accesibilidad y la posibilidad de comunicación con otros; pero tiene grandes inconvenientes como la dudosa calidad de la información que mencionábamos al principio o la complejidad en la búsqueda; también tiene graves consecuencias para el ser humano ya que produce el aislamiento, ansiedad, dispersión... en algunas personas.






      Mi punto de vista sobre las TIC, es que deberían de educar y enseñar a las generaciones mas jóvenes con el  punto medio de Aristóteles. Es decir,  la prohibición de las nuevas tecnologías en las aulas o en algunos hogares es un retraso u obstáculo para el avance tanto tecnológico como para el desarrollo de las personas, ya que gracias a las TIC los jóvenes pueden informarse, relacionarse, descubrir, aprender valores... Por ello lo mas conveniente seria enseñar a estas generaciones a hacer un uso responsable de las tecnologías, a través de campañas publicitarias, charlas sobre el cyberbullying y las consecuencias de acomodarse a relacionarse por Internet. 
      Cabe desatacar que hay familias que educan a sus hijos de forma que estén alejados de las nuevas tecnologías, para que estos niños puedan disfrutar su infancia y tenga unos valores que quizás no puedan obtener si están cerca de ordenadores, televisiones, tablets... Cuando estos niños crezcan y se tengan que enfrentar a un mundo tecnológico, al desconocer este mundo pueden continuar ignorándolo, esto resultara poco beneficiosos tanto para su vida laboral como su vida personal; y en el caso de que decidan no ignorarlas y aprender a  utilizarlas, yo creo que tienen mas posibilidades de llegar a  algunas de las consecuencias, como el aislamiento; debido a su desconocimiento sobre estas consecuencias.