Complejidad Computacional

La complidad computacional es un area de las Ciencias de la Computacion
que estudia el usos de los recursos para resolver un problema durante el calculo de los algoritmos respectivos.

Los 2 recursos principalmente analizados son:Publicar entrada
  1. Tiempo
  2. Espacio (memoria9
En la actualidad las computadoras resuelven a lo sumo problemas que tienen complejidad Polinomica (Ver Ciencias de la Computacion - Complejidad)
Los problemas que no se resuelven con nuestras computadoras actuales ( no se podrian resolver en un tiempo adecuado), poseen una complejidad del Tipo Factorial o Exponencial

Computacion, automatas, complejidad y computabilidad

El campo de la Teoría de la computación en Ciencias de la computacion involucra las subareas de

  1. Teoría de la computación
  2. Teoría de autómatas: estudia matemáticamente máquinas abstractas y problemas que éstas son capaces de resolver
  3. Teoria de la computabilidad: estudia los problemas de decisión que pueden ser resueltos con un algoritmo o equivalentemente con una máquina de Turing.
  4. Teoría de la complejidad computacional: Estudia teoricamente los recursos requeridos durante el cálculo para resolver un problema (tiempo y espacio)

Criptografia, grafos, logica y tipos

El campo de los Fundamentos matemáticos de las Ciencias de la Computacion involucra la criptografia, teoria de grafos, logica y teoria de tipos

  1. Criptografía: Algoritmos de proteccion de datos privados y cifrado de informacion
  2. Teoria de grafos: Estructuras de almacenamiento de datos y algoritmos de busqeda (problemas como del viajante, o la mejor ruta son clasicos en la tematica)
  3. Logica matemática: Se divide en cuatro subcampos: teoría de modelos, teoría de la demostración, teoría de conjuntos y teoría de la recursión.
  4. Teoria de tipos: Estudio y analisis sobre los tipos de datos y u aplicacion en las propiedades de los programas y su seguridad

Campos de Estudio de las Ciencias de la Computacion

Campos de Estudio de las Ciencias de la Computacion

  • Fundamentos matemáticos
  • Teoría de la computación
  • Algoritmos y estructuras de datos
  • Lenguajes de programación y compiladores
  • Bases de datos
  • Sistemas concurrentes, paralelos y distribuidos
  • Inteligencia artificial
  • Gráficos por computador
  • Computación científica

Logros de las Ciencias de la Computacion

Logros de las Ciencias de la Computacion:
Contribuciones fundamentales a la ciencia y la sociedad.

  • Definición formal de computación y de computabilidad
  • Demostración de que existen problemas a los que no hay una solución computacional y problemas intratables.
  • Concepto de lenguaje de programación, una herramienta para la expresión precisa de información metodológica con diferentes niveles de abstracción
  • Tecnologías revolucionarias: computadoras de uso general, Internet, firmas digitales, comercio electrónico y los motores de búsqueda
  • Nuevas formas de investigación científica: Física computacional Química computacional

Ciencias de la Computacion Historia

Ciencias de la Computacion:
La historia es anterio a que se inventara la computadora
Antes de 1920 , el término computador habalaba de un ser humano que realizaba cálculos

Los primeros investigadores en la cuestión de la computabilidad querian saber
  • Qué cosas pueden ser computadas por un ser humano (siguiendo una lista de instrucciones por escrito)l, sin conocer el problema con anterioridad durante el tiempo que fuesea necesario
La motivación para este trabajo era realiza máquinas que computaran, y que pudieran automatizar labores y tareas largas y tediosas para una persona (que ademas podias tener errores)
En década de 1940 mientras se realizaban computadoras, el término computador se comenzó a utilizar para las máquinas en lugar de las personas.
El campo de las ciencias de la computación se fue ampliando mientras se veia que se podan realizar mas cosas que calculos matematicos para estudiar a la informática) en general.

La ciencia de la computación se estableciocomo una disciplina académica en la década del 60, con los primeros departamentos de ciencias de la computación en las universidad y las licenciatura respectivas.

Ciencias de la Computacion

Las ciencias de la computación es el estudio de las bases teóricas de la información y la computación ademas de su aplicación practica en sistemas computacionales.(Wikipedia)

Diferenctes campos de estudio:
  • Resultados específicos del cómputo (ej gráficos por computadora),
  • Teoría de la complejidad computacional)
  • Problemas que requieren la implementación de cómputos.

Programas y Algoritmos

Definicion de Algoritmo
Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Nótese que es la secuencia de instrucciones en sí la que debe ser finita, no el número de pasos realizados como la ejecución de ellas.
Programas
Los programas suelen subdividirse en partes menores (módulos), de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa.

Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos.

Se han propuesto diversas técnicas de programación, cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas se pueden mencionar las programaciones lineal, estructurada, modular y orientada a objetos.