2. Dato
La palabra proviene del latín datum, forma
del verbo dare “dar”, que significa“Lo que es
dado”
Hecho numéricos reunidos para referencia o
información
Representación de una información de
manera adecuada para su tratamiento por un
ordenador
3. Dato
Son representaciones simbólicas de
objetos, hechos, instituciones,
conocimientos.
Ejemplos
15
25º C
25 m
31-10-2005
Febrero
María Pérez
4. Información
Los datos organizados o procesados
adquieren significado y proporcionan
conocimiento o desencadenan un
comportamiento sobre los hechos u
objetos que lo originaron
La información se resumen en :
Datos + significado
5. Información
Un grupo de datos es información
• Datos: 19- Marzo – Maria – 20 ptos.
• Información: El 19 de marzo se publicó en
acta la calificación de 20 ptos para María
El principal objetivo de la información
consiste en aumentar el conocimiento o
reducir la incertidumbre.
6. Información
Ejemplos
Juan tiene 15 años
25º C fue la temperatura de esta mañana.
El edificio “Robles” mide 25 m de altura
La fecha de hoy es 31-10-2005
Febrero tiene 28 días y 29 si el año es bisiesto.
María Pérez es un nombre muy común
7. Problema
Es un asunto o un conjunto de cuestiones que
se plantean para ser resueltas.
La naturaleza de los problemas varía con el
ámbito o el contexto: problemas matemáticos,
químicos, filosóficos, etc.
Es importante que al abordar un problema se
tenga una descripción simple y precisa del
mismo, de lo contrario resultaría complejo
modular, simular, o programar su solución en
un computador.
8. Problema
Un programador de computadoras es ante que
nada una persona que resuelve problemas, y
para llegar a ser un programador eficaz se
necesita aprender a resolver problemas de un
modo riguroso y sistemático
Problema Diseño Algoritmo Programa
9. Problema
Algunos de los pasos para solucionar un problema son:
Diseño del algoritmo, que describe la secuencia
ordenada de pasos que conduce a la solución de un
problema dado. (Análisis del problema y desarrollo del
algoritmo)
Expresar el algoritmo como un programa en un
lenguaje de programación adecuado (Fase de
Codificación)
Ejecución y validación del programa por el
computador
10. Algoritmo
Etimología: Proviene del nombre del
matemático persa Mohammed Al-khowanzmi,
cuyo apellido traducido al latín es Algorismus
Descripción de un esquema de
comportamiento con la ayuda de un repertorio
finito, limitado y bien comprendido de acciones
elementales
11. Algoritmo
Conjunto de acciones que especifican la
secuencia de operaciones realizar, en orden,
para resolver un problema
Los algoritmos son independientes tanto del
lenguaje de programación como del
computador que los ejecuta.
12. Algoritmo
Finito: un algoritmo siempre debe terminar después de un
número finito de pasos
Definido: si se sigue un algoritmo dos veces se debe obtener el
mismo resultado
Entrada: un algoritmo tiene cero o más entradas.
Salida: un algoritmo tiene una o más salidas.
Efectivo: resolver el problema para el cual fue diseñado
14. Algoritmo
Ejemplo tradicional de un algoritmo: Cambiar el caucho
de un Carro
1. Buscar herramientas, caucho de repuesto y
triángulo
2. Ubicar el triángulo en el lugar adecuado
3. Ir al lugar del caucho averiado
4. Sacar las tuercas
5. Colocar el gato
6. Levantar el carro
15. Algoritmo
Ejemplo tradicional de un algoritmo: Cambiar el caucho
de un Carro
7. Sacar el caucho
8. Colocar el caucho de Repuesto
9. Colocar las tuercas
10. Apretar las tuercas
11. Guardar las herramientas
FIN
16. Algoritmo
Fases de Desarrollo de un Algoritmo
Fase Producto
Análisis Especificación
Programación Algoritmo
Codificación Programa
Edición Prog. Fuente
Compilación Programa Objeto
Enlace Prog. Ejecutable
Pruebas Aplicación
17. Algoritmo
Fase de Análisis: consiste en el estudio detallado del
problema con el fin de obtener una serie de documentos
(especificación) en los cuales quedan totalmente definido
el proceso a seguir en la automatización
Estudio detallado Documentos de Especificación
18. Algoritmo
Programación: consiste en la realización del algoritmo
que resuelve el problema de acuerdo a la especificación
dada en la fase anterior. El algoritmo se representa en
una notación pseudoformal que también se conoce como
pseudocódigo.
Algoritmo PRUEBA
Inicio
Variables
A,B,C: entero
Leer(A,B)
CA+B
Escribir (C)
Documentos de Fin
Especificación
19. Algoritmo
Codificación: consiste en la traducción del algoritmo a
un programa escrito en un lenguaje de programación
Algoritmo Sumar
Inicio
Variables
A,B,C: entero
Leer(A,B)
CA+B
Escribir (C)
Fin Programa escrito
en un Lenguaje de Programacion
20. Algoritmo
Edición: consiste en la trascripción del programa al
computador, generalmente por medio de un editor de
programas o procesador de textos, obteniendo un
programa fuente
Programa escrito Programa fuente
en un Lenguaje de Programacion
21. Algoritmo
Compilación: consiste en obtener el programa objeto a
partir del programa fuente, mediante el traductor de
lenguaje, el cual además de efectuar la traducción,
incluye un análisis sintáctico.
Programa Objeto
Programa fuente
22. Algoritmo
Enlace: Consiste en la inclusión de determinadas
rutinas internas del lenguaje y en el caso de
programación modular, se enlazan los distintos módulos.
Programa Objeto + Rutinas de Librería
Programa Ejecutable
23. Algoritmo
Prueba: consiste en determinar si el programa funciona
correctamente, los datos de entrada que se utilizan para
la prueba, deben ser incorrectos
Programa Ejecutable Aplicación
24. Otros conceptos
Método de Calculo: procedimiento que tiene todas las
características de un algoritmo excepto que posiblemente
carezca de ser finito
Programa: algoritmo expresado en un lenguaje de
programación. Es un conjunto de instrucciones que se
dan a una computadora para realizar un proceso
determinado.
Instrucción: es la especificación de una acción
determinada, expresada en un lenguaje de programación.
25. Otros conceptos
Acción: es un suceso que dura un tiempo finito y
produce un resultado o efecto perfectamente definido y
previsto. Opera sobre un objeto y es posible reconocer el
efecto de tal acción por los cambios de estado
presentados por el objeto.
Programación: disciplina dentro de la computación
dedicada a la resolución de problemas mediante el
computador, cuyo producto final son los programas. Es la
actividad de expresar un algoritmo en forma de programa
26. Lenguajes
Lenguaje: conjunto de reglas y convenciones que se utilizan
para comunicar información.
Lenguaje de Programación: es un lenguaje que permite la
traducción de un algoritmo para que sea entendible por el
computador. Son los lenguajes utilizados para escribir
programas de computadoras.
Tipos de Lenguaje de Programación:
Lenguaje de Máquina
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel
27. Lenguaje de máquina
Son aquellos que están escritos en lenguaje
directamente inteligibles por la máquina, ya que sus
instrucciones son cadenas binarias (0’s ,1’s) que
especifican una operación.
Las instrucciones en lenguaje máquina dependen del
Hardware de la computadora, difiere de una PC a otra.
La ventaja de los lenguajes máquina es que ofrecen
mayor velocidad de ejecución.
Existen algunas desventajas: dificultad y lentitud en la
codificación, poca fiabilidad, los programas no son
portables.
28. Lenguaje de bajo nivel
Son lenguajes que permiten escribir programas con
instrucciones similares al lenguaje humano.
Son más fáciles de utilizar que los lenguajes de
máquina, pero éstos también dependen de la máquina en
particular.
El mejor ejemplo es el lenguaje ensamblador
Un programa escrito en lenguaje ensamblador requiere
una fase de traducción.
Entre las desventajas tenemos: que este lenguaje
depende de la máquina y demanda una mayor exigencia
para los programadores, ya que deben conocer tanto las
técnicas de programación así como el interior de la
máquina
29. Lenguaje de alto nivel
Son los más utilizados por los programadores
Son independientes de la máquina
Los programas escritos en estos lenguajes son
portables
Aumento de la ocupación de la memoria
Las estructuras de los programas se basan en reglas
sintácticas
Ejemplos: Borland C, C++, Pascal, Ada, Prolog,
Smalltalk, Visual Basic
30. Otros conceptos
Notación Pseudoformal: es un lenguaje de
especificación de algoritmo. El uso de tal lenguaje hace el
paso de codificación final relativamente fácil. La ventaja
de este lenguaje es que el programador puede
concentrarse en la lógica y en la estructura de control y
no preocuparse de las reglas de un lenguaje
Programa Fuente: es el código del programa original
escrito en un lenguaje de programación. También
conocido como código fuente
Programa Objeto: es un programa en lenguaje de
máquina que resulta de la compilación de un programa
fuente.
31. Otros conceptos
Traductores de Lenguajes: son programas que traducen
a su vez los programas fuentes escritos en lenguajes de
alto nivel a código máquina. Estos se dividen en
intérpretes y compiladores.
Compilador: es el proceso de traducción de programas
fuentes a programas objetos. En este proceso se debe
utilizar como paso intermedio un programa llamado
enlazador (linker) el cual da como resultado un programa
en lenguaje máquina directamente ejecutable.
32. Otros conceptos
Intérprete: es un traductor que toma un programa fuente, lo
traduce y a continuación lo ejecuta. (Basic, Smalltalk)
33. Otros conceptos
Ensamblador: programas que transforman programas escritos
en lenguaje ensamblador a lenguaje máquina y ejecutable
directamente por el hw.
34. Sistemas Operativos
Definición:
Son programas hechos en lenguaje de bajo nivel, compuestos
por un conjunto de normas y procedimientos para operar una
computadora.
Es un conjunto de programas de control que tienen por objeto
facilitar el uso de la computadora y conseguir que ésta se
ejecute eficientemente
Es un programa que se encarga de gestionar y asignar los
recursos Hw al usuario, entendiendo por recursos Hw: la CPU, la
memoria principal, Discos Duros y otros periféricos.
35. Sistemas Operativos
Objetivos:
Su principal labor es control sistemáticamente los recursos de
la computadora al momento de ejecutar un proceso, es decir, es
el encargado de supervisar, administrar y gerenciar los
elementos con que cuenta el computador.
36. Sistemas Operativos
Objetivos:
Gestionar y administrar eficientemente los recursos Hw de la
computadora, permitiendo ejecutar concurrentemente varios
programas sin que haya conflicto en el acceso de cada uno de
los recursos que se requiere y sin que ningún programa
monopolice un recurso determinado.
37. Sistemas Operativos
Tipos:
Se clasifican de acuerdo a la forma de ofrecer los servicios:
S.O Por Lotes
S.O Tiempo Compartido (Unix)
S.O de S.O Tiempo Real
Multiprogramación
S.O Combinados
S.O distribuido
38. Sistemas Operativos
Sistemas por lotes (batch)
Se podrían considerar como los primeros SOs
reales
El SO estaba almacenado en memoria
Cargaba un único trabajo en memoria (desde el
lector de tarjetas)
Ejecutaba el trabajo (generaba su salida)
Cargaba el siguiente trabajo
Las tarjetas de control indicaban qué hacer al
SO
39. Sistemas Operativos
Problemas
- Largas esperas entre lotes de trabajo
- La dificultad de manejar la concurrencia entre
E/S y ejecución en CPU ayudó a estimular el
desarrollo de los SSOO multiprogramados
- Carecen de interactividad entre el usuario y los
trabajos que se ejecutan.
40. Sistemas Operativos
S.O de Multiprogramación
Objetivo: Aprovechar los tiempos de espera de
un trabajo en la CPU para ejecutar instrucciones
de otro trabajo
Método:
- Mantener los trabajos simultáneamente en memoria
- Elegir el trabajo a conmutar
Se optimiza la productividad (throughput) del
sistema
41. Sistemas Operativos
Tiempo Compartido
Objetivo: Permitir la interacción entre el usuario
y el trabajo que se está ejecutando.
Método:
- Utilizar las técnicas de multiprogramación y
planificación de la CPU para proporcionar a cada usuario
una pequeña proporción del tiempo de CPU.
Características:
- Cada usuario tiene la impresión de disponer de la
máquina completa.
- Se intenta optimizar el tiempo de respuesta.
- Basados en la asignación de fracciones de tiempo (se
divide el tiempo de CPU de forma equitativa entre los
procesos).
42. Sistemas Operativos
Sistemas de tiempo real
El factor tiempo se convierte en una variable
fundamental.
El sistema operativo debe responder siempre
dentro de los márgenes requeridos por el
sistema controlado, si se sale de esos márgenes,
se tendrán que buscar otras soluciones.
Existen actualmente lenguajes de programación
(Ada) que nos dan grandes posibilidades para
controlar procesos en tiempo real.
43. Sistemas Operativos
Dónde se utilizan....(SO tiempo real)
Sistemas de control de procesos
Sistemas de control de vuelo
Sistemas de control de automóviles
Sistemas de defensa
Sistemas de vigilancia intensiva
Sistemas de telecomunicación, etc.
44. Sistemas Operativos
Sistemas Operativos Distribuidos
Los usuarios pueden acceder a recursos remotos de la misma
manera en que lo hacen para los recursos locales.
Permiten distribuir trabajos, tareas o procesos, entre un
conjunto de procesadores. Puede ser que este conjunto de
procesadores esté en un equipo o en diferentes, en este caso
es transparente para el usuario.
Los sistemas distribuidos deben de ser muy confiables, ya
que si un componente del sistema se descompone otro
componente debe de ser capaz de reemplazarlo.
45. Sistemas Operativos
Proceso: es básicamente un programa en ejecución.
Consta del programa ejecutable, sus datos y pila,
contador y otros registros, además de toda la información
necesaria para ejecutar el programa.
Multiprogramación: modo de operación en cual se
incrementa la utilización del CPU, puesto que éste se
conmuta de una tarea a otra para lograr que las mismas
avancen, mientras se mantienen en uso los dispositivos
periféricos. Estas tareas se encuentran en memoria
principal
Grado de Multiprogramación: mide el uso de la CPU
desde un punto de vista probabilístico. Normalmente es
el rendimiento que se obtiene del CPU en función del
número de procesos activos que mantiene un sistema.
46. Paradigmas de Programación
Es una colección de patrones conceptuales que modelan
la forma de razonar sobre problemas, de formular
algoritmos, y a la larga, de estructurar programas.
Tipos de Paradigmas:
Paradigma Funcional
Paradigma Imperativo
Paradigma Orientado a objetos
Paradigma Ensamblador
Paradigma Lógico
47. Paradigma Funcional
Tiene su base en el concepto de función
matemática:
f: dominio rango
Para programar:
Se construyen funciones sencillas
Se construyen funciones más complejas a
partir de las sencillas
Se evalúan las funciones sobre los datos de
entrada
Ejemplo: APL, ML, Lisp.
48. Paradigma Funcional
Ejemplo: Mayor de tres números en
funcional
Definición de funciones max y max1:
max(x,y) := if x > y then x else y
max1(x,y,z) := max(max(x,y),z)
NOTA: “:=“ en este caso significa “se define como”
49. Paradigma Imperativo
Este paradigma viene bien representado por la
arquitectura Von Neuman (1903-1957), ya que utiliza
este modelo de máquina para conceptualizar las
soluciones: "Existe un programa en memoria que se va
ejecutando secuencialmente, y que toma unos datos de la
memoria, efectúa unos cálculos y el resultado se
almacena en alguna celda de memoria".
La memoria del computador permite tener
almacenado, en celdas numeradas consecutivamente,
tanto las operaciones como los datos a manipular.
Los datos se almacenan en variables.
50. Paradigma Imperativo
Las operaciones a ejecutar se llaman instrucciones,
cuya realización se llama ejecución.
La instrucción principal es la asignación, la cual tiene el
siguiente formato:
< variable > < expresión >
La forma básica de expresar un algoritmo consiste
en declarar variables, diseñar una secuencia de
asignaciones que transformen los valores
almacenados.
51. Paradigma Orientado a Objetos
Es muy abstracto
Ya no se ve las variables como celdas de
memorias sino como objetos
Un objeto pertenece a cierta clase, que
define el conjunto de operaciones utilizables
Ejemplos: Smalltalk, C++, Object Pascal
52. Paradigma Ensamblador
Los valores manipulados no son abstractos,
sino que se maneja su representación binaria
en memoria
No se usan expresiones funcionales sino
zonas de almacenamiento intermedio, llamados
registros
Se hace operación tras operación
53. Paradigma Lógico
Tiene su base en el concepto de predicado o
relación
Un programa lógico está formado por
hechos y reglas
Para programar:
Se definen hechos (o predicados básicos)
Se diseñan implicaciones para definir predicados
complejos
Se determina la veracidad de los predicados para
individuos concretos
Ejemplo: Prolog, único en su clase