Introducción a análisis de datos en Python Diego Fernández Slezak (Depto. Comptación, FCEyN, UBA) dfslezak@dc.uba.ar http://www.dc.uba.ar/materias/intro-datos/2016-uy/
Qué es Data Science?
Qué tareas realiza un Data Scientist? Modelado / Estadística / Análisis Dataset Raw Data Pre-processing Machine Learning / Predicciones
Qué habilidades requiere un Data Scientist? Hacer la pregunta correcta Saber interpretar los datos Entender la estructura de los datos
Pero, antes......saber PROGRAMAR
Popurrí de Ciencias de la Computación
Al comienzo, sólo había oscuridad... hasta que se hizo la luz. Alan Turing En 1936, escribe On Computable Numbers, with an Application to the Entscheidungsproblem - Decision Problem en Proceedıngs of the London Mathematıcal Socıety. Creó una máquina imaginaria (porque aún no se había construido) llamada máquina universal de cómputo ( universal computing machine ). Konrad Zuse también tenía avances muy fuertes en el tema de máquinas programables en 1936, pero no es tan conocido. Fundamentalmente por... haber quedado en el bando perdedor!
Historia de las computadoras Generación Años Características 0 hasta 1945 Sistemas mecánicos y electro-mecánicos 1 1945-1954 Tubos de vacı o (válvulas), tableros 2 1955-1965 Transistores y sistemas batch (por lotes) 3 1965-1980 Circuitos integrados 4 desde 1980 VLSI - Computadores personales y super computadoras
Generación 0: máquina de Babbage (1822)
El Bug Grace Hooper: popularizó el nombre Bug. Escribió en su cuaderno de trabajo Relé #70 Panel F polilla en Relé. Primer caso real de bug encontrado. También se la conoce como Amazing Grace : El destructor americano USS Hopper y la supercomputadora Cray XE6 Hopper fueron nombradas por ella.
Generación 1: ENIAC (1946) ENIAC: Electronic Numerical Integrator and Computer. John Mauchly y J. Presper Eckert (Pennsylvania). Primera computadora exitosa de propósito general. Se programaba cableando : manualmente mediante switches. Construida entre 1943-1946 para calcular trayectoria de misiles......pero se terminó tarde... Von Neumann participó de las últimas etapas del proyecto. Se usó hasta 1955.
ENIAC Decimal (no binaria). 20 acumuladores de 10 dı gitos. 18000 válvulas, 30 toneladas, 2,4 x 30 metros 140 kw de consumo (computadora actual: entre 100 y 200 W). 5000 adiciones por segundo, 500 Flops.
John Von Neumann 1903-1957. Dr. en Matemática y Quı mica. A fines de la década de 1920 se suma a la Universidad de Princeton. Hizo aportes en Física, Matemática, Computación, Economía, Estadística... Y participó del Proyecto Manhattan. Antes: programar era conectar cables Los datos y programas se almacenan en una misma memoria de lectura-escritura. Los contenidos de esta memoria se direccionan indicando su posición sin importar su tipo. Ejecución en secuencia (salvo que se indique lo contrario).
Generación 2: Transistores FORTRAN: FORmula TRANslator (1957)
Generación 3 y 4: modernidad En 1968 Andy Grove, Robert Noyce y Gordon Moore fundan Intel. En 1970, en Bell Labs desarrollan el sistema operativo Unix basándose en las ideas de otro sistema operativo pionero: Multics. En 1972, Dennis Ritchie y Brian Kernighan, también en Bell Labs, crean el lenguaje de programación C. En 1976 Steve Jobs y Steve Wosniak fundan Apple. En 1975 Bill Gates y Paul Allen fundan Microsoft. http://www.computerhistory.org http://www.intel.com http://www.ibm.com/ibm/history http://www.dec.com
Modelo de von Neumann Se compone de cuatro partes principales: a. Memoria b. Unidad de Control c. Unidad aritmética lógica d. Componentes de entrada/salida (input/output) Memoria de acceso aleatorio de lectura y escritura para instrucciones y datos. Los datos son información almacenada que es usada e interpretada por el programa (o programador). Los programas son datos codificados que indican a la computadora qué tiene que hacer. La unidad de control consigue las instrucciones y datos de la memoria, decodifica las instrucciones y luego coordina las distintas tareas para que las operaciones se realicen. La unidad aritmética se encarga de las operaciones básicas entre números enteros. Los componentes de entrada/salida son la comunicación con el universo de los humanos
Ciclo de instrucción
Cómo son las intrucciones en procesadores reales? Programa de ejemplo: ld r0. 0xFFAB ld r1. [b] add r2, r0, r1 ld r3, [c] mul r4, r2, r3 sto [b], r4
Historia Definiciones: Bug Resumen Modelo de Von Neumann Compilación / Código máquina Ciclo de instrucción