Conceptos básicos de programación
Contents
Conceptos básicos de programación#
Introducción#
Este es un libro introductorio a Python diseñado en JupyterLab, exploraremos las funciones básicas disponibles de Python y la programación básica para su posterior uso en el diplomado. Comenzaremos con un ambiente de Python 3. Pero antes estudiaremos algunos conceptos básicos.
El término ciencia de datos#
La Ciencia de Datos tiene su origen en el año 1962, cuando el estadístico estadounidense John W. Tukey, conocido por el desarrollo de complejos algoritmos y el famoso diagrama de caja y bigotes (Box Plot), escribe y se cuestiona el futuro de la estadística como ciencia empírica. Escribiría así en “El futuro del análisis de datos” (1962):
“Durante mucho tiempo pensé que era un estadístico interesado en inferencias de lo particular a lo general. Pero a medida que observé la evolución de las estadísticas matemáticas, tuve motivos para preguntarme y dudar […] Llegué a sentir que mi interés central está en el análisis de datos… El análisis de datos, y las partes de las estadísticas que se adhieren a él, deben […] asumir las características de la ciencia en lugar de las matemáticas […] el análisis de datos es intrínsecamente una ciencia empírica”.
En estas declaraciones se habla por primera vez de la evolución de la estadística matemática como Ciencia de Datos. Sin embargo, no sería hasta más adelante en 1974 cuando Peter Naur, científico danés conocido por sus trabajos en las ciencias computacionales y ganador del premio Turing en el año 2005, acuñara el término que actualmente conocemos.
¿Qué es un algoritmo?#
En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del latín algorithmus y este del griego arithmos, que significa «número», quizá también con influencia del nombre del matemático persa Al-Juarismi) es un conjunto de instrucciones o reglas definidas y no-ambiguas, ordenadas y finitas que permite, típicamente, solucionar un problema, realizar un cómputo, procesar datos y llevar a cabo otras tareas o actividades.
Dado un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia, Wikipedia.
Por ejemplo supónga que se desea hacer la siguiente tarea. Escribir los números entre 1 y 100. Un algoritmo para resolver esta tarea es el siguiente.
para \(n \in 1 \ldots 100\):
escriba n
¿Qué es un programa de computador?#
Un programa de computador es la implementación de un algoritmo en un lenguaje de programación que puede ser ejecutado en un computador. Por ejemplo, el algoritmo anterior puede escribirse en el lenguaje de programación Python como sigue:
# inicio
for n in range(1, 101):
print(n, end=' ')
# fin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Los tres elementos esenciales de un programa de computador#
De manera muy general un programa de computador puede escribirse usando tres estructuras o principios de programación:
Secuencia: Cada sentencia va una después de la otra. La separación entre sentencias es determinado por el alcance de la sentencia.
Iteración: Una sentencia se repite un número determinado de veces.
Selección: Una sentencia se ejecuta condicionalmente, dependiendo de si se cumple una condición.
Formalmente un programa es una secuencia de sentencias:
\(s_1\)
\(s_2\)
.
.
.
\(s_n\)
Una sentencia de iteración o repetición se escribe por ejemplo como
Para (rango de valores):
\(s_1\)
\(s_2\)
\(.\)
\(.\)
\(s_m\)
Una sentencia de selección se escribe formalmente como
Si (condición):
\(s_1\)
\(s_2\)
\(.\)
\(.\)
\(s_k\)
Por ejemplo, para imprimir los números impares entre 1 y 100 podríamos escribir un algoritmo de la siguiente forma
min = 1
max = 100
para n in range(min,max):
si (n es impar):
imprima n
Este algoritmo tiene tres sentencias. Imagine porque. Observe que la sentencia que se repite dentro del cilo es una selección. La condición es que n sea par y la sentencia que se ejecuta condicionalmente es imprimir el valor del número.
En Python, este algoritmo puede escribirse de la siguiente forma:
min = 1
max = 100
for n in range(100):
if(n%2):
print(n, end=' ')
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
¿Qué es un lenguaje de programación?#
Un lenguaje de programación es un lenguaje formal (o artificial, es decir, un lenguaje con reglas gramaticales bien definidas) que le proporciona a una persona, en este caso el programador, la capacidad de escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma de algoritmos con el fin de controlar el comportamiento físico o lógico de un sistema informático, de manera que se puedan obtener diversas clases de datos o ejecutar determinadas tareas. A todo este conjunto de órdenes escritas mediante un lenguaje de programación se le denomina programa informático, Wikipedia.
Breve historia de los lenguajes de programación#
Esta sección está basada en Wikipedia.
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, que la máquina lee fácilmente, pero que es excesivamente complicado para las personas. De hecho, solo consiste en cadenas extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron crear un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; este se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.
Tarjeta perforada Créditos: Wikipedia

La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó “instrucciones”, y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica semejante a la de los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel.
A finales de 1953, John Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador, para programar la computadora central IBM 704. El histórico equipo Fortran de John Backus consistió en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.
El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en la actualidad, en informática de gestión.
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará una sola sentencia.