Tomé el curso de Misión Mintic 2022, este es mi resumen de las primeras 18 horas de clases de programación con Python.
Curso de Introducción a Python, parte 1
Me habían hablado de los cursos que ofrece Mintic desde hace algún tiempo, pero no los había considerado hasta ahora que decidí refrescar mis conocimientos y buscar alternativas, fue aquí cuando un compañero y gran amigo de mis épocas universitarias me comentó que había llevado a cabo su curso de programación en Misión Mintic y que ofrecían certificado no de asistencia, sino en forma de diplomado universitario y me pareció una excelente alternativa, así que me enrolé y como creo firmemente en compartir el conocimiento, este es mi resumen de las primeras 18 horas de clases de programación en Python del curso Misión Mintic 2022.
Me he permitido algunas libertades para desarrollar uno que otro tema de los que apenas se ha mencionado su existencia pero creo interesante desarrollar, además he intentado omitir ejemplos, textos y códigos textuales vistos en las clases, la razón, no he leído los términos y condiciones y no quiero infringir ningún copyright.
Conocimientos técnicos Previos.
Computadores
La RAE lo define como: “Máquina electrónica que, mediante determinados programas, permite almacenar y tratar información, y resolver problemas de diversa índole."
Componentes de una computadora
Los componentes básicos son: La UAL o una Unidad de procesamiento Aritmético y Lógico y una UC o Unidad de Control que en su conjunto conforman la CPU o Unidad Central de Procesamiento La Memoria de acceso aleatorio más conocida como RAM y la memoria no volatil o “disco duro” Dispositivos de entrada y salida.
En su conjunto (cosas más, cosas menos) forman una computadora y la importancia de conocer este mínimo de componentes básicos radica en que su comprensión es esenciales para identificar el porqué de las características de un lenguaje formal para su administración.
Lenguajes naturales y lenguajes formales.
Un lenguaje natural es el que utilizamos para expresar ideas, son el lenguaje en que te comunicas y que ha evolucionado de forma natural, admite interpretaciones según contexto, metáforas, ambigüedades e ideas tan complejas como el sarcasmo y el doble sentido.
Un lenguaje formal por otro lado es cualquier lenguaje meticulosamente diseñado para un propósito especifico, con reglas y estructuras claras, concisos, sin ambigüedades, un ejemplo de estos son las representaciones químicas o matemáticas, también así los programas de computadora. Un lenguaje de programación es entonces un lenguaje formal.
Algoritmos
Un algoritmo es un conjunto de instrucciones claramente definidas y con una lógica clara que permiten la solución de un problema, para expresarlos se utiliza un lenguaje seudo natural mezclando instrucciones en lenguaje natural y lenguaje formal.
Programas de computadora
¿Qué es un Programa?
Un programa es una secuencia de instrucciones finita y detallada que especifica como realizar una tarea de computación. Dicho programa es expresado en un lenguaje de programación o en otras palabras un lenguaje formal que puede ser entendido por la computadora para realizar tareas.
Esta tarea podría ser una ecuación matemática, lógica, simbólica (como buscar y reemplazar texto) o incluso gráfica Cada lenguaje de programación tiene diferentes características, pero existen instrucciones básicas que hacen parte de la mayoría de lenguajes, se conocen como primitivas de un algoritmo.
Primitivas de Computación
- Todo algoritmo tiene un Inicio y Fin (es finito)
- Todo algoritmo tiene Parámetros de entrada y/o salida,
Entrada: Obtener datos (leer) desde el teclado, desde la red, o sensores, una base de datos, un archivo, o cualquier otro tipo de dispositivos Salida: escribir - (mostrar) esto es presentar información en pantalla, escribir un archivo, enviar información en la red, escribir en base de datos, mover un brazo mecánico, etc. - Un algoritmo puede contener operaciones matemáticas (algoritmia). Operadores. De asignación, suma, resta, etc.
- Un algoritmo puede contener estructuras de control. Esto es condicionales que manejan el “camino” que tomará el algoritmo para su resultado. Ejemplo:
|
|
- Los algoritmos pueden contar con un Ciclo o repetición esto es una estructura que define la realización de tareas
|
|
Paradigmas de programación:
Las ciencias de la computación han evolucionado a lo largo de su existencia buscando modelos y patrones óptimos de desarrollo, un paradigma de programación es un modelo básico del diseño y desarrollo de programas.
- De procedimientos o Imperativo (donde el programador declara a la máquina la gestión de estado)
- Procedimental
- Orientado a Objetos
- Declarativo (en el que el programador declara las características del objetivo o propiedades del estado al que quiere llegar sin indicar el camino para conseguirlo)
- Funcional
- Lógico
- Matemático
- Reactivo
Variables, constantes y uso de memoria.
Una variable en la naturaleza es algo sujeto a cambios sean estos frecuentes o sólo probables, en la computación una variable es “algo” que cambiará su estado, por lo que se define como un espacio reservado en memoria para guardar ahí el valor del ese “algo”. En la practica esto puede ser un número, un resultado de una operación matemática, una frase o palabra o incluso un estado como verdadero o falso.
Dado que la memoria computacional es un recurso limitado es importante identificar de antemano que tipo de variable se va a utilizar para no reservar más espacio del necesario ya que no es lo mismo esperar un número natural positivo que un número racional ya que este incluirá un espacio adicional reservado para el manejo de los decimales, así en los lenguajes de programación se definen diversos tipos de variable, entre ellos:
- Enteros tipo (int)
- Números Reales (float)
- Cadenas de texto (str)
- Valores Lógicos (true o false)
Una constante por otro lado es un valor que no cambia y en computación es exactamente los mismo, luego de asignarle valor, este no cambiará a lo largo del programa.
Expresiones y operadores
Una expresión es una combinación de variables, constantes y operadores aritméticos, relacionales y lógicos
Vale referenciar recursos externos para revisar Operadores Aritméticos, PEMDAS, Operadores Relacionales, Variables, constantes y tablas de verdad
Python
Ya entrando en materia veamos que es Python.
Existen muchos lenguajes de programación, algunos conocidos como lenguajes de bajo nivel cuyo código es exhaustivo pues deben indicar al computador tareas tan especificas como asignar un tamaño de memoria, poner ahí un valor, luego moverlo a otro espacio de memoria para realizar una tarea, en estos casos el lenguaje es más parecido al lenguaje de máquina y se conocen como lenguaje ensamblador o assembly,
Las capas de software sobre el sistema operativo son análogas a las capas de una cebolla y en la medida en que una pieza de software interactúa con las capas exteriores, aunque crece la complejidad del sistema, se disminuye la complejidad de las instrucciones, los lenguajes que trabajan en las capas más altas del sistema se conocen como lenguajes de alto nivel, se trata igualmente de lenguajes formales, pero de estructura he instrucciones son más cercanas al lenguaje humano, luciendo en algunos casos similares a las instrucciones en pseudo-código.
Python es un lenguaje de alto nivel, además es un lenguaje de scripting lo que implica que no es compilado y sus instrucciones pueden leerse directamente de un archivo de texto con la extensión .py, el lenguaje apareció por primera vez a finales de los 80’s de la mano de Guido Van Rossum. es de propósito general (que puede usarse en casi cualquier tipo de situaciones y para casi cualquier tipo de soluciones) por lo que es una puerta perfecta para iniciar en el mundo de la programación.
Entorno de Trabajo
Aunque existen muchos posibles entornos de desarrollo para trabajar con python porque al ser literalmente archivos de texto cualquier editor sirve para la tarea, en el curso al que hago referencia se recomienda el uso de:
Luego de setear el entorno de trabajo estás listo para dar inicio al aprendizaje y practicas con Python, a este punto en lugar de proponer ejemplos de código, haré referencia a los temas propios de la plataforma que que corresponden a esta primera introducción que al momento son:
- Tipos y estructuras de datos
- Bloques de código y estructuras de control y repetición.
Dejo como referencia este documento Manual de Programación con Python (bastante amplio y completo) que puede ayudar a la tarea de aprendizaje.