Introducción a la Programación

56
Introducción a la Programación Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez

description

Introducción a la Programación. Profesores: Pedro Campos Manuel Crisosto Tatiana Gutiérrez Claudio Gutiérrez. Conceptos Básicos. ¿Qué es computación ? La Ciencia de la Computación es el estudio de los fenómenos que rodean a los computadores (Boden, 1994) ¿Qué es informática ? - PowerPoint PPT Presentation

Transcript of Introducción a la Programación

Page 1: Introducción a la Programación

Introducción a la Programación

Profesores:

Pedro Campos

Manuel Crisosto

Tatiana Gutiérrez

Claudio Gutiérrez

Page 2: Introducción a la Programación

Conceptos Básicos

• ¿Qué es computación?– La Ciencia de la Computación es el estudio de los

fenómenos que rodean a los computadores (Boden, 1994)

• ¿Qué es informática?– La Informática es el tratamiento automático de la

información, utilizando computadores

Page 3: Introducción a la Programación

Conceptos Básicos

• ¿Qué es un computador?

– Es un dispositivo electrónico capaz de procesar información a partir de un grupo de instrucciones denominado programa.

– Puede realizar tareas muy diversas usando distintos programas

Page 4: Introducción a la Programación

Conceptos Básicos

• ¿Qué es un computador?

– Es una herramienta capaz de almacenar y procesar datos que luego son convertidos en información a disposición de los seres humanos para tomar decisiones

Page 5: Introducción a la Programación

Conceptos Básicos

• ¿Porqué estudiar informática?

– Los computadores nos permiten salir más rápidamente de los supermercados, realizar operaciones bancarias las 24 horas del días, conocer el clima a través de los satélites y distraernos con entretenidos videojuegos

Page 6: Introducción a la Programación

Conceptos Básicos

• ¿Porqué estudiar informática?

– Internet es una prueba palpable del impacto de las computadoras y la informática en nuestra sociedad

Page 7: Introducción a la Programación

Conceptos Básicos

• ¿Porqué estudiar informática?– Rápido avance de la tecnología permite hacer

cosas inimaginables hasta hace pocos años– Si la industria automotriz hubiese tenido un

progreso semejante, hoy un auto nuevo viajaría a miles de km/h y costaría menos que un litro de gasolina

Page 8: Introducción a la Programación

Conceptos Básicos

• Algunos mitos sobre computadores– El computador lo hizo: El computador no puede

tomar decisiones. Sólo hace lo que se le ordena.– Los computadores pueden hacer cualquier cosa:

Los programadores son los que pueden hacer muchas cosas con los computadores, pero tienen limitaciones tecnológicas

Page 9: Introducción a la Programación

Ser Inteligente(con criterio, sentido común, experiencia)

Máquina sin InteligenciaPero con un gran poder de procesamiento

Debe entregarle las órdenes precisas en un lenguaje específico

Page 10: Introducción a la Programación

¿ Por qué usamos el computador?

Problemas del mundo real

Herramienta

solución

Page 11: Introducción a la Programación

¿ Cual es el papel del computador ?

Dato Información

Entrada SalidaProceso computacional

Page 12: Introducción a la Programación

“ El gran Desafío es cómo entender un problema, encontrarle una solución y cómo traspasar esa solución al computador para

que la ejecute”

Page 13: Introducción a la Programación

“Desarrollo Histórico”

Page 14: Introducción a la Programación

Los primeros orígenes

• La necesidad de calcular impulsó el desarrollo del ábaco como primera calculadora.

• Muhammad ibn Musa Al’khowarizmi (S. XII) desarrolló el concepto de un proceso escrito a seguir para alcanzar un objetivo.

Page 15: Introducción a la Programación

Siglo XVII• 1642, Blaise Pascal creo

una máquina de sumar que acarreaba de una posición a la siguiente.

• Fue conocida como PASCALINA

Page 16: Introducción a la Programación

Siglo XIX (I)

• 1822, Charles Babbage diseñó una máquina diferencial para mejorar los cálculos de las tablas de navegación.

Page 17: Introducción a la Programación

Siglo XIX (II)

• 1842, Ada Augusta King, Lady Lovelace (hija de Lord Byron) colabora con Babbage considerandose la primera programadora.

Page 18: Introducción a la Programación

Siglo XIX (3)

• Problemas en el recuento del censo de Población USA en 1890, provocó que Herman Hollerith desarrollase una máquina tabuladora, creando una empresa que en 1924 pasó a llamarse IBM.

Page 19: Introducción a la Programación

1937

• Alan Turing desarrolló la idea de máquina universal capaz de ejecutar cualquier algoritmo. Lo cual formó la base de la computabilidad.

Page 20: Introducción a la Programación

1940-1944

• Durante la segunda guerra mundial, la necesidad de descifrar los mensajes encriptados de los alemanes, se desarrolló con la ayuda de Turing, con una máquina denominada Colossus.

Page 21: Introducción a la Programación

1943

• Comenzó este año en la Moore School of Electrical Engineering en Pennsylvania el trabajo en el ENIAC (Electronic an Numeric Integrator and Computer)

Page 22: Introducción a la Programación

1944

• El primer calculador electromecánico automático de propósito general a gran escala fue el Mark I, ideado por Howard Aiken y desarrollado por IBM.

Page 23: Introducción a la Programación

1945

• John von Neumann escribe su borrador sobre la arquitectura de los ordenadores el cual sirve de base al concepto actual de ordenador.

Incorporar esquema final

Page 24: Introducción a la Programación

La CPU de von Neumann

ArithmeticLogic

Circuits

AC

Control Circuits

PC IRAR

DR

MainMemory

C0C1C2

C12

Flags

...Devices

ALU:

ArithmeticLogicUnit

ControlUnit

Registros del Procesador

Bus decontrol

Bus dedirecciones

Bus dedatos

Page 25: Introducción a la Programación

Ciclo de Instrucción de la CPU básica de von Neumann

PROCESA

BEGIN

CPUACTIVA?

{DR M(AR)}

AR DR(ADR)

READ M

AC DR

AC=0AR DR(ADR) AR DR(ADR) AR DR(ADR)

DR AC

WRITE M

READ M READ M

AC AC + DR AC AC ^ DR PC DR(ADR) AC SHIFT AC

RSHIFTCOMPJmZJMPANDADDSTRLD

SI

FINNO

SI

AC

DECODIFICACION

FETCH DE

OPERANDO

AR PC

READ M

PC PC + 1IR DR(OPCODE)DECODE OPCODE

NO

FETCHINSTRUCCION

0

1, 2

3

4

5, 6

7

4

5

6,7

5, 6

7

4 4

7

5, 6

7 7 7

Page 26: Introducción a la Programación

Ejemplos01h lda #002h wrt03h add #204h jmp 02h

Imprimir los números pares

Evaluar la función:

(3*x + 5) / x si x > 0 f(x) 5*x2 si x <= 0

00h rda 8001h lda 8002h jmz 0803h jml 0804h mul #305h add #506h div 8007h jmp 0Ah08h mul #509h mul 800Ah wrt

Page 27: Introducción a la Programación

1947

• William Shockley, John Bardeen y Walter Brattain inventan la “resistencia de transferencia” que más tarde se conocerá como transistor.

Page 28: Introducción a la Programación

1956

• John McCarthy and Marvin Minsky fundan en una reunión en el Darmouth College el concepto de Inteligencia Artificial.

Page 29: Introducción a la Programación

1975-1982

• Edward Roberts, William Yates y Jim Bybee desarrollan lo que podría considerarse el primer ordenador personal, el Altair 8800. Tenía 256 bytes de memoria y no tenía pantalla, ni teclado ni dispositivo auxiliar de memoria.

• Bill Gates y Paul Allen escribieron el primer programa para el Altair 8800, un compilador de Basic y fundan Microsoft.

• Se desarrolla el CRAY I el primer superordenador.• Steve Jobs y Steve Wozniak desarrollan el Apple II• IBM crea el PC actual

Page 30: Introducción a la Programación

Historia de la Computación

• Primera Generación– Tubos de vacío– Programadas en Lenguaje de máquina– Grandes y muy costosas

• Segunda Generación– Circuitos de Transistores– Programadas en lenguajes de alto nivel

Page 31: Introducción a la Programación

Historia de la Computación

• Tercera Generación– Circuitos Integrados– Control a través de Sistemas Operativos

• Cuarta Generación– Microprocesadores– Primeros Microcomputadores– Aparición de ARPANET

Page 32: Introducción a la Programación

Historia de la Computación

• Quinta Generación– Microelectrónica.– Competencia internacional por el dominio de la

informática.– Internet se masifica.– Aparición de Computadores portátiles.– Manejo de Lenguaje Natural e Inteligencia

Artificial.

Page 33: Introducción a la Programación

Ciencia y ficción: El ordenador invisible

A largo plazo, el ordenador personal y la terminal de trabajo desaparecerán porque el acceso a la informática estará en todas partes: en las paredes, en nuestras muñecas y en “ordenadores para borrador” (como el papel para borrador) distribuidos para ser utilizados cuando sea necesario.

Mark Weiser

Xerox PARC

Page 34: Introducción a la Programación

Ciencia y ficción: Efecto multiplicador de la tecnología

Si la industria automotriz hubiera experimentado un desarrollo parecido a la informática, se podría disponer de un Rolls-Royce por menos de 1.000 pesos. Además el vehículo dispondría de la potencia de un trasatlántico para ser capaz de recorrer un millón de kilómetros (25 veces la vuelta al mundo) con sólo un litro de gasolina.

Tom Forester

Page 35: Introducción a la Programación

El futuro

• La red• La IA• La influencia en la educación• La influencia en la medicina• El comercio electrónico• La informática portátil e inalámbrica

Page 36: Introducción a la Programación

“Componentes y Arquitectura de un computador”

Page 37: Introducción a la Programación

Hardware y software

• En computación tenemos dos elementos básicos:– Hardware

• En términos simples, corresponde a todas aquellas partes físicas o materiales, que podemos ver y tocar. Por ejemplo, el monitor, el teclado, mouse, disco duro, tarjeta de video, CPU, etc.

– Software• Podríamos entender por software el “conjunto de instrucciones

que los computadores emplean para manipular y procesar datos”• Sin el sw el computador sería un conjunto de dispositivos físicos sin

utilidad.

Page 38: Introducción a la Programación

Componentes Físicos Electro-Mecánicos•Dispositivos de Entrada•Dispositivos de Salida•Unidad Central de Proceso•Memoria Principal•Memoria Secundaria

Hardware

Componentes lógicos que se ejecutan en el hardware:Sistema OperativoPaquetes Básicos: Procesador de Texto Planilla Electrónica Presentación Programas de Aplicación

Software

Hardware y software

Page 39: Introducción a la Programación

Hardware

• Los computadores están formados por una serie de componentes, los cuales determinan en conjunto las capacidades del computador– CPU y tarjeta madre– Memoria RAM y ROM– Disco duro y disquetera– Monitor y tarjeta de video– Otros dispositivos

Page 40: Introducción a la Programación

Hardware• CPU (Central Process Unit)

– Unidad de procesamiento central– Cerebro

• Memoria ROM– Instintos

• Memoria RAM– Información que se maneja en el

momento• Memoria secundaria

– Discos magnéticos y ópticos, cintas– Información que se busca en elementos

adicionales

CPU

Memoria RAM

Memoria Secundaria

Disp. Entrada (mirar, escuchar)

Disp. Salida hablar)

Page 41: Introducción a la Programación

Hardware

• Dispositivos de entrada– Ingreso de información– Sentidos (ojos, oídos)

• Dispositivos de salida– Entrega de información– Gestos, voz

CPU

Memoria RAM

Memoria Secundaria

Disp. Entrada (mirar, escuchar)

Disp. Salida hablar)

Page 42: Introducción a la Programación

Hardware: Tarjeta madre

• Tarjeta madre (mother board)– Es la placa de circuitos integrados en la cual se inserta el

procesador, la memoria y otros componentes a través de los buses y las ranuras de expansión• Es la base para comenzar a “armar” un computador

– Las ranuras de expansión permiten conectar, por ejemplo, tarjetas de sonido (que permiten al PC reproducir sonido), modem (para navegar por internet), tarjeta de video (para mostrar imágenes en la pantalla)

Page 43: Introducción a la Programación
Page 44: Introducción a la Programación

Almacenamiento (Memoria)

• Unidades de memoria– 1 bit (puede tomar valores: 1 ó 0 - binarios)– 1 byte : 8 bits– 1 kilobyte (Kb) : 210 bytes– 1 megabyte (Mb) : 210 kilobytes: 220 bytes– 1 gigabyte (Gb) : 210 megabytes: 230 bytes– 1 terabyte : 210 gigabytes: 240 bytes

Page 45: Introducción a la Programación

Almacenamiento (Memoria)

• Tipos de memoria– Memoria RAM (random access memory)

• Permite al computador almacenar información que la CPU está accesando frecuentemente y necesita para operar

• Por ejemplo, información de un programa, instrucciones, datos, etc.

– Memoria ROM (read only memory)• Contiene la información preinstalada, la cual es imposible modificar

o borrar por completo• Es la información que indica los procesos básicos que debe ejecutar

el computador (antes de ejecutar cualquier programa)

Page 46: Introducción a la Programación

Las partes de un computador

• Caché– es una unidad pequeña de memoria ultrarrápida en la que se

almacena información a la que se ha accedido recientemente o a la que se accede con frecuencia, lo que evita que el microprocesador tenga que recuperar esta información de circuitos de memoria más lentos.

Page 47: Introducción a la Programación

Almacenamiento (Memoria)• La memoria secundaria son todas las unidades de disco que un

computador puede tener– Disco duro: 400 Mb, 20 Gb, 100 Gb– Unidad de disco flexible (disquete)

• Disquete tamaño 5¼, capacidad 360 Kb, 1.2 Mb• Disquete tamaño 3½, capacidad 720 Kb, 1.44 Mb

– CD-ROM (compact disc, read only memory)• Tamaño 700 Mb, usualmente se utilizan con información sólo para lectura

– DVD (digital video disc o digital versatile disk)• 4.7 Gb a 17 Gb

– Cintas• Originalmente gran tamaño y lentas. Hoy existe el DAT (digital audio tape),

usado para tener respaldos de información de discos duros

Page 48: Introducción a la Programación

CPU (Unidad Central de Procesamiento)

• Es un chip que viene en una tarjeta de circuitos (tarjeta madre)– Grandes computadores (mainframe) usan CPU más

poderosas e incluso varias dentro del mismo computador– PC utilizan una sola CPU

• Su capacidad se indica por el modelo (en PC: 8088, 80286, 80386, 80486, Pentium)– Intel – Pentium IV (3 GHz)– AMD – Athlon (2,1 GHz)

• CPU tiene un reloj interno cuya velocidad se mide en hertz, lo que determina la velocidad de procesamiento

Page 49: Introducción a la Programación

CPU (Unidad Central de Procesamiento)

• Unidad de Control (CU)– Se encarga de traer las instrucciones de memoria principal y determinar su tipo

• Unidad de Aritmética y Lógica (ALU)– Se encarga de llevar a cabo evaluaciones aritméticas (adición, substracción,

multiplicación, división) y lógicas (and, or, not, etc.) necesarias para realizar las distintas instrucciones

• Registros– Constituyen una pequeña memoria de alta velocidad, utilizada para

almacenamiento de resultados intermedios y de cierta información de control– Contador de programa: almacena información (la dirección) de la siguiente

instrucción a ejecutar– Registro de instrucción: contiene la instrucción que se está ejecutando– Registro de propósito general: registros accesibles por programadores de bajo

nivel

Page 50: Introducción a la Programación

CPU (Unidad Central de Procesamiento)

• Diferentes computadores entienden diferentes conjuntos de instrucciones– Assembler

• Dentro de la misma familia de computadores entienden las mismas instrucciones– Pentium III vs Pentium IV (nuevas instrucciones)

• Aplicación hecha para un tipo de procesador no funcionará en otro tipo de computador– Macintosh vs PC

Page 51: Introducción a la Programación

Dispositivos de entrada

• Teclado– Expandido 101 teclas, etc.

• Mouse– 2 – 3 botones

• Scanner• Modem• Joystick• Lector óptico

Page 52: Introducción a la Programación

Dispositivos de salida

• Monitor– VGA, SVGA, UVGA, CGA

• Impresora– Láser, inyección de tinta, matriz de puntos

• Modem• Parlantes

Page 53: Introducción a la Programación

Arquitectura de un computador

• Como hemos visto, la arquitectura general de un computador consta básicamente de 3 partes:– CPU– Memoria– Dispositivos de entrada/salida

• Esta arquitectura fue propuesta por John Von Neumann en 1945, y hoy en día la mayoría de los computadores están basados en ella

Page 54: Introducción a la Programación

Arquitectura de Von Neumann

Page 55: Introducción a la Programación

La CPU de von Neumann

ArithmeticLogic

Circuits

AC

Control Circuits

PC IRAR

DR

MainMemory

C0C1C2

C12

Flags

...Devices

ALU:

ArithmeticLogicUnit

ControlUnit

Registros del Procesador

Bus decontrol

Bus dedirecciones

Bus dedatos

Page 56: Introducción a la Programación

¿Preguntas?