bueno, esto es un recopilatorio digital y extendido de las notas que fui tomando en las clases de una materia, estructuras discretas. creo que hasta el momento es mi materia favorita, influyendo en eso lo interesante en si de la materia y lo crack que fue el profe en toda la cursada.
originalmente tomé nota en un cuaderno haciendo diagramas y ahora voy a dar lo mejor de mi para traducirlo en palabras.
cuando tenemos que desarrollar un sistema informatico, en la gran mayoría de los casos la primer tarea que debemos concretar es la de interpretar las necesidades de nuestro cliente (o jefe) y adaptarlas a funcionalidades que formaran parte del sistema a desarrollar. el lenguaje humano está plagado de ambigüedades y cuestiones no dichas explícitamente, por lo que usarlo para interpretar estas necesidades se vuelve una tarea tediosa. además, usar un lenguaje inexacto y ambigüo va en dirección contraria a lo que debemos proveerle a la computadora, por lo que el lenguaje que necesitamos para tipificar y crear estas funcionalidades debe ser uno que tenga reglas de escritura precisas (sintaxis) y significados fijos (semántica).
los lenguajes que cumplen con esas características son los llamados "lenguajes formales". son estructurados, precisos y libres de ambivalencias, ideales para describir de manera formal los requisitos de nuestro sistema.
los lenguajes formales son absolutamente necesarios para programar. de hecho, todos los lenguajes de programación son lenguajes formales. para que una computadora resuelva un problema, debemos darle una serie de instrucciones detalladas, libres de ambigüedades que le indiquen cómo encarar el problema. al conjunto de instrucciones se le llama "programa" y al acto de crearlos se conoce como "programar".
la matemática suele asociarse solamente con los números. sin embargo, los números son solo una aplicación de un campo particular de la matemática. en la realidad, la matemática es el estudio de estructuras ideales, formales y regulares.
ideales, en el sentido de que están desvinculadas de la realidad. por ejemplo, los matemáticos del área de la geonetría han estudiado círculos perfectos por más de dos mil años, aunque estos no existan en la realidad.
formales, porque tienen un significado bien definido y se pueden analizar de forma inequívoca. si logramos deducir y demostrar que dos círculos se intersectan, esto no puede ser refutado.
regulares, porque pueden describirse de manera compacta. en el caso del círculo, lo podemos definir por un punto (su centro) y una distancia (su radio).
hasta este momento uno puede pensar que las estas estructuras son inútiles fuera de algunas áreas específicas de la matemática. pero todo cobra sentido con el concepto de la abstracción.
la abstracción es el acto de quitar los detalles irrelevantes de un objeto o situación. imaginemos que nos contratan para comprobar si una camioneta puede pasar por todas las tranqueras de un campo. se nos permite tomar las medidas de la camioneta pero tenemos prohibido pasar la camioneta físicamente por las tranqueras. además, tenemos que justificar la situación. una manera en la que podríamos hacerlo sería modelando la camioneta con millones de puntos y probando múltiples ángulos para ver si pasa por las tranqueras.