0% encontró este documento útil (0 votos)
56 vistas42 páginas

PC - Sesión 1

El documento presenta un curso sobre pensamiento computacional, destacando su importancia como habilidad universal aplicable en diversas disciplinas. Se abordan conceptos clave como descomposición, reconocimiento de patrones, abstracción y algoritmos, que son fundamentales para resolver problemas de manera efectiva. Además, se menciona la relevancia del pensamiento computacional en la educación y su impacto en el desarrollo de tecnologías modernas.

Cargado por

Lucho Chang
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas42 páginas

PC - Sesión 1

El documento presenta un curso sobre pensamiento computacional, destacando su importancia como habilidad universal aplicable en diversas disciplinas. Se abordan conceptos clave como descomposición, reconocimiento de patrones, abstracción y algoritmos, que son fundamentales para resolver problemas de manera efectiva. Además, se menciona la relevancia del pensamiento computacional en la educación y su impacto en el desarrollo de tecnologías modernas.

Cargado por

Lucho Chang
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

Maestría en Administración con


Especialización en Innovación y
Gestión de la Ciencia y Tecnología

Curso: Pensamiento
computacional

Docente: Juan Manuel Machuca

Sesión N° 1: Principios de pensamiento


computacional

2024
2

Pensamiento computacional (RAE)


• Pensar
– Formar o combinar ideas o juicios en la mente
• Cómputo
– Cálculo o cuenta
• Informática
– Conjunto de conocimientos científicos y técnicas que hacen posible
el tratamiento automático de la información por medio de
computadoras.
3

Pensamiento computacional

• El pensamiento computacional consiste en la resolución de


problemas, el diseño de los sistemas, y la comprensión de la
conducta humana haciendo uso de los conceptos
fundamentales de la informática.

Acuña Zúñiga, A. L. (2022). Robótica educativa y pensamiento


computacional. Quintaesencia, 9.
[Link]
4

Pensamiento computacional

• Proceso a través del cual un individuo, haciendo uso de


diversas habilidades, como pensamiento crítico, razonamiento
matemático, pensamiento algorítmico, pensamiento lateral,
etc., logra generar soluciones creativas a problemas cotidianos
de la manera más general, no sólo aquellos que tienen que ver
con el uso de computadoras.
Hoyos-Rivera, G.-J., & Hernández-Hernández, J.-C. (2024).
Pensamiento computacional y ChatGPT. Revista EIA, 21(42).
[Link]
5

Pensamiento computacional

• El proceso de pensamiento computacional nos permite abordar


cualquier problema que se nos presente con propósito y enfoque.
No importa cuál sea el problema, podemos descomponerlo,
encontrar patrones que nos ayuden a encontrar soluciones,
generalizar nuestras soluciones y diseñar algoritmos que nos
puedan ayudar a proporcionar soluciones a los problemas.
De Jesús, S., & Martinez, D. (2020). Applied
Computational Thinking with Python: Design algorithmic
solutions for complex and challenging real-world problems.
Packt Publishing Ltd.
6
7

Video (18 minutos)

[Link]
8

Unidades
9

Unidades

Principios de pensamiento computacional

Exploración y visualización

Aplicación de algoritmos supervisados

Aplicación de algoritmos no supervisados


10

Origen
• Concepto propuesto por Jeannette M.
Wing en la revista COMMUNICATIONS
OF THE ACM de marzo del 2006,
profesora del departamento de
Ciencias de la Computación en
Carnegie Mellon University.
• Representa una actitud y conjunto de
habilidades universalmente aplicables
que todos, no solo los científicos
informáticos, estarían deseosos de
aprender y utilizar.
11

Conceptos iniciales
• Los puntos más relevantes de su visión:
– Habilidad Universal
• El pensamiento computacional debe ser considerado una habilidad universal, al igual que la lectura, la escritura y la aritmética. En su opinión, todos
deberían aprenderlo, ya que proporciona herramientas mentales para abordar problemas de cualquier ámbito de manera lógica y eficiente.
– Más Allá de la Programación
• Se trata de aplicar principios de la computación a la vida cotidiana y a diversas disciplinas, como la ciencia, la ingeniería, las humanidades e incluso las artes.
– Proceso de Resolución de Problemas
• El pensamiento computacional implica una serie de procesos para resolver problemas de manera eficiente:
• Descomponer problemas complejos.
• Abstraer para centrarse en lo esencial.
• Reconocer patrones para reutilizar soluciones existentes.
• Desarrollar algoritmos para resolver los problemas paso a paso.
– Aplicación en la Educación
• Prepara a los estudiantes para pensar de manera más crítica, estructurada y creativa.
– Impacto Social y Futuro
• Forma parte del desarrollo de tecnologías como la inteligencia artificial, la automatización y la ciencia de datos. Además, fomenta la innovación y permite a
las personas comprender mejor el mundo digital.
12

Componentes Principales
• 1. Descomposición
• 2. Reconocimiento de Patrones
• 3. Abstracción
• 4. Algoritmos
13

Componentes
Wing, J. (2006). Computational Thinking
Bordignon y Iglesias. (2020). Introducción al pensamiento computacional
14

1. Descomposición
• Dividir un problema grande en partes más pequeñas para
gestionarlo de forma más eficaz:
– Se debe identificar las partes de algo
– Se debe dividir esas partes en partes más pequeñas
• Por ejemplo “calcular la suma de los números A y B” implica varias
actividades:
• Averiguar el valor de A
• Averiguar el valor de B
• Realizar la operación aritmética
• Comunicar el resultado
15

2. Reconocimiento de Patrones
• Identificar similitudes en los problemas que ayudan a
simplificar su resolución.
• Consiste en pensar en generalizaciones
• Por ejemplo:
– Para alimentar al perro hay que poner la comida en el plato del perro.
– Para alimentar al gato hay que poner la comida en el plato del gato.
La generalización sería:
– Para alimentar <X> hay que poner la comida en el plato del <X>
16

2. Reconocimiento de Patrones
• Es más fácil resolver los problemas cuando comparten
patrones cuando anteriormente se han resuelto problemas
similares.
• Requieren de experiencia previa.
• El objetivo es observar las partes descompuestas de un
problema y unirlas, sin que necesariamente permanezca el
orden original.
17

3. Abstracción
• Eliminar detalles irrelevantes y centrarse en los aspectos
esenciales del problema.
• La idea central está en los grandes rasgos.
18

4. Algoritmos
• Es una secuencia de pasos lógicos para resolver un problema o
realizar una tarea.
• Contiene un conjunto finito de instrucciones que especifican
una secuencia (implica orden) para resolver un problema.
• Las instrucciones deben ser:
• Finitas
• Precisas
• Ordenadas
19

Sopa a la minuta
20

Sopa a la minuta
• [Link]
21

Sopa a la minuta
• [Link]
22

Diseño y Desarrollo de
soluciones
23

Diseño de solución de problemas


• Diagramas de flujo
• Pseudocódigo
• Lenguaje de programación
24

Diagramas de flujo
American National Estándar X3.5-1970
25

Diagrama de flujo – Símbolos básicos


26

Pseudocódigo
• No tiene notación rigurosa
• No existe un estándar
• Describe la lógica exacta del algoritmo
• Deber incluir un conjunto finito de palabras reservadas
• Debe permitir pruebas de escritorio o traza.
Cortes, E., Vanoli, V., & Casas, S. (2006). Big Bang: un recurso
didáctico-pedagógico en el aprendizaje de la implementación de
algoritmos en pseudocódigo.
27

Lenguaje de programación
• Un lenguaje de programación es un conjunto de reglas y
sintaxis que permite escribir instrucciones que una
computadora puede entender y ejecutar.
• Según la RAE:
– Conjunto de signos y reglas que permite la comunicación con
una computadora
28

Programa
• Es un conjunto de instrucciones basadas en un lenguaje de programación que
especifican cómo realizar un cómputo.
• La computación puede ser algo matemático como resolver un sistema de
ecuaciones o algo simbólico como reemplazar texto o algo gráfico como
procesar un video.
• Se aplica la descomposición al dividir una tarea compleja en pequeñas
subtareas hasta el punto en que una tarea puede ser ejecutada con una
instrucción.
• Se aplica la abstracción ya que identificamos instrucciones que representa un
nivel de tarea en el que no nos preocupamos acerca de los detalles técnicos
de cómo se cumplen esas instrucciones. Rosenfeld, L., & Downey, A. B. (2017). Think Raku.
29

Elementos de un programa
•Variables: Espacios de almacenamiento que contienen datos y que pueden cambiar a lo largo de la
ejecución del programa.
•Operadores: Símbolos que permiten realizar operaciones sobre variables y valores, como suma, resta,
comparación, etc.
•Instrucciones/Estructuras de control: Permiten dirigir el flujo del programa, incluyendo:
•Condicionales: (if, else) para tomar decisiones.
•Bucles: (for, while) para repetir acciones.
•Funciones o métodos: Bloques de código reutilizables que realizan tareas específicas y pueden recibir
parámetros y devolver valores.
•Tipos de datos: Definen la naturaleza de los datos que se pueden almacenar, como enteros, flotantes,
cadenas de texto, booleanos, etc.
•Estructuras de datos: Formas de organizar y almacenar datos, como listas, arreglos, conjuntos y
diccionarios.
•Comentarios: Notas dentro del código que ayudan a explicar su funcionamiento, pero que no son
ejecutadas por la computadora.
30

Instrucciones

• Secuenciales
• Selectivas
• Repetitivas
EJEMPLO
32

Python
• Un lenguaje interpretado
– Python es un lenguaje interpretado, lo que significa que ejecuta directamente el código línea por línea. Si existen errores
en el código del programa, su ejecución se detiene. Así, los programadores pueden encontrar errores en el código con
rapidez.
• Un lenguaje fácil de utilizar
– Python utiliza palabras similares a las del inglés. A diferencia de otros lenguajes de programación, Python no utiliza llaves.
En su lugar, utiliza sangría.
• Un lenguaje tipeado dinámicamente
– Los programadores no tienen que anunciar tipos de variables cuando escriben código porque Python los determina en el
tiempo de ejecución. Debido a esto, es posible escribir programas de Python con mayor rapidez.
• Un lenguaje de alto nivel
– Python es más cercano a los idiomas humanos que otros lenguajes de programación. Por lo tanto, los programadores no
deben preocuparse sobre sus funcionalidades subyacentes, como la arquitectura y la administración de la memoria.
• Un lenguaje orientado a los objetos
– Python considera todo como un objeto, pero también admite otros tipos de programación, como la programación
estructurada y la funcional.
33

Sumar dos números

• Asignar valor a A
Diagrama Pseudocódigo
• Asignar valor a B
de flujo
• Asignar a C el valor de la
suma de A y B
• Presentar el valor de C
34

Python
35

AI como herramienta de programación


36

Laboratorio virtual
• Acceso via HTML:

– [Link]
37

Anaconda (Python)
• Ecosistema para la construcción de iniciativas de ciencias de
datos:
– [Link]
38

Scratch
• Scratch es un lenguaje de programación, un entorno web para
desarrollo para que principiantes aprendan a programar.
• Con una interfaz gráfica y un formato basado en bloques,
ayuda a los usuarios a desarrollar las habilidades lógicas y de
pensamiento necesarias para construir proyectos.

[Link]
programacion-para-iniciarse
39

La hora del código

[Link]
40

Machine learning
• Hacer que los ordenadores “aprendan” a partir de los datos
• En vez de programar paso a paso, se desarrollan algoritmos
genéricos que pueden extraer patrones de los datos.
• Requiere identificación de datos, limpieza, eliminación de
datos correlacionados, búsqueda de sesgos, normalizaciones y
elección de algoritmos adecuados, configuración de
parámetros y análisis de resultados.
41

Tipos de machine learning


• Aprendizaje supervisado
• Regresión
• Clasificación
• Aprendizaje no supervisado
• Clustering
• Análisis dimensional
• Aprendizaje semi-supervisado
42

Aprendizaje supervisado
• Cuando los datos tienen asociados una etiqueta.
• Por ejemplo, imágenes:
([Link], “flor”)
([Link], “perro”)

• Se entrena a un algoritmo de clasificación para predecir la


etiqueta de una nueva imagen.

También podría gustarte