Introducción A La Programación En La Inteligencia Artificial

IA - Inteligencia Artificial - Introduccion a la Programación

Que tal como están?, les saludo y les doy de nuevo la bienvenida, el día de hoy vamos a dejar un poco de lado esa teoría respecto a la inteligencia artificial, yo pienso que conocer las bases y el ¿Por qué? de algo es simplemente necesario para poder entender lo que sigue, y en este caso en particular era necesario entender como surge todo este movimiento tecnológico que busca facilitarnos la vida haciendo algunas tareas que no necesariamente requieren de todas nuestras capacidades y que mejor que delegarle dichas actividades a las máquinas que hemos creado ¿no?.

Bueno ahora hagamos un pequeño ejercicio y reflexionemos sobre como es que toda la magia ocurre, se les ha ocurrido preguntar ¿De dónde surgen esas herramientas de las que hasta ahora hemos y/o seguiremos hablando?, y que están relacionadas con la inteligencia artificial, bueno algunas requieres de componentes electrónicos y/o mecánicos, mientras que otras no los requieres, pero sin importar si son meramente lógicos o físicos, hay algo que si tienen en común y es su inteligencia montada por un código que en base a funciones e instrucciones le permite a los dispositivos inteligentes, ser precisamente eso: inteligentes:

Por lo tanto si hay que crear software para dotar de inteligencia a un dispositivo, lo mas conveniente es que tengamos nociones de lo que es un Lenguaje de Programación, y justo es lo que estaremos tratando en este pequeño articulo, sobre todo para aquellos que no han tenido la oportunidad de interactuar con el concepto, así que comencemos:

Tabla de Contenido

Lenguaje de Programación

Es ni más ni menos que el conjunto de símbolos, palabras, estructuras y sintaxis que la máquina puede entender para lograr que los humanos nos comuniquemos con ellas, y a través de dichas reglas se le puedan programar o dar instrucciones especificas a las máquinas.

Al igual que los seres humanos tenemos lenguajes como el Español, el Inglés, el Francés, y demás, las maquinas también tienen su propio lenguaje y al igual que los seres humanos el programador requiere de aprender el lenguaje de las maquinas para poder dialogar con ellas.

Existen varios lenguajes de programación y quizás los hayas escuchado nombrar entre los mas populares están JAVA y C#, pero no son los únicos, existen muchos más como por ejemplo: C++, Pascal, SQL, Fortran, Cobol, Python, etc. Algunos son mas actuales que otros y cuentan con características diferentes y variadas pero todos tienen un mismo propósito servir de interfaz o medio entre la máquina y el ser humano o programador.

Programación

Otro concepto que nos va a resultar muy útil es el de programación que no es otra cosa que el trabajo de elaboración de un programa, es decir la escritura de instrucciones para la máquina bajo su lenguaje y sus reglas.

Recuerda:

El código que escribas debe resultar correcto y robusto, capaz de cumplir con el objetivo o los objetivos para los que fue o será creado.

Programa

Si bien la programación sirve para hacer un programa, lo más natural es que ahora entendamos ¿Qué es un programa?, bueno me parece que podemos usar la siguiente definición:

Un programa informático se define como un conjunto de instrucciones que, una vez ejecutado, realiza una o varias tareas en una computadora.

Un programa se escribe con instrucciones en un lenguaje de programación y se define por su sintaxis, para que se establezca se indican las reglas de escritura (la gramática), la semántica de los tipos de datos, las instrucciones, las definiciones, y todos los otros elementos que constituyen un programa.

Algoritmo

Si bien entender que hay un lenguaje con reglas y estructuras y que este sirve para crear un programa, lo que también es muy importante es entender que por si mismas todas esas cosas no dicen nada, para que realmente tenga sentido para la maquina lo que le estamos diciendo es necesario hacerlo con lógica, y es aquí donde los algoritmos juegan su papel mas importante ya que un algoritmo es:

Es una lista bien definida, ordenada y finita de operaciones que permite encontrar la solución a un problema determinado.

En otras palabras es una secuencia de pasos que tienen un inicio, seguido de pasos sucesivos a través de los cuales se llega a un estado final, del cual se pueden desprender una o varias soluciones.

Los algoritmos pueden ser expresados en diversas formas, pero vamos a requerir un ejemplo mientras vamos explicando los siguientes conceptos

Usemos algo simple como A + B = C

  1. Lenguaje Natural:
    1. Este es el mas sencillo de todos ya que justamente el lenguaje natural es la representación en palabras humanas tradicionales, sin mayor complicación tal cual lo diríamos los humanos.
      • Usemos nuestro ejemplo y expresémoslo en lenguaje natural, lo que seria mas o menos así: Pedir el valor de A y B, sumarlos e imprimir C
  2. Pseudocódigo:
    1. Para este caso el lenguaje utilizado ya no es tan de humanos pero tampoco requiere de conocimientos específicos sobre el lenguaje de las maquinas sin embargo ya es mas estructurado y definido en una secuencia básica de pasos.
      • Volviendo a nuestro ejemplo anterior esto seria algo mas o menos así:
        • Pedir valor de A
        • Pedir valor de B
        • C = A + B
        • Imprimir C
  3. Diagramas de Flujo:
    1. Estos diagramas son herramientas que nos ayudan a representar de una forma gráfica nuestro pseudocódigo, y a través de símbolos y flechas se le va dando una secuencia logia que permite preparar la solución para ser programada.
      • Por ejemplo:
      • Ejemplo de un Diagrama de Flujo
        Ejemplo de un Diagrama de Flujo
  4. Programas
    1. Finalmente la representación de la solución a la que queremos llegar que es la del programa, que como ya hemos dicho antes es el tipo de lenguaje que entiende una máquina, veamos entonces un ejemplo:
      • a = input(“Escribe el valor de A”)
      • b = input(“Escribe el valor de B”)
      • c = a + b
      • print(c)

Etapas de desarrollo de un algoritmo

Como todo proceso de aprendizaje, creo que lo mejor es hacerlo en el sentido correcto, eventualmente y con la práctica podrán dar por echo alguna de las etapas o incluso fusionarlas, pero que no sé diga que no las conocieron así que aquí las tienen las etapas de desarrollo de un algoritmo son cuatro:

  1. Definición:
    • En esta etapa se especifica el propósito del algoritmo y se ofrece una definición clara del problema por resolver, y por supuesto que también es aquí donde se establece lo que se pretende lograr con la solución.
  2. Análisis:
    • Se analiza el problema y sus características, y se determinan las entradas y salidas del problema. De igual modo, también se realiza una investigación sobre si ya se conoce alguna o varias soluciones de este y en su caso se determina cuál es la más conveniente para el problema que estamos tratando de solucionar. Si no se conoce ninguna, o no nos satisfacen las soluciones existentes, se propone una nueva.
  3. Diseño:
    • Aquí se plasma la solución del problema. Con ese fin, se emplea una herramienta de diseño, que consiste en el diagrama de flujo y/o el pseudocódigo, y debo agregar que lo más recomendable siempre será el diagrama de flujo, la verdad es que visualmente es de mucha ayuda.
  4. Implementación:
    • En este último paso se realiza o se ve concretado el programa y, por ende, se tiene un código que al ejecutarlo resuelve nuestro problema, para cerciorarse de que es correcto se hacen varias pruebas o las necesarias para garantizar el resultado.

Software

Bien, con los conceptos que hemos recopilado hasta ahora, pienso que ya podemos pasar a resolver la pregunta de ¿Qué es un software?, bueno no es otra cosa que

El conjunto general de programas que posee una computadora

así de simple, sin complicarnos demasiado.

Tipos de Lenguajes de Programación

De entre las clasificaciones mas generales que hay en los lenguajes de programación yo quiero hacerles mención o recordarles que hay principalmente dos que por sus características pueden agrupar a cierto número de lenguajes, y me estoy refiriendo a:

  1. Interpretes:
    • Este tipo de lenguajes tienen la particularidad de que van transformando las instrucciones a lenguaje máquina línea por línea cambiando las instrucciones que le han sido escritas para convertirlas en un resultado, pero esto lo hacen al mismo tiempo que van ejecutándolas, es decir: Toman la instrucción, la traducen y la ejecutan, toman la siguiente instrucción la traducen y la ejecutan, y así sucesivamente repitiendo el ciclo.
  2. Compiladores:
    • Este tipo de lenguajes toman todas las instrucciones que han sido escritas, las verifican y traducen a lenguaje maquina, preparando todo el código previo a su ejecución, por lo que cuando comenzamos a ver resultados es porque el código ya fue previamente convertido en su totalidad a lenguaje máquina.

Que lenguaje de programación es el mas usado para IA

Esta información que les voy a presentar fue extraída del PYPL (Popularity of Programming Language), que analiza cuantos tutoriales sobre un lenguaje de programación han sido buscado en Google. Y esa es básicamente la razon por la que sustento el porque yo me enfocare en enseñarles lo que se sobre Python, bueno eso y porque es lo que me están enseñando en el Diplomado, jeje., Pero bueno si lo verifique.

PYPL 2021
Tabla de datos de PYPL 2021
Tabla de datos de PYPL 2021
PYPL 2019
Grafica de datos PYPL-2019
Grafica de datos PYPL-2019

Bueno por ahora con esto terminare este nuevo post, y espero volver muy pronto con algo más para ir poco a poco a lo interesante de todo este tema a usar nuestros propias habilidades para crear algo.

Que tengan como siempre un buen día.

Saludos.

Te puede interesar

Memo1

Guillermo Granillo

Blogger

Conoce a Guillermo Granillo, un apasionado explorador, narrador de historias y la fuerza creativa detrás del blog "Blogging With Memo". Con una curiosidad y una sed insaciable de nuevas experiencias.

Te Puede Interesar

Publicaciones Relacionadas

¡Únete a nuestra lista de correos!

Recibe las últimas noticias y actualizaciones de la familia Bloggingwithmemo.