Professional Documents
Culture Documents
Monografa Tema:
Ciencias De La Computacin
Presentada por:
Mara Jos Chiriboga Muoz
Paralelo:
41 Guayaquil Ecuador Ao 2012
TABLA DE CONTENIDOS
TABLA DE CONTENIDOS ....................................................................................................... I INDICE DE GRFICOS........................................................................................................... A INDICE DE TABLAS .............................................................................................................. A CAPITULO 1 ........................................................................................................................1 1. CIENCIAS DE LA COMPUTACIN ...................................................................................1 1.1 HISTORIA ................................................................................................................................. 2 CAPITULO 2 ........................................................................................................................1 2. CAMPOS DE LAS CIENCIAS DE LA COMPUTACIN .......................................................1 2.1 FUNDAMENTOS MATEMTICOS .............................................................................................. 1 2.1.1 Criptografa......................................................................................................................... 1 2.1.1.1 Objetivos de la criptografa ............................................................................................... 2 2.1.1.2 Terminologa ..................................................................................................................... 2 2.1.1.3 Grado de seguridad ........................................................................................................... 3 2.1.2 Teora de grafos: ................................................................................................................ 3 2.1.2.1 Aplicaciones....................................................................................................................... 4 2.1.2.2 Tipos de grafos .................................................................................................................. 4 2.1.2.3 Representacin de grafos ................................................................................................. 5 2.1.2.4 Caracterizacin de grafos .................................................................................................. 5 2.1.3 Lgica matemtica ............................................................................................................ 6 2.1.3.1 Historia .............................................................................................................................. 7 2.1.4 Teora de tipos ................................................................................................................... 8 2.1.4.1 Tipo de dato ...................................................................................................................... 8 2.1.4.2 Tipos de datos mquina ................................................................................................... 9 2.1.4.3 Tipos de datos primitivos .................................................................................................. 9 2.2 TEORA DE LA COMPUTACIN.............................................................................................. 10 2.2.1 Principales subramas ...................................................................................................... 10 2.2.1.1 Teora de autmatas ....................................................................................................... 10 2.2.1.2 Teora de la computabilidad............................................................................................ 11 2.2.1.3 Teora de la complejidad computacional ........................................................................ 12 2.3 ALGORITMOS Y ESTRUCTURAS DE DATOS ........................................................................... 13 I
2.3.1 Anlisis de algoritmos .................................................................................................... 13 2.3.2 Algoritmos ....................................................................................................................... 14 2.3.2.1 Definicin formal ............................................................................................................. 14 2.3.3 Diagrama de flujo ........................................................................................................... 16 2.3.4 Pseudocdigo................................................................................................................... 17 2.3.4.1 Sistemas formales ........................................................................................................... 17 2.3.5 Estructuras de datos ....................................................................................................... 18 2.3.5.1 Estructuras de datos........................................................................................................ 19 2.3.6 Lgica y computabilidad ................................................................................................ 19 2.3.7 Especificacin .................................................................................................................. 19 2.4 LENGUAJES DE PROGRAMACIN Y COMPILADORES ............................................................ 20 2.4.1 Compilador....................................................................................................................... 20 2.4.1.1 Partes de un compilador ................................................................................................. 20 2.4.1.2 Tipos de compiladores .................................................................................................... 21 2.4.1.3 Proceso de compilacin .................................................................................................. 22 2.4.1.4 Anlisis sintctico ............................................................................................................ 22 2.4.1.5 Anlisis semntico ........................................................................................................... 23 2.4.2 Teora de lenguajes de programacin .......................................................................... 24 2.4.2.1 Subdisciplinas y campos relacionados ............................................................................ 24 2.5 BASE DE DATOS .................................................................................................................... 26 2.5.1 Bases de datos .................................................................................................................. 26 2.5.1.1 Tipos de base de datos .................................................................................................... 27 2.5.2 Ventajas ............................................................................................................................ 30 2.5.3 Desventajas ...................................................................................................................... 31 2.5.4 Minera de datos ............................................................................................................ 31 2.5.4.1 Proceso ........................................................................................................................... 32 2.5.4.2 Tcnicas de minera de datos ......................................................................................... 33 2.5.4.3 Aplicaciones..................................................................................................................... 33 2.6 SISTEMAS CONCURRENTES, PARALELOS Y DISTRIBUIDOS .................................................. 36 2.6.1 Programacin concurrente ............................................................................................ 36 2.6.2 Redes de computadoras ................................................................................................. 36 2.6.2.1 Software .......................................................................................................................... 37 2.6.2.2 Hardware ......................................................................................................................... 37 2.6.3 Cmputo paralelo: Computacin paralela .................................................................. 38 2.6.4 Sistemas Distribuidos: Computacin distribuida ...................................................... 38 2.6.4.1 Sistemas distribuidos ...................................................................................................... 39 2.6.4.2 Caractersticas ................................................................................................................. 39 2.6.4.3 Seguridad......................................................................................................................... 39 2.7 INTELIGENCIA ARTIFICIAL ................................................................................................... 40 2.7.1 Inteligencia artificial ....................................................................................................... 40 2.7.2 Categoras de la inteligencia Artificial ......................................................................... 41 2.7.2.1 Sistemas que piensan como humanos ............................................................................ 41 2.7.2.2 Sistemas que piensan racionalmente ............................................................................. 41
II
2.7.2.3 Inteligencia artificial computacional ............................................................................... 42 2.7.2.4 La inteligencia artificial y los sentimientos ..................................................................... 42 2.7.2.5 Aplicaciones de la inteligencia artificial .......................................................................... 43 2.7.2 Razonamiento automatizado........................................................................................ 43 2.7.3 Robtica........................................................................................................................... 44 2.7.4 Visin por computador ................................................................................................. 44 2.7.4.1 Produccin de la imagen digital en microscopa ptica ................................................. 45 2.7.4.2 Propiedades bsicas de las imgenes digitales .............................................................. 45 2.7.4.3 Introduccin a los sensores de imagen CMOS ............................................................... 45 2.7.4.4 Estrategias recomendadas para el procesamiento de imgenes digitales .................... 45 2.7.5 Aprendizaje Automtico................................................................................................. 46 2.7.5.1 Interaccin Hombre-Mquina ......................................................................................... 46 2.7.5.2 Tipos de algoritmos ......................................................................................................... 46 2.7.5.3 Aplicaciones..................................................................................................................... 48 2.8 GRFICOS POR COMPUTADOR .............................................................................................. 49 2.8.1 Computacin Grafica ...................................................................................................... 49 2.8.1.1 Grficos 2D de computadora ......................................................................................... 50 2.8.1.2 Grficos 3D de computadora ......................................................................................... 50 2.8.1.3 Representacin basada en Imagen - Image Based Rendering (IBR) ............................... 51 2.8.2 Procesamiento digital de imgenes .............................................................................. 52 2.8.2.1 Proceso de filtrado .......................................................................................................... 52 2.8.2.2 Objetivos ......................................................................................................................... 53 2.8.2.3 Ventajas ........................................................................................................................... 53 2.8.2.4 Desventajas ..................................................................................................................... 53 2.8.3 Geometra Computacional ............................................................................................ 53 2.9 COMPUTACIN CIENTFICA .................................................................................................. 54 2.9.1 Bioinformtica ................................................................................................................. 54 2.9.2 Computacin Cuntica ................................................................................................... 55 2.9.2.1 Origen de la computacin cuntica ................................................................................ 55 2.9.3 Neurociencia computacional......................................................................................... 56 2.9.3.1 Temas Principales ............................................................................................................ 57 2.9.3.2 Comportamiento de las redes ......................................................................................... 57 CAPITULO 3 .........................................................................................................................1 3. RELACIN CON OTROS CAMPOS..................................................................................1 BIBLIOGRAFIA .............................................................................................................1 LINKOGRAFIA ..............................................................................................................1 HIPERVINCULOS .........................................................................................................1
III
INDICE DE GRFICOS
GRAFICO 1: COMPUTADORA ................................................................................................................ 1 GRAFICO 2: LA TECNOLOGIA .............................................................................................................. 2 GRAFICO 3: CRIPTOGRAFIA ................................................................................................................. 1 GRAFICO 4: TEORIA DE GRAFOS ........................................................................................................ 3 GRAFICO 5: TEORIA DE TIPOS ............................................................................................................. 8 GRAFICO 6: TEORIA DE COMPUTABILIDAD .................................................................................. 11 GRAFICO 7: COMPLEJIDAD TEMPORAL ......................................................................................... 12 GRAFICO 8: ALGORITMO .................................................................................................................... 14 GRAFICO 9: DIAGRAMA DE FLUJO .................................................................................................. 16 GRAFICO 10: ESTRUCTURA DE DATOS ........................................................................................... 18 GRAFICO 11: COMPILADORES ............................................................................................................ 20 GRAFICO 12: LAMBDA EN MINUSCULA .......................................................................................... 24 GRAFICO 13: BASE DE DATOS ............................................................................................................ 26 GRAFICO 14: COMPUTO PARALELO ................................................................................................. 38 GRAFICO 15: INTELIGENCIA ARTIFICIAL ...................................................................................... 40 GRAFICO 16: IMAGEN DIGITAL ......................................................................................................... 49 GRAFICO 17: PROCESO DIGITAL DE IMAGEN ............................................................................... 52 GRAFICO 18: BIOINFORMATICA ....................................................................................................... 54 GRAFICO 19: COMPUTACION CUANTICA ........................................................................................ 55
INDICE DE TABLAS
TABLA 1: TABLA DE DATOS PRIMITIVOS DE TIPO CARACTER ................................................... 9 TABLA 2: TABLA DE DATOS PRIMITIVOS DE TIPO NMERICO ................................................. 9
CAPITULO 1
1. Ciencias de la computacin
as ciencias de la computacin son aquellas que abarcan las bases tericas de la informacin y la computacin, as como su aplicacin en sistemas computacionales. Existen diversos campos o disciplinas dentro de las Ciencias de la Computacin o Ciencias Computacionales; algunos enfatizan los resultados especficos del cmputo (como los grficos por computadora), mientras que otros (como la teora de la complejidad computacional) se relacionan con propiedades de los algoritmos usados al realizar cmputos. Otros por su parte se enfocan en los problemas que requieren la implementacin de cmputos. Por ejemplo, los estudios de la teora de lenguajes de programacin describen un cmputo, mientras que la programacin de computadoras aplica lenguajes de programacin especficos para desarrollar una solucin a un problema computacional concreto. La informtica se refiere al tratamiento automatizado de la informacin de una forma til y oportuna. No se debe confundir el carcter terico de esta ciencia con otros aspectos prcticos como Internet. De acuerdo a Peter J. Denning, la cuestin fundamental en que se basa la ciencia de la computacin es, "Qu puede ser (eficientemente) automatizado?"
GRAFICO 1: COMPUTADORA
Pgina 1 de 2
1.1 Historia
La historia de la ciencia de la computacin antecede a la invencin del computador digital moderno. Antes de la dcada de 1920, el trmino computador se refera a un ser humano que realizaba clculos. Los primeros investigadores en lo que despus se convertira las ciencias de la computacin, estaban interesados en la cuestin de la computabilidad: qu cosas pueden ser computadas por un ser humano que simplemente siga una lista de instrucciones con lpiz y papel, durante el tiempo que sea necesario, con ingenuidad y sin conocimiento previo del problema. Parte de la motivacin para este trabajo era el desarrollar mquinas que computaran, y que pudieran automatizar el tedioso y falible trabajo de la computacin humana. Durante la dcada de 1940, conforme se desarrollaban nuevas y ms poderosas mquinas para computar, el trmino computador se comenz a utilizar para referirse a las mquinas en vez de a sus antecesores humanos. Conforme iba quedando claro que las computadoras podan usarse para ms cosas que solamente clculos matemticos, el campo de la ciencia de la computacin se fue ampliando para estudiar a la computacin (informtica) en general. La ciencia de la computacin comenz entonces a establecerse como una disciplina acadmica en la dcada de 1960, con la creacin de los primeros departamentos de ciencia de la computacin y los primeros programas de licenciatura (Denning 2000).1
GRAFICO 2: LA TECNOLOGIA
CAPITULO PRIMERO
CAPITULO 2
2. Campos de las ciencias de la computacin
2.1 Fundamentos matemticos
2.1.1 Criptografa
riptografa (del griego krypto, oculto, y graphos, escribir, literalmente escritura oculta) tradicionalmente se ha definido como la parte de la criptologa que se ocupa de las tcnicas, bien sea aplicadas al arte o la ciencia, que alteran las representaciones lingsticas de mensajes, mediante tcnicas de cifrado y/o codificado, para hacerlos ininteligibles a intrusos (lectores no autorizados) que intercepten esos mensajes. Por tanto el nico objetivo de la criptografa era conseguir la confidencialidad de los mensajes. Para ello se diseaban sistemas de cifrado y cdigos. En esos tiempos la nica criptografa que haba era la llamada criptografa clsica. La aparicin de las Tecnologas de la Informacin y la Comunicacin y el uso masivo de las comunicaciones digitales han producido un nmero creciente de problemas de seguridad. Las transacciones que se realizan a travs de la red pueden ser interceptadas. La seguridad de esta informacin debe garantizarse. Este desafo ha generalizado los objetivos de la criptografa para ser la parte de la criptologa que se encarga del estudio de los algoritmos, protocolos (se les llama protocolos criptogrficos) y sistemas que se utilizan para proteger la informacin y dotar de seguridad a las comunicaciones y a las entidades que se comunican. Para ello los criptgrafos investigan, desarrollan y aprovechan tcnicas matemticas que les sirven como herramientas para conseguir sus objetivos. Los grandes avances que se han producido en el mundo de la criptografa han sido posibles gracias a los grandes avances que se ha producido en el campo de las matemticas y las ciencias de la computacin.
GRAFICO 3: CRIPTOGRAFIA
Pgina 1 de 57
2.1.1.2 Terminologa
En el campo de la criptografa muchas veces se agrupan conjuntos de funcionalidades que tienen alguna caracterstica comn y a ese conjunto lo denominan 'Criptografa de' la caracterstica que comparten. Veamos algunos ejemplos: Criptografa simtrica.- Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de una sola clave. Criptografa de clave pblica o Criptografa asimtrica.Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de parejas de claves compuesta por una clave pblica, que sirve para cifrar, y por una clave privada, que sirve para descifrar. Criptografa con umbral.- Agrupa aquellas funcionalidades criptogrficas que se apoyan en el uso de un umbral de participantes a partir del cual se puede realizar la accin. Criptografa basada en identidad.- Es un tipo de Criptografa asimtrica que se basa en el uso de identidades.
Pgina 2 de 57
Pgina 3 de 57
2.1.2.1 Aplicaciones
Gracias a la teora de grafos se pueden resolver diversos problemas como por ejemplo la sntesis de circuitos secuenciales, contadores o sistemas de apertura. Se utiliza para diferentes reas por ejemplo, Dibujo computacional, en todas las reas de Ingeniera. Los grafos se utilizan tambin para modelar trayectos como el de una lnea de autobs a travs de las calles de una ciudad, en el que podemos obtener caminos ptimos para el trayecto aplicando diversos algoritmos como puede ser el algoritmo de Floyd. Para la administracin de proyectos, utilizamos tcnicas como PERT en las que se modelan los mismos utilizando grafos y optimizando los tiempos para concretar los mismos. La teora de grafos tambin ha servido de inspiracin para las ciencias sociales, en especial para desarrollar un concepto no metafrico de red social que sustituye los nodos por los actores sociales y verifica la posicin, centralidad e importancia de cada actor dentro de la red. Esta medida permite cuantificar y abstraer relaciones complejas, de manera que la estructura social puede representarse grficamente. Por ejemplo, una red social puede representar la estructura de poder dentro de una sociedad al identificar los vnculos (aristas), su direccin e intensidad y da idea de la manera en que el poder se transmite y a quines. Los grafos son importantes en el estudio de la biologa y hbitat. El vrtice representa un hbitat y las aristas (o "edges" en ingls) representa los senderos de los animales o las migraciones. Con esta informacin, los cientficos pueden entender cmo esto puede cambiar o afectar a las especies en su hbitat.
Pgina 4 de 57
Hipergrafo: Grafos en los cuales las aristas tienen ms de dos extremos, es decir, las aristas son incidentes a 3 o ms vrtices. Grafo infinito: Grafos con conjunto de vrtices y aristas de cardinal infinito.
Un, es decir, grafo completo de vrtices tiene exactamente aristas. La representacin grfica de los como los vrtices de un polgono regular da cuenta de su peculiar estructura. Grafos bipartitos.- Un grafo G es bipartito si puede expresarse como (es decir, sus vrtices son la unin de dos grupos de vrtices), bajo las siguientes condiciones: o Y son disjuntos y no vacos. o Cada arista de A une un vrtice de V1 con uno de V2. o No existen aristas uniendo dos elementos de V1; anlogamente para V2. Bajo estas condiciones, el grafo se considera bipartito, y puede describirse informalmente como el grafo que une o relaciona dos conjuntos de elementos diferentes, como aquellos resultantes de los ejercicios y puzles en los que debe unirse un elemento de la columna A con un elemento de la columna B. Grafos ponderados o etiquetados.- En muchos casos, es preciso atribuir a cada arista un nmero especfico, llamado valuacin, ponderacin o coste segn el contexto, y se obtiene as un grafo valuado. Formalmente, es un grafo con una funcin v: A R+. Por ejemplo, un representante comercial tiene que visitar n ciudades conectadas entre s por carreteras; su inters previsible ser minimizar la distancia recorrida (o el tiempo, si se pueden prever atascos). El grafo correspondiente tendr como vrtices las ciudades, como aristas las carreteras y la valuacin ser la distancia entre ellas. Y, de momento, no se conocen mtodos generales para hallar un ciclo de valuacin mnima, pero s para los caminos desde a hasta b, sin ms condicin.
Pgina 6 de 57
La lgica matemtica no es la lgica de las matemticas sino la matemtica de la lgica. Incluye aquellas partes de la lgica que pueden ser modeladas y estudiadas matemticamente.
2.1.3.1 Historia
Lgica matemtica fue el nombre dado por Giuseppe Peano para esta disciplina. En esencia, es la lgica de Aristteles, pero desde el punto de vista de una nueva notacin, ms abstracta, tomada del lgebra. Previamente ya se hicieron algunos intentos de tratar las operaciones lgicas formales de una manera simblica por parte de algunos filsofos matemticos como Leibniz y Lambert, pero su labor permaneci desconocida y aislada. Fueron George Boole y Augustus De Morgan, a mediados del siglo XIX, quienes primero presentaron un sistema matemtico para modelar operaciones lgicas. La lgica tradicional aristotlica fue reformada y completada, obteniendo un instrumento apropiado para investigar sobre los fundamentos de la matemtica. El tradicional desarrollo de la lgica enfatizaba su centro de inters en la forma de argumentar, mientras que la actual lgica matemtica lo centra en un estudio combinatorio de los contenidos. Esto se aplica tanto a un nivel sintctico (por ejemplo, el envo de una cadena de smbolos perteneciente a un lenguaje formal a un programa compilador que lo convierte en una secuencia de instrucciones ejecutables por una mquina), como a un nivel semntico, construyendo modelos apropiados (teora de modelos). La lgica matemtica estudia los sistemas formales en relacin con el modo en el que codifican conceptos intuitivos de objetos matemticos como conjuntos, nmeros, demostraciones y computacin. Concepto de lgica matemtica La lgica estudia la forma del razonamiento. La lgica matemtica es la disciplina que trata de mtodos de razonamiento. En un nivel elemental, la lgica proporciona reglas y tcnicas para determinar si es o no valido un argumento dado. El razonamiento lgico s emplea en matemticas para demostrar teoremas, sin embargo, se usa en forma constante para realizar cualquier actividad en la vida. Definicin y clases de proposiciones Una proposicin o enunciado es una oracin que puede ser falso o verdadero pero no ambas a la vez. Toda proposicin consta de tres partes: un sujeto, un verbo y un complemento referido al verbo. La proposicin es un elemento fundamental de la Lgica Matemtica.
Pgina 7 de 57
Pgina 8 de 57
Rango 0 a 65536
Pgina 9 de 57
Pgina 10 de 57
Esta teora explora los lmites de la posibilidad de solucionar problemas mediante algoritmos. Gran parte de las ciencias computacionales estn dedicadas a resolver problemas de forma algortmica, de manera que el descubrimiento de problemas imposibles es una gran sorpresa. La teora de la computabilidad es til para no tratar de resolver algortmicamente estos problemas, ahorrando as tiempo y esfuerzo. Los problemas se clasifican en esta teora de acuerdo a su grado de imposibilidad: Los computables son aquellos para los cuales s existe un algoritmo que siempre los resuelve cuando hay una solucin y adems es capaz de distinguir los casos que no la tienen. Tambin se les conoce como decidibles, resolubles o recursivos. Los semicomputables son aquellos para los cuales hay un algoritmo que es capaz encontrar una solucin si es que existe, pero ningn algoritmo que determine cuando la solucin no existe (en cuyo caso el algoritmo para encontrar la solucin entrara a un bucle infinito). El ejemplo clsico por excelencia es el problema de la parada. A estos problemas tambin se les conoce como listables, recursivamente enumerables o reconocibles, porque si se enlistan todos los casos posibles del problema, es posible reconocer a aquellos que s tienen solucin. Los incomputables son aquellos para los cuales no hay ningn algoritmo que los pueda resolver, no importando que tengan o no solucin. El ejemplo clsico por excelencia es el problema de la implicacin lgica, que consiste en determinar cundo una proposicin lgica es un teorema; para este problema no hay ningn algoritmo que en todos los casos pueda distinguir si una proposicin o su negacin es un teorema. Hay una versin ms general de esta clasificacin, donde los problemas incomputables se subdividen a su vez en problemas ms difciles que otros. La herramienta principal para lograr estas clasificaciones es el concepto de reducibilidad: Un problema se reduce al problema si bajo la suposicin de que se sabe resolver el problema es posible resolver al problema; esto se denota por, e informalmente significa que el problema no es ms difcil de resolver que el
Pgina 11 de 57
problema. Por ejemplo, bajo la suposicin de que una persona sabe sumar, es muy fcil ensearle a multiplicar haciendo sumas repetidas, de manera que multiplicar se reduce a sumar.
Pgina 12 de 57
Pgina 13 de 57
2.3.2 Algoritmos
Los diagramas de flujo sirven para representar algoritmos de manera grfica. En matemticas, ciencias de la computacin y disciplinas relacionadas, un algoritmo (del griego y latn, dixit algorithmus y este a su vez del matemtico persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos son el objeto de estudio de la algoritmia.1 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrn. Algunos ejemplos en matemtica son el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para obtener el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema lineal de ecuaciones.
GRAFICO 8: ALGORITMO
Pgina 14 de 57
A lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utilizando modelos matemticos como mquinas de Turn entre otros. Sin embargo, estos modelos estn sujetos a un tipo particular de datos como son nmeros, smbolos o grficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos.3 1 En general, la parte comn en todas las definiciones se puede resumir en las siguientes tres propiedades siempre y cuando no consideremos algoritmos paralelos:7 Tiempo secuencial. Un algoritmo funciona en tiempo discretizado paso a paso, definiendo as una secuencia de estados "computacionales" por cada entrada vlida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementacin (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo. Exploracin acotada. La transicin de un estado al siguiente queda completamente determinada por una descripcin fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de trminos del estado actual. En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambigedad y sin hacer referencia a una computadora en particular, y adems tiene un lmite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un solo paso. Esta amplia definicin abarca tanto a algoritmos prcticos como aquellos que solo funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de Gauss-Jordan funcionan, al menos en principio, con nmeros de precisin infinita; sin embargo no es posible programar la precisin infinita en una computadora, y no por ello dejan de ser algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada para validar la tesis de Church-Turing de que toda funcin calculable se puede programar en una mquina de Turn (o equivalentemente, en un lenguaje de programacin suficientemente general):10 Aritmetizabilidad. Solamente operaciones innegablemente calculables estn disponibles en el paso inicial. Medios de expresin de un algoritmo Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programacin especfico. La descripcin de un algoritmo usualmente se hace en tres niveles: Descripcin de alto nivel. Se establece el problema, se selecciona un modelo matemtico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos que encuentran la solucin.
Pgina 15 de 57
Implementacin. Se muestra el algoritmo expresado en un lenguaje de programacin especfico o algn objeto capaz de llevar a cabo instrucciones.
Pgina 16 de 57
2.3.4 Pseudocdigo
El pseudocdigo (falso lenguaje, el prefijo pseudo significa falso) es una descripcin de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintcticas propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est regido por ningn estndar. Es utilizado para describir algoritmos en libros y publicaciones cientficas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocdigo requieren menos espacio para representar instrucciones complejas. El pseudocdigo est pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programacin concretos. Sin embargo, el pseudocdigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programacin especfico, y es a la vez suficientemente estructurado para que su implementacin se pueda hacer directamente a partir de l. As el pseudodocdigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programacin. Busque fuentes ms precisas para tener mayor comprensin del tema.
Pgina 17 de 57
Pgina 18 de 57
Conjuntos (set) Matriz (matemticas) Matriz (programacin) Lista Listas Simples Listas Doblemente Enlazadas Listas Circulares Listas por saltos (Skip lists) rboles rboles Binarios rbol binario de bsqueda rbol binario de bsqueda equilibrado rboles Rojo-Negro rboles AVL rboles Biselados (rboles Splay) rboles Multicamino (Multirrama) rboles B rboles B+ rboles B* Tries Grafos Tablas Hash Mapeos Diccionarios Montculos (o heaps) Montculo binario Montculo binmico Montculo de Fibonacci Montculo suave Montculo 2-3
Desarrollo de mtodos para definir formalmente (matemtica y lgicamente), el comportamiento esperado de un algoritmo, para luego probar terminacin y correctitud.
Pgina 19 de 57
2.4.1 Compilador
Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin.1 Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.
Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente posible). Alternativamente, las fases descritas para las tareas de anlisis y sntesis se pueden agrupar en Front-end y Back-end: Front-end: es la parte que analiza el cdigo fuente, comprueba su validez, genera el rbol de derivacin y rellena los valores de la tabla de smbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y est compuesta por las fases comprendidas entre el Anlisis Lxico y la Generacin de Cdigo Intermedio. Back-end: es la parte que genera el cdigo mquina, especfico de una plataforma, a partir de los resultados de la fase de anlisis, realizada por el Front End. Esta divisin permite que el mismo Back End se utilice para generar el cdigo mquina de varios lenguajes de programacin distintos y que el mismo Front End que sirve para analizar el cdigo fuente de un lenguaje de programacin concreto sirva para generar cdigo mquina en varias plataformas distintas. Suele incluir la generacin y optimizacin del cdigo dependiente de la mquina. El cdigo que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker)
lenguaje de partida, especificada normalmente mediante una gramtica formal y barata, dejando nicamente al programador del compilador la tarea de programar las acciones semnticas asociadas.
Pgina 22 de 57
Las reglas 1 y 2 son reglas bsicas (no recursivas), en tanto que la regla 3 define expresiones en funcin de operadores aplicados a otras expresiones. La divisin entre anlisis lxico y anlisis sintctico es algo arbitraria. Un factor para determinar la divisin es si una construccin del lenguaje fuente es inherentemente recursiva o no. Las construcciones lxicas no requieren recursin, mientras que las construcciones sintcticas suelen requerirla. No se requiere recursin para reconocer los identificadores, que suelen ser cadenas de letras y dgitos que comienzan con una letra. Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada, esperando hasta encontrar un carcter que no sea ni letra ni dgito, y agrupando despus todas las letras y dgitos encontrados hasta ese punto en un componente lxico llamado identificador. Por otra parte, esta clase de anlisis no es suficientemente poderoso para analizar expresiones o proposiciones. Por ejemplo, no podemos emparejar de manera apropiada los parntesis de las expresiones, o las palabras begin y end en proposiciones sin imponer alguna clase de estructura jerrquica o de anidamiento a la entrada.
Pgina 23 de 57
GRAFICO 12: LAMBDA EN MINUSCULA La teora de lenguajes de programacin es una rama de la informtica que se encarga del diseo, implementacin, anlisis, caracterizacin y clasificacin de lenguajes de programacin y sus caractersticas. Es un campo multi-disciplinar, dependiendo tanto de (y en algunos casos afectando) matemticas, ingeniera del software, lingstica, e incluso ciencias cognitivas. Es una rama bien reconocida de la informtica, y a fecha de 2006, un rea activa de investigacin, con resultados publicados en un gran nmero de revistas dedicadas a la PLT, as como en general en publicaciones de informtica e ingeniera.La mayora de los programas de los estudiantes universitarios de informtica requieren trabajar en este tema. Un smbolo no oficial de la teora de lenguajes de programacin es la letra griega lambda en minsculas. Este uso deriva del clculo lambda, un modelo computacional ampliamente usado por investigadores de lenguajes de programacin. Muchos textos y artculos sobre programacin y lenguajes de programacin utilizan lambda de una u otra manera. Ilustra la portada del texto clsico Estructura e Interpretacin de Programas de Ordenador, y el ttulo de muchos de los llamados Artculos Lambda, escritos por Gerald Jay Sussman y Guy Steele, creadores del lenguaje de programacin Scheme. Un sitio muy conocido sobre teora de lenguajes de programacin se llama Lambda the Ultimate (Lambda el primordial), en honor al
Pgina 24 de 57
computan." (Types and Programming Languages, MIT Press, 2002). Muchos lenguajes de programacin se distinguen por las caractersticas de sus sistemas de tipos. La Semntica formal es la especificacin formar del comportamiento de programas de ordenador y lenguajes de programacin. La Transformacin de programas es el proceso de transformar un programa de una forma (lenguaje) a otra forma; el anlisis de programas es problema general de examinar un programa mediante la determinacin de sus caractersticas clave (como la ausencia de clases de errores de programa). Sistemas en tiempo de ejecucin se refiere al desarrollo de entornos runtime para lenguajes de programacin y sus componentes, incluyendo mquinas virtuales, recoleccin de basura, e interfaces para funciones externas. Anlisis comparativo de lenguajes de programacin busca clasificar los lenguajes de programacin en diferentes tipos basados en sus caractersticas; amplias categoras de diferentes lenguajes de programacin se conocen frecuentemente como paradigmas de computacin. Meta programacin es la generacin de programas de mayor orden que, cuando se ejecutan, producen programas (posiblemente en un lenguaje diferente, o en un subconjunto del lenguaje original) como resultado. Lenguajes dedicados son lenguajes construidos para resolver problemas en un dominio de problemas en particular de manera eficiente. Adems, PLT hace uso de muchas otras ramas de las matemticas, ingeniera del software, lingstica, e incluso ciencias cognitivas. Lenguajes formales para expresar algoritmos y las propiedades de estos lenguajes.
Pgina 25 de 57
Pgina 26 de 57
Pgina 27 de 57
Bases de datos bibliogrficas (biolgicas, qumicas, mdicas y de otros campos): PubChem, Medline, EBSCOhost. Bases de datos jerrquicas.- En este modelo los datos se organizan en una forma similar a un rbol (visto al revs), en donde un nodo padre de informacin puede tener varios hijos. El nodo que no tiene padres es llamado raz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerrquicas son especialmente tiles en el caso de aplicaciones que manejan un gran volumen de informacin y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento. Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base de datos de red.- ste es un modelo ligeramente distinto del jerrquico; su diferencia fundamental es la modificacin del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerrquico). Fue una gran mejora con respecto al modelo jerrquico, ya que ofreca una solucin eficiente al problema de redundancia de datos; pero, aun as, la dificultad que significa administrar la informacin en una base de datos de red ha significado que sea un modelo utilizado en su mayora por programadores ms que por usuarios finales. Bases de datos transaccionales.- Son bases de datos cuyo nico fin es el envo y recepcin de datos a gran des velocidades, estas bases son muy poco comunes y estn dirigidas por lo general al entorno de anlisis de calidad, datos de produccin e industrial, es importante entender que su fin nico es recolectar y recuperar los datos a la mayor velocidad posible , por lo tanto la redundancia y duplicacin de informacin no es un problema como con las dems bases de datos, por lo general para poderlas aprovechar al mximo permiten algn tipo de conectividad a bases de datos relacionales. Un ejemplo habitual de transaccin es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema (es decir, para que no aparezca o desaparezca dinero), las dos operaciones deben ser atmicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una cada del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.
Pgina 28 de 57
Bases de datos relacionales.- ste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos (California), no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podran considerar se en forma lgica como conjuntos de datos llamados "tuplas". Pese a que sta es la teora de las bases de datos relacionales creadas por Codd, la mayora de las veces se conceptualiza de una manera ms fcil de imaginar. Esto es pensando en cada relacin como si fuese una tabla que est compuesta por registros (las filas de una tabla), que representaran las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable ventaja de que es ms fcil de entender y de utilizar para un usuario espordico de la base de datos. La informacin puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la informacin. El lenguaje ms habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estndar implementado por los principales motores o sistemas de gestin de bases de datos relacionales. Durante su diseo, una base de datos relacional pasa por un proceso al que se le conoce como normalizacin de una base de datos. Durante los aos 80 la aparicin de dBASE produjo una revolucin en los lenguajes de programacin y sistemas de administracin de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestin. Bases de datos multidimensionales.- Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creacin de Cubos OLAP. Bsicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podra serlo tambin en una base de datos multidimensional), la diferencia est m s bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan mtricas que se desean estudiar. Bases de datos orientadas a objetos.- Este modelo, bastante reciente, y propio de los modelos informticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).
Pgina 29 de 57
Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos: Encapsulacin - Propiedad que permite ocultar la informacin al resto de los objetos, impidiendo as accesos incorrectos o conflictos. Herencia - Propiedad a travs de la cual los objetos heredan comportamiento dentro de una jerarqua de clases. Polimorfismo - Propiedad de una operacin mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definicin de la base de datos. Una operacin (llamada funcin) se especifica en dos partes. La interfaz (o signatura) de una operacin incluye el nombre de la operacin y los tipos de datos de sus argumentos (o parmetros). La implementacin (o mtodo) de la operacin se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicacin de los usuarios pueden operar sobre los datos invocando a dichas operaciones a travs de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podra denominarse independencia entre programas y operaciones. SQL: 2003, es el estndar de SQL92 ampliado, soporta los conceptos orientados a objetos y mantiene la compatibilidad con SQL92. Bases de datos documentales.- Permiten la indexacin a texto completo, y en lneas generales realizar bsquedas ms potentes. Tesaurus es un sistema de ndices optimizado para este tipo de bases de datos. Bases de datos deductivas.- Un sistema de base de datos deductiva, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a travs de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. Las bases de datos deductivas son tambin llamadas bases de datos lgicas, a raz de que se basa en lgica matemtica. Este tipo de base de datos surge debido a las limitaciones de la Base de Datos Relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos.
2.5.2 Ventajas
Uso de reglas lgicas para expresar las consultas. Permite responder consultas recursivas. Cuenta con negaciones estratificadas Capacidad de obtener nueva informacin a travs de la ya almacenada en la base de datos mediante inferencia. Uso de algoritmos de optimizacin de consultas. Soporta objetos y conjuntos complejos.
Pgina 30 de 57
2.5.3 Desventajas
Crear procedimientos eficaces de deduccin para evitar caer en bucles infinitos. Encontrar criterios que decidan la utilizacin de una ley como regla de deduccin. Replantear las convenciones habituales de la base de datos.
Pgina 31 de 57
etapa de minera de datos, pero que pertenecen a todo el proceso KDD como pasos adicionales. Los trminos relacionados con el dragado de datos, la pesca de datos y espionaje de los datos se refieren a la utilizacin de mtodos de minera de datos a las partes de la muestra de un conjunto de datos de poblacin ms grandes establecidas que son (o pueden ser) demasiado pequeo para las inferencias estadsticas fiables que se hizo acerca de la validez de cualquier patrones descubiertos. Estos mtodos pueden, sin embargo, ser utilizado en la creacin de nuevas hiptesis que se prueba contra las poblaciones de datos ms grandes.
2.5.4.1 Proceso
Un proceso tpico de minera de datos consta de los siguientes pasos generales: Seleccin del conjunto de datos, tanto en lo que se refiere a las variables objetivo (aquellas que se quiere predecir, calcular o inferir), como a las variables independientes (las que sirven para hacer el clculo o proceso), como posiblemente al muestreo de los registros disponibles. Anlisis de las propiedades de los datos, en especial los histogramas, diagramas de dispersin, presencia de valores atpicos y ausencia de datos (valores nulos). Transformacin del conjunto de datos de entrada, se realizar de diversas formas en funcin del anlisis previo, con el objetivo de prepararlo para aplicar la tcnica de minera de datos que mejor se adapte a los datos y al problema, a este paso tambin se le conoce como pre procesamiento de los datos. Seleccionar y aplicar la tcnica de minera de datos, se construye el modelo predictivo, de clasificacin o segmentacin. Extraccin de conocimiento, mediante una tcnica de minera de datos, se obtiene un modelo de conocimiento, que representa patrones de comportamiento observados en los valores de las variables del problema o relaciones de asociacin entre dichas variables. Tambin pueden usarse varias tcnicas a la vez para generar distintos modelos, aunque generalmente cada tcnica obliga a un pre procesado diferente de los datos. Interpretacin y evaluacin de datos, una vez obtenido el modelo, se debe proceder a su validacin comprobando que las conclusiones que arroja son vlidas y suficientemente satisfactorias. En el caso de haber obtenido varios modelos mediante el uso de distintas tcnicas, se deben comparar los modelos en busca de aquel que se ajuste mejor al problema. Si ninguno de los modelos alcanza los resultados esperados, debe alterarse alguno de los pasos anteriores para generar nuevos modelos. Si el modelo final no superara esta evaluacin el proceso se podra repetir desde el principio o, si el experto lo considera oportuno, a partir de cualquiera de los pasos anteriores. Esta retroalimentacin se podr repetir cuantas veces se considere necesario hasta obtener un modelo vlido. Una vez validado el modelo, si resulta ser aceptable (proporciona salidas adecuadas y/o con mrgenes de error admisibles) ste ya est listo para su explotacin. Los modelos obtenidos por tcnicas de minera de datos se aplican incorporndolos en los sistemas de anlisis de informacin de las organizaciones, e incluso, en los sistemas transaccionales. En este sentido cabe destacar los esfuerzos del Data Mining Group, que est estandarizando el lenguaje PMML (Predictive Model Markup Language), de manera que los modelos de minera de datos sean interoperables en distintas plataformas, con
Pgina 32 de 57
independencia del sistema con el que han sido construidos. Los principales fabricantes de sistemas de bases de datos y programas de anlisis de la informacin hacen uso de este estndar. Tradicionalmente, las tcnicas de minera de datos se aplicaban sobre informacin contenida en almacenes de datos. De hecho, muchas grandes empresas e instituciones han creado y alimentan bases de datos especialmente diseadas para proyectos de minera de datos en las que centralizan informacin potencialmente til de todas sus reas de negocio. No obstante, actualmente est cobrando una importancia cada vez mayor la minera de datos desestructurados como informacin contenida en ficheros de texto, en Internet, etc.
2.5.4.3 Aplicaciones
Negocios.- La minera de datos puede contribuir significativamente en las aplicaciones de administracin empresarial basada en la relacin con el cliente. En lugar de contactar con el cliente de forma indiscriminada a tr avs de un centro de llamadas o enviando cartas, slo se contactar con aquellos que se perciba que tienen una mayor probabilidad de responder positivamente a una determinada oferta o promocin. Por lo general, las empresas que emplean minera de datos ven rpidamente el retorno de la inversin, pero tambin reconocen que el nmero de modelos predictivos desarrollados puede crecer muy rpidamente. En lugar de crear modelos para predecir qu clientes pueden cambiar, la empresa podra construir modelos separados para cada regin y/o para cada tipo de cliente. Tambin puede querer determinar qu clientes van a ser rentables durante una ventana de tiempo (una quincena, un mes,...) y slo enviar las ofertas a las personas que es probable que sean rentables. Para mantener esta cantidad de modelos, es necesario gestionar las versiones de cada modelo y pasar a una minera de datos lo ms automatizada posible. Hbitos de compra en supermercados .- El ejemplo clsico de aplicacin de la minera de datos tiene que ver con la deteccin de hbitos de compra en supermercados. Un estudio muy citado detect que los viernes haba una cantidad inusualmente elevada de clientes que adquiran a la vez paales y cerveza. Se detect que se deba a que dicho da solan acudir
Pgina 33 de 57
al supermercado padres jvenes cuya perspectiva para el fin de semana consista en quedarse en casa cuidando de su hijo y viendo la televisin con una cerveza en la mano. El supermercado pudo incrementar sus ventas de cerveza colocndolas prximas a los paales para fomentar las ventas compulsivas. Patrones de fuga.- Un ejemplo ms habitual es el de la deteccin de patrones de fuga. En muchas industrias como la banca, las telecomunicaciones, etc. existe un comprensible inters en detectar cuanto antes aquellos clientes que puedan estar pensando en rescindir sus contratos para, posiblemente, pasarse a la competencia. A estos clientes y en funcin de su valor se les podran hacer ofertas per sonalizadas, ofrecer promociones especiales, etc., con el objetivo ltimo de retenerlos. La minera de datos ayuda a determinar qu clientes son los ms proclives a darse de baja estudiando sus patrones de comportamiento y comparndolos con muestras de cli entes que, efectivamente, se dieron de baja en el pasado. Fraudes.- Un caso anlogo es el de la deteccin de transacciones de lavado de dinero o de fraude en el uso de tarjetas de crdito o de servicios de telefona mvil e, incluso, en la relacin de los contribuyentes con el fisco. Generalmente, estas operaciones fraudulentas o ilegales suelen seguir patrones caractersticos que permiten, con cierto grado de probabilidad, distinguirlas de las legtimas y desarrollar as mecanismos para tomar medidas rpidas frente a ellas. Recursos humanos.- La minera de datos tambin puede ser til para los departamentos de recursos humanos en la identificacin de las caractersticas de sus empleados de mayor xito. La informacin obtenida puede ayudar a la contrataci n de personal, centrndose en los esfuerzos de sus empleados y los resultados obtenidos por stos. Adems, la ayuda ofrecida por las aplicaciones para Direccin estratgica en una empresa se traducen en la obtencin de ventajas a nivel corporativo, tales como mejorar el margen de beneficios o compartir objetivos; y en la mejora de las decisiones operativas, tales como desarrollo de planes de produccin o gestin de mano de obra. Comportamiento en Internet.- Tambin es un rea en boga el del anlisis del comportamiento de los visitantes sobre todo, cuando son clientes potenciales en una pgina de Internet. O la utilizacin de la informacin obtenida por medios ms o menos legtimos sobre ellos para ofrecerles propaganda
Pgina 34 de 57
adaptada especficamente a su perfil. O para, una vez que adquieren un determinado producto, saber inmediatamente qu otro ofrecerle teniendo en cuenta la informacin histrica disponible acerca de los clientes que han comprado el primero . Terrorismo.- La minera de datos ha sido citada como el mtodo por el cual la unidad Able Danger del Ejrcito de los EE. UU. Haba identificado al lder de los atentados del 11 de septiembre de 2001, Mohammed Atta, y a otros tres secuestradores del "11-S" como posibles miembros de una clula de Al Qaeda que operan en los EE. UU. Ms de un ao antes del ataque. Se ha sugerido que tanto la Agencia Central de Inteligencia y sus homloga canadiense, Servicio de Inteligencia y Seguridad Canadiense, tambin han empleado este mtodo. Juegos.- Desde comienzos de la dcada de 1960, con la disponibilidad de orculos para determinados juegos combinacionales, tambin llamados finales de juego de tablero (por ejemplo, para las tres en raya o en finales de ajedrez) con cualquier configuracin de inicio, se ha abierto una nueva rea en la minera de datos que consiste en la extraccin de estrategias utilizadas por personas para estos orculos. Los planteamientos actuales sobre reconocimiento de patrones, no parecen poder aplicarse con xito al funcionamiento de estos orculos. En su lugar, la produccin de patrones perspicaces se basa en una amplia experimentacin con bases de datos sobre esos finales de juego, combinado con un estudio intensivo de los propios finales de juego en problemas bien diseados y con conocimiento de la tcnica (datos previos sobre el final del juego). Ejemplos notables de investigadores que trabajan en este campo son Berlekamp en el juego de puntos -y-cajas (o Timbiriche) y John Nunn en finales de ajedrez. Gentica.- En el estudio de la gentica humana, el objetivo principal es entender la relacin cartogrfica entre las partes y la variacin individual en las secuencias del ADN humano y la variabilidad en la susceptibilidad a las enfermedades. En trminos ms llanos, se trata de saber cmo los cambios en la secuencia de ADN de un individuo afectan al riesgo de desarrollar enfermedades comunes (como por ejemplo el cncer). Esto es muy importante para ayudar a mejorar el diagnstico, prevencin y trat amiento de las enfermedades. La tcnica de minera de datos que se utiliza para realizar esta tarea se conoce como "reduccin de dimensionalidad multifactorial"
Pgina 35 de 57
Ingeniera elctrica.- En el mbito de la ingeniera elctrica, las tcnicas minera de datos han sido ampliamente utilizadas para monitorizar las condiciones de las instalaciones de alta tensin. La finalidad de esta monitorizacin es obtener informacin valiosa sobre el estado del aislamiento de los equipos. Para la vigilancia de las vibraciones o el anlisis de los cambios de carga en transformadores se utilizan ciertas tcnicas para agrupacin de datos (clustering) tales como los Mapas Auto-Organizativos (SOM, Self-organizing map). Estos mapas sirven para detectar condiciones anormales y para estimar la naturaleza de dichas anomalas.
Pgina 36 de 57
ltimo, estructura cada red en siete capas con funciones concretas pero relacionadas entre s; en TCP/IP se reducen a cuatro capas. Existen multitud de protocolos repartidos por cada capa, los cuales tambin estn regidos por sus respectivos estndares.3
2.6.2.1 Software
Sistema operativo de red: permite la interconexin de ordenadores para poder acceder a los servicios y recursos. Al igual que un equipo no puede trabajar sin un sistema operativo, una red de equipos no puede funcionar sin un sistema operativo de red. En muchos casos el sistema operativo de red es parte del sistema operativo de los servidores y de los clientes, por ejemplo en Linux y Microsoft Windows. Software de aplicacin: en ltima instancia, todos los elementos se utilizan para que el usuario de cada estacin, pueda utilizar sus programas y archivos especficos. Este software puede ser tan amplio como se necesite ya que pueda incluir procesadores de texto, paquetes integrados, sistemas administrativos de contabilidad y reas afines, sistemas especializados, correos electrnicos, etc. El software adecuado en el sistema operativo de red elegido y con los protocolos necesarios permite crear servidores para aquellos servicios que se necesiten.
2.6.2.2 Hardware
Para lograr el enlace entre las computadoras y los medios de transmisin (cables de red o medios fsicos para redes almbricas e infrarrojos o radiofrecuencias para redes inalmbricas), es necesaria la intervencin de una tarjeta de red, o NIC (Network Card Interface), con la cual se puedan enviar y recibir paquetes de datos desde y hacia otras computadoras, empleando un protocolo para su comunicacin y convirtiendo a esos datos a un formato que pueda ser transmitido por el medio (bits, ceros y unos). Cabe sealar que a cada tarjeta de red le es asignado un identificador nico por su fabricante, conocido como direccin MAC (Media Access Control), que consta de 48 bits (6 bytes). Dicho identificador permite direccionar el trfico de datos de la red del emisor al receptor adecuado. El trabajo del adaptador de red es el de convertir las seales elctricas que viajan por el cable (ej: red Ethernet) o las ondas de radio (ej: red Wi-Fi) en una seal que pueda interpretar el ordenador. Estos adaptadores son unas tarjetas PCI que se conectan en las ranuras de expansin del ordenador. En el caso de ordenadores porttiles, estas tarjetas vienen en formato PCMCIA o similares. En los ordenadores del siglo XXI, tanto de sobremesa como porttiles, estas tarjetas ya vienen integradas en la placa base. Adaptador de red es el nombre genrico que reciben los dispositivos encargados de realizar dicha conversin. Esto significa que estos adaptadores pueden ser tanto Ethernet, como wireless, as como de otros tipos como fibra ptica, coaxial, etc. Tambin las velocidades disponibles varan segn el tipo de adaptador; stas pueden ser, en Ethernet, de 10, 100, 1000 Mbps o 10000, y en los inalmbricos, principalmente, de 11, 54, 300 Mbps.
Pgina 37 de 57
GRAFICO 14: COMPUTO PARALELO La computacin paralela es una tcnica de programacin en la que muchas instrucciones se ejecutan simultneamente.1 Se basa en el principio de que los problemas grandes se pueden dividir en partes ms pequeas que pueden resolverse de forma paralela (no es lo mismo que concurrente). Existen varios tipos de computacin paralela: paralelismo a nivel de bit, paralelismo a nivel de instruccin, paralelismo de datos y paralelismo de tareas. Durante muchos aos, la computacin paralela se ha aplicado en la computacin de altas prestaciones, pero el inters en ella ha aumentado en los ltimos aos debido a las restricciones fsicas que impiden el escalado en frecuencia. La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en los procesadores multincleo.2 Sin embargo, recientemente, el consumo de energa de los ordenadores paralelos se ha convertido en una preocupacin.3 Los ordenadores paralelos se pueden clasificar segn el nivel de paralelismo que admite su hardware: los ordenadores multincleo y multiproceso tienen varios elementos de procesamiento en una sola mquina, mientras que los clusters, los MPP y los grids emplean varios ordenadores para trabajar en la misma tarea. Los programas de ordenador paralelos son ms difciles de escribir que los secuenciales4 porque el paralelismo introduce nuevos tipos de errores de software, siendo las condiciones de carrera los ms comunes. La comunicacin y la sincronizacin entre las diferentes subtareas son tpicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelizacin viene dado por la ley de Amdahl.
Pgina 38 de 57
2.6.4.2 Caractersticas
Para cada uno de los usuarios debe ser similar al trabajo en el Sistema Centralizado. Seguridad interna en el sistema distribuido. Se ejecuta en mltiples Computadoras. Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios. Entorno de trabajo cmodo. Dependiente de redes (LAN, MAN, WAN, etc.). Compatibilidad entre los dispositivos conectados. Transparencia (El uso de mltiples procesadores y el acceso remoto debe ser invisible). Interaccin entre los equipos. Diseo de software compatible con varios usuarios y sistemas operativos vida extraterrestre.
2.6.4.3 Seguridad
El punto de la seguridad es delicado en este tipo de computacin distribuida pues las conexiones se hacen de forma remota y no local, entonces suelen surgir problemas para controlar el acceso a los otros nodos. Esto puede aprovecharse para un ataque de Dos, aunque la red no va a dejar de funcionar porque uno falle. Esa es una ventaja de este sistema grid.
Pgina 39 de 57
Pgina 40 de 57
Tambin se distinguen varios tipos de procesos vlidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De ms simples a ms complejos, los cinco principales tipos de procesos son: Ejecucin de una respuesta predeterminada por cada entrada (anlogas a actos reflejos en seres vivos). Bsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles. Algoritmos genticos (anlogo al proceso de evolucin de las cadenas de ADN). Redes neuronales artificiales (anlogo al funcionamiento fsico del cerebro de animales y humanos). Razonamiento mediante una lgica formal (anlogo al pensamiento abstracto humano). Tambin existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas, respectivamente por sensores fsicos y sensores mecnicos en mquinas, pulsos elctricos u pticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno software. Varios ejemplos se encuentran en el rea de control de sistemas, planificacin automtica, la habilidad de responder a diagnsticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economa, medicina, ingeniera y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.
Pgina 41 de 57
Pgina 42 de 57
computacional puede tener de sus estados internos, por ejemplo la cantidad de ciclos cumplidos en un loop o bucle en sentencias tipo do... for, o la cantidad de memoria disponible para una operacin determinada. A los sistemas inteligentes el no tener en cuenta elementos emocionales les permite no olvidar la meta que deben alcanzar. En los humanos el olvido de la meta o el abandonar las metas por perturbaciones emocionales es un problema que en algunos casos llega a ser incapacitante. Los sistemas inteligentes, al combinar una memoria durable, una asignacin de metas o motivacin, junto a la toma de decisiones y asignacin de prioridades con base en estados actuales y estados meta, logran un comportamiento en extremo eficiente, especialmente ante problemas complejos y peligrosos. En sntesis, lo racional y lo emocional estn de tal manera interrelacionados entre s, que se podra decir que no slo no son aspectos contradictorios sino que son hasta cierto punto complementarios.
2.7.3 Robtica
La robtica es la rama de la tecnologa diferenciada de la telecomunicacin (cuya funcin es cubrir todas las formas de comunicacin a distancia) que se dedica al diseo, construccin, operacin, disposicin estructural, manufactura y aplicacin de los robots. La robtica combina diversas disciplinas como son: la mecnica, la electrnica, la informtica, la inteligencia artificial y la ingeniera de control.3 Otras reas importantes en robtica son el lgebra, los autmatas programables y las mquinas de estados. El trmino robot se populariz con el xito de la obra RUR (Robots Universales Rossum), escrita por Karel Capek en 1920. En la traduccin al ingls de dicha obra, la palabra checa robota, que significa trabajos forzados, fue traducida al ingls como robot.
Pgina 44 de 57
precisin cientfica y composicin esttica. Las imgenes digitales que se obtienen mediante un CCD (charge-coupled device) o un CMOS (complementary metal oxide semiconductor) a menudo presentan seales a ruido pobres, iluminacin irregular, impurezas de enfoque, deslumbramiento, cambios en los colores y otros problemas que distorsionan la calidad global de la imagen.
Pgina 46 de 57
conocimiento del sistema est formada por ejemplos de etiquetados anteriores. Este tipo de aprendizaje puede llegar a ser muy til en problemas de investigacin biolgica, biologa computacional y bioinformtica. Aprendizaje no supervisado.- Todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan slo por entradas al sistema. No se tiene informacin sobre las categoras de esos ejemplos. Por lo tanto, en este caso, el sistema tiene que ser capaz de reconocer patrones para poder etiquetar las nuevas entradas. Aprendizaje semisupervisado.- Este tipo de algoritmos combinan los dos algoritmos anteriores para poder clasificar de manera adecuada. Se tiene en cuenta los datos marcados y los no marcados.
Aprendizaje por refuerzo.- El algoritmo aprende observando el mundo que le rodea. Su informacin de entrada es el feedback o retroalimentacin que obtiene del mundo exterior como respuesta a sus acciones. Por lo tanto, el sistema aprende a base de ensayo-error. Transduccin.- Similar al aprendizaje supervisado, pero no construye de forma explcita una funcin. Trata de predecir las categoras de los futuros ejemplos basndose en los ejempl os de entrada, sus respectivas categoras y los ejemplos nuevos al sistema. Aprendizaje multi-tarea.- Mtodos de aprendizaje que usan conocimiento previamente aprendido por el sistema de cara a enfrentarse a problemas parecidos a los ya vistos. El anlisis computacional y de rendimiento de los algoritmos de aprendizaje automtico es una rama de la estadstica conocida como teora computacional del aprendizaje. Aprendizaje Automtico.- El aprendizaje automtico nosotros lo llevamos a cabo de manera automtica ya que es un proceso tan sencillo para nosotros que ni cuenta nos damos de cmo se realiza y todo lo que esto implica. Desde que nacemos hasta que morimos los seres humanos tenemos diferentes procesos entre ellos encontramos el de aprendizaje por medio del cual adquirimos conocimientos, desarrollamos habilidades para analizar y evaluar a travs de mtodos y tcnicas as como tambin por medio de la experiencia propia, pero a las mquinas
Pgina 47 de 57
hay que indicarles cmo aprender, ya que si no se logra que una mquina sea capaz de desarrollar sus habilidades entonces el proceso de aprendizaje no se estar llevando a cabo, sino que solo ser una secuencia repetitiva. Tambin debemos tener en cuenta que el tener conocimiento o el hecho de realizar bien el proceso de aprendizaje automtico no implica que se sepa utilizar, es preciso saber aplicarlo en las actividades cotidianas y un buen aprendizaje tambin implica saber cmo y cundo utilizar nuestros conocimientos. Para llevar acabo un buen aprendizaje es necesario tener considerar todos los factores que a este le rodean como, la sociedad, la economa, la ciudad, el ambiente, el lugar, etc. Por lo cual es necesario empezar a tomar diversas medidas para lograr un aprendizaje adecuado, y obtener una automatizacin adecuada del aprendizaje, por lo cual lo primero que se debe tener en cuenta es el concepto de conocimiento, el cual es el entendimiento de un determinado tema o materia en el cual tu puedas dar tu opinin o punto de vista as como tambin responder a ciertas interrogantes que puedan surgir de dicho tema o materia. En el aprendizaje automtico podemos obtener 3 tipos de conocimiento los cules son: 1. Crecimiento: Es el que se adquiere de lo que nos rodea, el cual guarda la informacin en la memoria como si dejara huellas. 2. Reestructuracin: Al interpretar los conocimientos el individuo razona y genera nuevo conocimiento al cual se le llama de reestructuracin. 3. Ajuste: Es el que se obtiene al generalizar varios conceptos o generando los propios. Los tres tipos se efectan durante un proceso de aprendizaje automtico pero la importancia de cada tipo de conocimiento depende de las caractersticas de lo que se est tratando de aprender. El aprendizaje es ms que una necesidad, es un factor primordial para satisfacer las necesidades de la inteligencia artificial.
2.7.5.3 Aplicaciones
Motores de bsqueda Diagnstico mdico Deteccin de fraudes con el uso de tarjetas de crdito Anlisis del mercado de valores Clasificacin de secuencias de ADN Reconocimiento del habla Robtica
Pgina 48 de 57
Pgina 49 de 57
Quizs el primer uso de la grfica realizada por computadora expresamente para ilustrar grfica realizada por computadora estaba en Futureworld (1976), que incluy una animacin de una cara humana y mano - producido por Ed Catmull y Fred Parke en la Universidad de Utah.
Pgina 50 de 57
Pgina 51 de 57
Pgina 52 de 57
2.8.2.2 Objetivos
Los principales objetivos que se persiguen con la aplicacin de filtros son: Suavizar la imagen: reducir la cantidad de variaciones de intensidad entre pxeles vecinos. Eliminar ruido: eliminar aquellos pxeles cuyo nivel de intensidad es muy diferente al de sus vecinos y cuyo origen puede estar tanto en el proceso de adquisicin de la imagen como en el de transmisin. Realzar bordes: destacar los bordes que se localizan en una imagen. Detectar bordes: detectar los pxeles donde se produce un cambio brusco en la funcin intensidad. Por tanto, se consideran los filtros como operaciones que se aplican a los pxeles de una imagen digital para optimizarla, enfatizar cierta informacin o conseguir un efecto especial en ella.
2.8.2.3 Ventajas
Mtodo simple y sencillo de implementar. Fcil asociacin del concepto de frecuencia con ciertas caractersticas de la imagen; cambios de tonalidad suaves implican frecuencias bajas y cambios bruscos frecuencias altas. Proporciona flexibilidad en el diseo de soluciones de filtrado. Rapidez en el filtrado al utilizar el Teorema de la Convolucin.
2.8.2.4 Desventajas
Se necesitan conocimientos en varios campos para desarrollar una aplicacin para el procesamiento de imgenes. El ruido no puede ser eliminado completamente.
Pgina 53 de 57
Pgina 54 de 57
la computacin cuntica, intervienen las leyes de la mecnica cuntica, y la partcula puede estar en superposicin coherente: puede ser 0, 1 y puede ser 0 y 1 a la vez (dos estados ortogonales de una partcula subatmica). Eso permite que se puedan realizar varias operaciones a la vez, segn el nmero de qubits. El nmero de qubits indica la cantidad de bits que pueden estar en superposicin. Con los bits convencionales, si tenamos un registro de tres bits, haba ocho valores posibles y el registro slo poda tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partcula puede tomar ocho valores distintos a la vez gracias a la superposicin cuntica. As, un vector de tres qubits permitira un total de ocho operaciones paralelas. Como cabe esperar, el nmero de operaciones es exponencial con respecto al nmero de qubits. Para hacerse una idea del gran avance, un computador cuntico de 30 qubits equivaldra a un procesador convencional de 10 teraflops (millones de millones de operaciones en coma flotante por segundo), cuando actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de operaciones).
Estos modelos computacionales se usan para probar hiptesis que puedan ser verificadas directamente mediante experimentos biolgicos actuales o futuros. En la actualidad, este campo est experimentando una rpida expansin. Existe gran variedad de programas, como el GENESIS o el NEURON, que permiten un veloz y sistemtico modelado in silico de neuronas realistas. El proyecto Blue Brain, una colaboracin entre IBM y la Escuela Politcnica Federal de Lausanne, pretende construir una simulacin biofsica detallada de una columna cortical en el superordenador Blue Gene. Este proyecto internacional tiene un subproyecto Cajal Blue Brain desarrollado en Espaa, coordinado por la Universidad Politcnica de Madrid (Facultad de Informtica y CeSViMa) en colaboracin con el Instituto Cajal del CSIC.
CAPITULO SEGUNDO
Pgina 57 de 57
CAPITULO 3
3. Relacin con otros campos
or ser una disciplina reciente, existen varias definiciones alternativas para la ciencia de la computacin. Esta puede ser vista como una forma de ciencia, matemticas o una nueva disciplina que no puede ser categorizada siguiendo los modelos actuales. Las ciencias de la computacin frecuentemente se cruzan con otras reas de investigacin, tales como la fsica y la lingstica. Pero es con las matemticas con las que se considera que tiene un grado mayor de relacin. Eso es evidenciado por el hecho de que los primeros trabajos en el rea fueran fuertemente influenciados por matemticos como Kurt Gdel y Alan Turn. En la actualidad sigue habiendo un intercambio de ideas til entre ambos campos en reas como la lgica matemtica, la teora de categoras, la teora de dominios, el lgebra y la geometra. Otro punto a destacar es que a pesar de su nombre, las ciencias de la computacin raramente involucran el estudio mismo de las mquinas conocidas como computadoras. De hecho, el renombrado cientfico Edsger Dijkstra es muy citado por la frase "Las ciencias de la computacin estn tan poco relacionadas con las computadoras como la astronoma con los telescopios." Debido a esto, se propuso buscar un nombre definido para esta ciencia emergente, que evitara la relacin con las computadoras. Una primera propuesta fue la de Peter Naur, que acu el trmino datologa, para reflejar el hecho de que la nueva disciplina se ocupaba fundamentalmente del tratamiento de los datos, independientemente de las herramientas de dicho tratamiento, fueran computadoras o artificios matemticos. La primera institucin cientfica en adoptar la denominacin fue el Departamento de Datologa de la Universidad de Copenage, fundado en 1969, siendo el propio Peter Naur el primer profesor de datologa. Esta denominacin se utiliza principalmente en los pases escandinavos. Asimismo, en los primeros momentos, un gran nmero de trminos aparecieron asociados a los practicantes de la computacin. En esta lista se pueden ver los sugeridos en las revistas y comunicados de ACM : turingeniero, turologista, hombre de los diagramas de flujo(flow-charts-man), metamatemtico aplicado, y epistemlogo aplicado. Tres meses ms tarde se sugiri el trmino contlogo, seguido de hiplogo al ao siguiente. Tambin se sugiri el trmino comptica para la disciplina. Informtica era el trmino ms frecuentemente usado en toda Europa. El diseo y desarrollo de computadoras y sistemas computacionales est generalmente considerado como un campo reclamado por disciplinas ajenas a las ciencias de la computacin. Por ejemplo, el estudio del hardware est usualmente considerado como parte de la ingeniera informtica, mientras que
Pgina 1 de 1
el estudio de sistemas computacionales comerciales y su desarrollo es usualmente llamado tecnologas de la informacin (TI) o sistemas de informacin. Sin embargo, hay una estrecha comunicacin de ideas entre las distintas disciplinas relacionadas con las computadoras. La ciencia de la computacin a menudo es criticada desde otros estamentos que la consideran escasamente rigurosa y cientfica. Esta opinin se plasma en la expresin: "La ciencia es a las ciencias de la computacin como la hidrodinmica a la fontanera", atribuida a Stan Kelly-Bootle y otros afines. La investigacin en ciencias de la computacin usualmente tambin se relaciona con otras disciplinas, como la ciencia cognitiva, la fsica (vase computacin cuntica), la lingstica, etc. La relacin entre las ciencias de la computacin y la ingeniera de software es un tema muy discutido, por disputas sobre lo que realmente significa el trmino "ingeniera de software" y sobre cmo se define a las ciencias de la computacin. Algunas personas creen que la ingeniera de software sera un subconjunto de las ciencias de la computacin. Otras por su parte, tomando en cuenta la relacin entre otras disciplinas cientficas y de la ingeniera, creen que el principal objetivo de las ciencias de la computacin sera estudiar las propiedades del cmputo en general, mientras que el objetivo de la ingeniera de software sera disear cmputos especficos para lograr objetivos prcticos, con lo que se convertiran en disciplinas diferentes. Este punto de vista es mantenido, entre otros por (Parnas 1998). Incluso hay otros que sostienen que no podra existir una ingeniera de software. Los aspectos acadmicos, polticos y de financiacin en las reas de ciencias de la computacin tienden a estar drsticamente influenciados por el criterio del departamento encargado de la investigacin y la educacin en cada universidad, que puede estar orientado a la matemtica o a la ingeniera. Los departamentos de ciencias de la computacin orientados a la matemtica suelen alinearse del lado de la computacin cientfica y las aplicaciones de clculo numrico. El trmino computacin cientfica, que no debe confundirse con ciencia de la computacin, designa a todas aquellas prcticas destinadas a modelar, plantear experimentos y validar teoras cientficas sirvindose de medios computacionales. En estos casos la computacin es una mera herramienta y el esfuerzo se dirige a avanzar en los campos objetivo (fsica, biologa, mecnica de fluidos, radiotransmisin,...) mas que en la propia ciencia de la computacin. Finalmente, el pblico en general algunas veces confunde la ciencia de la computacin con reas vocacionales que trabajan con computadoras, o piensan que trata acerca de su propia experiencia con las computadoras, lo cual tpicamente envuelve actividades como los juegos, la navegacin web, y el procesamiento de texto. Sin embargo, el punto central de la ciencia de la computacin va ms all de entender las propiedades de los programas que se emplean para implementar aplicaciones de software como juegos y navegadores web, y utiliza ese entendimiento para crear nuevos programas o mejorar los existentes.3
CAPITULO TERCERO
Pgina 2 de 2
BIBLIOGRAFIA
Abelson, H. y Sussman, G.J. con Sussman, J. (1996). Structure and Interpretation of Computer Programs, 2nd Ed. EUA: MIT Press. ISBN 0262-01153-0. Constable, R.L. (1997). "Nature of the Information Sciences". Constable, R.L. (2000, Marzo). "Computer Science: Achievements and Challenges circa 2000". Parnas, D.L. (1998). Software Engineering Programmes are not Computer Science Programmes. Sipser, Michael (2005). Introduction to the Theory of Computation (2 edicin). Course Technology. ISBN 978-0534950972. Kelley, Dean (1995). Teora de Autmatas y Lenguajes Formales. Prentice Hall. ISBN 978-0-691-13382-9. Boolos, George; Burgess, John; & Jefrey, Richard (2007). Computability and logic. Cambridge. ISBN 978-0-521-70146-4. S. Barry Cooper (2004). Computability theory. Chapman & Hall/CRC. ISBN 1-58488-237-9. Seccin 68Qxx, Theory of computing de American Mathematical Society. 2010 Mathematics Subject Classification.. Consultado el 7 de marzo de 2010.
LINKOGRAFIA
http://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n http://es.wikipedia.org/wiki/Criptograf%C3%ADa http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_computaci%C3%B3 http://es.wikipedia.org/wiki/An%C3%A1lisis_de_algoritmos http://es.wikipedia.org/wiki/Bioinform%C3%A1tica
n
HIPERVINCULOS
TRIPTICO.docx CIENCIAS DE LA COMPUTACION.pptx
Pgina 1 de 1