El pensamiento computacional es una disciplina que ha sido definida como “el conjunto de procesos de pensamiento implicados en la formulación de problemas y sus soluciones, de manera que dichas soluciones sean representadas de una forma que puedan ser efectivamente ejecutadas por un agente de procesamiento de información”, entendiendo por esto último a un humano, una máquina o una combinación de ambos.
Las herramientas básicas en las que se funda el pensamiento computacional son la descomposición, la abstracción, el reconocimiento de patrones y la algoritmia. El pensamiento computacional es una técnica de resolución de problemas.
El pensamiento computacional es una disciplina que nos va a permitir resolver problemas de la vida cotidiana, del trabajo, etc mediante el procesamiento de información con algún agente de procesamiento. Al hablar de agentes de procesamiento nos referimos a las computadoras.
Entonces el pensamiento computacional nos va a permitir a nosotros resolver nuestros problemas mediante programas que pueden ser ejecutados en una computadora.
Conceptos: algoritmo, problema, programa.
Un algoritmo es una serie ordenada, finita y precisa de acciones que resuelven un problema.
Ordenada significa que las acciones que componen nuestra resolución del problema tienen que estar en orden, es decir que si uno le cambia el orden a esa serie de acciones el resultado no va a ser el mismo.
Que sea finito significa que tiene fin. Si un algoritmo no tiene fin no puede resolver el problema para el cual fue creado.
Las acciones tienen que ser precisas porque cuanto más ambigua es la acción menos entendible es para quien tiene que llevarla a cabo. Las acciones de un algoritmo tienen que ser precisas para que puedan ser llevadas a cabo sin objeciones. Las computadoras no tienen capacidad de razonamiento por lo que necesitamos explicitarle “qué tiene que hacer”, con “Qué cantidades”, por “cuánto tiempo”, etc, de otra forma nuestro algoritmo no va a tener éxito.
El algoritmo tiene que ser predecible, cada vez que ingresa algo en específico, la salida debe ser la misma. Es decir, el resultado final siempre tiene que ser el mismo ante la misma entrada.
Un problema es cuando quiero ir del estado A al estado B y no sé cómo. Es decir, yo estoy en una situación, quiero estar en otra situación y tengo un salto entre ambas que no sé cómo saltear. En definitiva, un problema es no saber cómo ir de un estado a otro.
Los algoritmos nos ayudan a, dado el estado A, llegar al Estado B con una serie de acciones.
Un programa es la traducción de un algoritmo a un lenguaje de programación que sea capaz de ser entendido y ejecutado por una computadora. Es decir que un programa es un algoritmo que nosotros pensamos que resuelve un problema, pero que puede ser ejecutado por una computadora.
Si bien los programas tienen que poder ser ejecutados por una computadora, dado que nosotros trabajamos con personas, necesariamente también tienen que ser entendidos por esas otras personas para que en un futuro puedan continuar nuestro trabajo o bien nosotros mismos dentro de uno o dos meses o años podamos ver nuestro programa, entenderlo, corregirlo, volver a usarlo, etc.
Un lenguaje de programación es un protocolo de comunicación entre quien programa y la computadora. Este protocolo de comunicación nos impone ciertas reglas a seguir. Entonces estas reglas nos permiten que la comunicación con una computadora pueda ser entablada.
Tenemos dos tipos de lenguaje de programación:
a) Los que son compiladores: una vez que uno tiene el programa listo, lo verifican línea a línea, obteniendo un resultado final. Este resultado final es un archivo que está apto para ser ejecutado por la computadora. Entonces los lenguajes compiladores verifican línea a línea que nuestro programa tenga coherencia y recién a posteriori se ejecuta el programa.
b) Los que son intérpretes: Los lenguajes de programación que son intérpretes no realizan una primera verificación, sino que van ejecutando línea a línea, interpretando línea a línea y la van ejecutando.
Una gran diferencia que hay entre ambos lenguajes es que cuando uno quiere ejecutar un programa en un lenguaje compilador primero tiene que estar compilado correctamente mientras que en el caso del lenguaje interprete se va ejecutando línea a línea.
En los lenguajes que son compiladores tenemos dos tipos de errores, los errores de compilación (o sea que se dan en el momento en que el lenguaje está verificando que nuestro programa es correcto) y los errores de ejecución (aquellos que una vez que nuestro programa es válido y ocurren al momento de ser ejecutado)
En los lenguajes que son intérpretes no tenemos errores de compilación porque estos lenguajes no compilan nuestros programas. Tenemos solamente errores de ejecución.
Python es un lenguaje multipropósito, es decir que puede ser usado para una diversa cantidad de problemas. O sea que puede ser utilizado para distintos enfoques.
Hay otros lenguajes que fueron diseñados solamente para resolver ciertos problemas.
Variables, valores, asignación de valores a variables, asignación de variables a variables.
Variables: la forma más intuitiva de entender las variables es pensar que son cajas donde puedo guardar cosas. Las variables están almacenadas en la memoria de la computadora. Entonces nosotros no podemos crear infinitas variables porque nuestra memoria no es infinita. En la carrera se aprende a optimizar el código para no utilizar demasiados recursos que puedan afectar a la performance de la computadora.
En las variables (“cajas”) podemos guardar valores.
Los valores son información que es importante para mi programa. Es decir que los valores deben ser relevantes.
Los valores pueden ser números (766, 5432, 3,14 etc), letras y signos (ej: arroba) y pueden ser palabras (ej: “Pensamiento”).
Para guardar valores en variables existe una operación llamada asignación que se representa con el símbolo igual. En el lado izquierdo del signo igual está la variable y en el lado derecho del signo igual está el valor (variable=valor). Ejemplo:
anio_actual = 2023
También podemos guardar variables dentro de variables:
nombre_1 = “Manuel” nombre_2 = nombre_1
Esto nos permite poder crear variables a partir de datos ya existentes y procesados.
Operaciones
En una variable nueva estamos asignando el valor de otra variable, pero modificada.
Ej:
anio_anterior = 2022 anio_actual = anio_anterior + 1
Nota: Hemos usado el operador aritmético de la suma que se representa mediante “+”
Cómo crear nuestros primeros programas en python
Imprimir por pantalla:
print(“Hola mundo”)
Lo que hace es mostrar por pantalla un mensaje.
Otro ejemplo:
anio_actual = 2023 print(“Estamos en el año:”) print(anio_actual)
También podemos separar por comas todos los valores que quiero que print escriba y los muestra en la misma línea:
anio_actual = 2023 print(“Estamos en el año:”, anio_actual)
Otra forma:
anio_anterior = 2022 print(“Estamos en el año:”, anio_anterior+1)
Corremos el programa generalmente con un botón “Run”. La salida el resultado de nuestro programa se muestra en la consola.