SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
Tema 1. Introducción: 
Informática y Programación
Introducción a la Informática y a la Programación (IIP)
Curso 2011/12
Departamento de Sistemas Informáticos y Computación
Jon Ander Gómez Marisa Llorens Paco Marqués Nati Prieto
jon@dsic.upv.es mllorens@dsic.upv.es pmarques@dsic.upv.es nprieto@dsic.upv.es
Contenidos
1. Problemas, algoritmos y programas
2. Programas y la actividad de la programación
3. Lenguajes y modelos de programación
4. Compiladores e intérpretes
5. La programación orientada a objetos (POO)
6. El lenguaje Java
7. Ejemplos de programas
8. Elementos del entorno de programación
a) Depuradores 
b) Generadores de Documentación
c) Sistemas Operativos 
d) Editores. IDEs
e) Interfaz Gráfico de Usuario: el Escritorio
f) Bases de Datos
g) Servidores Web y Navegadores
08/09/2011 IIP ‐ Curso 2011/12 2
Bibliografía
– “Empezando a programar usando Java”
Apuntes de la asignatura. PoliformaT de IIP, 2011. Capítulo 1 para Puntos 1 al 7
– “Una introducción a la programación. Un enfoque algorítmico”
García, J. J. y otros. Ed. Thomson, 2005.  Capítulo 1 para Puntos 1 al 4
– “Introducción a la Ciencia de la Computación, de la manipulación de datos a la teoría de la 
computación”
Forouzan, B. A. Ed. Thomson, 2004. Capítulos 1, 5, 7, 9.1 a 9.4 y 14 
para Puntos 1 al 4, 8.3 y 8.6
– “Introduction to Programming Using Java, Fifth Edition”
Eck, D. J. 2006. Capítulo 1 para Puntos 5 y 6
– “Estructuras de datos en Java: compatible con Java 2”
Weiss, M. A. Ed. Addison Wesley,  2000 ‐ 2006.            Capítulo 1 – pág. 3 y 4   
Capítulo 3 – pág. 51 y 52
para Puntos 5 y 6
Más información para Puntos 5 y 6 en:
– “Problemas resueltos de programación en lenguaje Java”
Pérez Menor, J. M. y otros. Ed. Thomson, 2002, 2003. Capítulo 1 – pág. 1 – 8
– “Programación, algoritmos y ejercicios resueltos en Java”
Camacho, D. y otros. Ed. Pearson Prentice Hall, 2003. Capítulo 1 – pág. 1 – 6
– “Java 2: Manual de Programación”
Joyanes, L. y Fernández, M. Ed. McGraw‐Hill, 2001. Capítulo 1 – pág. 1 – 18
08/09/2011 IIP ‐ Curso 2011/12 3
Problemas, algoritmos y programas
• El término informática viene del francés informatique
(Philippe Dreyfus, 1962), que es un acrónimo de information y
automatique.
08/09/2011 IIP ‐ Curso 2011/12 4
Definición de Informática
Conjunto de conocimientos científicos y técnicas que hacen posible el
tratamiento automático de la información por medio de ordenadores.
R.A.E.
Información es la comunicación o adquisición de conocimientos que
permiten ampliar o precisar los que se poseen sobre una materia
determinada.
Un ordenador es una máquina electrónica dotada de una memoria de
gran capacidad y de métodos de tratamiento de la información, capaz
de resolver problemas aritméticos y lógicos gracias a la utilización
automática de programas registrados en ella.
Problemas, algoritmos y programas
• Los ordenadores son máquinas que ejecutan algoritmos.
• No están diseñados para una tarea concreta.
• Pero hay que saber:
– cómo conseguir que un ordenador realice una tarea
concreta
– cuáles son las tareas que puede realizar un ordenador
• Un ordenador es un ejemplo de mecanismo: una máquina
que, una vez puesta en marcha, realiza una tarea de manera
automática, en un cierto intervalo de tiempo y después se
detiene.
08/09/2011 IIP ‐ Curso 2011/12 5
Problemas, algoritmos y programas
• Un ordenador es un mecanismo digital de propósito general,
que se convierte en un mecanismo para un uso específico
cuando procesa un algoritmo determinado.
• El algoritmo o secuencia de instrucciones especifica las
acciones que ha de ejecutar y en qué orden para completar
una tarea determinada.
• La ejecución o procesamiento de un algoritmo supone la
transformación de una información de entrada o datos en una
información de salida o resultados.
08/09/2011 IIP ‐ Curso 2011/12 6
Problemas, algoritmos y programas
08/09/2011 IIP ‐ Curso 2011/12 7
OrdenadorOrdenador
Algoritmo
o
programa
Datos
Información de entrada Información de salida
Resultados
Problemas, algoritmos y programas
• No todos los problemas se pueden resolver utilizando un
ordenador. Sólo aquellos que puedan resolverse de forma
mecánica, es decir, mediante una secuencia de instrucciones u
operaciones que se puedan llevar a cabo de manera
“automática” pueden resolverse utilizando un ordenador.
• Son los llamados problemas computacionales o algorítmicos,
como por ejemplo los relacionados con el cálculo numérico, el
tratamiento de palabras o la representación gráfica.
08/09/2011 IIP ‐ Curso 2011/12 8
Problemas, algoritmos y programas
• Ejemplos concretos de problemas computacionales:
• Determinar el producto de dos números a y b.
• Determinar la raíz cuadrada positiva del número 2.
• Determinar la raíz cuadrada positiva de un número n cualquiera.
• Determinar si el número n, entero mayor que uno, es primo.
• Dada la lista de palabras l, determinar las palabras repetidas.
• Determinar si la palabra p es del idioma castellano.
• Separar silábicamente la palabra p.
• Ordenar y listar alfabéticamente todas las palabras del castellano.
• Dibujar en pantalla un círculo de radio r.
08/09/2011 IIP ‐ Curso 2011/12 9
Problemas, algoritmos y programas
• Los problemas deben definirse de forma general y precisa,
evitando ambigüedades.
• Por ejemplo, el siguiente enunciado: “Determinar la raíz
cuadrada positiva de un número n” no es lo suficientemente
preciso.
• “Determinar la raíz cuadrada positiva de un número n, entero
no negativo, cualquiera”.
08/09/2011 IIP ‐ Curso 2011/12 10
Dado un problema P, un algoritmo A que da la solución a P
es un conjunto de reglas (o instrucciones) que define cómo
resolver P en un tiempo finito.
Problemas, algoritmos y programas
08/09/2011 IIP ‐ Curso 2011/12 11
Definiciones de Algoritmo
Secuencia finita de instrucciones, reglas o pasos que describen de manera
precisa las operaciones que un ordenador ha de ejecutar para llevar a cabo
una tarea en un tiempo finito
“The Art of Computer Programming”,  Donald E. Knuth, 1968
Descripción de un esquema de comportamiento expresado mediante un
repertorio finito de acciones y de informaciones elementales, identificadas,
bien entendidas y realizables a priori. Este repertorio se denomina léxico
“Esquemas algorítmicos fundamentales”, 
Pierre Claude Scholl y Jean Pierre Peyrin, 1988
Conjunto ordenado y finito de operaciones que permite encontrar la
solución de un problema
R.A.E.
Problemas, algoritmos y programas
• Ejemplos de algoritmos son las secuencias de reglas básicas que utilizamos
para realizar operaciones aritméticas: sumas, restas, productos y
divisiones.
• Son algoritmos porque definen de manera precisa los pasos a seguir para
encontrar la solución en un tiempo finito.
• Supongamos que se nos plantea el problema de multiplicar 981 por 1234
08/09/2011 IIP ‐ Curso 2011/12 12
981
x 1234
3924
2943
1962
981
1210554
Se multiplica sucesivamente el multiplicando
(981) por cada una de las cifras del
multiplicador (1234), tomadas de derecha a
izquierda, escribiendo estos resultados
intermedios uno tras otro, desplazando cada
línea un lugar a la izquierda; finalmente se
suman todas estas filas para obtener el
producto (1210554)
Problemas, algoritmos y programas
• Según Donald E. Knuth , un algoritmo ha de ser:
– Finito: ha de llevarse a cabo en un tiempo finito, es decir,
el algoritmo ha de acabar necesariamente tras un número
finito de pasos.
– Preciso: ha de estar definido de forma exacta y precisa, sin
ambigüedades.
– Efectivo: las reglas o instrucciones puede ejecutarlas una
persona haciendo uso de papel y lápiz.
– General: un algoritmo debe resolver toda una clase de
problemas y no un problema aislado particular.
– Entradas y salidas: un programa puede tener varias
entradas o ninguna, sin embargo, al menos debe tener una
salida, el resultado que se desea obtener.
08/09/2011 IIP ‐ Curso 2011/12 13
“The Art of Computer Programming”,  Donald E. Knuth, 1968
Problemas, algoritmos y programas
• Se plantea el problema de adivinar si un número entero n es
primo.
• La solución tiene que comprobar que ninguno de los posibles
divisores lo divide exactamente, entonces podremos decir que
n es primo.
• El truco está en considerar que es primo e intentar demostrar
lo contrario que es más fácil.
08/09/2011 IIP ‐ Curso 2011/12 14
Problemas, algoritmos y programas
08/09/2011 IIP ‐ Curso 2011/12 15
Algoritmo 1.- Considerar todos los números
comprendidos entre 2 y n (excluido).
Para cada número de dicha sucesión comprobar si ese
número divide al número n.
Si alguno divide a n, entonces parar, n no es primo.
Si ningún número divide a n, entonces n es primo.
Algoritmo 2.- Seguir los pasos siguientes en orden
ascendente:
Paso 1 - Sea i un número entero de valor igual a 2.
Paso 2 - Si i es igual a n parar, n es primo.
Paso 3 - Comprobar si i divide a n, entonces parar,
n no es primo.
Paso 4 - Reemplazar el valor de i por i+1, volver al
Paso 2.
notación
distinta
¿es n, entero mayor que uno, un número primo? 
Problemas, algoritmos y programas
08/09/2011 IIP ‐ Curso 2011/12 16
Algoritmo 3.- Seguir los pasos siguientes en orden
ascendente:
Paso 1 - Si n vale 2 entonces parar, n es primo.
Paso 2 - Si n es múltiplo de 2 (acaba en 0,2,4,8)
acabar, n no es primo.
Paso 3 - Sea i un número primo de valor igual a 3
Paso 4 - Si i es mayor que la raíz cuadrada positiva
de n parar, n es primo.
Paso 5 - Comprobar si i divide a n, entonces parar,
n no es primo.
Paso 6 - Reemplazar el valor de i por i+2, volver al
Paso 4. mejor que 
los anteriores
• La descripción o nivel de detalle de la solución de un problema
en términos algorítmicos depende de qué o quién debe
entenderlo, interpretarlo y resolverlo.
Programas y la actividad de la 
programación
08/09/2011 IIP ‐ Curso 2011/12 17
Un procesador es cualquier entidad capaz de interpretar y
ejecutar un cierto repertorio de instrucciones.
Un programa es uno o más algoritmos escritos con una notación
precisa para que puedan ser ejecutados por un procesador
(ordenador).
La programación es la actividad de resolución de problemas por
ordenador.
Un lenguaje de programación es una notación, conjunto de reglas
y definiciones que determinan tanto lo que se puede escribir en
un programa (y el procesador puede interpretar) como el
resultado de la ejecución de dicho programa por el procesador.
Programas y la actividad de la 
programación
08/09/2011 IIP ‐ Curso 2011/12 18
Un proceso es un algoritmo o programa en ejecución
caracterizado por una sucesión de estados.
Estado de un programa es un conjunto de valores en un momento
determinado que determina el grado de progreso de un proceso.
Cómputo es la transformación del estado del programa al
ejecutarse una o más instrucciones.
Instrucción es una expresión formada por números y letras que
indica, en una computadora, la operación que debe realizar y los
datos correspondientes.
Dato es cualquier información dispuesta de manera adecuada
para su tratamiento por un ordenador..
Programas y la actividad de la 
programación
• La tarea de la programación en aplicaciones reales de cierta
envergadura es bastante compleja.
• Según la complejidad del problema a resolver podemos
hablar de:
– Programación a pequeña escala: nº reducido de líneas de
programa, intervención de una sola persona. Por ejemplo,
un programa para ordenar listas.
– Programación a gran escala: muchas líneas de programa,
equipo de programadores. Por ejemplo, el desarrollo de un
sistema operativo.
08/09/2011 IIP ‐ Curso 2011/12 19
Programas y la actividad de la 
programación
• Los programas tienen un ciclo de vida en el que de manera 
simplificada podemos distinguir dos etapas:
08/09/2011 IIP ‐ Curso 2011/12 20
I ‐ Desarrollo
Creación inicial y
validación de la aplicación
I ‐ Desarrollo
Creación inicial y
validación de la aplicación II ‐ Mantenimiento
Correcciones y cambios a partir 
del desarrollo inicial
II ‐ Mantenimiento
Correcciones y cambios a partir 
del desarrollo inicial
Lenguajes y modelos de programación
• Los orígenes de los lenguajes de programación se encuentran en las
máquinas de cálculo.
• Los primeros diseños de máquinas de cálculo provienen de Blaise
Pascal y de Gottfried Leibniz.
http://es.wikipedia.org/wiki/Blaise_Pascal
http://es.wikipedia.org/wiki/Gottfried_Leibniz
• Pero es Charles Babbage quien realiza el primer diseño de máquina
analógica para computar, primero la máquina diferencial y después
la máquina analítica.
http://es.wikipedia.org/wiki/Charles_Babbage
08/09/2011 IIP ‐ Curso 2011/12 21
Lenguajes y modelos de programación
• Pero es la arquitectura de John von Neumann la que supone “un
antes y un después”.
http://es.wikipedia.org/wiki/John_von_Neumann
http://es.wikipedia.org/wiki/Arquitectura_von_Neumann
08/09/2011 IIP ‐ Curso 2011/12 22
Memoria
principal CPU
ALU
PROGRAMA
DATOS
Unidad de Control
Memoria
externa
Dispositivo
de salida
Dispositivo
de entrada
Lenguajes y modelos de programación
• A nivel máquina, un programa es una sucesión de palabras
expresadas en código binario (secuencia de 0s y 1s), en
posiciones consecutivas de memoria que representan
instrucciones o datos. Es el lenguaje máquina.
• Ejemplo: c = a * b
• Es evidente que los programas escritos en lenguaje máquina
resultan ilegibles.
• Los lenguajes ensambladores hacen uso de mnemónicos e
identificadores para instrucciones y datos.
• Los dos son lenguajes tan cercanos a la máquina que se
conocen como lenguajes de bajo nivel.
08/09/2011 IIP ‐ Curso 2011/12 23
Load 24, 10111100 00100100 a está en la dir. 24h
Multiply 33, 10111111 00110011 mult. por b que está en 33h
Store 3C, 11001110 00111100 almacenar en c en la dir. 3Ch
Lenguajes y modelos de programación
• Frente a los lenguajes de bajo nivel tenemos a los lenguajes
de alto nivel que:
– disponen de operadores y estructuras más cercanas a las
humanas, lo que permite al programador dar órdenes no
ambiguas al computador.
– son más seguros que el código máquina y ayudan a no
cometer errores evidentes.
– el código es transportable (independiente de la máquina).
– el código es más legible.
08/09/2011 IIP ‐ Curso 2011/12 24
Lenguajes y modelos de programación
• Lista cronológica reducida
• Árbol genealógico de los lenguajes de programación
08/09/2011 IIP ‐ Curso 2011/12 25
Programación Estructurada
Prog. Orientada a Objetos
http://www.levenez.com/lang/history.html
1950 1960 1970 1980 1990 2000
Lenguajes y modelos de programación
• Estructurado significa que la estructura del texto del programa
ha de ayudar a entender qué hace el programa.
• Las estructuras de control de un programa sólo deben tener
un punto de entrada y un punto de salida.
• La programación estructurada mejora
– la productividad de los programadores,
– la legibilidad del código resultante.
• La ejecución de un programa estructurado progresa de forma
disciplinada en vez de saltar de un sitio a otro de forma
impredecible.
• Gracias a ello, los programas: resultan más fáciles de probar,
se pueden leer más fácilmente y se pueden modificar con
mayor comodidad.
08/09/2011 IIP ‐ Curso 2011/12 26
Lenguajes y modelos de programación
• En programación estructurada sólo se emplean tres tipos de
instrucciones:
– Secuencia: conjunto de sentencias que se ejecutan en
orden (sentencias de asignación y llamadas a métodos).
– Selección: elige qué sentencias se ejecutan en función de
una condición (estructuras de control condicional if-then-
else y switch).
– Iteración: estructuras de control repetitivas que repiten un
conjunto de instrucciones (bucles while, do…while, for).
08/09/2011 IIP ‐ Curso 2011/12 27
Teorema de Böhm y Jacopini (1966): Cualquier programa de
ordenador puede diseñarse e implementarse utilizando
únicamente las tres construcciones estructuradas (secuencia,
selección e iteración; esto es, sin sentencias goto).
Compiladores e intérpretes
• Hay dos maneras de traducir un programa escrito en un
lenguaje de alto nivel a lenguaje máquina: la interpretación y
la compilación.
• En la interpretación se traduce a lenguaje máquina cada
instrucción del lenguaje de alto nivel, una a una, en tiempo de
ejecución.
• En la compilación se traducen (compilan) mediante un
programa (compilador) todas las instrucciones del lenguaje a
lenguaje máquina, previamente a su ejecución.
08/09/2011 IIP ‐ Curso 2011/12 28
Compiladores e intérpretes
08/09/2011 IIP ‐ Curso 2011/12 29
Fichero fuente
1.‐ Edición
algoritmo nprimo
.....
.....
Fichero máquina
3.‐ Ejecución
2.‐ Compilación
Fichero fuente
1.‐ Edición
algoritmo nprimo
.....
.....
2.‐ Interpretación
(Traducción y Ejecución 
simultánea)
La programación orientada a objetos
• Es un nuevo modelo de programación de gran relevancia e
implantación desde los años 90 del siglo XX.
• Aporta mejoras para el desarrollo de programas iguales o más
importantes que las que aportó la programación estructurada
cuando apareció.
• El elemento principal de un programa orientado a objetos es
la clase.
• Una clase determina completamente el comportamiento y las
características de sus componentes.
• Las instancias particulares de las clases se denominan objetos.
• En la POO un programa se entiende como un conjunto de
objetos que interactúan entre sí.
• La POO facilita la reutilización de código y la ocultación de
detalles irrelevantes (abstracción).
08/09/2011 IIP ‐ Curso 2011/12 30
El lenguaje Java
• Es un lenguaje orientado a objetos.
• Un programa en Java consta de una o más clases
interdependientes.
• Cabe destacar que resulta muy apropiado para programar
tareas relacionadas con la World Wide Web.
• Los programas Java que se ejecutan a través de la red se
denominan applets.
• La ejecución de los programas Java es independiente 100% de
la plataforma.
• Incluso ya compilados. No necesitan ninguna adaptación.
08/09/2011 IIP ‐ Curso 2011/12 31
El lenguaje Java
• El secreto reside en la Máquina Virtual Java o Java Virtual
Machine (JVM).
• La JVM es una extensión del sistema real en el que se trabaja,
que permite ejecutar el código resultante de un programa
Java ya compilado, independientemente de la plataforma en
que se esté utilizando.
• La JVM es un programa compilado a lenguaje máquina que sí
depende de cada plataforma o arquitectura.
• Por tanto, es necesario disponer de una JVM para cada
sistema o plataforma sobre la que queramos trabajar.
• Todo navegador dispone de una JVM, de ahí la universalidad
de su uso.
08/09/2011 IIP ‐ Curso 2011/12 32
El lenguaje Java
• Compilación y ejecución en Java
08/09/2011 IIP ‐ Curso 2011/12 33
C1.java
C2.java
Cn.java
C1.class
C2.class
Cn.class
String.class
Object.class
Scanner.class
Compilador
de
Java
Máquina
Virtual
de Java
Sistema Operativo
Código fuente
del programa
Código objeto
del programa
Ficheros class
del API de Java
API: Application
Programming
Interface
Bytecode
El lenguaje Java
08/09/2011 IIP ‐ Curso 2011/12 34
Fichero
1.‐ Edición:
algoritmo nprimo
.....
.....
Fichero fuente
Fichero máquina
3.‐ Ejecución
2.‐ Compilación
nprimo.java
emacs nprimo.java
javac nprimo.java
3.‐ Interpretación
JVM 
java nprimo
nprimo.class Bytecode Java
Ejemplos de programas
• Ejemplo en Pascal
08/09/2011 IIP ‐ Curso 2011/12 35
function es_primo (n:integer):boolean;
(* determina si n, entero mayor que uno, es primo *)
var i:integer; primo:boolean; raiz:real;
begin
if n = 2 then primo:= true
else if n mod 2 = 0 then primo:= false
else begin
primo:= true; i:= 3; raiz:= sqrt(n);
while (i<= raiz) and primo do
begin
primo:= ((n mod i) <> 0);
i:= i+2;
end;
end;
es_primo:= primo;
end;
Ejemplos de programas
• Ejemplo en C
08/09/2011 IIP ‐ Curso 2011/12 36
int es_primo (int n){
/* determina si n, entero mayor que uno, es primo */
int i, primo; float raiz;
if n == 2 primo = 0;
else if (n%2) primo = 1;
else {
i = 3; raiz = sqrt(n);
while ((i<= raiz) && !(n%i)) {i += 2;}
primo = !(n%i);
}
return primo;
}
Ejemplos de programas
• Ejemplo en Java
08/09/2011 IIP ‐ Curso 2011/12 37
static boolean es_primo (int n){
// determina si n, entero mayor que uno, es primo
int i; boolean primo; double raiz;
if (n == 2) primo = true;
else if (n%2 == 0) primo = false;
else {
i = 3; raiz = Math.sqrt(n);
while ((i<= raiz) && (n%i != 0)) {i += 2;}
primo = (n%i != 0);
}
return primo;
}
Elementos del entorno de 
programación
• Depuradores
– http://es.wikipedia.org/wiki/Depurador
– ¿qué son?
– ¿para qué sirven?
– ¿cómo funcionan?
– Algunos ejemplos:
• gdb http://www.gnu.org/software/gdb/
• valgrind http://valgrind.org/
08/09/2011 IIP ‐ Curso 2011/12 38
Objetivo 11 enumerar las ventajas que ofrece un depurador: ejecución paso a paso,
inspección, pila de ejecución, etc. (Conocimiento)
Elementos del entorno de 
programación
• Generadores de documentación
– http://es.wikipedia.org/wiki/Generador_de_documentación
– ¿qué son?
– ¿para qué sirven?
– ¿cómo funcionan?
– Algunos ejemplos:
• javadoc http://java.sun.com/j2se/javadoc/
• doxygen http://www.stack.nl/~dimitri/doxygen/
08/09/2011 IIP ‐ Curso 2011/12 39
Objetivo 12 distinguir y consultar eficazmente los distintos tipos de documentación:
tutoriales, manuales de referencia, libro de especificaciones del lenguaje y libros de texto.
(Conocimiento)
Elementos del entorno de 
programación
• Sistemas Operativos
– Capítulo 7 de Forouzan
– http://es.wikipedia.org/wiki/Sistema_operativo
– ¿qué son?
– ¿para qué sirven?
– ¿cómo funcionan?
– Algunos ejemplos:
• MS‐DOS http://es.wikipedia.org/wiki/MS‐DOS
• Windows http://es.wikipedia.org/wiki/Windows
• Linux http://es.wikipedia.org/wiki/Linux
• Mac OS http://es.wikipedia.org/wiki/Mac_OS
• Solaris http://es.wikipedia.org/wiki/Solaris_(sistema_operativo)
08/09/2011 IIP ‐ Curso 2011/12 40
Objetivo 1 expresar en los términos adecuados el concepto de sistema operativo.
(Conocimiento)
Elementos del entorno de 
programación
• Editores. IDEs
– http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado
– Algunos ejemplos:
• Eclipse http://www.eclipse.org
http://es.wikipedia.org/wiki/Eclipse_(software)
• BlueJ http://www.bluej.org
• NetBeans http://www.netbeans.org
http://es.wikipedia.org/wiki/NetBeans
• Visual Studio http://es.wikipedia.org/wiki/Visual_Studio
• vi http://es.wikipedia.org/wiki/Vi
• emacs http://es.wikipedia.org/wiki/Emacs
08/09/2011 IIP ‐ Curso 2011/12 41
Objetivo 9 distinguir entre editor (de programas) y procesador de texto. (Comprensión)
Objetivo 10 diferenciar los componentes de un entorno de desarrollo integrado o IDE
"Integrated Development Environment", que son editor, compilador, depurador y
documentación en línea. (Comprensión)
Elementos del entorno de 
programación
• Interfaz Gráfica de Usuario: Escritorio
– http://en.wikipedia.org/wiki/Desktop_environment
– http://es.wikipedia.org/wiki/IGU
– Algunos ejemplos:
• GNOME http://en.wikipedia.org/wiki/GNOME
• KDE http://en.wikipedia.org/wiki/KDE
08/09/2011 IIP ‐ Curso 2011/12 42
Objetivo 18 describir qué es un interfaz gráfico de usuario o GUI "Graphical User Interface".
(Conocimiento)
Elementos del entorno de 
programación
• Bases de Datos
– Capítulo 14 de Forouzan
– http://es.wikipedia.org/wiki/Bases_de_datos
– http://es.wikipedia.org/wiki/Sistema_de_gestión_de_base_de_datos
• MySQL www.mysql.com, http://dev.mysql.com/
• PostgreSQL www.postgresql.org
• SQLite http://es.wikipedia.org/wiki/SQLite
• Oracle www.oracle.com
• Java DB http://developers.sun.com/javadb/
08/09/2011 IIP ‐ Curso 2011/12 43
Objetivo 14 describir el concepto de fichero. (Conocimiento)
Objetivo 15 enumerar las características que diferencian un fichero de texto de un fichero binario.
(Comprensión)
Objetivo 16 describir qué es una base de datos, qué es un gestor/servidor de base de datos ‐
DBMS‐, y qué es un protocolo de conexión a base de datos ‐ODBC‐. (Conocimiento)
Objetivo 17 distinguir entre una base de datos y un fichero en disco y en qué situaciones es más
conveniente hacer uso de uno u otro. (Comprensión)
Elementos del entorno de 
programación
• Servicios Web y Navegadores
– http://es.wikipedia.org/wiki/Servicios_Web
• Apache http://es.wikipedia.org/wiki/Servidor_HTTP_Apache
• Apache TomCat http://tomcat.apache.org/
– http://es.wikipedia.org/wiki/Navegador_web
• Firefox http://es.wikipedia.org/wiki/Mozilla_Firefox
• Google Chrome http://es.wikipedia.org/wiki/Google_Chrome
• Internet Explorer http://es.wikipedia.org/wiki/Internet_Explorer
• Konqueror http://es.wikipedia.org/wiki/Konqueror
• Safari http://es.wikipedia.org/wiki/Safari_(navegador)
08/09/2011 IIP ‐ Curso 2011/12 44
Objetivo 19 describir qué es una página Web, un servidor Web, un navegador. (Conocimiento)
Objetivo 20 explicar el concepto de hiperenlace. (Conocimiento)
Objetivo 21 distinguir las tareas que realiza el servidor Web de las que realiza el navegador.
(Compresión)
Objetivo 22 describir qué es un buscador y explicar cómo recaba información para poder
responder rápidamente a nuestras consultas. (Conocimiento)

Más contenido relacionado

La actualidad más candente

Presentacion de algoritmos
Presentacion de algoritmosPresentacion de algoritmos
Presentacion de algoritmos
sistemas2011
 
Diapositivas algoritmos Pseudocodigo diagramas de flujo
Diapositivas algoritmos Pseudocodigo diagramas de flujoDiapositivas algoritmos Pseudocodigo diagramas de flujo
Diapositivas algoritmos Pseudocodigo diagramas de flujo
KellyDeArmas
 
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df4918f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
Angelica Berrio
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
daosma
 

La actualidad más candente (19)

Presentacion de algoritmos
Presentacion de algoritmosPresentacion de algoritmos
Presentacion de algoritmos
 
1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi
 
Clase 16 06
Clase 16 06Clase 16 06
Clase 16 06
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
 
Diapositivas algoritmos Pseudocodigo diagramas de flujo
Diapositivas algoritmos Pseudocodigo diagramas de flujoDiapositivas algoritmos Pseudocodigo diagramas de flujo
Diapositivas algoritmos Pseudocodigo diagramas de flujo
 
presentacion sobre Algoritmo, Pseudocódigo, diagramas de flujos y la metodolo...
presentacion sobre Algoritmo, Pseudocódigo, diagramas de flujos y la metodolo...presentacion sobre Algoritmo, Pseudocódigo, diagramas de flujos y la metodolo...
presentacion sobre Algoritmo, Pseudocódigo, diagramas de flujos y la metodolo...
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia Abierta
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Algoritmos2
Algoritmos2Algoritmos2
Algoritmos2
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df4918f29ee 08b473f1b0f04c55b0d997ad6f8df491
8f29ee 08b473f1b0f04c55b0d997ad6f8df491
 
diapositivas algoritmos
diapositivas algoritmos diapositivas algoritmos
diapositivas algoritmos
 
Trabajo de tecnología
Trabajo de tecnología Trabajo de tecnología
Trabajo de tecnología
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos y clase
Algoritmos y claseAlgoritmos y clase
Algoritmos y clase
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 

Destacado

21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
Roldan El Gato
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
Pepe Xdsasda
 
Desarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en ModelosDesarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en Modelos
Juan Manuel Gonzalez Calleros
 

Destacado (20)

Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2Introducción a la programación y la informática. Tema 2
Introducción a la programación y la informática. Tema 2
 
21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
 
Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7Introducción a la programación y la informática. Tema 7
Introducción a la programación y la informática. Tema 7
 
Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6Introducción a la programación y la informática. Tema 6
Introducción a la programación y la informática. Tema 6
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5
 
Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4Introducción a la programación y la informática. Tema 4
Introducción a la programación y la informática. Tema 4
 
Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8Introducción a la programación y la informática. Tema 8
Introducción a la programación y la informática. Tema 8
 
Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9Introducción a la programación y la informática. Tema 9
Introducción a la programación y la informática. Tema 9
 
Factores que explican el desarrollo de los servicios
Factores que explican el desarrollo de los serviciosFactores que explican el desarrollo de los servicios
Factores que explican el desarrollo de los servicios
 
Algoritmos y estructura de datos 1
Algoritmos y estructura de datos 1Algoritmos y estructura de datos 1
Algoritmos y estructura de datos 1
 
Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3Introducción a la programación y la informática. Tema 3
Introducción a la programación y la informática. Tema 3
 
Taller de Desarrollo de Interfaces (UNSIS)
Taller de Desarrollo de Interfaces (UNSIS)Taller de Desarrollo de Interfaces (UNSIS)
Taller de Desarrollo de Interfaces (UNSIS)
 
Taller de Desarrollo de Interfaces (Conalep 2014)
Taller de Desarrollo de Interfaces (Conalep 2014)Taller de Desarrollo de Interfaces (Conalep 2014)
Taller de Desarrollo de Interfaces (Conalep 2014)
 
Desarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en ModelosDesarrollo de Interfaces de Usuario Basadas en Modelos
Desarrollo de Interfaces de Usuario Basadas en Modelos
 
DFD
DFDDFD
DFD
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)Algoritmos 50 ejemplos (1)
Algoritmos 50 ejemplos (1)
 
manual dfd
manual dfdmanual dfd
manual dfd
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 

Similar a Introducción a la programación y la informática. Tema 1

Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Deisy Pestana
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Deisy Pestana
 

Similar a Introducción a la programación y la informática. Tema 1 (20)

AlgoritmoSoluciondeProblema.pdf
AlgoritmoSoluciondeProblema.pdfAlgoritmoSoluciondeProblema.pdf
AlgoritmoSoluciondeProblema.pdf
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigo
 
Manual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_gManual estructura de_datos_2010___h._caselli_g
Manual estructura de_datos_2010___h._caselli_g
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptxPROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
PROGRAMACION BASICA, INICIACION A LA PROGRAMACION .pptx
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Introduccion.ppt
Introduccion.pptIntroduccion.ppt
Introduccion.ppt
 
Clase 1
Clase 1Clase 1
Clase 1
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas
 
Algoritmos y solución de problemas.pptx Algoritmos y solución de problemas.pptx
Algoritmos y solución de problemas.pptx Algoritmos y solución de problemas.pptxAlgoritmos y solución de problemas.pptx Algoritmos y solución de problemas.pptx
Algoritmos y solución de problemas.pptx Algoritmos y solución de problemas.pptx
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Algoritmos primero
Algoritmos primeroAlgoritmos primero
Algoritmos primero
 
Algoritmos y programacion
Algoritmos y programacionAlgoritmos y programacion
Algoritmos y programacion
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Algoritmos2
Algoritmos2Algoritmos2
Algoritmos2
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
 
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...Algoritmos taller 1   vanessa berrio, camilo rodriguez, yuranis bustamante, k...
Algoritmos taller 1 vanessa berrio, camilo rodriguez, yuranis bustamante, k...
 

Último

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 

Introducción a la programación y la informática. Tema 1

  • 2. Contenidos 1. Problemas, algoritmos y programas 2. Programas y la actividad de la programación 3. Lenguajes y modelos de programación 4. Compiladores e intérpretes 5. La programación orientada a objetos (POO) 6. El lenguaje Java 7. Ejemplos de programas 8. Elementos del entorno de programación a) Depuradores  b) Generadores de Documentación c) Sistemas Operativos  d) Editores. IDEs e) Interfaz Gráfico de Usuario: el Escritorio f) Bases de Datos g) Servidores Web y Navegadores 08/09/2011 IIP ‐ Curso 2011/12 2
  • 3. Bibliografía – “Empezando a programar usando Java” Apuntes de la asignatura. PoliformaT de IIP, 2011. Capítulo 1 para Puntos 1 al 7 – “Una introducción a la programación. Un enfoque algorítmico” García, J. J. y otros. Ed. Thomson, 2005.  Capítulo 1 para Puntos 1 al 4 – “Introducción a la Ciencia de la Computación, de la manipulación de datos a la teoría de la  computación” Forouzan, B. A. Ed. Thomson, 2004. Capítulos 1, 5, 7, 9.1 a 9.4 y 14  para Puntos 1 al 4, 8.3 y 8.6 – “Introduction to Programming Using Java, Fifth Edition” Eck, D. J. 2006. Capítulo 1 para Puntos 5 y 6 – “Estructuras de datos en Java: compatible con Java 2” Weiss, M. A. Ed. Addison Wesley,  2000 ‐ 2006.            Capítulo 1 – pág. 3 y 4    Capítulo 3 – pág. 51 y 52 para Puntos 5 y 6 Más información para Puntos 5 y 6 en: – “Problemas resueltos de programación en lenguaje Java” Pérez Menor, J. M. y otros. Ed. Thomson, 2002, 2003. Capítulo 1 – pág. 1 – 8 – “Programación, algoritmos y ejercicios resueltos en Java” Camacho, D. y otros. Ed. Pearson Prentice Hall, 2003. Capítulo 1 – pág. 1 – 6 – “Java 2: Manual de Programación” Joyanes, L. y Fernández, M. Ed. McGraw‐Hill, 2001. Capítulo 1 – pág. 1 – 18 08/09/2011 IIP ‐ Curso 2011/12 3
  • 4. Problemas, algoritmos y programas • El término informática viene del francés informatique (Philippe Dreyfus, 1962), que es un acrónimo de information y automatique. 08/09/2011 IIP ‐ Curso 2011/12 4 Definición de Informática Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores. R.A.E. Información es la comunicación o adquisición de conocimientos que permiten ampliar o precisar los que se poseen sobre una materia determinada. Un ordenador es una máquina electrónica dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas aritméticos y lógicos gracias a la utilización automática de programas registrados en ella.
  • 5. Problemas, algoritmos y programas • Los ordenadores son máquinas que ejecutan algoritmos. • No están diseñados para una tarea concreta. • Pero hay que saber: – cómo conseguir que un ordenador realice una tarea concreta – cuáles son las tareas que puede realizar un ordenador • Un ordenador es un ejemplo de mecanismo: una máquina que, una vez puesta en marcha, realiza una tarea de manera automática, en un cierto intervalo de tiempo y después se detiene. 08/09/2011 IIP ‐ Curso 2011/12 5
  • 6. Problemas, algoritmos y programas • Un ordenador es un mecanismo digital de propósito general, que se convierte en un mecanismo para un uso específico cuando procesa un algoritmo determinado. • El algoritmo o secuencia de instrucciones especifica las acciones que ha de ejecutar y en qué orden para completar una tarea determinada. • La ejecución o procesamiento de un algoritmo supone la transformación de una información de entrada o datos en una información de salida o resultados. 08/09/2011 IIP ‐ Curso 2011/12 6
  • 7. Problemas, algoritmos y programas 08/09/2011 IIP ‐ Curso 2011/12 7 OrdenadorOrdenador Algoritmo o programa Datos Información de entrada Información de salida Resultados
  • 8. Problemas, algoritmos y programas • No todos los problemas se pueden resolver utilizando un ordenador. Sólo aquellos que puedan resolverse de forma mecánica, es decir, mediante una secuencia de instrucciones u operaciones que se puedan llevar a cabo de manera “automática” pueden resolverse utilizando un ordenador. • Son los llamados problemas computacionales o algorítmicos, como por ejemplo los relacionados con el cálculo numérico, el tratamiento de palabras o la representación gráfica. 08/09/2011 IIP ‐ Curso 2011/12 8
  • 9. Problemas, algoritmos y programas • Ejemplos concretos de problemas computacionales: • Determinar el producto de dos números a y b. • Determinar la raíz cuadrada positiva del número 2. • Determinar la raíz cuadrada positiva de un número n cualquiera. • Determinar si el número n, entero mayor que uno, es primo. • Dada la lista de palabras l, determinar las palabras repetidas. • Determinar si la palabra p es del idioma castellano. • Separar silábicamente la palabra p. • Ordenar y listar alfabéticamente todas las palabras del castellano. • Dibujar en pantalla un círculo de radio r. 08/09/2011 IIP ‐ Curso 2011/12 9
  • 10. Problemas, algoritmos y programas • Los problemas deben definirse de forma general y precisa, evitando ambigüedades. • Por ejemplo, el siguiente enunciado: “Determinar la raíz cuadrada positiva de un número n” no es lo suficientemente preciso. • “Determinar la raíz cuadrada positiva de un número n, entero no negativo, cualquiera”. 08/09/2011 IIP ‐ Curso 2011/12 10 Dado un problema P, un algoritmo A que da la solución a P es un conjunto de reglas (o instrucciones) que define cómo resolver P en un tiempo finito.
  • 11. Problemas, algoritmos y programas 08/09/2011 IIP ‐ Curso 2011/12 11 Definiciones de Algoritmo Secuencia finita de instrucciones, reglas o pasos que describen de manera precisa las operaciones que un ordenador ha de ejecutar para llevar a cabo una tarea en un tiempo finito “The Art of Computer Programming”,  Donald E. Knuth, 1968 Descripción de un esquema de comportamiento expresado mediante un repertorio finito de acciones y de informaciones elementales, identificadas, bien entendidas y realizables a priori. Este repertorio se denomina léxico “Esquemas algorítmicos fundamentales”,  Pierre Claude Scholl y Jean Pierre Peyrin, 1988 Conjunto ordenado y finito de operaciones que permite encontrar la solución de un problema R.A.E.
  • 12. Problemas, algoritmos y programas • Ejemplos de algoritmos son las secuencias de reglas básicas que utilizamos para realizar operaciones aritméticas: sumas, restas, productos y divisiones. • Son algoritmos porque definen de manera precisa los pasos a seguir para encontrar la solución en un tiempo finito. • Supongamos que se nos plantea el problema de multiplicar 981 por 1234 08/09/2011 IIP ‐ Curso 2011/12 12 981 x 1234 3924 2943 1962 981 1210554 Se multiplica sucesivamente el multiplicando (981) por cada una de las cifras del multiplicador (1234), tomadas de derecha a izquierda, escribiendo estos resultados intermedios uno tras otro, desplazando cada línea un lugar a la izquierda; finalmente se suman todas estas filas para obtener el producto (1210554)
  • 13. Problemas, algoritmos y programas • Según Donald E. Knuth , un algoritmo ha de ser: – Finito: ha de llevarse a cabo en un tiempo finito, es decir, el algoritmo ha de acabar necesariamente tras un número finito de pasos. – Preciso: ha de estar definido de forma exacta y precisa, sin ambigüedades. – Efectivo: las reglas o instrucciones puede ejecutarlas una persona haciendo uso de papel y lápiz. – General: un algoritmo debe resolver toda una clase de problemas y no un problema aislado particular. – Entradas y salidas: un programa puede tener varias entradas o ninguna, sin embargo, al menos debe tener una salida, el resultado que se desea obtener. 08/09/2011 IIP ‐ Curso 2011/12 13 “The Art of Computer Programming”,  Donald E. Knuth, 1968
  • 14. Problemas, algoritmos y programas • Se plantea el problema de adivinar si un número entero n es primo. • La solución tiene que comprobar que ninguno de los posibles divisores lo divide exactamente, entonces podremos decir que n es primo. • El truco está en considerar que es primo e intentar demostrar lo contrario que es más fácil. 08/09/2011 IIP ‐ Curso 2011/12 14
  • 15. Problemas, algoritmos y programas 08/09/2011 IIP ‐ Curso 2011/12 15 Algoritmo 1.- Considerar todos los números comprendidos entre 2 y n (excluido). Para cada número de dicha sucesión comprobar si ese número divide al número n. Si alguno divide a n, entonces parar, n no es primo. Si ningún número divide a n, entonces n es primo. Algoritmo 2.- Seguir los pasos siguientes en orden ascendente: Paso 1 - Sea i un número entero de valor igual a 2. Paso 2 - Si i es igual a n parar, n es primo. Paso 3 - Comprobar si i divide a n, entonces parar, n no es primo. Paso 4 - Reemplazar el valor de i por i+1, volver al Paso 2. notación distinta ¿es n, entero mayor que uno, un número primo? 
  • 16. Problemas, algoritmos y programas 08/09/2011 IIP ‐ Curso 2011/12 16 Algoritmo 3.- Seguir los pasos siguientes en orden ascendente: Paso 1 - Si n vale 2 entonces parar, n es primo. Paso 2 - Si n es múltiplo de 2 (acaba en 0,2,4,8) acabar, n no es primo. Paso 3 - Sea i un número primo de valor igual a 3 Paso 4 - Si i es mayor que la raíz cuadrada positiva de n parar, n es primo. Paso 5 - Comprobar si i divide a n, entonces parar, n no es primo. Paso 6 - Reemplazar el valor de i por i+2, volver al Paso 4. mejor que  los anteriores • La descripción o nivel de detalle de la solución de un problema en términos algorítmicos depende de qué o quién debe entenderlo, interpretarlo y resolverlo.
  • 17. Programas y la actividad de la  programación 08/09/2011 IIP ‐ Curso 2011/12 17 Un procesador es cualquier entidad capaz de interpretar y ejecutar un cierto repertorio de instrucciones. Un programa es uno o más algoritmos escritos con una notación precisa para que puedan ser ejecutados por un procesador (ordenador). La programación es la actividad de resolución de problemas por ordenador. Un lenguaje de programación es una notación, conjunto de reglas y definiciones que determinan tanto lo que se puede escribir en un programa (y el procesador puede interpretar) como el resultado de la ejecución de dicho programa por el procesador.
  • 18. Programas y la actividad de la  programación 08/09/2011 IIP ‐ Curso 2011/12 18 Un proceso es un algoritmo o programa en ejecución caracterizado por una sucesión de estados. Estado de un programa es un conjunto de valores en un momento determinado que determina el grado de progreso de un proceso. Cómputo es la transformación del estado del programa al ejecutarse una o más instrucciones. Instrucción es una expresión formada por números y letras que indica, en una computadora, la operación que debe realizar y los datos correspondientes. Dato es cualquier información dispuesta de manera adecuada para su tratamiento por un ordenador..
  • 19. Programas y la actividad de la  programación • La tarea de la programación en aplicaciones reales de cierta envergadura es bastante compleja. • Según la complejidad del problema a resolver podemos hablar de: – Programación a pequeña escala: nº reducido de líneas de programa, intervención de una sola persona. Por ejemplo, un programa para ordenar listas. – Programación a gran escala: muchas líneas de programa, equipo de programadores. Por ejemplo, el desarrollo de un sistema operativo. 08/09/2011 IIP ‐ Curso 2011/12 19
  • 20. Programas y la actividad de la  programación • Los programas tienen un ciclo de vida en el que de manera  simplificada podemos distinguir dos etapas: 08/09/2011 IIP ‐ Curso 2011/12 20 I ‐ Desarrollo Creación inicial y validación de la aplicación I ‐ Desarrollo Creación inicial y validación de la aplicación II ‐ Mantenimiento Correcciones y cambios a partir  del desarrollo inicial II ‐ Mantenimiento Correcciones y cambios a partir  del desarrollo inicial
  • 21. Lenguajes y modelos de programación • Los orígenes de los lenguajes de programación se encuentran en las máquinas de cálculo. • Los primeros diseños de máquinas de cálculo provienen de Blaise Pascal y de Gottfried Leibniz. http://es.wikipedia.org/wiki/Blaise_Pascal http://es.wikipedia.org/wiki/Gottfried_Leibniz • Pero es Charles Babbage quien realiza el primer diseño de máquina analógica para computar, primero la máquina diferencial y después la máquina analítica. http://es.wikipedia.org/wiki/Charles_Babbage 08/09/2011 IIP ‐ Curso 2011/12 21
  • 22. Lenguajes y modelos de programación • Pero es la arquitectura de John von Neumann la que supone “un antes y un después”. http://es.wikipedia.org/wiki/John_von_Neumann http://es.wikipedia.org/wiki/Arquitectura_von_Neumann 08/09/2011 IIP ‐ Curso 2011/12 22 Memoria principal CPU ALU PROGRAMA DATOS Unidad de Control Memoria externa Dispositivo de salida Dispositivo de entrada
  • 23. Lenguajes y modelos de programación • A nivel máquina, un programa es una sucesión de palabras expresadas en código binario (secuencia de 0s y 1s), en posiciones consecutivas de memoria que representan instrucciones o datos. Es el lenguaje máquina. • Ejemplo: c = a * b • Es evidente que los programas escritos en lenguaje máquina resultan ilegibles. • Los lenguajes ensambladores hacen uso de mnemónicos e identificadores para instrucciones y datos. • Los dos son lenguajes tan cercanos a la máquina que se conocen como lenguajes de bajo nivel. 08/09/2011 IIP ‐ Curso 2011/12 23 Load 24, 10111100 00100100 a está en la dir. 24h Multiply 33, 10111111 00110011 mult. por b que está en 33h Store 3C, 11001110 00111100 almacenar en c en la dir. 3Ch
  • 24. Lenguajes y modelos de programación • Frente a los lenguajes de bajo nivel tenemos a los lenguajes de alto nivel que: – disponen de operadores y estructuras más cercanas a las humanas, lo que permite al programador dar órdenes no ambiguas al computador. – son más seguros que el código máquina y ayudan a no cometer errores evidentes. – el código es transportable (independiente de la máquina). – el código es más legible. 08/09/2011 IIP ‐ Curso 2011/12 24
  • 25. Lenguajes y modelos de programación • Lista cronológica reducida • Árbol genealógico de los lenguajes de programación 08/09/2011 IIP ‐ Curso 2011/12 25 Programación Estructurada Prog. Orientada a Objetos http://www.levenez.com/lang/history.html 1950 1960 1970 1980 1990 2000
  • 26. Lenguajes y modelos de programación • Estructurado significa que la estructura del texto del programa ha de ayudar a entender qué hace el programa. • Las estructuras de control de un programa sólo deben tener un punto de entrada y un punto de salida. • La programación estructurada mejora – la productividad de los programadores, – la legibilidad del código resultante. • La ejecución de un programa estructurado progresa de forma disciplinada en vez de saltar de un sitio a otro de forma impredecible. • Gracias a ello, los programas: resultan más fáciles de probar, se pueden leer más fácilmente y se pueden modificar con mayor comodidad. 08/09/2011 IIP ‐ Curso 2011/12 26
  • 27. Lenguajes y modelos de programación • En programación estructurada sólo se emplean tres tipos de instrucciones: – Secuencia: conjunto de sentencias que se ejecutan en orden (sentencias de asignación y llamadas a métodos). – Selección: elige qué sentencias se ejecutan en función de una condición (estructuras de control condicional if-then- else y switch). – Iteración: estructuras de control repetitivas que repiten un conjunto de instrucciones (bucles while, do…while, for). 08/09/2011 IIP ‐ Curso 2011/12 27 Teorema de Böhm y Jacopini (1966): Cualquier programa de ordenador puede diseñarse e implementarse utilizando únicamente las tres construcciones estructuradas (secuencia, selección e iteración; esto es, sin sentencias goto).
  • 28. Compiladores e intérpretes • Hay dos maneras de traducir un programa escrito en un lenguaje de alto nivel a lenguaje máquina: la interpretación y la compilación. • En la interpretación se traduce a lenguaje máquina cada instrucción del lenguaje de alto nivel, una a una, en tiempo de ejecución. • En la compilación se traducen (compilan) mediante un programa (compilador) todas las instrucciones del lenguaje a lenguaje máquina, previamente a su ejecución. 08/09/2011 IIP ‐ Curso 2011/12 28
  • 29. Compiladores e intérpretes 08/09/2011 IIP ‐ Curso 2011/12 29 Fichero fuente 1.‐ Edición algoritmo nprimo ..... ..... Fichero máquina 3.‐ Ejecución 2.‐ Compilación Fichero fuente 1.‐ Edición algoritmo nprimo ..... ..... 2.‐ Interpretación (Traducción y Ejecución  simultánea)
  • 30. La programación orientada a objetos • Es un nuevo modelo de programación de gran relevancia e implantación desde los años 90 del siglo XX. • Aporta mejoras para el desarrollo de programas iguales o más importantes que las que aportó la programación estructurada cuando apareció. • El elemento principal de un programa orientado a objetos es la clase. • Una clase determina completamente el comportamiento y las características de sus componentes. • Las instancias particulares de las clases se denominan objetos. • En la POO un programa se entiende como un conjunto de objetos que interactúan entre sí. • La POO facilita la reutilización de código y la ocultación de detalles irrelevantes (abstracción). 08/09/2011 IIP ‐ Curso 2011/12 30
  • 31. El lenguaje Java • Es un lenguaje orientado a objetos. • Un programa en Java consta de una o más clases interdependientes. • Cabe destacar que resulta muy apropiado para programar tareas relacionadas con la World Wide Web. • Los programas Java que se ejecutan a través de la red se denominan applets. • La ejecución de los programas Java es independiente 100% de la plataforma. • Incluso ya compilados. No necesitan ninguna adaptación. 08/09/2011 IIP ‐ Curso 2011/12 31
  • 32. El lenguaje Java • El secreto reside en la Máquina Virtual Java o Java Virtual Machine (JVM). • La JVM es una extensión del sistema real en el que se trabaja, que permite ejecutar el código resultante de un programa Java ya compilado, independientemente de la plataforma en que se esté utilizando. • La JVM es un programa compilado a lenguaje máquina que sí depende de cada plataforma o arquitectura. • Por tanto, es necesario disponer de una JVM para cada sistema o plataforma sobre la que queramos trabajar. • Todo navegador dispone de una JVM, de ahí la universalidad de su uso. 08/09/2011 IIP ‐ Curso 2011/12 32
  • 33. El lenguaje Java • Compilación y ejecución en Java 08/09/2011 IIP ‐ Curso 2011/12 33 C1.java C2.java Cn.java C1.class C2.class Cn.class String.class Object.class Scanner.class Compilador de Java Máquina Virtual de Java Sistema Operativo Código fuente del programa Código objeto del programa Ficheros class del API de Java API: Application Programming Interface Bytecode
  • 34. El lenguaje Java 08/09/2011 IIP ‐ Curso 2011/12 34 Fichero 1.‐ Edición: algoritmo nprimo ..... ..... Fichero fuente Fichero máquina 3.‐ Ejecución 2.‐ Compilación nprimo.java emacs nprimo.java javac nprimo.java 3.‐ Interpretación JVM  java nprimo nprimo.class Bytecode Java
  • 35. Ejemplos de programas • Ejemplo en Pascal 08/09/2011 IIP ‐ Curso 2011/12 35 function es_primo (n:integer):boolean; (* determina si n, entero mayor que uno, es primo *) var i:integer; primo:boolean; raiz:real; begin if n = 2 then primo:= true else if n mod 2 = 0 then primo:= false else begin primo:= true; i:= 3; raiz:= sqrt(n); while (i<= raiz) and primo do begin primo:= ((n mod i) <> 0); i:= i+2; end; end; es_primo:= primo; end;
  • 36. Ejemplos de programas • Ejemplo en C 08/09/2011 IIP ‐ Curso 2011/12 36 int es_primo (int n){ /* determina si n, entero mayor que uno, es primo */ int i, primo; float raiz; if n == 2 primo = 0; else if (n%2) primo = 1; else { i = 3; raiz = sqrt(n); while ((i<= raiz) && !(n%i)) {i += 2;} primo = !(n%i); } return primo; }
  • 37. Ejemplos de programas • Ejemplo en Java 08/09/2011 IIP ‐ Curso 2011/12 37 static boolean es_primo (int n){ // determina si n, entero mayor que uno, es primo int i; boolean primo; double raiz; if (n == 2) primo = true; else if (n%2 == 0) primo = false; else { i = 3; raiz = Math.sqrt(n); while ((i<= raiz) && (n%i != 0)) {i += 2;} primo = (n%i != 0); } return primo; }
  • 38. Elementos del entorno de  programación • Depuradores – http://es.wikipedia.org/wiki/Depurador – ¿qué son? – ¿para qué sirven? – ¿cómo funcionan? – Algunos ejemplos: • gdb http://www.gnu.org/software/gdb/ • valgrind http://valgrind.org/ 08/09/2011 IIP ‐ Curso 2011/12 38 Objetivo 11 enumerar las ventajas que ofrece un depurador: ejecución paso a paso, inspección, pila de ejecución, etc. (Conocimiento)
  • 39. Elementos del entorno de  programación • Generadores de documentación – http://es.wikipedia.org/wiki/Generador_de_documentación – ¿qué son? – ¿para qué sirven? – ¿cómo funcionan? – Algunos ejemplos: • javadoc http://java.sun.com/j2se/javadoc/ • doxygen http://www.stack.nl/~dimitri/doxygen/ 08/09/2011 IIP ‐ Curso 2011/12 39 Objetivo 12 distinguir y consultar eficazmente los distintos tipos de documentación: tutoriales, manuales de referencia, libro de especificaciones del lenguaje y libros de texto. (Conocimiento)
  • 40. Elementos del entorno de  programación • Sistemas Operativos – Capítulo 7 de Forouzan – http://es.wikipedia.org/wiki/Sistema_operativo – ¿qué son? – ¿para qué sirven? – ¿cómo funcionan? – Algunos ejemplos: • MS‐DOS http://es.wikipedia.org/wiki/MS‐DOS • Windows http://es.wikipedia.org/wiki/Windows • Linux http://es.wikipedia.org/wiki/Linux • Mac OS http://es.wikipedia.org/wiki/Mac_OS • Solaris http://es.wikipedia.org/wiki/Solaris_(sistema_operativo) 08/09/2011 IIP ‐ Curso 2011/12 40 Objetivo 1 expresar en los términos adecuados el concepto de sistema operativo. (Conocimiento)
  • 41. Elementos del entorno de  programación • Editores. IDEs – http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado – Algunos ejemplos: • Eclipse http://www.eclipse.org http://es.wikipedia.org/wiki/Eclipse_(software) • BlueJ http://www.bluej.org • NetBeans http://www.netbeans.org http://es.wikipedia.org/wiki/NetBeans • Visual Studio http://es.wikipedia.org/wiki/Visual_Studio • vi http://es.wikipedia.org/wiki/Vi • emacs http://es.wikipedia.org/wiki/Emacs 08/09/2011 IIP ‐ Curso 2011/12 41 Objetivo 9 distinguir entre editor (de programas) y procesador de texto. (Comprensión) Objetivo 10 diferenciar los componentes de un entorno de desarrollo integrado o IDE "Integrated Development Environment", que son editor, compilador, depurador y documentación en línea. (Comprensión)
  • 42. Elementos del entorno de  programación • Interfaz Gráfica de Usuario: Escritorio – http://en.wikipedia.org/wiki/Desktop_environment – http://es.wikipedia.org/wiki/IGU – Algunos ejemplos: • GNOME http://en.wikipedia.org/wiki/GNOME • KDE http://en.wikipedia.org/wiki/KDE 08/09/2011 IIP ‐ Curso 2011/12 42 Objetivo 18 describir qué es un interfaz gráfico de usuario o GUI "Graphical User Interface". (Conocimiento)
  • 43. Elementos del entorno de  programación • Bases de Datos – Capítulo 14 de Forouzan – http://es.wikipedia.org/wiki/Bases_de_datos – http://es.wikipedia.org/wiki/Sistema_de_gestión_de_base_de_datos • MySQL www.mysql.com, http://dev.mysql.com/ • PostgreSQL www.postgresql.org • SQLite http://es.wikipedia.org/wiki/SQLite • Oracle www.oracle.com • Java DB http://developers.sun.com/javadb/ 08/09/2011 IIP ‐ Curso 2011/12 43 Objetivo 14 describir el concepto de fichero. (Conocimiento) Objetivo 15 enumerar las características que diferencian un fichero de texto de un fichero binario. (Comprensión) Objetivo 16 describir qué es una base de datos, qué es un gestor/servidor de base de datos ‐ DBMS‐, y qué es un protocolo de conexión a base de datos ‐ODBC‐. (Conocimiento) Objetivo 17 distinguir entre una base de datos y un fichero en disco y en qué situaciones es más conveniente hacer uso de uno u otro. (Comprensión)
  • 44. Elementos del entorno de  programación • Servicios Web y Navegadores – http://es.wikipedia.org/wiki/Servicios_Web • Apache http://es.wikipedia.org/wiki/Servidor_HTTP_Apache • Apache TomCat http://tomcat.apache.org/ – http://es.wikipedia.org/wiki/Navegador_web • Firefox http://es.wikipedia.org/wiki/Mozilla_Firefox • Google Chrome http://es.wikipedia.org/wiki/Google_Chrome • Internet Explorer http://es.wikipedia.org/wiki/Internet_Explorer • Konqueror http://es.wikipedia.org/wiki/Konqueror • Safari http://es.wikipedia.org/wiki/Safari_(navegador) 08/09/2011 IIP ‐ Curso 2011/12 44 Objetivo 19 describir qué es una página Web, un servidor Web, un navegador. (Conocimiento) Objetivo 20 explicar el concepto de hiperenlace. (Conocimiento) Objetivo 21 distinguir las tareas que realiza el servidor Web de las que realiza el navegador. (Compresión) Objetivo 22 describir qué es un buscador y explicar cómo recaba información para poder responder rápidamente a nuestras consultas. (Conocimiento)