jueves, 28 de julio de 2011

Fundamentos Base Datos

Diapositivas Base Datos

BASE DE DATOS (BD).

1. DEFINA LOS SIGUIENTES TERMINOS
  • Dato: Es una expresion general que describe las caráctristicas propias o heredadas de un objeto que lo identifica dentro de un banco o sistema de datos.
  • Tipos de datos: Es un atributo de una parte del dato que indica al programador y al ordenador algo especifico sobre la clase de datos que se van a utilizar.
  • Información: Esta compuesta por mas de un dato, es decir un solo dato como tal no representa informacion, sino que un dato hace parte de ella, ejemplo la direccion es un dato, el numero telefonico es un dato, el nombre es un dato, pero estos datos unidos para el ejemplo forman la informacion de una persona.
  • Sistema de información: Es un conjunto de datos estructurados, relacionados y muy bien organizados sobre el cual se procesa y administra datos.
  • Archivo: Es un conjunto de bits almacenado en un dispositivo. Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene.
  • Carpeta: Objeto utilizado comúnmente para archivar cualquier tipo de información con facilidad. Cuenta con tres formas:carpeta virtual de documentos y de vinculo.
  • Campo: Es un espacio de almacenamiento para un dato en particular. En las bases de datos, un campo es la mínima unidad de información a la que se puede acceder.
  • Registro: Son un conjunto de campos o espacios de almacenamiento que contienen información a procesar.
  • Clave principal (Llave primaria): Una clave principal consta de uno o varios campos que identifican de forma exclusiva cada uno de los registros de la tabla. Los valores de los campos de una clave principal no se repetirán a lo largo de la tabla.
  • Entidad/Relacion: Se trata de un objeto del que se recoge información de interés de cara a la base de datos. por otro lado la relación es una asociación de dos o más entidades. A cada relación se le asigna un nombre para poder distinguirla de las demás y saber su función dentro del modelo entidad-relación.



 2. QUE ES UNA BASE DE DATOS?
  • Es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
3. DONDE SE USAN BASES DE DATOS? EJEMPLOS
  • Tienen aplicaciones o usos en sistemas que requieran manejo y administracion de informacion en grandes proporciones como bancos, agencias telefonicas, hoteles, clinicas, colegios, universidades, almacenes comerciales, tiendas de ropa entre otras.


4. QUE ES UN SGBD O DBMS? EJEMPLOS
  • Un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización.


5. QUE ES UNA TABLA? EJEMPLOS
  • Es un modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja de cálculo. Cada tabla creada debe tener un nombre único en cada Base de Datos, haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos elegida).
  • Tablas con particiones: son tablas cuyos datos se han dividido horizontalmente entre unidades que pueden repartirse por más de un grupo de archivos de una base de datos.
  • Tabalas temporales: Hay dos tipos de tablas temporales: locales y globales. Las tablas temporales locales son visibles sólo para sus creadores durante la misma conexión a una instancia de SQL Server como cuando se crearon o cuando se hizo referencia a ellas por primera vez. Las tablas temporales locales se eliminan cuando el usuario se desconecta de la instancia de SQL Server. Las tablas temporales globales están visibles para cualquier usuario y conexión una vez creadas, y se eliminan cuando todos los usuarios que hacen referencia a la tabla se desconectan de la instancia de SQL Server.
  • Tablas del sistema: almacena los datos que definen la configuración del servidor y de todas sus tablas en un conjunto de tablas especial, conocido como tablas del sistema.
  • Tablas persistentes: Son aquellas que permiten que los registros sean eliminados o borrados manualmente y tenemos de tres tipos: Base,Vistas, Instantáneos. Base: Es en donde se encuentra toda la información de todos los registros sin que se haga ninguna validación adicional. Vistas: Es una vista o relación que se hace en referencia a una fila o columna especifica. Instantáneos: Son aquellos registros que se los puede ver de manera inmediata con solo una referencia.


6. QUE ES UN FORMULARIO? EJEMPLO
  • Es generalmente una hoja de papel en la que disponemos de lugares en blan-co para introducir la información, con un campo separado para cada dato. En una base de datos electrónica la definición es casi la misma, con la diferencia de que trabajamos en la pantalla del monitor; de esta manera podremos ingresar y modificar los datos directamente en el formulario de la pantalla, al que podremos incluir también material gráfico (fotos) y sonidos.


7. QUE ES UNA CONSULTA?EJEMPLO
  • Una consulta es una forma de buscar, encontrar y exhibir determinada información, extrayéndola del cúmulo de datos que almacena la base. Los datos que responderán a la consulta pueden provenir de una o varias tablas.


8. QUE ES UN INFORME? EJEMPLO
  • Un informe es otra modalidad de presentación de los datos, que puede enviarse a la pantalla o imprimirse.


9.QUE ES SQL? COMANDOS MAS USADOS, EJEMPLOS
  • Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.
Comandos mas usados son:
  • SELECT (Identificar qué tablas y columnas del origen de datos se deben usar).
  • UPDATE (Modificar los campos de un registro).
  • INSERT (Agregar nuevos registros a un conjunto de registros).
  • WHERE (Aplicar un filtro que reduce la selección).
  • ORDER BY (Aplicar un criterio de ordenación al conjunto de registros).

10. CONSIDERA QUE LAS BASES DE DATOS LE PUEDEN SER UTILES EN SU VIDA PROFESIONAL? POR QUE?
Si, porque ya sea para nuestro propio uso o para venta comercial las bases de datos nos dan ventajas a la hora de guardar y recopilar informacion de diferente indole, las bases de dato son muy utilizadas a la hora de consultar cierto tipo de datos o informacion contenida dentro de la misma ya que podemos acceder a dicha informacion de una forma precisa y rapida teniendo en cuenta que dicha información es confiable así como el sistema que la contiene.

martes, 12 de abril de 2011

Aprendiendo UML parte II

CUESTIONARIO A
1. Que es un objeto?
  • un objeto se define como la unidad que en tiempo de ejecución realiza las tareas de un programa. También a un nivel más básico se define como la instancia de una clase.
2. Como trabajan los objetos en conjunto?
  • Los objetos trabajan o interactuan entre si mediante el envio de mensajes deacuerdo a su estado, caracteristicas de las variables e implemnetados con sus metodos.
3. Que establece la multiplicidad?
  • La multiplicidad especifica el número de instancias de una clase que pueden estar relacionadas con una única instancia de una clase asociada.
4. Pueden asociarse dos objetos entre si en mas de una manera?
  • Dos objetos se pueden asociar entre si mediante una relación, la asociación se materializa a través de mensajes, pero se diferencia en que la asociación se refiere más bien a la naturaleza de los mensajes.
CUESTIONARIO  B
 
1. Como representar una clase en UML?

Los nombres de las clases son siempre en singular y la primer letra de cada palabra en mayúsculas (EquipoComputo).
  • Tablas en base de datos: personas, animales,usuarios usuarios_administradoresClases en 
  • POO: Persona, Animal, Usuario, UsuarioAdministrador.
2. Que informacion puede mostrar en un simbolo de clase?
  • Atributos.
  • Métodos.
  • Rresponsabilidades 
3. Que es una restricción?
  • Es una regla o limite representada con "{}" que se encuentra sujeta a un atributo de la clase como por ejemplo {toneladas = 1 o 2}.
4. Para que adjuntaría una nota a un símbolo de clase?
  • La adjuntaría para aclarar un poco mas con información detallada de cierto atributo que lo requiera. 


    Aprendiendo UML

    1. ¿Por qué es necesario contar con diversos diagramas en el modelo de un sistema?
    • Sabemos que cualquier sistema que vallamos a implementar, cuenta con diferentes requerimientos por cada usuario con diferentes clases de intereses, problemas y funcionalidades. Cada tipo de diagrama UML presenta una idea que podrá ser comprendida por cualquiera de esos usuarios.
    2. ¿Cuáles diagramas le dan una perspectiva estática de un sistema?
    • Los diagramas de clases.
    •  Diagrgamas de objetos.
    • Diagramas de componentes.
    • Diagramas de distribución. 
    3. ¿Cuáles diagramas le dan una perspectiva dinámica de un sistema (esto es, muestran el cambio progresivo)?
    • Los diagramas de caso de uso.
    • Diagramas de estados.
    • Diagramas de secuencias.
    • Diagramas de actividades y colaboración. 

    sábado, 9 de abril de 2011

    flisol ubuntu 2011

    eXe Creador y editor de aplicaciones de paginas web para todos aquellos usuarios que sin necesidad de manejar el html y xlm, puedan publicar contenidos academicos o informativos.

    instalación ubuntu 10.10
    http://exelearning.org/wiki

    primera ejecucion
    ambiente de trabajo
    realizacion de ejemplo

    contorno: árbol escalado del la pagina.
    idevices: son todas aquellas actividades que quiero poner en mi paguina sin importar su numero que quieras dentro de la misma.
    galería de imágenes: al igual que la anterior el numero de imágenes dentro de nuestra pagina son las deseadas, ademas de poderlas explorar en picasa entre otras.

    lunes, 28 de marzo de 2011

    Funciones en pogramacion

    Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.







    Arreglos de la Programacion

    Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array.

    Un arreglo es una colección finita, homogénea y ordenada de elementos. Finita:Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. Homogénea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo elmento.

    Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:

    Unidimencionales (Vectores)
    Bidimensionales (tablas o matrices)
    Multidimecionales (varias dimensiones)



    miércoles, 23 de febrero de 2011

    ESTRUCTURAS DE CONTROL EN PROGRAMACION

    a.    Secuenciales: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. 

    b.    Condicionales: Las estructuras condicionales comparan una variable contra otro(s) valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples. 

    c.    Repetitivas: Son operaciones que se deben ejecutar un número determinado de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo. Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.



    TIPOS DE ERRORES DE PROGRAMACIÓN

          a.   Sintaxis: En programación, un error de sintaxis se produce al escribir, incorrectamente, alguna parte del código fuente de un programa. De forma que, dicho error impedirá, tanto al compilador como al intérprete, traducir dicha instrucción, ya que, ninguno de los dos entenderá qué le está diciendo el programador.
         
    b.    Matemático: Estos errores se producen, cuando le indicamos a la computadora, realizar una determinada acción, y esta la comprende, pero no puede ejecutarla. Por ejemplo, indicarle a la computadora una división entre cero, sumar dos variables a las cuales no se les ha asignado valor alguno, etc.
       
    c.    Lógica: Muchas veces, cuando estamos programando, el compilador no nos indica errores de sintaxis, ni de lógica; pero el resultado de nuestro programa, esta fuera del rango esperado, esto es producto de un error de lógica en el código de nuestro programa. Este tipo de errores son muy difíciles de identificar y por supuesto de corregir, ya que generalmente hay que revisar línea por línea de nuestro programa. Ejemplo: El sueldo negativo de un empleado, etc.


          

    LENGUAJES DE PROGRAMACIÓN MÁS POPULARES A TRAVÉS DE LA HISTORIA. DESCRIPCIÓN Y EJEMPLO.

         ·    SHORTCODE: En 1949, aparece el primer lenguaje que se usó en computadoras electrónicas: “Shortcode”, requería que el programador convirtiera (compilara) su programa a 0's y 1's de manera manual.


    ·    A-0: Fue hasta el año de 1951, que Grace Hopper[3] trabajando para Remington Rand, comienza a desarrollar el primer compilador, lo que trajo consigo una programación más rápida.


    ·    FORTRAN: Es en el año de 1957 cuando aparece el primero de los grandes lenguajes de programación de uso aún actualmente: FORTRAN, que proviene de FORmula TRANslating system. Fue desarrollado por IBM para cómputo científico, el líder del proyecto fue John Backus, que después contribuiría en ALGOL. El lenguaje original solo incluía FOR, DO y GOTO. También definió los tipos de datos básicos: TRUE, FALSE, integer, real, double presicion. El lenguaje original era bueno manejando números, pero malo manejando entrada y salida, lo cual propicio la aparición de otros lenguajes orientados a negocios.


    ·    LISP: En el año de 1958, el profesor John McCarthy del M.I.T. comenzó a desarrollar la teoría de un lenguaje de de procesamiento de listas. En 1959 aparece públicamente la primera implementación llamada LISP 1.5. En 1960 McCarthy publica un histórico artículo acerca de los fundamentos de LISP que hizo por la programación lo mismo que hizo Euclides por la geometría, demostrar como con unos cuantos operadores y una notación para funciones es posible construir un lenguaje de programación completo. Es importante hacer notar que McCarthy no solo marco un hito en la historia los lenguajes de programación sino que creó un modelo de programación que ha demostrado ser superior, tanto que podemos decir que en la actualidad existen dos grandes modelos de programación el de C y el de Lisp, y podemos notar que los lenguajes del modelo C tratan de parecerse cada vez más a Lisp.


    ·    ALGOL: En el año de 1958 un comité crea la especificación del lenguaje ALGOL, la tenía la particularidad de no definir la manera de manejar entrada y salida, dejando esta parte libre a cada implementación. Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fue muy popular en el segundo lustro de los 60's. Su principal contribución es ser la raiz del arbol que ha producido lenguajes tales como pascal, C, C++, y Java.

          ·    COBOL: En 1959, Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; que fuera facil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de datos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modo que los datos podían ser organizados y seguidos de una mejor manera. Las sentencias de COBOL se parecen mucho a las usadas por el idioma inglés, haciendo que fuera fácil de aprender. Todo esto con la finalidad de que los negocios promedio lo pudieran aprender y usar. Existieron otros lenguajes de programación en los primeros tiempos, sin embrago la tarea de describir las características de cada uno es demasiado ambiciosa para este pequeño trabajo asi que solo se mencionan brevemente:
    1946 Plankalkul del aleman Conrad Zuse aplicado para jugar ajedrez.
    1952 Autocode un compilador de Alick E. Glennie.
    1960 APL de Kenneth Iverson.
    1962 SNOBOL de la empresa sure-fire.

       Desarrollo de los lenguajes de programación: Basados en los primeros lenguajes de programación han surgido muchos otros lenguajes que siempre tienen la intención de tomar lo mejor, desechar lo malo, y agregar alguna “novedad”, respecto a los existentes. Solo se hace referencia a los más conocidos.


    ·    BASIC: Inventado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth. Es un lenguaje muy limitado que fue diseñado para personas que no fueran del área de ciencias de la computación. El nombre de BASIC, significa Beginners All-purpose Symbolic Instruction Code. Los ocho principios de diseño de BASIC fueron:
    Ser fácil de usar para los principiantes.
    Ser un lenguaje de propósito general.
    Permitir que los expertos añadieran características avanzadas, mientras que el lenguaje permanecía simple para los principiantes.
    Ser interactivo.
    Proveer mensajes de error claro y amigable.
    Responder rápido a los programas pequeños.
    No requerir un conocimiento del hardware de la computadora.
    El lenguaje se baso en Fortran y Algol 6.0

         ·    PASCAL: Diseñado por Niklaus Wirth, como una herramienta de enseñanza de la programación. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseñanza, tal como un buen debugger, y un buen editor. Además tuvieron como meta el tener soporte para la mayoría de los microprocesadores populares en esa época en las instituciones de enseñanza. Fue diseñado de una manera muy ordenada, reflejando la experiencia de su diseñador, tomo las mejores características de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo más claro posible. La combinación de sus características de entrada/salida, y sus solidas características matemáticas pronto lo convirtieron en un lenguaje muy exitoso. También implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinámicas. Sin embargo no implemento arreglos dinámicos ni agrupamiento de variables lo cual contribuyo a su pérdida de popularidad frente a nuevos lenguajes. Delphi es una versión moderna y orientada a objetos de Pascal.


    ·    PROLOG: Diseñado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del frances Programation et Logique, es popular en los circulos de interes en Inteligencia Artificial. Inicialmente era un lenguaje interpretado, hasta que a mediados de la decada de los 70's David Warren desarrollo un compilador, que convertia el programa en Prolog a un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o WAM. Su sintaxis y semantica son considerados simples y claros, su paradigma de programación es el declarativo y un programa en Prolog se compone de cláusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecendente, entonces es verdad el consecuente". No obstante, la forma de escribir las cláusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente.


    ·    C: Fue diseñado en 1971, por Dennis Ritchie y Ken Thompson mientras trabajaban para los Laboratorios Bell, y se baso en los lenguajes de programación B y BCPL. Se basa en el paradigma imperativo y desde su creación estuvo pensado para programación de sistemas operativos, se creó para usarse en UNIX, y creció de la mano del desarrollo de UNIX, lo que propicio la creación de características avanzadas tales como variables dinámicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel. Debido a esto C es comúnmente usado para programación de nivel de sistema en UNIX, Linux y Mac. Se trata de un lenguaje no fuertemente tipeado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Destaca su gran riqueza de operadores y expresiones.


    ·    C++: A finales de los 70's y principio de los 80's un nuevo modelo de de programación fue desarrollado, la programación orientada a objetos, la idea básica es que los objetos son piezas de código auto contenidas y reusables. Bjarne Stroustroup, también de los Laboratorios Bell, desarrollo un nuevo lenguaje basado en C que aplica los conceptos de la programación orientada a objetos, inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983. Las principales características del C++ son abstracción, el soporte para programación orientada a objetos y el soporte de plantillas o programación genérica. Por lo cual, se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programación: La programación estructurada, la programación genérica y la programación orientada a objetos. Actualmente cuenta con un estándar ISO y es muy popular en la programación de aplicaciones.


    ·    PERL: Perl (Practical Extraction and Report Language), fue desarrollado por Larry Wall, inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del shell, su primer versión publica fue anunciada en el Newsgroup comp.sources.misc el 18 de diciembre de 1987. Actualmente Perl es un lenguaje de propósito general, usado para amplia gama de tareas que incluyen administración de sistemas, desarrollo web, programación en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho mas. Es uno de los lenguajes más flexibles y poderosos, junto con Lisp, permite desarrollar prácticamente cualquier cosa con él, es poderoso, flexible y expresivo. Perl es libre y es divertido, permite ser creativo y no te ata a las restricciones impuestas por el diseñador del lenguaje, en Perl siempre hay más de una manera de hacer las cosas. Sin embargo, esta flexibilidad y poder no son apreciados por los programadores promedio que prefieren lenguajes más simples y fáciles de aprender, por lo cual Perl es el blanco de muchas críticas nacidas de la ignorancia. Perl es multiplataforma y desde hace muchos años ha demostrado en el mundo real producir código completamente reusable sin necesitar programación orientada a objetos.


    ·    PYTHON: Es un lenguaje interpretado e interactivo, creado por Guido Van Rossum en 1991. Es completamente tipeado dinámicamente, usa manejo automático de memoria, por lo cual es similar a Lisp, Perl, Ruby, Scheme y Tcl. Es desarrollado como proyecto de software libre, manejado por la Python Software Foundation. Tomo varias de sus características de Lisp. Algunos lo consideran la "oposición leal" a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho más limpio y elegante para programar. Sin embargo esto es más un punto de vista de sus usuarios que una realidad. Su facilidad de aprendizaje, su orientación a programadores promedio, su limpieza de código, hacen que sea uno de los lenguajes más exitosos al momento de escribir el presente trabajo.


    ·    RUBY: Es un lenguaje de programación interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que también tomo ideas de Lisp, Python, Dylan y CLU. Fue creado por Yukihiro Matsumoto, quien comenzó su desarrollo en 1993, y lo público en 1995. El nombre Ruby fue elegido para reflejar su herencia de Perl. Entre sus características tenemos:
    Lenguaje de guiones interpretado.
    ·         Posibilidad de realizar directamente llamadas al sistema operativo.
    ·         Potentes operaciones sobre cadenas de caracteres y expresiones regulares.
    ·         Retroalimentación inmediata durante el proceso de desarrollo.
    ·         Rápido y sencillo.
    ·         Son innecesarias las declaraciones de variables.
    ·         Las variables son de tipo dinámico.
    ·         La sintaxis es simple y consistente.
    ·         La gestión de la memoria es automática.
    ·         Programación orientada a objetos.
    ·         Todo es un objeto.
    ·         Clases, herencia, métodos.
    ·         Métodos singleton.
    ·         Mixins por módulos.
    ·         Iteradores y cierres.
    ·         Enteros de precisión múltiple.
    ·         Modelo de procesamiento de excepciones.
    ·         Carga dinámica.
    ·         Hilos.


    ·    ANSI COMMON LISP: En abril de 1981, después de una reunión patrocinada por DARPA, se unieron los esfuerzos de Symbolics, el proyecto SPICE, el proyecto NIL y el proyecto S-1 Lisp, para definir Common Lisp. Common Lisp fue diseñado como una descripción de una familia de dialectos de Lisp. Common Lisp recibió alimentación de La Maquina Lisp, MacLisp, NIL, S-1 Lisp, Spice Lisp y Scheme. El libro “Common Lisp: The language” es la descripción de ese diseño. Su semántica fue dejada sin especificar en aquellas partes donde una fuerte especificación pudiera ser un obstáculo en el uso e investigación de Lisp. En 1986 se formo un grupo de trabajo para producir un draft para un estándar ANSI de Common Lisp, entre las especificaciones que presento se encontraban estandarizaciones para portabilidad, facilidades de iteración, manejo de grandes conjuntos de caracteres, un sistema de programación orientada a objetos, entre otras, para una descripción detallada. El estándar ANSI Common Lisp fue publicado en 1994. Lisp se consolido como el lenguaje de programación mas poderoso y flexible jamas inventado. Muchos de los lenguajes modernos han copiado la mayoría de sus características, sin embrago no todas ya que entonces no podrían decir que son un nuevo lenguaje sino simplemente otro dialecto de Lisp.


    ·    JAVA: “Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de las siguientes partes:


    El lenguaje de programación, mismo.
    La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.
    El API Java, una biblioteca estándar para el lenguaje.
    El lenguaje de programación fue desarrollado por James Gosling, y sus equipo en Sun Microsystems, entre 1990 y 1994, pensado originalmente como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisión interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicación en la Web.
    Las cinco metas del lenguaje Java son:
    ·         Orientado a objeto.
    ·         Multiplataforma
    ·         Soporte integrado para redes de computadoras
    ·         Diseñado para ejecutar código de fuentes remotas de modo seguro
    ·         Fácil de usar
    Desde sus inicios Java no fue bien recibido por su falta de aportaciones originales, su lentitud, y su rígida estructura, sin embargo en base a intensas campañas de marketing Sun ha logrado que en los ambientes empresariales Java sea uno de los “estándares” sobre todo para aplicaciones del lado del servidor. Java también es presentado muchas veces como un lenguaje Libre lo cual no es completamente cierto.

    ·    JAVA SCRIPT: Es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web. Fue desarrollado por Brendan Eich, en su trabajo para Netscape, quien lo publicó en diciembre de 1995.  Su sintaxis es parecida a la de C, y al igual que C utiliza el concepto de palabras reservadas, tiene soporte para expresiones regulares y UTF. Cuando se usa en Web, se conecta a través de su interfaz DOM (Document Object Model) a las aplicaciones tanto del lado del cliente como del servidor. Gracias a esto es usado para crear poderosas aplicaciones web dinámicas. Desafortunadamente los diferentes navegadores exponen diferentes objetos y métodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores. Entre las principales tecnologías para interactuar con DOM que usan JavaScript esta AJAX y DHTML.


    ·    PHP: Creado por Rasmus Lerdorf, en 1994, inicialmente eran una serie de scripts en Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web. Inicialmente significaba “Personal Home Page Tools”, y fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: “PHP Hypertext Preprocessor”. Las características más destacadas de PHP son su facilidad de aprendizaje y que es software libre. Las anteriores características, sumadas a su amplio soporte a manejadores de bases de datos lo han convertido en uno de los lenguajes más populares para programación Web, los famosos desarrollos LAMP. Comparte características con otros lenguajes de programación como C y perl y recientemente con Java. Además de ser usado en web, puede usarse desde la línea de comandos y para construir GUI's con PHP-GTK.


    ·    C#: Es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net. Esta normalizado, por ECMA quien en el año 2001 publico la “ECMA-334 C# Language Specification”; en el año 2003 se convirtió en un estándar ISO “(ISO/IEC 23270)”. Además de la implementación de Microsoft existen implementaciones libres como Mono y dotGNU. Gracias a la maquinaría comercial de Microsoft y la amplia base de escritorios Windows, el uso de C# es muy extendido en entornos corporativos y en el mundo Windows en general. Los proyectos libres de C#, no son muy populares entre la comunidad del software libre, por la desconfianza hacia Microsoft y sus patentes.





    CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN SEGÚN:



    a.  Bajo, intermedio y alto nivel:
       ·Lenguaje de bajo nivel: trabaja con instrucciones directamente interpretables por un procesador. Ejemplo: Ensamblador.
       ·Lenguaje de medio nivel: se encuentra entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creación de sistemas operativos, ya que permiten un manejo abstracto (independiente de la máquina, a diferencia del lenguaje ensamblador), pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
       ·Lenguaje de alto nivel: se compone de palabras, generalmente inglesas, entendibles por los humanos. Su principal característica es que las instrucciones asociadas a los programas creados con ellos no trabajan directamente con el procesador, sino que previamente deben pasar a través de un filtro o compilador que  las prepara adecuadamente para que el procesador sepa interpretarlas. Ejemplos: Java, Visual  Basic, Visual Basic.NET, C, C++, Pascal, Cobol, SmallTalk, Delphi, Perl, Python, etc.


    b.  Imperativos, declarativos, orientados a objetos, naturales:
       ·La Programación imperativa: Se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un algoritmo en el que se describen los pasos necesarios para solucionar el problema.
       ·La Programación declarativa: Las sentencias que se utilizan lo que hacen es describir el problema que se quiere solucionar, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de inferencia de información a partir de la descripción realizada.
       ·La Programación Orientada a objetos (POO): Es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
       ·La Programación Natural: Es un lenguaje de cuarta generación. Los Lenguajes de cuarta generación son ciertas herramientas prefabricadas, que aparentemente dan lugar a un lenguaje de programación de alto nivel que se parece más al idioma inglés que a un lenguaje de tercera generación, porque se aleja más del concepto de "procedimiento". Pueden acceder a bases de datos.


    c.   Primera, segunda, tercera, cuarta y quinta generación.
         ·Primera generación: Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje de máquina.


         ·Segunda generación: Los lenguajes simbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.


        ·Tercera generación: Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas.


        ·Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
        ·Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:


        ·Acceso a base de datos.
        ·Capacidades Gráficas.
        ·Generación de código automáticamente.
        ·Puede programarse visualmente como Visual Basic(Programación Visual).
        ·Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación el nombre ha caído en desuso.

    CICLO DE VIDA DEL SOFTWARE

    ·     El término ciclo de vida del software describe el desarrollo de software, desde la fase inicial hasta la fase final.

    QUE ES UN LENGUAJE DE PROGRAMACION

    ·      Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana.



    PASOS PARA RESOLVER UN PROBLEMA USANDO ALGORITMOS

    ·         Definición del problema
    ·         Análisis del problema
    ·         Crear algoritmo
    ·         Prueba de escritorio
    ·         Codificación
    ·         Compilación
    ·         Ejecución
    ·         documentación



    QUE ES PSEUDOCODIGO

    ·      El pseudocódigo o falso lenguaje, es comúnmente utilizado por los programadores para omitir secciones de código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos esto quiere decir que el pseudocódigo no es programable sino facilita la programación.



    QUE ES LA PRUEBA DE ESCRITORIO

        · Una prueba de escritorio es la comprobación lógica, de un algoritmo de resolución; Para desarrollar la prueba de escritorio, se utilizara el siguiente procedimiento: Con datos de prueba, se seguirán cada uno de los pasos propuestos en el algoritmo de resolución. Si la prueba de escritorio genera resultados óptimos, quiere decir que el algoritmo posee una lógica adecuada, en caso contrario el algoritmo tendrá que ser corregido.


    QUE ES UN DIAGRAMA DE FLUJO Y SIMBOLOGIA


    ·    Un diagrama de flujo es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva.
    ·      Óvalo: Inicio y término (Abre y/o cierra el diagrama).
    ·      Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).
    ·      Rombo: Decisión (Formula una pregunta o cuestión).
    ·      Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).
    ·      Triangulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).
    ·      Triangulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).