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