Want to make creations as awesome as this one?

Material interno de trabajo del Equipo de SdF - Nivel medio

Transcript

Pensamiento Computacional

InTec

ADELANTE

El pensamiento computacional permite el desarrollo, entre otras, de las siguientes Habilidades:

ADELANTE

1. Creatividad e innovación.

2. Aprendizaje y juego.

3. Comunicación y colaboración.

4. Exploración y representación de lo real.

5. Participación responsable y solidaria.

6. Pensamiento crítico.

7. Uso autónomo de las TIC.

La programación y el pensamiento computacional, ¿son lo mismo?

InTec

SI

NO

#Programar Proceso de diseñar y escribir una secuencia de instrucciones en un lenguaje que pueda ser entendido por una computadora.

#Pensamiento computacional Proceso de resolución de problemas que se vale de la organización lógica y el análisis de datos. Posibilita el uso de una computadora u otro recurso para resolverlos. .

SEGUIR

Es importante, ya que...

Info

Así, tanto la programación como el pensamiento computacional resultan relevantes para el aprendizaje. Es importante tener en cuenta que en estos campos de conocimientos confluyen tanto la lógica y la abstracción como la posibilidad de expresión y la creatividad, además de la ambigüedad, ya que existen varios modos de resolver un problema y algunos, incluso, nunca alcanzan a resolverse totalmente. Al convertir el pensamiento en objeto mediante procedimientos, algoritmos y estructura de datos, el conocimiento personal se hace público y puede ser compartido con otros.

InTec

SEGUIR

¿Por qué dar Programación y pensamiento computacional en la escuela?

Marco Normativo

Ley Educación Nacional 26206 [...] generar las condiciones pedagógicas para el manejo de las TIC, y el desarrollo de las capacidades necesarias para la comprensión y utilización inteligente y crítica, de nuevos lenguajes producidos… Enlace

Resolución del CFE 263/15 [...] la enseñanza y el aprendizaje de la “Programación” es de importancia estratégica en el Sistema Educativo Nacional durante la escolaridad obligatoria, para fortalecer el desarrollo económico-social de la Nación. Incluye saberes necesarios para poder formular soluciones efectivas y sistemáticas a diversos tipos de problemas lógicos. Enlace

Resolución del CFE 343/18 Aprobó los Núcleos de Aprendizajes Prioritarios de Educación Digital, Programación y Robótica, incluyendo así estas áreas en la enseñanza obligatoria. Enlace

Agenda 2030 para el Desarrollo Sostenible aprobada por la ONU “la expansión de las tecnologías de la información y las comunicaciones y la interconexión mundial brinda grandes posibilidades para acelerar el progreso humano, superar la brecha digital y desarrollar las sociedades del conocimiento”.

¿Por qué aprender a programar?

InTec

SEGUIR

¿Por qué todos tienen que aprender a programar?

Todo el mundo debería saber programar

¿Programar o ser Programados? (Charla TED)

Pensamiento computacional es:

InTec

PROCESO

CONTENIDO

FORMA DE PROGRAMAR

Intenta con otra opción

Intenta con otra opción

SEGUIR

El pensamiento computacional es un proceso en el cual se lleva a cabo la resolución de un problema. Se puede utilizar para resolver problemas cotidianos; permite tener una nueva perspectiva, y llevar a cabo diferentes soluciones que no son fácilmente consideradas por otras personas.

eTAPAS

InTec

Descomposición Consiste en el procedimiento por el cual un problema de mayor complejidad se desarticula en series pequeñas (más manejables).

Reconocimiento de Patrones Luego de la desarticulación del problema complejo, las series pequeñas son enfrentadas de forma individual. Esto permite que puedan ser resueltas de forma similar a problemas frecuentados anteriormente.

Abstracción Despejar la información irrelevante y analizar, en forma lógica, el problema.

Algoritmos Se presentan pasos para la resolución del problema.

InTec

SEGUIR

¿Que es un Algoritmo?

Es un conjunto de instrucciones o reglas bien definidas, ordenadas y finitas, que no presentan ambigüedades; que permiten llevar a cabo una actividad para la resolución de problemas.

DesafÍo

¿Es un algoritmo? ¿Tiene reglas bien definidas, ordenadas y finitas, que no presenten ambigüedades; que permiten llevar a cabo una actividad para la resolución de problemas? Si una sola condición no se da, no es un algoritmo. Receta para cocinar pasta:

  1. Primero se pone a calentar media olla de agua.
  2. Después, se echa una pizca de sal.
  3. Luego, se incorpora la pasta al agua.
  4. Se cocina hasta que esté a punto.
  5. Se cuela y se sirve.

Empecemos...

InTec

ADELANTE

Desafío Desenchufado

InTec

ADELANTE

Utilizando SOLO Primitivas te invitamos a escribir la secuencia (PROGRAMA) para resolver ese recorrido.

Las órdenes básicas de un lenguaje de programación es lo que se conoce como PRIMITIVAS. Luego éstas se combinan para generar nuevas estructuras o instrucciones agregando valores o datos. Ejemplo:

  • Primitiva AVANZAR, valor 10 → Instrucción AVANZAR 10

Avanzamos un nivel... Jugando

InTec

ADELANTE

Te iinvitamos a jugar... registrá las secuencias lógicas que te gustaron.

ICONO 2

Puedes escribir un subtítulo aquí

ICONO 3

Puedes escribir un subtítulo aquí

ICONO 4

Puedes escribir un subtítulo aquí

Ahora las dos cosas...

InTec

ADELANTE

Resolvemos el desafío del ratón y dibujamos la secuencia

ICONO 4

Puedes escribir un subtítulo aquí

Ayuda al ratón a salir del laberinto. La cantidad de casillas que debe avanzar son 14. La forma del laberinto varía siempre - debemos usar condicionales y repeticiones

Recoda el desafió de las primitivas

¿Que bloques utilizaste?

Crear un diagrama del proceso...

Creamos nuestro propio Diagrama de Flujo

InTec

ADELANTE

¿Qué es?

¿Qué me permite?

¿Con qué?

Un diagrama de flujo: Ayuda a solucionar un problema de forma estructurada. Nos va a permitir describir gráficamente un proceso, de manera que podemos comprobar de un golpe de vista si hemos cubierto todos los caminos (soluciones) que ese proceso puede tomar. Un buen diseño de diagrama de flujo tendrá como resultado una buena automatización (programación en cualquier lenguaje).

Me permite: No solo nos permitirá avanzar en los primeros pasos de programar, sino que aportará lógicas de resolución de problemas y definición de variables de resolución, de la manera más natural posible.

PSeInt es una software libre que permite a los/as estudiantes avanzar en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje «o pseudocódigo» en español (complementado con un editor de diagramas de flujo), permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos. Enlace

Nuestro Laberinto en un diagrama

Comparación con el lenguaje visual

Lenguaje visual...

InTec

ADELANTE

¿Sabés qué es el lenguaje de programación visual (bloques)?

La programación Visual o en bloques es un software (o página web) el cual nos permite realizar un programa mediante el uso de sencillas y muy básicas conexiones de gráficas, haciendo uso de la gran variedad de herramientas que este nos ofrece. Los bloques son piezas que contienen ciertos códigos, en un orden determinado, y esos bloques admiten cambiar valores para anidar otros bloques en variables o huecos, y así se van colocando según las necesidades de lo que queremos programar. Scratch es el marco de todos los lenguajes de programación visual (emblocados) de este se crearon y basaron múltiples lenguajes web y off line con la misma forma, muchas veces no hay diferencia a simple vista como con mBlock. Algunos de esos lenguajes son propios de algunas aplicaciones o robot o placas y otros son genéricos.

Scratch Es un lenguaje de programación visual desarrollado por el MIT Media Lab. Su principal característica consiste en que permite el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin tener conocimientos profundos sobre el código. Enlace

mBlock Es un entorno gráfico de programación basado en el editor Scratch 2.0 para introducir la robótica de forma sencilla y enseñar a programar robots basados en Arduino. La interfaz es muy amigable e intuitiva. Usa bloques previamente definidos para dar órdenes al robot y si sabes programar también podrás sacarle todo el partido con el entorno de Arduino. Enlace

miniBloq Es un entorno de programación gráfica de código abierto para robot Multiplo, Arduino, dispositivos de computación física y robots. Enlace

Snap! Toma todo lo bueno de Scratch y añade nuevas y potentes mejoras que hace que este lenguaje visual sea un importante candidato para ser utilizado en cualquier ámbito, incluso educativo. Su manejo es muy sencillo, seguimos teniendo bloques de instrucciones que pueden ser arrastrados y agrupados a modo de puzzle para crear un programa, pero se añaden nuevas funcionalidades muy interesantes. Enlace

Ardublock Es una herramienta gráfica para programar cualquier Arduino. Se compone de varios bloques que puedes arrastrar y enlazarlos entre ellos como si fueran piezas de un puzzle para confeccionar el flujo de acciones de tu programa. Enlace

Desafíos con Bloques

InTec

ADELANTE

¿Podés lograr que el bichito recorra el laberinto?

La programación Visual o en bloques es un software (o página web) el cual nos permite realizar un programa mediante el uso de sencillas y muy básicas conexiones de gráficas, haciendo uso de la gran variedad de herramientas que este nos ofrece. Los bloques son piezas que contienen ciertos códigos, en un orden determinado, y esos bloques admiten cambiar valores para anidar otros bloques en variables o huecos, y así se van colocando según las necesidades de lo que queremos programar. Scratch es el marco de todos los lenguajes de programación visual (emblocados) de este se crearon y basaron múltiples lenguajes web y off line con la misma forma, muchas veces no hay diferencia a simple vista como con mBlock. Algunos de esos lenguajes son propios de algunas aplicaciones o robot o placas y otros son genéricos.

Documento para crear la grilla Enlace

Otro ejemplo con una plantilla que nos hace el laberinto con forma aleatoria. Enlace (descarga)

Posible solución al recorrido en Scratch. Enlace (descarga)

Programación por Código...

InTec

ADELANTE

¿Sabés qué significa programar con Código?

El código de un programa es un conjunto de líneas de texto con los pasos que debe seguir la computadora para ejecutar un programa a través de palabras reservadas (instrucciones que el lenguaje en cuestión entiende) Son múltiples los lenguajes de programación y fueron evolucionando y muchos son específicos para determinadas tareas o áreas; algunos tienen mayores complejidades que otros pero se pueden dividir en Lenguajes Estructurados y No Estructurados. Hoy en día es necesario poder trabajar de forma simple y sencilla necesitamos usar lenguajes estructurados. La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y tres estructuras básicas: secuencia, selección (if y switch) e iteración (bucles for y while) Como progresión a los lenguajes emblocados y en relación con el pensamiento de programación y robótica, los lenguajes sugeridos y su nivel de dificultad sería Processing, Arduino y Python. En medio de esta secuencia, no descartemos C++ del cual se desprenden o son base de estos.

Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Uno de los objetivos declarados de Processing es el de actuar como herramienta para que artistas, diseñadores visuales y miembros de otras comunidades ajenos al lenguaje de la programación, aprendieran las bases de la misma a través de una muestra gráfica instantánea y visual de la información. El lenguaje de Processing se basa en Java, aunque hace uso de una sintaxis simplificada y de un modelo de programación de gráficos. Enlace

Arduino es una compañía de desarrollo de software y hardware libre, así como una comunidad internacional que diseña y manufactura placas de desarrollo de hardware para construir dispositivos digitales y dispositivos interactivos que puedan detectar y controlar objetos del mundo real. Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multidisciplinarios. Enlace

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos. Es un lenguaje interpretado, dinámico y multiplataforma. Posee una licencia de código abierto. Enlace

Desafíos con Processing

InTec

ADELANTE

¿Podés lograr que el círculo recorra el laberinto?

La programación Visual o en bloques es un software (o página web) el cual nos permite realizar un programa mediante el uso de sencillas y muy básicas conexiones de gráficas, haciendo uso de la gran variedad de herramientas que este nos ofrece. Los bloques son piezas que contienen ciertos códigos, en un orden determinado, y esos bloques admiten cambiar valores para anidar otros bloques en variables o huecos, y así se van colocando según las necesidades de lo que queremos programar. Scratch es el marco de todos los lenguajes de programación visual (emblocados) de este se crearon y basaron múltiples lenguajes web y off line con la misma forma, muchas veces no hay diferencia a simple vista como con mBlock. Algunos de esos lenguajes son propios de algunas aplicaciones o robot o placas y otros son genéricos.

Documento para crear la grilla Enlace

Posible solución al recorrido en Processing. Enlace (descarga)

Otro ejemplo con un plantilla que nos hace el laberinto con forma aleatoria Enlace (descarga)

Jugamos Con Python

InTec

ADELANTE

Ejemplos de juegos on-line que te enseñarán a usar Python

A través del juego, irán apareciendo conceptos computacionales sin hablar de “programación” en forma directa:

  • Secuenciamos instrucciones para resolver un problema (algoritmo).
  • Utilizaremos procedimientos agrupando instrucciones.
  • Descomponemos problemas en acciones más acotadas.
  • Seguramente deberemos corregir de errores.
Todos estos son recursos lógico-matemáticos. La interacción con el juego permite descubrir que no hay una única solución correcta, una de las premisas de la programación

¿Listo para crear un juego aún más fresco? Póngase al día con conceptos avanzados de programación, como funciones y eventos, usando Python o JavaScript, ¡luego usá esas habilidades para construir tu propio juego de supervivencia arcade! CodeCombat

Aprende a codificar y resolver problemas guiando a Karel el Robot a través de junglas, montañas y desiertos. Karel sigue tus instrucciones, como un robot real. Comience a programar con comandos simples como ir, obtener y poner. A continuación, aprenderás a construir bucles y condiciones de repetición en tus programas. Finalmente, define los comandos personalizados para Karel. ¡Puedes crear tus propios juegos con la aplicación de NCLab! Diviértete mientras aprendes habilidades que puedes usar en cualquier lenguaje de programación. NCLab Karel HOC

Codifique un mensaje y verifique la temperatura del aire ambiente a bordo de la ISS utilizando un simulador en línea del Sense HAT de la computadora Astro Pi. Astro Pi: Mission Zero

El Plano de Coordenadas En esta lección exploran los cuatro cuadrantes del plano de coordenadas. ¡Usan Python y nuestro kit de herramientas de arrastrar y enviar texto para enviar un sprite a varios lugares en el escenario! Hay actividades de demostración y depuración incluidas para ayudar a sentirse cómodos/as navegando en el plano de coordenadas. Plano de coordenadas

Gráficos de tortuga en Python Python es un lenguaje atractivo y simple de aprender. Aprende sobre el uso de módulos, funciones, bucles y listas, todo mientras creas imágenes divertidas con la ayuda de tus amigos tortuga. ¡La geometría nunca ha sido tan divertida! Intro Turtle Graphics

Bonus

InTec

ADELANTE

Desafio en APP Inventor

A través del juego, irán apareciendo conceptos computacionales sin hablar de “programación” en forma directa:

  • Secuenciamos instrucciones para resolver un problema (algoritmo).
  • Utilizaremos procedimientos agrupando instrucciones.
  • Descomponemos problemas en acciones más acotadas.
  • Seguramente deberemos corregir de errores.
Todos estos son recursos lógico-matemáticos. La interacción con el juego permite descubrir que no hay una única solución correcta, una de las premisas de la programación

Enlace para modificar y explorar programación

Enlace para instalar en el celular

¡¡¡¡Gracias!!!!

InTec

@mediaintecsf