¿Por qué aprender a programar?

¿Por qué aprender a programar? (I)

  • Cambio del papel de usuario
  • Solo usa (leer)
  • También crea (escribir)

Programar ….Te hace más libre

¿Por qué aprender a programar? (II)

  • Desarrolla habilidades
  • Razonamiento abstracto,
  • Capacidad de resolución de problemas,
  • Análisis de soluciones
  • Organización de ideas
  • Sistematización de procesos

¿Por qué aprender a programar? (III)

  • Razonamiento lógico
  • Organización y estructuración de la información
  • Capacidad de trabajo colaborativo
  • Pensamiento creativo, invención
  • Capacidad de emprendimiento

No es un fin en sí mismo sino una herramienta

Todos deberían aprender a programar

Software Libre, Sociedad Libre

Pensamiento Computacional

¿Qué es el pensamiento computacional?

  • Pensar con ideas y datos…
  • …combinarlos con la ayuda de las TIC…
  • …y de esta forma resolver problemas

¿Qué es el pensamiento computacional?

El pensamiento computacional describe la actividad mental de formular un problema para que admita una solución computacional. La solución puede llevarla a cabo un ser humano, una máquina o, de manera más general, una combinación de seres humanos y máquinas.

Capacidad de Interactuar con las máquinas para resolver problemas Nueva competencia a desarrollar

Características del Pensamiento Computacional

El Pensamiento Computacional es un proceso de solución de problemas que incluye (pero no se limita a) las siguientes características:

  • Formular problemas de manera que permitan usar computadores y otras herramientas para solucionarlos
  • Organizar datos de manera lógica y analizarlos
  • Representar datos mediante abstracciones, como modelos y simulaciones 
  • Automatizar soluciones mediante pensamiento algorítmico (una serie de pasos ordenados
  • Identificar, analizar e implementar posibles soluciones con el objeto de encontrar la combinación de pasos y - recursos más eficiente y efectiva
  • Generalizar y transferir ese proceso de solución de problemas a una gran diversidad de estos

Dimensiones esenciales del Pensamiento Computacional.

  • Confianza en el manejo de la complejidad
  • Persistencia al trabajar con problemas difíciles
  • Tolerancia a la ambigüedad
  • Habilidad para lidiar con problemas no estructurados
  • Habilidad para comunicarse y trabajar con otros para alcanzar una meta o solución común

Que es un programa?

  • Instrucciones -> para que un ordenador -> pueda resolver un problema
  • Esquema básico de un programa: ->1. Entrada de datos.->2. Algoritmo.->3. Salida de datos
  • Algoritmo: instrucción o conjunto de instrucciones que, ejecutadas una tras otra, nos permiten obtener la solución a un problema

Programar es resolver problemas

Ejemplo: lavar los dientes.

  1. Destapar el tubo de pasta dental.
  2. Coger el cepillo.
  3. Poner un poco de pasta en el cepillo.
  4. Tapar el tubo de pasta dental.
  5. Frotar los dientes con el cepillo.
  6. Abrir el grifo.
  7. Enjuagar la boca varias veces.
  8. Cerrar el grifo.
  9. Dejar el cepillo en su sitio. 10.Secarse las manos y la cara.

Ejemplo

Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de Estadística!!), ¿qué debe hacer el estudiante?

Solución

Ejercicio

Cambiar la rueda pinchada de un automóvil teniendo un gato mecánico en buen estado, una rueda de reemplazo y una llave inglesa.

R

Objetivos

  • Exponer las ventajas y desventajas de R
  • Definir y mostrar algunos comandos y operaciones básicas.
  • Realizar una practica donde se evidencien las bondades de R

Qué es R?

R es un entorno de software libre para el cálculo estadístico y gráficos. Fue creado por Ross Ihaka Y Roger Gentleman de la Universidad de Aukland, Nueva Zelanda.En la actualidad, cuenta con más de dos millones de usuarios en todo el mundo, y es es uno de los proyectos de código abierto más populares. R es un software para manipulación de datos, cálculos y representación gráfica de estos.

Qué es R? (II)

Más específicamente permite hacer:

  • Una efectiva manipulación y almacenamiento de los datos.
  • Permite realizar fácilmente cálculos sobre vectores y matrices.
  • Es un basto, coherente e integrado conjunto de herramientas para análisis de datos de todo tipo (Series de tiempo, espaciales, longitudinales, muestrales …).
  • Permite fácilmente graficar los análisis de los datos y guardar las gráficas.
  • Es un lenguaje que permite escribir estructuras de selección e iteración, definir funciones en particular recursividad.

Qué es R? (III)

actualmente, R es el lenguaje más utilizado en investigación estadística.

Los grandes atractivos de R son:

  • Madurez.
  • La capacidad de combinar análisis "preempaquetados" (ej.: una regresión logística) con análisis ad-hoc, específicos para una situación: capacidad de manipular y modificar datos y funciones.
  • Los gráficos de alta calidad (visualización de datos y producción de gráficos para "papers").

Qué es R? (IV)

Contiene estadísticas avanzadas que aún no se encuentran disponibles en otros programas privativos.

Para los no iniciados R provee un acceso relativamente sencillo a una amplia variedad de técnicas estadísticas. Para los usuarios avanzados se ofrece un lenguaje de programación completo con el que se puede añadir nuevas técnicas mediante la definición de funciones.

Razones para usar R

R es la herramienta líder en estadística, análisis de datos y aprendizaje automático. Es más que un paquete estadístico, es un lenguaje de programación, as que usted puede crear sus propios objetos, funciones y paquetes.

Razones para usar R (II)

¡Es Libre!

  • R es la implementación GNU de S. Filosofa y objetivos del proyecto GNU ://www.gnu.org R se distribuye con licencia GNU GPL o General Public ://www.gnu.org/licenses/gpl.html.
  • La GPL no pone ninguna restricción al uso de R, restringe su distribución (ha de ser GPL).

Razones para usar R (III)

Multiplataforma

  • Usted puede utilizarlo en cualquier lugar. Es independiente de la plataforma, para que pueda ser usado en cualquier sistema operativo.

  • Se compila y se ejecuta en una amplia variedad de plataformas UNIX, GNU/Linux, Windows y MacOS.

Razones para usar R (IV)

Lenguaje

  • Es un lenguaje orientado a objetos: Esto significa que virtualmente todo se puede almacenar como objeto de R. Cada objeto tiene una clase. Esta clase describe lo que contiene el objeto y lo que hace cada función con ella. Por ejemplo, \(plot(x)\) no produce la misma salida si x es el resultado de una regresión o de un vector.

  • Libertad para combinar métodos de análisis: (pues se puede acceder a los objetos creados en cualquier paso intermedio), para repetir resultados, y le permite ser y Reutilizable.

Razones para usar R (V)

  • Similar: Se parece a Matlab y a Octave, y su sintaxis recuerda a C/C++.

  • Sintaxis sistemática, cualidad que no poseen otros programas estadísticos como SAS o STATA.

Desarrollo estadístico

Hablando de paquetes, hay más de 2.000 de vanguardia, éstos son contribuciones de usuarios y se encuentran disponibles el repositorio de R http://cran.r-project.org/. Para tener una idea de lo que los paquetes que están disponibles, basta revisar en Task Views. Muchos paquetes son enviados por miembros destacados de sus respectivos campos.

Comunidad

La comunidad de R es muy dinámica (gran crecimiento del número de paquetes) e integrada por estadísticos de gran renombre (ej.: J. Chambers, L. Terney, B. Ripley, D. Bates, etc.). Hay extensiones especificas a nuevas reas (bioinformática, geoestadística, modelos gráficos).

Las listas de correo proporcionan acceso a muchos usuarios a autores de paquetes, que son expertos en sus respectivos campos. Además, hay varias conferencias de R cada año.

Integración

R le permite integrar con otros lenguajes (C / C + +, Java, Python, Perl) y le permite interactuar con muchas fuentes de datos: bases de datos compatibles con ODBC (MySQL,POSTGRES,Open Office, Excel, Access) y otros paquetes estadísticos (SAS, Stata, SPSS, Minitab).

Visualización de datos y gráficas

  • Permite elaborar gráficos de gran calidad y de gran versatilidad.

  • Podemos ejecutar el siguiente comando a fin de ojear algunos de los gráficos disponibles:

demo("graphics")

Ejemplo

Taller