Diferencias entre la Programación Estructurada, Lógica, Funcional y Concurrente
Resumen
Reflexión acerca del contenido teórico del primer y segundo parcial de Diseño de Programas, relacionándolo con la materia, carrera y entorno. En este trabajo se discute a cerca de la computación, también cómo funcionan las computadoras y su impacto en el avance de la humanidad. Este incluye su historia, elementos y modelos desde la perspectiva del área de diseño de programas.
También, se analiza la programación y sus componentes, como son el lenguaje, el ambiente, los tipos de lenguajes, los paradigmas, entre otros. A demás de describen cada una de las etapas para el desarrollo de una aplicación.
Contenido
Introducción a la computación
Debido a que la tecnología forma una parte fundamental de la sociedad actual, es necesario dedicar un área específica a su estudio. Esta es definida como computación. La computación, por lo tanto, es el área de la ciencia dedicada a analizar el uso, diseño y operación de las computadoras. “La computación es la ciencia encargada de estudiar los sistemas, más precisamente computadoras, que automáticamente gestionan información.” (Enciclopedia de conceptos, 2018) Se han realizado numerosos avances en cuanto a la computación, a pesar de que es un área relativamente nueva. Las áreas de estudio más importantes en las ciencias de la computación son las siguientes:
- Estructura de datos: el estudio de los algoritmos y de la estructura de datos. El análisis matemático es fundamental para poder solucionar problemas precisos. Por esto es necesario analizar la estructura de datos y algoritmos.
- Sistemas operativos: para optimizar el funcionamiento de la computación, es necesario actualizar y adaptar los sistemas operativos.
- Arquitectura computacional: esta es el área encargada de diseñar, crear y producir nuevas computadoras, con más rapidez y más capacidad. Se concentra en componentes como RAM, CPU, entre otros.
- Lenguajes de programación: el objetivo de esta área de especialidad es crear nuevos lenguajes de programación que resulten más eficaces y con mejoramientos superiores.
Yo considero que estas áreas son de vital importancia, ya que, en conjunto, forman la computación como la conocemos. Así mismo, si estas fueran a ser desarrolladas, la computación alcanzaría un nivel más avanzado. Esto, a su vez, favorecería el desarrollo de las ciencias y de la sociedad en conjunto.
Historia de la computación
La computación es el resultado del desarrollo de ideas relacionadas con diversas áreas como la electrónica, la mecánica, la lógica, la programación, entre otras.
La historia de la computación se remonta a tiempos desde antes de la creación del primer ordenador. Esto se refiere a la utilización de la lógica y resolución de problemas en la sociedad, lo que dio pie a la invención de la primera computadora. Un ejemplo de esto se puede ver en el año 780, cuando el matemático Musa al-Juarismi inventó el algoritmo, definido como “la resolución metódica de problemas de álgebra y cálculo numérico mediante una lista bien definida, ordenada y finita de operaciones.” (Real Academia Española, 2018)
Considero que la historia de la computación debería incluir todo lo relacionado al pensamiento lógico y como este se desarrolló en la sociedad a lo largo de la historia porque considero que este es de extrema importancia para la realización de problemas de forma crítica y coherente. Esto, a su vez, llevó a la necesidad de resolver problemas de manera veloz, creando una máquina que lo hiciera de forma automática.
Concepto
La computadora se define como una máquina inteligente capaz de recibir un conjunto de instrucciones y efectuar una secuencia de operaciones, utilizando cálculos numéricos, de tal manera que se obtenga un conjunto de datos de salida. La Real Academia Española define a la computadora como “Máquina electrónica que, mediante determinados programas, permite almacenar y tratar información, y resolver problemas de diversa índole.” (Real Academia Española, 2018). Esta fue creada como resultado de las máquinas empleadas para manejar números, como son el ábaco, las primaras calculadoras y la regla deslizante. Hoy en día, las computadoras son vitales para la resolución de problemas y la manipulación de información de forma eficaz y rápida, por lo tanto, son utilizadas frecuentemente en la vida cotidiana como auxiliares en diversas áreas de trabajo. En la programación, son utilizadas como instrumento para la resolución de algoritmos, auxiliares en la creación de diferentes tareas.
Estas son de vital importancia para el mundo actual, ya que son utilizadas para todo.
Historia
La idea de la primera computadora nació debido a que la elaboración de las tablas matemáticas era un proceso tedioso y propenso a errores. Gracias a Charles Babbage, profesor matemático de la Universidad de Cambridge del siglo XIX, la computadora fue creada. Al principio era un dispositivo mecánico para efectuar sumas repetidas.
La primera generación de computadoras abarca desde 1940 hasta 1952. En esta época, la tecnología electrónica era a base de bulbos o tubos de vacío, y la comunicación era en términos de lenguaje de máquina. Eran mayormente utilizadas como instrumentos en las áreas científica y militar.
La segunda generación de las computadoras reemplazó las válvulas de vacío por los transistores en 1952, hasta 1964. Por eso, las computadoras de la segunda generación son más pequeñas, más potentes y consumen menos electricidad. A su vez surgieron las primeras computadoras personales, aunque aún eran muy complejas de utilizarlas porque era necesario conocer la programación.
La tercera generación de computadoras de 1964 a 1971, son computadoras construidas con circuito integrado o microchip. Incluyen resistencias, diodos, condensadores, transistores. A mediados de los años 60 se produjo la invención del circuito integrado por Jack St. Claire Kilby y Robert Noyce. Utilizadas en cadenas de producción de sectores industriales.
En la cuarta generación de computadoras el tamaño reducido del microprocesador de chips hizo posible la creación de las computadoras personales. Hoy en día las tecnologías LSI (Integración a gran escala) y VLSI (integración a muy gran escala) permiten que cientos de miles de componentes electrónicos se almacenen en un chip.
Las últimas generaciones de computadoras son la base de las computadoras modernas de hoy en día. Estas cuentan con arquitecturas combinadas, con cientos de microprocesadores vectoriales trabajando al mismo tiempo. Se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo.
Clasificación de las computadoras
Debido a la gran diversidad de computadoras, es necesario clasificarlas. Existen varias formas de clasificarlas, pero la forma de la que hablaré será la siguiente.
- Analógicas: Tienen la capacidad de medir o comparar según un patrón preestablecido. Manejan señales eléctricas analógicas proporcionales a medidas físicas de tipo continuo.
- Digitales: Este tipo de computadora maneja señales eléctricas de tipo digital y por lo tanto opera con información discreta en el tiempo. Procesa los datos siguiendo las especificaciones de un programa por medio de lenguajes y su utilización comprende cualquier tipo de trabajos.
- Híbridas: Es la combinación de los dos anteriores.
Yo creo que a pesar de que tienen varias aplicaciones, las más complejas son las híbridas. A demás, estas pueden ser utilizadas en varios campos de las ciencias.
Elementos de un sistema de cómputo
Todos los elementos de un sistema de cómputo se dividen entre software y hardware. Ambos son de gran importancia porque juntos componen un sistema complejo para la realización de problemas y, por lo tanto, no se puede tener uno sin el otro porque ambos son necesarios para el buen funcionamiento de un sistema computacional.
En el trabajo de un programador, todos estos elementos del sistema son de gran importancia. Aunque ellos se especializan en el software, se necesita coordinar ambos elementos porque es necesario un hardware que soporte el software y viceversa.
Hardware
El hardware de un sistema de cómputo se refiere a todo lo físico, es decir, todo lo que se puede tocar. Según la Real Academia Española, es la voz inglesa que se usa, en informática, para designar el conjunto de los componentes que integran la parte material de una computadora u ordenador (Real Academia Española, 2018). Yo pienso que el hardware debería ser adaptado de acuerdo con el software correspondiente, ya que, aunque una computadora puede funcionar solo cuando el hardware y el software trabajan juntos, la velocidad de un sistema dependerá en gran medida del hardware utilizado.
Si bien el diseño del hardware difiere entre las PC de escritorio y las computadoras portátiles debido a sus diferencias de tamaño, en ambos se encontrarán los mismos componentes principales. Sin hardware, no habría manera de ejecutar el software esencial que hace que las computadoras sean tan útiles. El software se define como los programas virtuales que se ejecutan en su computadora; Es decir, sistema operativo, navegador de internet, documentos de procesamiento de textos, etc.
Software
El software de un sistema de computo se refiere a todo lo que no se puede tocar, lo digital. Según la Real Academia Española, el software es la voz inglesa que se usa, en informática, con el sentido de ‘conjunto de programas, instrucciones y reglas para ejecutar ciertas tareas en una computadora u ordenador (Real Academia Española, 2018). Cada proyecto de desarrollo de software pasa por una serie de fases: concepto, diseño, desarrollo, pruebas y más. Pero hay un paso crucial en el proceso que puede hacer o deshacer el éxito de su software: la planificación de arquitectura
En clase de diseño de programas espero aprender a diseñar un software optimo y funcional, así como aprender los elementos de un hardware que pueda soportarlo.
Introducción a los algoritmos
Formulación de problemas
El modelado de problemas es la base para la creación de un algoritmo. Para esto es necesaria la formulación de un algoritmo especializado al problema.
Primero se extrae toda la información del problema y se distinguen las variables. Estas se distinguen algebraicamente. Se expresan las condiciones y restricciones. Finalmente, se expresa el problema.
Esto es extremadamente importante en la creación de un algoritmo por que es la base para la programación y la vida cotidiana. Yo considero que es necesario ser organizado para lograr un análisis perfecto del problema y que esto va a llevar a un algoritmo bien estructurado. Como esto se puede utilizar en cualquier escenario que se necesite resolver un problema, yo pienso que es necesario enseñar a los niños desde pequeños, la correcta formulación de problemas.
Análisis de problemas
Existen diferentes modelos para la formulación de un problema como:
- Modelos predictivos: Este tipo de modelos informan del comportamiento de la variable en un futuro.
- Modelos evaluativos: Una técnica evaluativa corresponde a medir las diferentes alternativas, y así poder comparar los resultados de ellas.
- Modelos de optimización: Se trata de modelos que tratan de identificar las mejores las alternativas posibles.
Yo creo que, dependiendo del problema, se elije el tipo de modelo que se va a utilizar.
Diseño de estrategias de múltiples soluciones
En esta parte se formaliza el problema. Aquí se tiene que conocer el problema a profundidad sin tener problemas lógicos ni de análisis. Se establecen las variables matemática y finalmente se evalúa e interpreta el problema. Este proceso es muy útil no solo en la programación, sino también en todas las áreas de trabajo.
Definición de algoritmos
Los algoritmos de definen como “la resolución metódica de problemas de álgebra y cálculo numérico mediante una lista bien definida, ordenada y finita de operaciones.” (Real Academia Española, 2018)
Para la realización de un programa, se requiere un algoritmo bien estructurado. En mi opinión, se necesita mucha creatividad, pensamiento lógico y conocimiento del tema para desarrollar algoritmos funcionales. Estos son independientes del lenguaje de programación porque pueden ser expresados de igual manera en cualquiera de estos. A demás, se puede llegar a un resultado por medio de distintos algoritmos, pero siempre es preferible el más corto. Para elegir el mejor, se tiene que analizar la optimización, el tiempo y los recursos.
Las computadoras son increíblemente rápidas para manipular, mover y mirar datos. Sin embargo, la cantidad de datos que utilizan las computadoras es a menudo tan grande que no importa qué tan rápida sea la computadora, tomará demasiado tiempo examinar cada pieza de datos. Aquí es donde entran los algoritmos. Si se le da una computadora un mejor algoritmo para procesar los datos, entonces no importa cuánta información tenga que revisar, todavía podrá hacerlo en un tiempo razonable.
Características principales de los algoritmos
Los algoritmos son un tema muy importante en Informática porque ayudan a los desarrolladores de software a crear programas eficientes y sin errores. Lo más importante que debe recordar acerca de los algoritmos es que puede haber muchos algoritmos diferentes para el mismo problema. Un algoritmo optimo y funcional debe tener las siguientes características.
Debe ser preciso, definirse rigurosamente. Debe tener un principio y un fin. Debe ocupar la menor memoria posible y ser ejecutado en el menor tiempo posible. Debe ser legible y entendible. Finalmente, debe producir un resultado.
Los algoritmos son más precisos que las instrucciones informales y no requieren ninguna información a seguir; todavía no son lo suficientemente precisos para que una computadora los siga en la forma en que están escritos, pero son lo suficientemente precisos para que un humano sepa exactamente lo que quiere decir, para que luego puedan averiguar cómo implementar su algoritmo, ya sea haciéndolo ellos mismos o Escribiendo un programa de computadora para hacerlo.
Diagramas de flujo
Definición
Para representar un algoritmo, debe ser representado gráficamente antes de ser convertido a lenguaje de programación. Para esto se utilizan los diagramas de flujo. “Se conoce como diagramas de flujo a aquellos gráficos representativos que se utilizan para esquematizar conceptos vinculados a la programación, la economía, los procesos técnicos y/o tecnológicos, la psicología, la educación y casi cualquier temática de análisis.” (Definición ABC, 2015)
Estos son utilizados para organizar procesos de manera gráfica. Es importante que estén organizados de manera clara y sencilla. Se componen de diferentes formas, líneas y frases, las cuales indican diferentes partes del proceso. A continuación, se presenta una tabla que incluye la simbología.
Algunos de los símbolos más utilizados en los diagramas de flujo son la flecha (que indica sentido y trayectoria), el rectángulo (representa un evento o proceso), el rombo (una condición), el círculo (un punto de conexión) y otros.
Simbología estándar
Yo considero que es necesario tener una simbología estandar, ya que puede ser entendida en distintos lugares independientemente del idioma que hables. Son una de las técnicas más fundamentales y más utilizadas por los analistas de negocios, los miembros del equipo del proyecto y la comunidad empresarial. Un analista debe aprender tantos de los diagramas anteriores y tenerlos como herramientas en su caja de herramientas de análisis. Por lo tanto, necesitamos asegurarnos de que todos los que necesitan usarlo puedan interpretarlo de la forma en que fue diseñado y que proporcione suficiente información para el propósito previsto. Como todo lo demás relacionado con el análisis, se trata de comunicarse claramente. En el mundo se pueden utilizar diferentes métodos de organización pero yo considero que los diagramas de flujo son uno de los métosod más organizados que existen y uno muy utilizado en el mundo. Por eso creo que me serán muy útiles a lo largo de mi carrera y profesión.
Restricciones y condiciones
Para que los diagramas de flujo puedan ser entendidos en diferentes lugares del mundo, se necesita más que solo la simbología estándar. También se necesita una organización específica y definir perfectamente sus características que lo componen. Para su realización, se deben cumplir algunos criterios. Las siguientes son las restricciones que deben de cumplir los diagramas de flujo.
Son verticales: deben escribirse de arriba hacia abajo, y/o de izquierda a derecha. Los símbolos se unen con líneas. Se debe evitar el cruce de líneas. Todas las líneas se tienen que conectar y todo el texto escrito dentro de un símbolo debe ser legible. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final. Deben tener más de una línea de flujo de salida.
Modelos computacionales
Máquina de Von Neuman
“En 1945 John Von Neumann creó un modelo computacional que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único.” (Universidad la Salle, 2018). Para el año 2020, sin embargo, el reinado de la arquitectura de von Neumann comenzará a desaparecer después de años de dominio, para ser suplantado por el aprendizaje de computadoras con arquitecturas heterogéneas. Nos estamos adentrando rápidamente de una era de programación a una era de aprendizaje, y las arquitecturas que no son de Von Neumann son vistas como un habilitador clave para optimizar el aprendizaje automático, particularmente las inferencias, y reducir los requisitos de energía para muchas clases computacionales. Aun así, diseñadores de arquitectura de computadoras ya han diseñado arquitecturas que no son de Von Neumann para superar el cuello de botella que impide un mayor crecimiento de la informática clásica.
Máquina de Turing
“Alan Mathison Turing, matemático y computador científico inglés, desarrolló en torno a 1935 y 1945 un modelo computacional hipotético que permite en teoría resolver cualquier problema matemático siempre y cuando se reduzca a un algoritmo. De esta forma será posible calcular funciones dadas a partir de las operaciones más simples posibles y, aunque sea un algoritmo muy complejo, será posible descomponerlo en una mayor cantidad de pasos hasta resolverlo.” (Universidad la Salle, 2018). Turing fue el primero en hacer el difícil trabajo de trazar la física de cómo funcionaría el universo digital. Y lo hizo utilizando una sola tira de cinta infinita. En el momento en que Turing bosquejó sus ideas, el mundo tenía muchas máquinas sumadoras bastante sofisticadas que le permitirían a alguien realizar cálculos simples. Lo que Turing ofreció fue la idea de una máquina programable de propósito general. Si no fuera por él, no tendríamos las computadoras como las conocemos en el mundo actual.
Introducción a la programación
Nada es posible sin la programación en la generación actual. El lenguaje de programación es importante porque define la relación que les permite a los programadores comunicarse con las máquinas, pero es un poco confuso cuando tenemos que elegir cual utilizar. Además, si bien los lenguajes de programación pueden compartir bases similares, existen ligeras variaciones entre ellos. Comprender en qué se diferencian realmente se reduce al tipo de método de programación que se está utilizando, ya que afectará la forma en que se procesan los datos y los tipos de salida que desea. Los algoritmos implementados usando diferentes lenguajes de programación pueden exhibir características muy diferentes, que pueden ser de carácter estético, ya que los lenguajes de nivel superior pueden ser muy sintéticos y generalmente son muy expresivos; o en términos de rendimiento, ya que los lenguajes de nivel relativamente inferior permiten una gestión más directa de la memoria y, en general, del rendimiento del código generado.
Concepto de lenguajes de programación
Todos los lenguajes de codificación se componen de un conjunto de reglas y vocabulario, su sintaxis, y generalmente están en inglés. Este ha sido el caso desde el inicio del desarrollo de software. No cualquier lenguaje de programación puede hacer todo. Existen limitaciones y, en realidad, se utilizan diferentes idiomas para diferentes tareas. Los lenguajes de programación son una de las herramientas más importantes y directas para la construcción de un sistema informático: en una computadora moderna, se utilizan habitualmente diferentes lenguajes para diferentes niveles de abstracción. Los aspectos relacionados con la escritura de un sistema operativo o un controlador de dispositivo son generalmente muy diferentes de los de la escritura de aplicaciones de alto nivel.
El uso generalizado del inglés no ha impedido a algunos programadores crear lenguajes de programación que generen sintaxis de otros lenguajes. Hay muchos lenguajes de programación que están basados en lenguajes distintos al inglés; sin embargo, la mayoría de ellos no están en uso, solo se usan raramente, o son herramientas introductorias y educativas para principiantes. Yo considero que para aprender un lenguaje se programación, no es necesario saber el idioma en el que está escrito. Aun así, puede ser de gran ayuda conocer el idioma previamente. Por eso, siento que me ayuda saber ingles por que no tengo que estar buscando la definición de las palabras y no me confundo entre lo que significan. Esto será de gran ayuda en mi carrera porque me ayudará a aprender más rápido o también aprender diferentes lenguajes de programación como me gustaría. Es importante tener un lenguaje estándar en el mundo porque así, las empresas no tendrían problemas expandiéndose a otros países.
Historia de la programación
C originalmente fue diseñado e implementado en el sistema operativo UNIX en el DEC PDP-ll, por Dennis Ritchie. C es el resultado de un proceso de desarrollo que comenzó con un lenguaje antiguo llamado BCPL. BCPL fue desarrollado por Martin Richards e influyó en un lenguaje llamado B, que fue inventado por Ken Thompson. B llevó al desarrollo de C en la década de 1970. El estándar de 1989 para C, junto con la Enmienda 1, se convirtió en un documento base para el Estándar C ++, que define el subconjunto de C de C ++. La versión de C definida por la norma de 1989 se conoce comúnmente como C89.
Durante la década de 1990, se estaba desarrollando un nuevo estándar para C. Era el estándar de 1999 para C, generalmente denominado C99. En general, C99 conservó casi todas las características de C89. El comité de estandarización de C99 se centró en dos áreas principales: la adición de varias bibliotecas numéricas y el desarrollo de algunas funciones nuevas de uso especial, pero altamente innovadoras. Estas innovaciones han puesto una vez más a C en la vanguardia del desarrollo del lenguaje informático.
Beneficios de la programación
La programación trae consigo múltiples beneficios para el individuo, la sociedad y el mundo. Es muy importante que las personas aprendan a programar porque esto lleva a desarrollar un pensamiento lógico matemático que enseña a resolver problemas de forma eficaz.
Esta en una habilidad extremadamente útil en el mundo por que siempre nos vamos a encontrar con retos y necesitamos aprender a solucionar las situaciones que nos presenten. Este ayuda a ejercitar el cerebro. También, enseña a trabajar en equipo, la cual es una habilidad necesaria para el desempeño en el área laboral. Según mi experiencia con la programación, me ha enseñado a trabajar con un equipo específico y a lograr desarrollar cualidades interpersonales.
Ambiente de programación
Un área clave de tu vida importante en el crecimiento es una carrera exitosa. Aprender a codificar ayuda a lograrlo a través de muchas vías y oportunidades. Existe una gran demanda de desarrolladores que entienden los lenguajes front-end como HTML, CSS, Javascript y los lenguajes back-end como Ruby y Ruby on Rails.
El ambiente de programación es de gran importancia en el mundo laboral porque este constituye el marco de trabajo del programador. Es extraño pensar en ello, pero la mayoría de las ideas realmente ‘grandes’ en la programación de computadoras se desarrollaron en los años 50 y 60. Se han desarrollado muchos lenguajes nuevos desde entonces, pero ninguno de ellos representa un enfoque verdaderamente novedoso de la lógica y la computación.
Tipos de lenguajes de programación
El desarrollo de nuevos lenguajes de programación en las últimas décadas se ha centrado mucho en la experiencia del desarrollador. Esto puede significar intentar desarrollar código que sea más fácil de escribir o leer, o hacer que ciertos tipos de estructuras lógicas y modos de resolución de problemas sean más intuitivos. En el siglo XX, la programación se convirtió en una ciencia bien desarrollada, una rama de las matemáticas teóricas. Esto llevó al desarrollo de lenguajes de programación modernos. Hubo varias ideas en conflicto sobre la naturaleza de la programación de computadoras y cómo deberían estructurarse los lenguajes. El ‘ganador’ resultó ser un conjunto de ideas promovidas por John von Neumann, ideas que incluían estructuras de control lógicas como IF y LOOP. Esta llamada ‘arquitectura de von Neumann’ permitió el desarrollo de la programación tal como la conocemos hoy, y el desarrollo de programas informáticos de alto nivel. Ha dominado la lógica y la estructura de todos los lenguajes de programación más importantes desde entonces. Solo existen unos pocos idiomas que no son de von-Neumann (como Plankalkül), y ninguno de ellos ha tenido un uso generalizado.
Entornos de programación
Clasificación de entornos integrados de desarrollo (IDE)
Los entornos de programación, yo entiendo, son los que ayudan al programa, ayudan a preparar las actividades que se realizarán en él. Este está compuesto por varios elementos. Estos son el compilador, el ejecutor, y editor. Existen muchas variedades de entornos integrados de desarrollo como son (clarión, netbeans, eclipse, etc) y algunos de ellos funcionan con diferentes lenguajes de programación como Eclipse, el cual soporta varios. El editor es en donde se edita el texto, el compilador traduce el código y el ejecutar, genera el programa.
Características
IDE proporciona interfaces para que los usuarios escriban código y organicen texto fácilmente. Son multiplataforma. Pueden ser en diferentes idiomas. Combina la funcionalidad de múltiples procesos de programación a uno. Algunos IDE se centran en un lenguaje de programación específico, pero muchos tienen capacidades en varios idiomas. IDE incluye 3 herramientas clave utilizadas por la mayoría de los desarrolladores, como editores de código fuente, depuradores y compiladores.
Etapas para el desarrollo de una aplicación /programa
Para garantizar la visibilidad de su aplicación en un escenario de un mercado extremadamente competitivo y tan complejo, debe ser muy particular sobre el enfoque que se está siguiendo para el desarrollo de aplicaciones móviles. Para crear una aplicación o un programa de forma exitosa, debe seguir un enfoque sistemático para el desarrollo de aplicaciones.
Análisis
Este paso consiste en analizar las necesidades que el software debe cubrir en varias etapas y hacer notas sobre requisitos adicionales. Consiste en tener un objetivo claro de lo que se quiere lograr. Según la Real Academia Española, el análisis se define como “el estudio detallado de algo, especialmente de una obra o de un escrito” (Real Academia Española, 2018). El análisis es muy importante para continuar con el siguiente paso. Yo creo que esta etapa es muy importante, si no es que la más importante porque para lograr cumplir el objetivo, se necesita tener una idea clara de lo quieres hacer. Si no, no vas a poder lograrlo y va a llevar a que tengas muchos errores.
En la materia de programación aprendí la importancia del análisis de un problema ya que en todas las prácticas es necesario que primeramente las entienda para después poder desarrollarlas y crear un algoritmo funcional. Cuando no entiendo el problema, algo me sale mal y no imprime el resultado. Esta fase se puede utilizar en el mundo en cualquier situación que requiera una tarea o resolver algún problema. Siempre hay que analizar la situación (o el problema en este caso) para lograr entenderlo y después resolverlo.
Diseño
Una vez que se completa el análisis, el paso del diseño se hace cargo, que consiste básicamente en construir la arquitectura del proyecto. Este paso ayuda a eliminar posibles defectos al establecer un estándar e intentar atenerse a él. Este es definido por la Real Academia Española como “el proyecto, plan que configura algo.” (Real Academia Española, 2018). Por lo tanto, es la descripción detallada de lo que se va a lograr.
En la materia de programación se necesita crear un diseño del programa antes de hacerlo. Si esto no se cumple, caeríamos en un ciclo de prueba y error que en la vida real costaría miles de dólares. En clase, aprendí a diseñar mi propio algoritmo, lo cuál es muy útil porque me ayuda a resolver problemas de la vida real y me lleva a pensar antes de actuar. Lo cuál es muy útil para no equivocarme.
Desarrollo
La tarea real de desarrollar el software comienza aquí con el registro de datos en segundo plano. Una vez que se desarrolla el software, la etapa de implementación llega donde el producto pasa por un estudio piloto para ver si está funcionando correctamente. La siguiente etapa, después de identificar el enfoque, es desarrollar un prototipo. En realidad, es el proceso de tomar su idea y convertirla en una aplicación con algunas funciones básicas. Un prototipo facilita mucho la venta de su idea a compradores potenciales que ahora pueden ver los beneficios tangibles en lugar de solo visualizar o leer la descripción del producto. En una empresa, esto es muy útil para atraer inversionistas y trabajar con fabricantes y encontrar licencias.
Compilación
Un compilador es un programa que realiza la tarea de compilación. Un compilador reconoce los programas en un HLL particular y produce programas de salida equivalentes apropiados para alguna configuración de computadora particular (hardware y sistema operativo). En la clase de programación, utilizamos el proceso de compilación antes de correr el código que creamos. Es muy importante para que se pueda correr bien.
Prueba
Durante la fase de prueba, el código se ejecuta y los resultados de esa ejecución se evalúan para determinar si el producto pasó la prueba. Si no, se modifica, y se vuelve a probar. Esta parte la realizo mucho en clase para verificar si me salió bien el código. Para esto, el programa Dev C++ es muy útil porque no solo te dice que te equivocaste, sino que te dice en que línea para que tu lo averigües. Pero tampoco te dice exactamente donde y eso me gusta porque tengo que pensar más y practico escribir el código y también como corregirlos.
Mantenimiento
Finalmente, esta etapa se refiere al buen cuidado del programa para asegurar que siga funcionando por mucho tiempo. En la actualidad, las compañías grandes gastan mucho dinero en esto para asegurar que no haya fallas o que las puedan corregir. A demás se puede optimizar el código para hacerlo más rápido y corto.
Conclusión
Yo considero que las áreas de estudio en las ciencias de la computación son de vital importancia, ya que, en conjunto, forman la computación como la conocemos. Así mismo, si estas fueran a ser desarrolladas, la computación alcanzaría un nivel más avanzado. Esto, a su vez, favorecería el desarrollo de las ciencias y de la sociedad en conjunto.
Considero que la historia de la computación debería incluir todo lo relacionado al pensamiento lógico y como este se desarrolló en la sociedad a lo largo de la historia porque considero que este es de extrema importancia para la realización de problemas de forma crítica y coherente. Esto, a su vez, llevó a la necesidad de resolver problemas de manera veloz, creando una máquina que lo hiciera de forma automática.
Cualquiera que sea el futuro, es más y más claro que la programación (poder leer y escribir código en un puñado de lenguajes comunes) se está convirtiendo en la nueva cultura empresarial. La familiaridad con los conceptos de programación y con la lógica de los sistemas informáticos y la arquitectura se está convirtiendo rápidamente en algo tan importante como las habilidades empresariales básicas, como ventas, marketing y diseño.
Recomendaciones
Me gustó mucho el contenido temático de este parcial. Siento que es suficiente y refleja perfectamente de lo que la materia diseño de programas trata. Me gustaría que entrara más a detalle sobre las diferentes generaciones de las computadoras, en vez de solo hablar de sus diferencias. También me gustaría practicar el desarrollo de algoritmos más frecuentemente para estar más preparada para los parciales. Recomendaría agregar un apartado de tareas opcionales, las cuales incluyan diferentes prácticas sin valor para realizar en casa en Dev C++. También recomendaría agregar una rúbrica de especificaciones en cada trabajo, la cual incluya el porcentaje de cada detalle a evaluar. En general, me gusta mucho esta materia a pesar de que es un poco demandante, pero siento que, si me esfuerzo, lograré aprobar.
Referencias
- Definición ABC. (2015). Diagrama de flujo. Obtenido de Definición ABC: https://www.definicionabc.com/comunicacion/diagrama-de-flujo.php
- Enciclopedia de conceptos. (Agosto de 2018). Concepto de computación. Obtenido de Conceto.de: https://concepto.de/computacion/
- Real Academia Española. (agosto de 2018). Definición de Algoritmo. Obtenido de RAE: http://dle.rae.es/srv/search?m=30&w=algoritmo
- Real Academia Española. (2018). Definición de análisis. Obtenido de http://dle.rae.es/?id=2Vga9Gy
- Real Academia Española. (2018). Definición de Computadora. Obtenido de RAE: http://dle.rae.es/?id=A4hIGQC
- Real Academia Española. (2018). Definición de hardware. Obtenido de Rae: http://lema.rae.es/dpd/srv/search?key=hardware
- Real Academia Española. (2018). Definición de software. Obtenido de RAE: http://lema.rae.es/dpd/srv/search?key=software
- Universidad la Salle. (2018). Contenido Temárico. Obtenido de ULSA: file:///C:/Users/fatim/Downloads/ContenidoTemarico_PP%20Ver%201.1-1.pdf