introducciónclimate.cs.buap.mx/condejc/cursos/material/introduction2...electricidad y uso de...

48
Introducción JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING

Upload: hoangdung

Post on 13-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

IntroducciónJUAN CARLOS CONDE RAMÍREZ

INTRODUCTION TO PROGRAMMING

Objetivos

FCC-BUAP 2

Reconocer la importancia de la Programación por Computadora.

Aprender acerca de la evolución de la computadora.

Explorar los componentes de Hardware y Software de un sistema computacional.

Aprender acerca del lenguaje de una computadora.

Aprender acerca de la evolución de los lenguajes de programación.

Descubrir qué es un compilador y cuál es su función.

Conocer las características básicas del lenguaje de programación C++

Motivación

FCC-BUAP 3

“Debería ser obligatorio, para ser ciudadano de este planeta, leer y escribir código”

Will.I.Am

FCC-BUAP 4

“Los programadores del mañana son los magos del futuro”

Gabe Newell

FCC-BUAP 5

“[saber programar] Creo que es maravilloso. Es lo más parecido a tener superpoderes”

Drew Houston

FCC-BUAP 6

“Todo el mundo en este país debería aprender a programar

una computadora… Porque esto te enseña a pensar.”Steve Jobs

FCC-BUAP 7

“No tienes que ser un genio para saber programar.

Necesitas determinación.”[alguien que sabe programar]

FCC-BUAP 8

Video

FCC-BUAP 9

URL

Opiniones…

FCC-BUAP 10

Desarrollo Histórico

FCC-BUAP 11

Importancia I

FCC-BUAP 12

•Términos como “Internet”, que fueron tan poco familiares hasta hace casi 20 años, son ahoracomunes.

•Hoy en día estudiantes de primaria “navegan” en Internet y usan computadoras para diseñar susproyectos de clase.

•De hecho, muchas personas utilizan el Internet para buscar información y comunicarse conotros.

Importancia II

FCC-BUAP 13

•Sin Software, una computadora es INSERVIBLE. Y el Software se desarrolla empleando lenguajesde programación.

•El lenguaje de programación C++ es especialmente adecuado para desarrollar Software quedesempeñe tareas específicas.

•Antes de comenzar a programar, resulta útil conocer y comprender algo de terminología básica ylos diferentes componentes de una computadora.

Historia de las Computadoras I

FCC-BUAP 14

•Nombre:• ABACO

•Propósito:• Primer dispositivo para realizar cálculos; sumas y restas.

•Lugar y Fecha:• Inventado en Asia pero utilizado en la antigua Babilonia, China y en toda Europa a finales de la edad

media.

Historia de las Computadoras II

FCC-BUAP 15

•Nombre:• PASCALINA

•Propósito:• Dispositivo para realizar cálculos con 8 discos movibles para calcular sumas y restas de hasta 8 cifras

largas.

•Lugar y Fecha:• Inventado por el filosofo y matemático francés Blaise Pascal en 1642.

Historia de las Computadoras III

FCC-BUAP 16

•Nombre:• LEIBNITIANA

•Propósito:• Dispositivo para sumar, restar, multiplicar y dividir.

•Lugar y Fecha:• Inventado por el alemán Gottfried von Leibniz en el siglo XVII.

Historia de las Computadoras IV

FCC-BUAP 17

•Nombre:• EL TELAR DE JACQUARD

•Propósito:• Se descubrió que las instrucciones para los telares podían ser almacenadas en tarjetas perforadas e

introducidas en los telares. El movimiento secuencial de las tarjetas a través del telar permitía que lasagujas tomaran los hilos del color y textura correctos.

•Lugar y Fecha:• Inventado por el tejedor francés Joseph Jacquard en 1819.

Historia de las Computadoras V

FCC-BUAP 18

•Nombre:• MAQUINA DIFERENCIAL y MÁQUINA ANALÍTICA

•Propósito:• La Máquina Diferencial podía hacer operaciones complejas tal como elevar números al cuadrado de

forma automática. Quedándose en fase de prototipo.

• La Máquina Analítica incluía un dispositivo de entrada, almacenamiento de datos, una unidad decontrol y dispositivos de salida. Quedándose en fase de diseño.

•Lugar y Fecha:• Inventado por el matemático y físico inglés Charles Babbage a mediados de 1800.

Historia de las Computadoras V

FCC-BUAP 19

Ada AugustaCondesa de Lovelace

[Considerada la primera

programadora de la historia.]

Historia de las Computadoras VI

FCC-BUAP 20

•Nombre:• LA MÁQUINA DE HOLLERITH

•Propósito:• Tabular de forma precisa datos de censos de Estados Unidos. Primera máquina en funcionar con

electricidad y uso de tarjetas perforadas para almacenar datos.

•Lugar y Fecha:• Inventado por Herman Hollerith a finales del siglo XIX, quien debido al éxito se su máquina fundó la

Tabulating Machine Company, que más tarde llego a ser la corporación de computadoras y tecnologíaconocida como IBM.

Historia de las Computadoras VII

FCC-BUAP 21

•Nombre:• MARK I

•Características:• Primera máquina-computadora de 52 pies de largo, 50 toneladas, 750,000 partes y que usaba tarjetas

perforadas

•Lugar y Fecha:• Construida por IBM en colaboración con la Universidad de Harvard bajo el liderazgo de Howard Aiken,

en 1944.

Historia de las Computadoras VIII

FCC-BUAP 22

•Nombre:• ENIAC (Electronic Numerical Integrator and Calculator)

•Características:• Contenía 18,000 tubos de vacío y pesaba 30 toneladas.

•Lugar y Fecha:• Construida en la Universidad de Pensilvania en 1946.

Arquitectura de von Neumann

FCC-BUAP 23

•A finales de los 40’s, John vom Neumann estableció las Reglas de Diseño que usan lascomputadoras que hoy en día conocemos.

Estos componentes hicieron posible el almacenamiento de datos e instrucciones de programación en el mismo espacio de memoria.

Equipamiento

de

Entrada/Salida

Unidad Aritmética y Lógica

Unidad de Control

Memoria

Principal

Historia de las Computadoras IX

FCC-BUAP 24

•Nombre:• UNIVAC (UNIversal Automatic Computer)

•Características:• Primera computadora comercial de uso no militar, con 7.250 kg de peso y 5000 tubos de vacío, tenía un

reloj interno a 2.25 Mhz de frecuencia y memorias de mercurio.

•Lugar y Fecha:• Construida por J. Presper Eckert y John William Mauchly en Estados Unidos en 1951.

Avances Tecnológicos I

FCC-BUAP 25

•En 1956, la invención de los transistores resultó en computadoras más pequeñas, más rápidas,más confiables y con mejor aprovechamiento de la energía.

•Esta era también marco el surgimiento de la industria de desarrollo de Software, con laintroducción de lenguajes como FORTRAN y COBOL, dos recientes lenguajes de programación.

•Para el siguiente gran avance tecnológico, los transistores fueron reemplazados por pequeñoscircuitos integrados o “chips”; más pequeños y baratos que los transistores, pero que podíancontener miles de circuitos. Esto le permitió a la computación una tremenda velocidad deprocesamiento.

Avances Tecnológicos II

FCC-BUAP 26

•En 1970, fue inventado el microprocesador (sobre un solo chip).

•En 1977, Stephen Wozniak y Steven Jobs construyen la primera computadora Apple en sugaraje.

•En 1981, IBM introduce su computadora personal (PC).

•En los 80’s, clones de IBM hacen más accesible la PC. En los 90’s, personas de varios sectoresfueron capaces de conseguir una.

Avances Tecnológicos III

FCC-BUAP 27

•Hoy en día, las computadoras son poderosas, fiables y fáciles de usar; aceptan comandos de voze imitan el razonamiento humano a través de la Inteligencia Artificial (IA). Por ejemplo:

a. Sistemas expertos que asisten a doctores realizando diagnósticos.

b. Aplicaciones móviles que son indispensables para la vida diaria.

c. Utilizando dispositivos móviles, los conductores de vehículos tienen acceso a Satélites de PosicionamientoGlobal (GPS)

d. Teléfonos inteligentes que permiten revisar e-mails, hacer reservaciones en aerolíneas, revisar disponibilidad delugares, acceder a cuentas bancarias, etc.

Lenguaje de una Computadora

FCC-BUAP 28

Conceptos de Software I

FCC-BUAP 29

•Software. Programas escritos para desempeñar una tarea específica (por ejemplo: procesadoresde textos). El software está escrito en algún leguaje de programación y se dividen en dos tipos:Programas de Sistema y Programas de Aplicación.

•Programas del Sistema. Se encargan de controlar a la computadora. El programa de sistema quese carga primero al encender una computadora se llama Sistema Operativo (SO).

•Programas de Aplicación. Realizan una tarea especifica. Procesadores de texto, hojas de cálculoy juegos son algunos ejemplos. El SO es el programa que ejecuta estos programas de aplicación.

Conceptos de Software II

FCC-BUAP 30

•Sistema Operativo. Monitorea toda la actividad de una computadora y proporciona servicios.Algunos de estos servicios incluyen manejo de: memoria, actividad de entrada/salida yalmacenamiento.

Señales eléctricas I

FCC-BUAP 31

•Dado que una computadora es un aparato electrónico, señales eléctricas son utilizadas paraprocesar la información dentro de esta.

•Existen dos tipos de señales eléctricas:

• Análogas. Señales continuas con formas ondulares para representar cosas tales como sonidos.

• Digitales. Señales que sólo toman valores de 0s y 1s para representar información. 0 representa bajovoltaje y 1 representa alto voltaje

Señales eléctricas II

FCC-BUAP 32

•Las señales digitales son mejores transportadoras de información que las señales análogas,además de que pueden ser COPIADAS de un dispositivo a otro con precisión exacta.

•Por ejemplo:

• Si alguna vez realizaste una copia de una cinta de audio, la calidad del sonido decrece y por lo tanto noes tan buena como la de la original.

• Por otro lado, cuando copias un CD, la copia es tan “buena” como la original. Esto dado que lascomputadoras utilizan señales digitales.

Señales eléctricas III

FCC-BUAP 33

Lenguaje Binario I

FCC-BUAP 34

•El lenguaje de una computadora, llamado lenguaje de máquina, es una secuencia de 1s y 0s.

•Los dígitos 1 o 0 se conocen como dígitos binarios o bits (Bit - Binary digit ).

•A veces a la secuencia de 0s y 1s se le refiere como código binario o número binario.

1 Bit = 1 digito binario (0 o 1)

Lenguaje Binario II

FCC-BUAP 35

•Se pueden obtener un NÚMERO determinado de combinaciones o ESTADOS, dependiendo delnúmero de bits que se manejen. Por ejemplo

Bits: 1Estados: 2

Bits: 2Estados: 4

Lenguaje Binario III

FCC-BUAP 36

•A la secuencia de ocho bits se le conoce como byte.

•Por lo que:

210 bytes = 1024 bytes = 1 kilobyte (kb)

•¿Cuántos bits hay en 1 kb?

Unidades Binarias

FCC-BUAP 37

Representación de datos I

FCC-BUAP 38

•Toda letra, número o símbolo especial (tales como * o {) presentes en el teclado de cualquiercomputadora está codificado como una secuencia de bits, cada uno con una representaciónúnica.

•El esquema de codificación más comúnmente usado en computadoras personales es el esquemade siete-bits (seven-bit) American Standard Code for Information Interchange (ASCII).

•El conjunto de datos ASCII consta de 128 caracteres (27) enumerados del 0 al 127. En esteesquema, la letra ‘A’ está codificada con el número binario 1000001; de hecho ‘A’ es el 66ºcarácter dentro del conjunto de datos ASCII por lo que su posición es la 65.

Representación de datos II

FCC-BUAP 39

•Dentro de una computadora, cada caracter es presentado como una secuencia de ocho bits, esdecir, un byte.

•Por lo tanto, la representación de ocho dígitos binarios para 65 es 01000001. Nótese que se haagregado un 0 a la izquierda de la representación de siete dígitos binarios.

•ASCII es un código de siete bits. Por lo tanto, para representar cada caracter ASCII dentro de unacomputadora es necesario convertir su representación de siete bits a una representación deocho bits.

Lenguajes de Programación: evolución I

FCC-BUAP 40

•El lenguaje más básico de una computadora, el lenguaje de máquina, proporciona instruccionesde programa en bits.

•Aunque la mayoría de computadoras realizan las mismas clases de operaciones, los diseñadoresde computadoras pueden elegir diferentes conjuntos de códigos binarios para realizar dichasoperaciones.

•Por lo tanto, el lenguaje de máquina de una computadora no necesariamente es el mismo queel lenguaje de máquina de otra.

Lenguajes de Programación: evolución II

FCC-BUAP 41

•Las primeras computadoras fueron programadas en lenguaje de máquina. Para entender cómotenían que ser escritas las instrucciones, considera la siguiente ecuación para calcular el salariosemanal:

salario = tarifa ∙ horas

•Ahora supón que el código binario 100100 representa la carga, 100110 representa lamultiplicación y 100010 representa el almacenamiento. En lenguaje de máquina se necesitaríala siguiente secuencia de instrucciones para calcular el salario semanal:

100100 010001

100110 010010

100010 010011

Lenguaje de Ensamblado I

FCC-BUAP 42

•Para representar la ecuación de salario semanal en lenguaje de máquina, el programador tieneque:

1. Recordar todos los códigos en lenguaje de máquina para las diferentes operaciones.

2. Recordar la ubicación de los datos en memoria principal, para su manipulación.

• Esto por si mismo no sólo es complicado, sino además propenso a errores.

•Los Lenguajes de Ensamblado fueron desarrollados para hacer el más fácil el trabajo delprogramador. En lenguaje de ensamblado, una instrucción tiene una forma más fácil derecordarse llamada mnemónico.

Lenguaje de Ensamblado II

FCC-BUAP 43

Ejemplos de instrucciones en Lenguaje de Ensamblado y Lenguaje de Máquina

•Usando estas instrucciones, puedes re-escribir la ecuación del salario semanal como sigue:LOAD rate

MULT hours

STOR wages

Lenguaje de Ensamblado III

FCC-BUAP 44

•Como se pudo ver, resulta mucho más fácil escribir instrucciones en Lenguaje de Ensambladoque en Lenguaje de Máquina. Sin embargo, una computadora NO puede ejecutar instruccionesen ensamblado directamente.

•Un programa llamado Ensamblador traduce las instrucciones en Lenguaje de Ensamblado aLenguaje de Máquina. De aquí que se le conozca como Lenguaje Ensamblador.

•Aún cambiando de Lenguaje de Máquina a Lenguaje Ensamblador, el programador todavía se veforzado a pensar en términos de instrucciones de máquina individuales.

Lenguajes de Alto Nivel

FCC-BUAP 45

•El siguiente paso para hacer la programación más sencilla fue idear Lenguajes de Alto Nivel, quefueran lo más parecidos al Lenguaje Natural, tal como el Inglés, Francés, Alemán y Español.

•Basic, FORTRAN, COBOL, Pascal, C, C++, C# y Java son los lenguajes de alto nivel más utilizados yconocidos. En este curso tu aprenderás a programar en C++.

•En C++, puedes escribir la ecuación del salario semanal como sigue:wages = rate * hours;

Características básicas de C++

FCC-BUAP 46

◦ Las instrucciones escritas en C++ son mucho más fáciles de entender.

◦ Incluso para un usuario novato, el uso de la aritmética le resulta familiar.

◦ Así como sucede con el Lenguaje Ensamblador, una computadora no puede ejecutar instrucciones enLenguaje de Alto Nivel de forma directa

◦ Para que las instrucciones en C++ se ejecuten sobre una computadora, primero deben ser traducidas aLenguaje de Máquina

◦ Un compilador, es un programa que traduce instrucciones escritas en un lenguaje de alto nivel a suequivalente en lenguaje de máquina.

Actividades1. Investigar:

◦ En el contexto de computación, qué es un IDE.

◦ Cuales son los 5 IDE más utilizados para programar en C++

2. Visita la URL oculta en el código QR siguiente.i. Inspecciona la página y regístrate.

ii. Responde a las siguientes preguntas en tu libreta:◦ ¿Qué es Scratch?

◦ ¿Cuál es su propósito?

◦ ¿Quién o quienes lo desarrollaron?

FCC-BUAP 47

“Aprender a programar, programar para aprender”Mitchel Resnick

FCC-BUAP 48