Metodología y Tecnología de la Programación Departamento de Informática Escuela Superior de Informática

Anuncio
Metodología y Tecnología de la Programación
Metodología y Tecnología de la
Programación
Departamento de Informática
Escuela Superior de Informática
Universidad de Castilla-La Mancha
Escuela Superior de Informática. UCLM
Tema 1: 1
Metodología y Tecnología de la Programación
Metodología y Tecnología de la Programación
• Créditos: 15
• Horas semanales:
– Teoría: 3,5
Prácticas: 1,5
• Profesores:
–
–
–
–
–
–
Camelia Muñoz (1ºA, G3, G4 yG5) (Coordinadora)
Alfonso Niño (1ºB, 1ºC y G6)
Manuel E. Prieto (1ºD)
José M. Gallego (G7, G8, G9)
Pascual Julián (G1, G2)
Crescencio Bravo (G10)
Escuela Superior de Informática. UCLM
Tema 1: 2
Metodología y Tecnología de la Programación
Objetivos del curso
• Desarrollo de programas
–
–
–
–
–
resolución de problemas
diseño e implementación de programas
conceptos de orientación a objetos
pasos en el proceso de desarrollo
el lenguaje de programación Java
• Técnicas y conceptos de programación específicos
–
–
–
–
operaciones y datos
decisiones y bucles
objetos y clases
Matrices, “arrays”,
vectores y cadenas
Escuela Superior de Informática. UCLM
– Interfases gráficas de
usuario
– Ordenación y búsqueda
– Recursión
Tema 1: 3
Metodología y Tecnología de la Programación
Temario de la asignatura
• Teoría
1. Conceptos de Informática
2. Conceptos de programación y lenguajes
3. Elementos de programación
4. Objetos y clases
5. Elementos de programación adicionales
6. Objetos para la organización de datos
7. Herencia
8. Diseño avanzado de clases
9. Recursión
10. Ordenación y búsqueda
11. Flujo de control avanzado
12. Introducción a las estructuras dinámicas de datos
Escuela Superior de Informática. UCLM
Tema 1: 4
Metodología y Tecnología de la Programación
Temario de la asignatura
• Prácticas
1. Introducción a los sistemas operativos y lenguajes de
programación
2. El entorno de desarrollo de software en JavaTM
3. Elementos básicos de la programación en JavaTM
4. Introducción a los Métodos y Clases en JavaTM
5. Orientación a objetos en JavaTM
6. Flujo de datos de E/S
7. Trabajo con una interfaz gráfica
8. Uso de un entorno de desarrollo gráfico
9. Introducción a los Threads
Escuela Superior de Informática. UCLM
Tema 1: 5
Metodología y Tecnología de la Programación
Metodología y Tecnología de la Programación
• Evaluación
– Teoría
• Se evalúa con un examen al final del curso.
– Prácticas
• Se realizarán dos proyectos, uno en cada cuatrimestre, que
habrá que entregar obligatoriamente para aprobar la asignatura.
Si los proyectos no se entregan en las fechas previstas la parte
práctica se suspenderá hasta Septiembre
• El proyecto del primer cuatrimestre deberá aprobarse para
aprobar el del segundo cuatrimestre. Si el primer proyecto se
suspendiese puede entregarse otra vez cuando se entregue el
del segundo cuatrimestre.
Escuela Superior de Informática. UCLM
Tema 1: 6
Metodología y Tecnología de la Programación
• Evaluación
– Prácticas
• Es condición necesaria aprobar los dos proyectos para
presentarse al examen final (Junio o Septiembre). En septiembre
se entregará sólo un proyecto, similar al del segundo
cuatrimestre, que se indicará oportunamente.
• La fecha de entrega de los proyectos será:
– Primer proyecto: Jueves, 21 de enero de 1999
– Segundo proyecto: Jueves, 20 de mayo de 1999
– Septiembre: Jueves, 2 de septiembre de 1999
• Los proyectos se realizarán en grupos de dos personas. Los
composición de cada grupo deberá comunicarse al profesor de
prácticas correspondiente antes del día 20 de noviembre de
1998. Los grupos de prácticas deberán estar formados por
alumnos de un mismo profesor de prácticas.
Escuela Superior de Informática. UCLM
Tema 1: 7
Metodología y Tecnología de la Programación
Metodología y Tecnología de la Programación
• Evaluación global:
– La nota del proyecto del segundo cuatrimestre, si se aprueba (y se
aprobó el primer proyecto a la primera), aumenta directamente la
calificación del examen -que debe aprobarse- (entre 0,5 y 1 punto )
obteniéndose así la calificación definitiva de la asignatura. En caso
de aprobarse la práctica y no el examen, se convalidará la práctica
durante el siguiente curso académico, aunque su nota ya no
incrementará la evaluación que se obtenga en sucesivos exámenes.
Si la práctica se aprueba en Septiembre del presente curso tampoco
sube nota.
Escuela Superior de Informática. UCLM
Tema 1: 8
Metodología y Tecnología de la Programación
Metodología y Tecnología de la Programación
• Bibliografía
– Jewis, J. y Loftus, W. JavaTM software solutions: Foundations of
program design. Addison-Wesley, 1998.
– Lewis, J. y Loftus, W. Material complementario en: www.infcr.uclm.es/www/cmunoz/mytp/mytp.html
– Cox, B.J. y Novobilski, A.J. Programacion orientada a objetos Un
enfoque evolutivo. Addison-Wesley Iberoamericana, 1993.
– Naughton, P. Manual de Java. Osborne McGraw-Hill, 1996.
– Lemay, L. Aprendiendo Java 1.1 en 21 días, Prentice-Hall, 1998.
– Documentación del JavaTM Development Kit (JDKTM) en:
http://java.sun.com/products/jdk/
Escuela Superior de Informática. UCLM
Tema 1: 9
Metodología y Tecnología de la Programación
Horarios de clase y tutorías
Escuela Superior de Informática. UCLM
Tema 1: 10
Metodología y Tecnología de la Programación
Tema 1: Conceptos de Informática
• Introducción
• Definición de informática
• Sistemas Informáticos
• Representación de la información
• Componentes del sistema físico
• Redes
Escuela Superior de Informática. UCLM
Tema 1: 11
Metodología y Tecnología de la Programación
Introducción
• Antes de abordar la programación necesitamos entender
los conceptos fundamentales sobre computadores
• Este primer tema se centra en
–
–
–
–
–
componentes de un computador
como interaccionan estos componentes
como almacenan y procesan la información los computadores
redes de computadores
Internet y el World Wide Web
Escuela Superior de Informática. UCLM
Tema 1: 12
Metodología y Tecnología de la Programación
Hardware y Software
• Hardware
– la parte física, tangible de un computador
– teclado, monitor, cables, chips, discos...
• Software
– programas y datos
– un programa es una serie de instrucciones
• Un computador necesita tanto hardware como software
• Cada uno es básicamente inútil sin el otro
Escuela Superior de Informática. UCLM
Tema 1: 13
Metodología y Tecnología de la Programación
Componentes Hardware
• La unidad central de proceso (CPU)
– el chip que ejecuta las instrucciones (“comandos”) del programa
– Ejemplos: Procesador Intel Pentium, procesador Sun Sparc...
• Dispositivos de Entrada / Salida
– permitir interacción con el usuario
– teclado, monitor, ratón
Escuela Superior de Informática. UCLM
Tema 1: 14
Metodología y Tecnología de la Programación
Componentes Hardware
• Memoria principal (central)
– el área primaria de almacenamiento de programas y datos en uso
activo
• Dispositivos de memoria secundaria
– almacenamiento a largo plazo
– disquetes, discos duros, cintas...
Escuela Superior de Informática. UCLM
Tema 1: 15
Metodología y Tecnología de la Programación
Interacción del Hardware
Disco
duro
Memoria
principal
Disquete
Teclado
CPU
Monitor
Escuela Superior de Informática. UCLM
Tema 1: 16
Metodología y Tecnología de la Programación
Categorías del Software
• Sistema operativo
–
–
–
–
controla todas las actividades de la máquina
provee la interfase (interfaz) de usuario con el computador
gestiona recursos como la CPU y la memoria
Windows 95, Solaris, Mac OS, Unix
• Programa de aplicación
– término genérico para cualquier tipo de software
– procesadores de texto, sistemas de control de misiles, juegos...
Escuela Superior de Informática. UCLM
Tema 1: 17
Metodología y Tecnología de la Programación
Interfases gráficas de usuario
• Son las más modernas interfases entre el usuario y el
sistema operativo o las aplicaciones
• Hace uso de elementos gráficos de pantalla:
– Ventanas
– iconos
– botones
• Ratón: Es el dispositivo de entrada principal
Escuela Superior de Informática. UCLM
Tema 1: 18
Metodología y Tecnología de la Programación
Interfases gráficas de usuario
Escuela Superior de Informática. UCLM
Tema 1: 19
Metodología y Tecnología de la Programación
Analógico frente a digital
• Hay dos formas básicas de almacenar y gestionar datos
• Analógica
– continua, en proporción directa a los datos representados ejemplo:
un termómetro de mercurio - el mercurio sube en proporción
directa a la temperatura
• Digital
– la información está fragmentada en trozos, y cada trozo se
representa independientemente
– ejemplo: la música en un CD
Escuela Superior de Informática. UCLM
Tema 1: 20
Metodología y Tecnología de la Programación
Información Digital
• Los computadores modernos almacenan
información digitalmente, incluyendo:
–
–
–
–
–
–
toda
la
números
texto
gráficos e imágenes
audio
video
instrucciones de programa
• En cierto modo, toda la información está digitalizada dividida en trozos y representada como números
Escuela Superior de Informática. UCLM
Tema 1: 21
Metodología y Tecnología de la Programación
Representando texto digitalmente
• Cada carácter, incluyendo espacios, dígitos y puntuación se
almacena como un número
• La misma letra en mayúsculas y minúsculas corresponde a
códigos distintos
Hola, Pepe.
72 111 108 97 44 32 80 101 112 101 46
Escuela Superior de Informática. UCLM
Tema 1: 22
Metodología y Tecnología de la Programación
Números binarios
• Una vez que la información está digitalizada se representa
y almacena en memoria usando el sistema de numeración
binaria
• Un único dígito binario (0 o 1) se denomina bit
• Los dispositivos que almacenan y transfieren información
son más baratos y más fiables si sólo tienen que representar
dos estados
• Un único bit puede representar dos posibles estados, como
una bombilla que puede estar encendida (1) o apagada (0)
• Para almacenar grandes valores se usan combinaciones de
bits
Escuela Superior de Informática. UCLM
Tema 1: 23
Metodología y Tecnología de la Programación
Permutaciones de Bits
1 bit
2 bits
3 bits
4 bits
0
00
000
0000
1
01
001
0001
10
11
010
011
0010
0011
100
0100
101
0101
110
0110
111
0111
1000
1001
etc.
Escuela Superior de Informática. UCLM
Tema 1: 24
Metodología y Tecnología de la Programación
Permutaciones de Bits
• Cada bit que se añade a la cadena dobla el número de
estados o elementos que pueden ser representados
• N bits pueden representar 2N elementos independientes
1 bit
2 bits
3 bits
4 bits
5 bits
Escuela Superior de Informática. UCLM
21
22
23
24
25
=
=
=
=
=
2 elementos
4 elementos
8 elementos
16 elementos
32 elementos
Tema 1: 25
Metodología y Tecnología de la Programación
Arquitectura de Computadores
• Ahora podemos examinar los componentes hardware de un
computador en mayor detalle
• La CPU y la memoria principal son los dos componentes
hardware centrales
• Todos los
periféricos
otros
dispositivos
pueden
considerarse
• Los controladores coordinan las actividades de periféricos
específicos
• La información binaria se mueve entre dispositivos a lo
largo de un grupo de cables denominado bus
Escuela Superior de Informática. UCLM
Tema 1: 26
Metodología y Tecnología de la Programación
Arquitectura de un computador
Memoria
principal
CPU
bus
Controlador
de Vídeo
Monitor
Escuela Superior de Informática. UCLM
Controlador
de disco
Disco
duro
Disquete
Controlador
otros periféricos
Tema 1: 27
Metodología y Tecnología de la Programación
Memoria
• La memoria principal está dividida en muchas posiciones
de memoria
• Cada posición de memoria tiene una dirección que la
identifica de forma única
• Los datos están almacenados en una o más posiciones de
memoria consecutivas
• En la mayoría de computadores cada posición de memoria
almacena 8 bits, o 1 byte
Escuela Superior de Informática. UCLM
Tema 1: 28
Metodología y Tecnología de la Programación
Memoria
Dirección
9278
9279
9280
9281
9282
9283
9284
9285
9286
Escuela Superior de Informática. UCLM
los valores grandes
están almacenados
en posiciones de
memoria consecutivas
Tema 1: 29
Metodología y Tecnología de la Programación
Capacidad de almacenamiento
• Cada dispositivo de memoria tiene una capacidad de
almacenamiento, indicando el número de bytes que puede
almacenar
• Las capacidades se expresan en varias unidades de
almacenamiento binario:
Unidad
Símbolo
kilobyte
KB
2
megabyte
MB
2
gigabyte
GB
2
terabyte
TB
2
Escuela Superior de Informática. UCLM
Número de Bytes
10
20
30
40
= 1024
(más de 1 millón)
(más de mil millones)
(más de 1 billón)
Tema 1: 30
Metodología y Tecnología de la Programación
Memoria
• La memoria principal es volátil - la información
almacenada se pierde si se corta la corriente eléctrica
• La memoria en dispositivos de memoria secundaria es no
volátil
• La memoria principal y los discos son dispositivos de
acceso aleatorio, lo que significa que la información puede
ser alcanzada directamente
• Una cinta magnética es un dispositivo de acceso secuencial
pues sus datos están organizados en un orden lineal - hay
que pasar por los datos previos para acceder a un dato
determinado
Escuela Superior de Informática. UCLM
Tema 1: 31
Metodología y Tecnología de la Programación
RAM frente a ROM
• RAM - Memoria de acceso aleatorio (Random access memory)
• ROM - Memoria de sólo lectura (Read only memory)
• Los términos RAM y memoria principal son básicamente
intercambiables
• La ROM puede ser un conjunto de chips de memoria, o un
dispositivo separado, como un CD ROM
• La RAM y la ROM son dispositivos de acceso aleatorio!
• La RAM debería, probablemente, llamarse Read-Write
Memory
Escuela Superior de Informática. UCLM
Tema 1: 32
Metodología y Tecnología de la Programación
La Unidad Central de Proceso (CPU)
• La CPU se denomina también microprocesador
• La CPU recupera, interpreta y ejecuta instrucciones, una
tras otra, continuamente
• Este proceso se denomina ciclo de recuperacióndescodificación-ejecución ( fetch-decode-execute cycle)
• La CPU contiene:
• unidad de control - coordina los pasos de procesamiento
• registros - pequeñas áreas de almacenamiento
• unidad aritmético/lógica - ejecuta cálculos y decisiones
Escuela Superior de Informática. UCLM
Tema 1: 33
Metodología y Tecnología de la Programación
La Unidad Central de Proceso (CPU)
CPU
Unidad aritmético / lógica
Memoria
principal
Unidad de control
Registros
Escuela Superior de Informática. UCLM
Tema 1: 34
Metodología y Tecnología de la Programación
La Unidad Central de Proceso (CPU)
• La velocidad de una CPU está controlada por el reloj del
sistema
• El reloj del sistema genera un pulso electrónico a
intervalos regulares
• Los pulsos coordinan las actividades de la CPU
• La velocidad del reloj se mide en megahertzios (MHz)
Escuela Superior de Informática. UCLM
Tema 1: 35
Metodología y Tecnología de la Programación
Una configuración de computador
• Considere las siguientes especificaciones de un ordenador
personal:
–
–
–
–
–
200 MHz Pentium Processor
32 MB RAM
2.3 GB Disco duro
12x velocidades CD ROM
17” Multimedia Video Display con 1280 x 1024 de
resolución
– 33,600 bps / Fax Modem
Escuela Superior de Informática. UCLM
Tema 1: 36
Metodología y Tecnología de la Programación
Monitor
• El dispositivo primario de salida indicado en la
especificación es un monitor de 17”
• El tamaño está medido diagonalmente, como una pantalla
de televisión
• Tiene capacidades multimedia: texto, gráficos, vídeo, etc.
• Tiene una resolución de 1280 por 1024 pixels
• Alta resolución (más pixels) proporciona imágenes más
nítidas
Escuela Superior de Informática. UCLM
Tema 1: 37
Metodología y Tecnología de la Programación
Modem
• Los dispositivos de transferencia de datos permiten enviar
y recibir información entre computadores
• La configuración del ordenador incluye un modem, que
permite a la información moverse a través de una línea
telefónica
• Se pueden enviar y recibir faxes así como datos básicos
• Transfiere información a una velocidad de 33,600 bits por
segundo (bps)
Escuela Superior de Informática. UCLM
Tema 1: 38
Metodología y Tecnología de la Programación
Redes
• Una red consiste en dos o más computadores conectados
juntos de tal forma que la información y los recursos pueden
compartirse
• La mayoría de los computadores están conectados a algún tipo
de red
• Cada computador tiene su propia dirección de red que le
identifica de forma inequívoca entre los otros
• Un servidor de ficheros es un computador de una red dedicado
a almacenar programas y datos que se comparten entre los
usuarios de la red
• Un servidor de ficheros tiene frecuentemente una gran
cantidad de memoria secundaria
Escuela Superior de Informática. UCLM
Tema 1: 39
Metodología y Tecnología de la Programación
Conexiones de red
• Hay muchas técnicas para conectar computadores en red
• Conexión punto a punto - cada computador está
directamente conectado a todos los demás
• Esta técnica no es factible para más de unas pocas máquina
próximas
• Añadir un computador a la red requiere una nueva línea de
comunicación por cada computador ya existente en la red
Escuela Superior de Informática. UCLM
Tema 1: 40
Metodología y Tecnología de la Programación
Conexiones de red
• La mayoría de las redes modernas comparten una sóla
línea de comunicación
• Añadir un nuevo computador a la red es relativamente fácil
• La línea de comunicación compartida debe ser gestionada
cuidadosamente
• Los usuarios de la red deben hacer turnos usando la línea,
lo que introduce retrasos
• A menudo, la información es dividida en partes, enviada a
la máquina receptora y reensamblada
Escuela Superior de Informática. UCLM
Tema 1: 41
Metodología y Tecnología de la Programación
Conexiones de red
Punto a Punto
Escuela Superior de Informática. UCLM
Línea compartida
Tema 1: 42
Metodología y Tecnología de la Programación
LANs y WANs
• Una red de área local (local-area network), LAN, está
diseñada para cubrir pequeñas distancias y un pequeño
número de computadores
• Una LAN frecuentemente conecta las máquinas de una
sola habitación o edificio
• Una red de área ancha (wide-area network), WAN,
conecta dos o más LANs, frecuentemente sobre largas
distancias
• Las LANs individuales pertenecen normalmente a una sola
organización pero las WANs frecuentemente conectan
LANs de muchos grupos diferentes o países
Escuela Superior de Informática. UCLM
Tema 1: 43
Metodología y Tecnología de la Programación
LANs y WANs
Conexión de
larga distancia
LAN
LAN
Escuela Superior de Informática. UCLM
Tema 1: 44
Metodología y Tecnología de la Programación
Internet
•
Internet es una WAN que abarca el planeta entero
• La
palabra
Internet
proviene
del
internetworking, que implica una red de redes
término
• Comenzó como un proyecto del gobierno de los Estados
Unidos, patrocinado por la Advanced Research Projects
Agency (ARPA), y fue originalmente denominado
ARPANET
• Internet creció rápidamente a lo largo de los años
ochenta y los noventa
• En 1983 había menos de 600 computadores conectados a
Internet; hoy hay más de 10 millones
Escuela Superior de Informática. UCLM
Tema 1: 45
Metodología y Tecnología de la Programación
Internet
• El software que gestiona las comunicaciones en Internet se
denomina TCP/IP
• Los programas en el protocolo de Internet , IP, formatea la
información para su transferencia
• Los programas en el Protocolo de Control de
Transmisiones, TCP, reensambla los mensajes y maneja la
información perdida
• Cada computador en Internet tiene una única dirección IP,
tal como:
204.192.116.2
Escuela Superior de Informática. UCLM
Tema 1: 46
Metodología y Tecnología de la Programación
Internet
• La mayoría de computadores tienen también un único
nombre en Internet, el cual se denomina también dirección
de Internet :
renoir.vill.edu
kant.wpllabs.com
• La primera parte indica un computador concreto (renoir)
• El resto es el nombre de dominio, indicando la
organización (vill.edu)
Escuela Superior de Informática. UCLM
Tema 1: 47
Metodología y Tecnología de la Programación
Internet
• La última sección de cada nombre de dominio indica,
normalmente, el tipo de organización:
• edu - institución educativa
• com - negocio comercial
• org - organización sin finalidad de lucro
• Algunas veces el sufijo indica el país :
• es - España
• Se están considerando nuevas categorías de sufijos
Escuela Superior de Informática. UCLM
Tema 1: 48
Metodología y Tecnología de la Programación
Internet
• Un nombre de dominio puede tener varias partes
• Nombres de dominio únicos implican que múltiples sitios
pueden tener computadores individuales con el mismo
nombre local
• Cuando se usa, una dirección de Internet se traduce a una
dirección IP por un software denominado Domain Name
System (DNS)
• No hay una correspondencia uno a uno entre las secciones
de una dirección IP y las secciones de una dirección de
Internet
Escuela Superior de Informática. UCLM
Tema 1: 49
Metodología y Tecnología de la Programación
El/la World-Wide Web
• El World-Wide Web permite el acceso a muchos diferentes
tipos de información usando una interfase (interfaz) común
• Un browser es un programa que accede y presenta
información: texto, gráficos, sonido, vídeo, y programas
• Un documento Web contiene normalmente enlaces (links)
a otros documentos Web, creando un entorno hypermedia
• El término Web (red) proviene del hecho de que la
información no está organizada en forma lineal
Escuela Superior de Informática. UCLM
Tema 1: 50
Metodología y Tecnología de la Programación
El/la World-Wide Web
• Los documentos Web están definidos por el HyperText
Markup Language (HTML)
• La información en el Web se encuentra usando un Uniform
Resource Locator (URL):
http://www.lycos.com
http://www.inf-cr.uclm.es
• Un URL puede indicar un documento HTML, o algún otro
tipo de información
Escuela Superior de Informática. UCLM
Tema 1: 51
Descargar