Este documento describe la importancia de aprender computación para el trabajo y la vida cotidiana debido a que la mayoría de tareas ahora se realizan en computadoras. También presenta una breve introducción a cuatro áreas de la teoría de la computación: teoría de autómatas, teoría de la compatibilidad, teoría de la complejidad computacional y teoría de lenguajes formales.
2. IMPORTANCIA DEL CURSO COMPUTACION EN MI CARRERA
En la actualidad la información aumenta rápidamente
en nuestros medios de comunicación puesto que se
requieren de aparatos o dispositivos electrónicos para
encontrar o dar información con rapidez.
Parece insignificante preguntarse porqué Aprender
computación es de gran importancia ya que casi todo
tipo de trabajo se hace en computadoras. Alguien
debe aprender computación, pero se cree
científicamente que las personas de más de 45 años
tienen problemas con la tecnología, pues a medida
que avanza la edad, más la rechazan y más difícil se les
hace aprender. Se debe hacer cuando se tiene
importancia.
Para algunas personas es realmente difícil aprender
computación, pero se tiene que ver como una necesidad puesto que lo ocupamos para
realizar un trabajo, por entretenimiento, etc., actualmente nuestro planeta es que cada vez
es más sofisticado, tecnificado y globalizado.
Las comunicaciones han cambiado. Antes se enviaba una carta que demoraba semanas o
meses. Ahora un simple mail puede comunicarnos en un instante con cualquier parte del
mundo. Antes recurríamos a las enormes enciclopedias en libros para buscar información.
Hoy, casi todo se encuentra en la red. Tanto para quien estudia como para quien busca un
trabajo, independientemente de la edad.
Estas son algunas razones por la que saber computación debe ser importante para
nosotros, pues tiene un gran potencial y para quien no conoce esta herramienta, tiene un
largo camino por recorrer.
3. Teoría de la computación
La teoría de la computación es una rama de la matemática y la computación que centra su
interés en las limitaciones y capacidades fundamentales de las computadoras.
Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de
hacer un cómputo (cuenta o cálculo) y la clasificación de problemas.
Teoría de autómatas
Esta teoría provee modelos matemáticos que formalizan el
concepto de computadora o algoritmo de manera
suficientemente simplificada y general para que se puedan
analizar sus capacidades y limitaciones. Algunos de estos
modelos juegan un papel central en varias aplicaciones de
las ciencias de la computación, incluyendo procesamiento
de texto, compiladores, diseño de hardware e inteligencia
artificial.
Los tres principales modelos son los autómatas finitos, autómatas con pila y máquinas de
Turing, cada uno con sus variantes deterministas y no deterministas. Los autómatas finitos
son buenos modelos de computadoras que tienen una cantidad limitada de memoria, los
autómatas con pila modelan los que tienen gran cantidad de memoria pero que solo
pueden manipularla a manera de pila (el último dato almacenado es el siguiente leído), y
las máquinas de Turing modelan las computadoras que tienen una gran cantidad de
memoria almacenada en una cinta. Estos autómatas están estrechamente relacionados con
la teoría de lenguajes formales; cada autómata es equivalente a una gramática formal, lo
que permite reinterpretar la jerarquía de Chomsky en
términos de autómatas.
Teoría de la compatibilidad
Esta teoría explora los límites de la posibilidad de
solucionar problemas mediante algoritmos. Gran parte
de las ciencias computacionales están dedicadas a
resolver problemas de forma algorítmica, de manera
que el descubrimiento de problemas imposibles es una gran sorpresa. La teoría de la
compatibilidad es útil para no tratar de resolver algorítmicamente estos problemas,
ahorrando así tiempo y esfuerzo.
Los problemas se clasifican en esta teoría de acuerdo a su grado de imposibilidad:
4. Los computables son aquellos para los cuales sí existe un
algoritmo que siempre los resuelve cuando hay una
solución y además es capaz de distinguir los casos que
no la tienen. También se les conoce como decidirles,
resolubles o recursivos.
Los semicomputables son aquellos para los cuales hay
un algoritmo que es capaz encontrar una solución si es
que existe, pero ningún algoritmo que determine
cuando la solución no existe (en cuyo caso el algoritmo
para encontrar la solución entraría a un bucle infinito). El
ejemplo clásico por excelencia es el problema de la
parada.
Teoría de la complejidad computacional
Aun cuando un problema sea computable, puede que no sea posible resolverlo en la
práctica si se requiere mucha memoria o tiempo de ejecución. La teoría de la complejidad
computacional estudia las necesidades de memoria, tiempo y otros recursos
computacionales para resolver problemas; de esta manera es posible explicar por qué unos
problemas son más difíciles de resolver que otros. Uno de los mayores logros de esta rama
es la clasificación de problemas, similar a la tabla periódica, de acuerdo a su dificultad. En
esta clasificación los problemas se separan por clases de complejidad.
Esta teoría tiene aplicación en casi todas las áreas de conocimiento donde se desee
resolver un problema computacionalmente, porque los investigadores no solo desean
utilizar un método para resolver un problema, sino utilizar el más rápido. La teoría de la
complejidad computacional también tiene aplicaciones en áreas como la criptografía,
donde se espera que descifrar un código secreto sea un problema muy difícil a menos que
se tenga la contraseña, en cuyo caso el problema se vuelve fácil.