Sei sulla pagina 1di 23

Vernica E.

Arriola-Ros

Ciencias de la Computacin
En pocas palabras

Facultad de Ciencias, UNAM


NDICE GENERAL
ndice general

I Computacin 1

1. Ciencias de la Computacin 2
1.1. Computacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Antecedentes histricos . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Teora de la Computacin . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Algoritmos 4
2.1. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Mquinas de estados 5
3.1. Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2. Clasificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.1. Sistema de transiciones . . . . . . . . . . . . . . . . . . . . . . 6
3.2.2. Mquina de estados finitos . . . . . . . . . . . . . . . . . . . . 6
3.2.3. Llamadas devueltas (callbacks) . . . . . . . . . . . . . . . . . 7
3.3. Espacio de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4. Programacin 8
4.1. Tipos de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5. Tipos de datos 9

I
NDICE GENERAL

NDICE GENERAL

5.1. Tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9


5.2. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II Programacin estructurada 11

6. Lenguajes 12
6.1. Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.2. Del bajo al alto nivel de abstraccin . . . . . . . . . . . . . . . . . . . 12

III Orientacin a objetos 14

7. POO 15
7.1. El modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1.1. Qu es un objeto? . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1.2. Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1.3. Rutinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1.4. Tipo de dato abstracto . . . . . . . . . . . . . . . . . . . . . . 17
7.2. Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

II
PARTE I
C OMPUTACIN
C IENCIAS DE LA
C OMPUTACIN

1 | Ciencias de la Computacin

C OMPUTACIN

La palabra Computacin viene del latn Computatio, que significa cmputo, cuenta o
clculo. Un cmputo es un procedimiento mecnico que permite calcular un resultado
a partir de un conjunto de datos de entrada.

A NTECEDENTES HISTRICOS

Fecha Personaje Contribucin


2000AC Babilonios y Aritmtica (races cuadradas, inters com-
egipcios puesto, rea de un crculo)
Siglo IV AC Aristteles Lgica formal: Modus Ponens y Modus To-
llens
825 Abu Jafar Libro sobre mtodos aritmticos (algorit-
Mohammed ibn mos)
Msa
Al-Khowrizmi
1580 Franois Vite lgebra (uso de letras para las incgnitas)
1623 Whilhem Primera calculadora digital
Schickard
1646-1717 Gottfried Fundamentos de la lgica simblica
Wilhelm Leibniz
1791-1871 Charles Mquina diferencial y diseo de la mquina
Babbage analtica (aritmtica programable y Turing
completa)1
1800 Ada Lovelace Primera programadora
Contina...
1 Ms informacin en https://histinf.blogs.upv.es/2011/11/15/charles_babbage/

2
1.3 Teora de la Computacin

C IENCIAS DE LA
C OMPUTACIN
Fecha Personaje Contribucin
1854 George Boole Fundamentos de la lgica formal
1832-1943 David Hilbert Propone encontrar un sistema de axiomas
lgico matemtico nico para todas las
reas de la matemtica
1906-1978 Kurt Gdel Demuestra que lo que propone Hilbert no
es posible.
1936 Alan Turing Estudia la existencia de soluciones algort-
micas. Disea la Mquina Turing.
1939-1945 Wallace J. ENIAC, primera gran computadora digital
Eckert y John totalmente electrnica.
W. Mauchly
1937-1942 Claude Shannon Teora de la informacin
y Warren Weaver
1944 John von Los datos y los programas pueden compartir
Neumann el almacenaje.

T EORA DE LA C OMPUTACIN
Definicin 1.1: Teora de la Computacin

La Teora de la Computacin es la ciencia centrada en el estudio y definicin


formal de los cmputos. Estudia la sistematizacin y verificacin de procedimientos
computacionales que permiten la obtencin de un resultado a partir de los datos
de entrada, de tal manera que satisfagan:

Precodiciones Caractersticas y relaciones que deben satisfacer los datos de


entrada.

Postcondiciones Caractersticas especficas que debe satisfacer el resultado del


cmputo.

3
A LGORITMOS

2 | Algoritmos

A LGORITMO
Definicin 2.1: Algoritmo

Un algoritmo es una secuencia de pasos que transforma un valor o conjunto de


valores, conocidos como entradas, en un valor o conjunto de valores, conocidos
como salidas, de tal modo que stas satisfagan un conjunto de relaciones previa-
mente especificadas.
Debe cumplir con las caractersticas siguientes:

Est bien definido: cada uno de los pasos a sido descrito en detalle y sin am-
bigedades para su realizacin.

Finito: est especificado mediante un nmero finito de pasos.

Terminacin: seguir el algoritmo (ejecutarlo) lleva un tiempo finito.

Efectividad: debe utilizar la mnima cantidad de recursos para su ejecucin.

entradas Algoritmo(R) salidas

Figura 2.1 Diagrama de bloques del concepto algoritmo. R es una relacin matem-
tica que se desea satisfacer. El algoritmo indica los pasos necesarios para transformar
a las entradas en las salidas de tal modo que R sea satisfecha.

4
3 | Mquinas de estados

M QUINAS DE
ESTADOS
D EFINICIN

En su forma ms general, se puede definir a una mquina de estados como sigue:

Definicin 3.1: Mquina de estados

Una mquina de estados es un concepto utilizado para describir el comportamiento


posible de un sistema discreto, que evoluciona en el tiempo. Est constituida por:

Estados Un conjunto S = {s1 , s2 , ...} de estados, que representan la configura-


cin actual del sistema. El sistema slo se puede encontrar en un estado a
la vez.

Entradas Un conjunto I = {i1 , i2 , ...} de posibles valores con lo cuales se ali-


mentar a la mquina en cada paso temporal.

Salidas Se tiene un conjunto O = {o1 , o2 , ...} de smbolos, que puede emitir la


mquina en cada paso temporal. Qu smbolo emita puede depender del
estado en el que se encuentre actualmete y del valor de entrada que acabe
de recibir.

Funcin de transicin Una funcin que describe bajo qu condiciones puede


el sistema transitar de un estado hacia otro.

Funcin de salida Una funcin que indica de qu depende el smbolo que


emitir la mquina en cada paso temporal.

Ejemplo 3.1 Sea el sistema la perilla de una caja fuerte. Digamos que en esta perilla
se pueden seleccionar valores del 1 al 4. Para abrir la caja se debe ingresar la combi-
nacin 2 izquierda 3 derecha 4 en ese orden. El funcionamiento de la perilla
se puede describir con una mquina de estados con los elementos siguientes:

5
Mquinas de estados

Cualquier otra
Cualquier otra

frenar en 2 girar izquierda


x 2 izquierda

frenar en 3
Cualquier otra
Cualquier otra 3
M QUINAS DE
ESTADOS

Cualquier otra girar derecha

4 derecha
frenar en 4

Figura 3.1 Mquina de estados para una perilla de caja fuerte con combinacin
2 izquierda 3 derecha 4.

Estados S = {1, 2, 3, 4, girandoizquierda, girandoderecha}. Si la perilla est


quieta, el estado actual sera el nmero indicado por un triangulito al lado de la
perilla, si la perilla est en movimiento su estado depende de en qu direccin
est siendo girada.

Entradas I = {girarizquierda, girarderecha, frenarenx}. Nota: de hecho


girar izquierda n representa 10 entradas posibles: girar izquierda
1, girar izquierda 2, ..., girar izquierda 10 de modo que se especifica
la longitud del giro. Anlogamente para girar derecha n.

Salidas O = {abierta, cerrada}

Funcin de transicin

Este sistema se representa grficamente en Figura 3.1.

C LASIFICACIN

Sistema de transiciones

Mquina de estados finitos

Tiene un nmero finito de estados, transiciones y acciones, que pueden ser mode-
ladas como una grfica dirigida.

6
3.3 Espacio de estados

A state is a description of the status of a system that is waiting to execute a


transition. A transition is a set of actions to be executed when a condition is fulfilled
or when an event is received.

Acciones

Transicin

M QUINAS DE
1
Entrada (input)

ESTADOS
Inicio (entry)

Salida

Ejemplo 3.2 Perilla de caja fuerte.

Llamadas devueltas (callbacks)

A2
Deterministic automata have exactly one transition in every state for each pos-
sible input. In non-deterministic automata, a state input leads to one, many, or no
transitions. A state machine with only one state is called a combinatorial state machine
and uses only input actions.

E SPACIO DE ESTADOS

1 https://www.techopedia.com/definition/16447/state-machine
2 https://github.com/pluginaweek/state_machine

7
4 | Programacin

T IPOS DE ERRORES
P ROGRAMACIN

Sintcticos

Semnticos

Lgicos

8
5 | Tipos de datos

T IPOS DE DATOS

Definicin 5.1: Tipo de datos

Un tipo de datos es:

T IPOS DE DATOS
1. Un conjunto de datos.

2. Sus operaciones.

3. Su representacin en la computadora.

Ejemplo 5.1 Nmeros enteros.

Nombre: int

Conjunto de datos: Enteros en el rango [231 , 231 1

Operaciones: +, , , /

Representacin en la computadora: 32 bits, el bit ms a la izquierda representa


al signo.

VARIABLES

Al crear una variable se esta partando una localidad de memoria para guardar algo
en ella. El nombre le sirve al programador para referirse a esa localidad de memoria.
Hay tres aspectos que nos importan especialmente de una variable:
Tipo El tipo de datos que se podr guardar en ella. Tambin se se guarda el valor
o una referencia al valor (su direccin).

9
Tipos de datos

Localizacin En qu regin de la memoria se apartar este espacio: la pila o el


montculo?
Alcance Qu secciones del cdigo pueden ver esta variable.
Tiempo de vida Cundo existir esta variable y en qu momento ser borrada.
T IPOS DE DATOS

10
PARTE II
P ROGRAMACIN ESTRUCTURADA
6 | Lenguajes de programacin

P ROGRAMA
Definicin 6.1: Programa

Un programa es una secuencia de instrucciones que le indica a la computadora


cmo resolver un problema.

Es decir, los programas implementan algoritmos. Los programas reciben datos de


L ENGUAJES

entrada y devuelven los resultados como datos de salida (Figura 6.1).

entradas programa salidas

Figura 6.1 Diagrama de bloques de un programa ejecutable.

Para que un programa sea ejecutado por una computadora, es necesario que est
escrito en un cdigo que entienda la mquina. A este cdigo se le llama lenguaje de
mquina y es especfico de cada modelo de computadora.

D EL BAJO AL ALTO NIVEL DE ABSTRACCIN

Definicin 6.2: Compilador

Un compilador es un programa que lee un programa escrito en un lenguaje, el


lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el
lenguaje objetivo (Figura 6.2). Aho et al. (2007)

Si el programa objetivo es un programa ejecutable en lenguaje de mquina, puede


ser invocado por el usuario.

12
6.2 Del bajo al alto nivel de abstraccin

programa fuente compilador programa objetivo

L ENGUAJES
mensajes de error

Figura 6.2 Diagrama de bloques del concepto compilador.

13
PARTE III
O RIENTACIN A OBJETOS
7 | Introduccin a la programacin
orientada a objetos

El paradigma1 de programacin orientada a objetos (POO) es un modelo de organi-


zacin de programas y una coleccin de patrones y prcticas para disear programas;
no se centra en el desarrollo de algoritmos Elins (1994).
Las ventajas que la programacin orientada a objetos ofrece a la ingeniera de
software son:

Permite reutilizar el cdigo, reduciendo el tiempo requerido para desarrollar


software.

Permite estructurar mejor los programas, de modo que sea ms fcil entender
qu hace cada rutina.

Permite probar los programas ms fcilmente. Un programa est integrado por

POO
pequeos componentes que pueden ser probados aisladamente.

Los programas orientados a objetos son fciles de extender cuando se requiere.


Hyman & Arnson (1998)

Hay dos caractersticas que la distinguen de otros paradigmas: el encapsulamiento y


la herencia. El encapsulamiento est vinculado al concepto mismo de objeto y promue-
ve la manipulacin local de un grupo pequeo de datos altamente corelacionados entre
s. La herencia es un mecanismo de reutilizacin de cdigo, basado en la definicin de
categoras de objetos, partiendo de las ms generales, hacia las ms especializadas.

Mnemo 7.1
POO = encapsulamiento + herencia

1 Para
una discusin ms detallada de lo que significa la palabra paradigma a secas, consultar
Porto & Merino (Publicado: 2008. Actualizado: 2012.)

15
POO

EL MODELO

En el modelo orientado a objetos el proceso de cmputo se lleva a cabo enviando


mensajes entre objetos. Los mensajes se le envan a un objeto a travs de sus mtodos
y los argumentos que reciben dichos mtodos. Se le denomina protocolo a la coleccin
de mensajes a los cuales puede responder un objeto.

Qu es un objeto?

Definicin 7.1: Objeto

Un objeto es una abstraccin que contiene datos y las rutinas que procesan esos
datos.

Datos

Los objetos guardan sus datos en variables, conocidas como atributos o variables
de instancia. Los valores guardados en estas variables pueden cambiar a lo largo de la
ejecucin de un programa, por lo que se hace necesario hablar del estado del objeto.

Definicin 7.2
POO

Estado del objeto El estado del objeto son los valores que tienen sus atributos en
un momento dado.

Rutinas

Distinguiremos cinco tipos de rutinas asociadas a los objetos, a las cuales llamaremos
mtodos Viso & Pelez (2012):

Constructores: sirven para establecer el estado inicial de un objeto.

De acceso: permiten conocer el estado del objeto.

De modificacin: permiten modificar el estado del objeto.

De implementacin: son los que ofrecen los servicios especiales para los que fue
diseado el objeto.

16
7.1 El modelo

Auxiliares: Permiten al objeto organizar mejor sus tareas internamente y no proveen


servicios al exterior.

Tipo de dato abstracto

Programar con objetos permite pensar en la estructura de los programas en trminos


de elementos abstractos, cuyo significado es ms cercano a los conceptos que modelar
el programa, en lugar de en cmo sern codificados en las mquinas. De esta manera
surje el concepto de tipo de dato abstracto.

Definicin 7.3: TDA

Un tipo de dato abstracto (TDA) est consituido por:


Un conjunto de datos y
la definicin de las operaciones que se pueden realizar con ellos.

Mnemo 7.2
T DA = estado + comportamiento

Ejemplo 7.1 Colores primarios substractivos

POO
Nombre: Colores primarios substractivos

Conjunto de datos: Rojo, Azul, Amarillo

Operaciones: Nombre: devuelve el nombre del Colores


Pinta: pinta ese color

Ejemplo 7.2 Colores bsicos substractivos

Nombre: Colores bsicos substractivos

Conjunto de datos: Colores primarios substractivos {Morado, Verde, Naranja}

Operaciones: Nombre: devuelve el nombre del Colores


Pinta: pinta ese color

17
POO

Suma:


x+x=x




Rojo + Azul = Morado
Rojo + Amarillo = Naranja



Amarillo + Azul = Verde



Indefinido

C LASES
POO

18
Bibliografa

Aho, A. V., Lam, M. S., Sethi, R. & Ullman, J. D. (2007), Compilers, Princi-
ples,Techniques and Tools, Addison Wesley.

Elins, A. (1994), Object-Oriented Software Development, Addison Wesley.

Hyman, M. & Arnson, B. (1998), Visual C++ 6 for Dummies, IDG Books Worldwide,
Inc.

Porto, J. P. & Merino, M. (Publicado: 2008. Actualizado: 2012.).


URL: http://definicion.de/paradigma/

Viso, E. & Pelez, C. (2012), Introduccin a las Ciencias de la Computacin con Java,
Temas de computacin, 2a edn, Las prensas de ciencias.

BIBLIOGRAFA

19

Potrebbero piacerti anche