Introduccion a la Los recursos de hardware son todos aquellos
elementos de la computadora que se pueden programación. palpar como, por ejemplo: el monitor, el teclado, el disco duro y la memoria, entre otros (Sánchez, 2005). Los recursos de - Definición de ingeniería de software: Es la software son aquellos elementos intangibles disciplina que usa métodos, herramientas y sin los cuales la computadora no funcionaría, técnicas para desarrollar programas es decir, el soporte lógico: programas y datos, informáticos que resuelven problemas entre los que se encuentran los sistemas específicos. operativos, editores de texto, compiladores, - Importancia de la programación: Es la etapa bases de datos, videojuegos, etc. (Sánchez, final o una de las fases de desarrollo de un 2005). proyecto de software, dependiendo de la Los elementos que componen la escala. Es la acción de codificar un algoritmo arquitectura de la computadora según el en un lenguaje que la computadora pueda modelo de Von Newman son: procesar y ejecutar. la Unidad Central de Procesamiento - Concepto de programa informático: Es una (CPU por sus siglas en Inglés – serie de instrucciones con una secuencia Central Processor Unit) [que está lógica que siguen un algoritmo para resolver integrada por la Unidad Aritmética- un problema. Lógica (ALU por sus siglas en Inglés - - Relación entre computadora y problema: Arithmetic Logic Unit) y la Unidad de Para resolver problemas mediante la Control (CU por sus siglas en Inglés – computadora, se necesita desarrollar Control Unit)], programas que la computadora pueda la memoria, y entender y manipular los datos y recursos. los dispositivos de entrada como el teclado, el ratón, un escáner, etc., y La acción de programar consiste en indicarle los de salida como el monitor, una a la computadora qué es lo que tiene que impresora, una bocina o altavoz, por hacer. Para esto, los desarrolladores de ejemplo. software escriben programas compuestos de un conjunto de instrucciones que son Programas interpretadas y ejecutadas por la computadora para buscar la resolución de un Un programa es la forma en que el usuario o problema. Se concibe un programa como “un programador establece comunicación con la sistema para transformar datos” Winder, computadora, de acuerdo a un conjunto de 1995, p.3). instrucciones, para obtener nuevos datos que son el resultado del proceso. Una computadora es una máquina electrónica que recibe datos de entrada y los Un programa se compone, entre otras cosas, procesa de acuerdo al conjunto de de: instrucciones, llamado programa, para • Datos: variables o constantes. obtener nuevos datos que son el resultado del proceso. • Operadores: lógicos, aritméticos, relacionales y jerárquicos. • Estructuras de control: secuenciales, programación se define a partir de un selectivas y repetitivas. conjunto de símbolos básicos, llamado alfabeto; un conjunto de reglas, llamado sintaxis, que definen la forma de Ejecución de programas en la manipularlos o combinarlos para representar instrucciones; y las reglas que especifican los computadora efectos de dichas instrucciones cuando son Según Joyanes y Zohanero (2005), al ejecutar ejecutadas por la computadora, conocidas cualquier programa una vez que el programa como semántica. De esta manera se puede y los datos fueron almacenados en la decir que los elementos que conforman un memoria principal, se realiza el siguiente lenguaje de programación son: proceso en el interior de la CPU: 𝐿𝑒𝑛𝑔𝑢𝑎𝑗𝑒 𝑑𝑒 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎ción = 𝑎𝑙𝑓𝑎𝑏𝑒𝑡𝑜 + 1. La Unidad de Control consulta en la 𝑠𝑖𝑛𝑡𝑎𝑥𝑖𝑠 + 𝑠𝑒𝑚á𝑛𝑡𝑖𝑐𝑎 memoria la instrucción indicada en el Los lenguajes de programación se clasifican contador del programa y la almacena en el en lenguajes de bajo nivel (se caracterizan registro de instrucciones, actualizando el porque sus instrucciones se parecen más a contador del programa con la dirección de las acciones elementales que ejecuta una memoria de la siguiente instrucción. computadora, como son: sumar, restar, 2. Una vez almacenada la instrucción en el guardar en memoria, etcétera. Describen a registro del programa, la unidad de control la detalle lo que sucede a nivel de hardware) y decodifica, detectando los dispositivos lenguajes de alto nivel (son más parecidas a implicados en su ejecución. un lenguaje humano, por lo regular en idioma inglés. Son más fáciles de entender 3. Una vez detectados los dispositivos, la para las personas, son independientes de la misma Unidad de Control, les envía las arquitectura de las computadoras) [Algunos señales de control, indicándoles la acción a ejemplos son: FORTRAN y COBOL (que son realizar y, si es el caso, los datos y/o la los primeros lenguajes que aparecieron y en dirección de memoria correspondiente. sus inicios se utilizaron para aplicaciones 4. Cuando cada dispositivo concluye con las científicas), C, Pascal, Ada, Lisp y Prolog acciones designadas, envía una señal a la (utilizados principalmente en inteligencia unidad de control, para que ésta continúe artificial), Java, C++, C#, entre otros.] con el mismo procedimiento para la siguiente dependiendo de su legibilidad para el ser instrucción, así hasta ejecutar todo el humano. programa. Estructura de un lenguaje Al período en el que se ejecuta una Como en muchos otros lenguajes, una instrucción se le conoce como ciclo de función es un código de programación que instrucción o ciclo fetch. tiene una tarea específica y forma parte del Lenguaje de programación programa original. Es una secuencia de instrucciones precisas, para realizar una El lenguaje de programación sirve para tarea en específico. escribir código orientado a resolver algún problema o necesidad. Cada lenguaje de Una función está definida por los siguientes Evolución de los lenguajes de elementos: programación • Cabecera de la función. Está integrada por Con las primeras computadoras surgió el un tipo de dato, un nombre de la función y primer lenguaje de programación que fue una la lista de parámetros. precisamente el lenguaje de máquina, el cual • Código de programación. Es único para es considerado el lenguaje de primera cada función. Se incluye el valor devuelto por generación. Las instrucciones en lenguaje de la función. máquina dependían de las características de cada equipo, por lo que dada la dificultad de Los aspectos más importantes en el diseño desarrollar programas en unos y ceros, los de una función son: investigadores de la época desarrollaron el • Tipo de resultado. Se refiere al tipo de dato lenguaje ensamblador, cuyo conjunto de que devuelve la función. instrucciones consta de palabras nemotécnicas que corresponden a las • Lista de parámetros. operaciones básicas que una computadora • Cuerpo de una función. Se encierra entre puede ejecutar. llaves {}. Para traducir de lenguaje ensamblador a • Paso de parámetros. lenguaje de máquina, se desarrollaron programas llamados ensambladores (en • Declaración de variables de forma local. inglés, assemblers). Este lenguaje fue Dentro de una función pueden declararse considerado de segunda generación. variables de distintos tipos, pero estas perduran únicamente dentro la función. Al igual que el lenguaje ensamblador, los programas escritos en un lenguaje de alto • Valor devuelto por la función. nivel deben ser codificados a lenguaje de Una función devuelve un único valor, puede máquina, así que junto con ellos se ser de cualquier tipo de datos reconocido. El desarrollaron programas traductores, que de nombre de una función comienza con una acuerdo con la forma en que trabajan se letra o un subrayado (_) y puede contener las dividen en dos tipos: compiladores e letras y subrayados que se desee. intérpretes.
Tipos de datos Compiladores. Traducen todo el programa
escrito en un lenguaje de alto nivel, llamado Los tipos de datos que suelen utilizarse en la programa o código fuente, generando un mayoría de los lenguajes de programación nuevo programa objeto que está escrito en son: lenguaje de máquina y a partir de éste se genera un programa ejecutable, el cual • Cadena (texto). puede ejecutarse cada vez que se desee sin • Entero (número entero). tener que compilar el programa fuente nuevamente. Además, como parte del • Decimal (número con punto decimal) proceso de traducción el compilador detecta los errores que hay en el código fuente, informándole al programador para que los corrija, pues un programa sólo se compila si no tiene errores. Metodología de la programación Intérprete. Revisa cada línea de código individualmente, la analiza y enseguida la Son el conjunto de estrategias usadas para ejecuta, sin revisar todo el código y sin abordar un problema y transformarlo en un generar un programa objeto, así que cada vez programa codificado que tendrá una que se quiere ejecutar el programa se vuelve estructura o arquitectura acorde con un a traducir el programa fuente línea por línea. paradigma de programación. Conforme han ido evolucionando las Fases de la metodología de computadoras también lo han hecho las estrategias para solucionar problemas, programación generando nuevos programas con diferentes filosofías, llamadas paradigmas de programación.
Planteamiento del problema. Es la
primera fase del ciclo, consiste en Paradigmas de programación seleccionar y plantear el problema “Los paradigmas de programación se definen que se quiere resolver para poder como las diversas maneras que a lo largo de comenzar su análisis. Es muy la transformación de los lenguajes de importante tener bien claro y programación se han reconocido como delimitar desde un inicio el problema estilos para programar y resolver problemas. a resolver pues de esto dependerá el […] Cuando se describen los distintos éxito de las siguientes fases del enfoques del desarrollo de un programa y las proceso. En el planteamiento del técnicas y lenguajes correspondientes, se problema se deben considerar los habla de paradigma de programación. Éste insumos (datos de entrada) que se define la forma en que se estructura el necesitan para resolver el problema; código, y la relación de éste con los datos.” los pasos a seguir para su solución y (Ibidem, p. 165). el producto final (datos de salida). Análisis del problema. En esta fase Un lenguaje de programación siempre sigue se determina ¿qué hace el un paradigma de programación, aunque programa? Por lo cual debe definirse también podemos encontrar lenguajes con la de manera clara y concisa el influencia de dos paradigmas (tal es el caso problema en cuestión, se debe del lenguaje C, que surgió bajo el paradigma establecer el ámbito del problema, procedimental y se transformó al paradigma las características, limitaciones y orientado a objetos, de tal manera que modelos de lo que se desea resolver. puede soportar ambos paradigmas) Este paso debe conducir a una especificación completa del Los paradigmas de programación más problema en donde se describa importantes son: imperativo, funcional, cuáles son los datos requeridos para lógico y orientado a objetos. resolverlo (datos de entrada) y cuál es el resultado deseado (salida). más pequeños y resolver por separado cada uno de ellos. A esta ¿Cuál es la El área de un metodología se le conoce como salida rectángulo, la diseño descendente (top-down) o deseada? cual identificaremos modular. Existen diferentes formas como área de representar un algoritmo, algunas ¿Qué método El área de un formales como una fórmula (s) se pueden rectángulo se matemática, o informales, como es el utilizar oara puede calcular caso del lenguaje natural. llegar a la con la siguiente Implementación (codificación). El solución? fórmula: algoritmo no puede ser ejecutado Á𝑟𝑒𝑎 = 𝐵𝑎𝑠𝑒 ∗ por una computadora, por ello debe 𝐴𝑙𝑡𝑢𝑟a traducirse a un lenguaje de ¿Qué datos de Por el programación (como por ejemplo el entrada se planteamiento lenguaje C) para obtener un requieren? del problema y programa fuente que se traduzca a dado el método lenguaje de máquina que pueda ser anterior, los únicos datos que ejecutado por la computadora. se requieren son: Validación y pruebas. Esta fase se la medida de la lleva a cabo una vez que se ha base que se codificado el algoritmo previamente representa por b diseñado con el fin de verificar que y la medida de la su ejecución sea correcta. Existen altura indicada diferentes formas de probar que la por h solución es correcta, algunas de ellas ¿Qué datos o En este caso no son formales y otras informales: las información se requiere más primeras se utilizan para garantizar adicional es información. que el programa o algoritmo siempre necesaria para calcule el resultado deseado para solucionar el cualquier conjunto de datos de problema? entrada; en cambio, en las segundas ¿Existe algún Las únicas problema o restricciones son sólo se prueba que funciona condiciones que las medidas correctamente para algunos datos de que deban de la base y entrada, tratando de encontrar cumplirse? altura sean posibles errores, en este caso no se mayores a cero. puede garantizar que el programa o algoritmo calcule la salida correcta Diseño del algoritmo. En esta fase se para cualquier conjunto de datos. En define ¿cómo el programa resuelve cualquiera de los dos casos, si se el problema? Para ello, se describe encuentra alguna falla se debe paso a paso la solución del mismo, lo corregir y volver a realizar pruebas. cual se conoce como algoritmo. Documentación. Cualquier proyecto Cuando el problema es grande se de software por la complejidad que recomienda dividirlo en problemas tiene requiere que tanto las ideas principales como el desarrollo de conjunto de archivos, que puede o no estar principio a fin sea documentado con en un formato que puede ser leído por el el fin de que se pueda entender la usuario (es decir, en un formato que respeta lógica del programa y de ser las reglas)” (Juganaru, 2014, p.2). necesario se pueda modificar o darle Es preciso realizar dos acciones dependiendo mantenimiento posteriormente, sin del tipo de problema a resolver o acciones a tantas complicaciones. Como parte realizar: de la documentación también deben incluirse manuales de usuario y las Conocer las herramientas, los normas de mantenimiento para que formalismos y los métodos para se haga un buen uso del software y transformar un problema en un éste se mantenga al día. programa escrito en un lenguaje (que Mantenimiento. Esta fase tiene posiblemente no será el lenguaje sentido una vez que fue terminada y máquina), y para que dicho liberada una primera versión del programa pueda ser transformado en programa, misma que ya está siendo un código ejecutable. utilizada. En esta fase se actualiza y Saber transformar el problema modifica dicho programa para inicial en un algoritmo y luego en un corregir errores no detectados o para programa. cambiar y/o agregar una nueva función. Un algoritmo se define como una secuencia finita de instrucciones precisas y eficaces La metodología de programación sirve para para resolver un problema, que trabaja con desarrollar software desde el inicio con su uno o más datos (entrada) y devuelve un diseño hasta el final con su implementación, resultado (salida) (Viso & Peláez, 2007). de ahí la importancia de entender las diferentes fases y las actividades involucradas Existen dos maneras de representar un en cada una de ellas, con el fin de dar una algoritmo: una gráfica, conocida como solución óptima al problema en cuestión. diagramas de flujo; y otra, similar a un lenguaje humano, la cual se denomina pseudocódigo. Los diagramas de flujo son una representación totalmente gráfica de un Los algoritmos en la programación algoritmo que utiliza símbolos para Las computadoras necesitan recibir representar las instrucciones y flechas para indicaciones en un formato entendible para unirlas e indicar el orden en el que deben ellas, con el fin de que realicen las acciones ejecutarse llamadas líneas de flujo, lo deseadas. Las indicaciones u órdenes se anterior hace más fácil seguir la secuencia de agrupan en un programa, al conjunto de la ejecución de las instrucciones. Dichos programas se le conoce como software. Para símbolos fueron normalizados por el Instituto analizar la estructura de un programa, éste Norteamericano de Normalización ANSI "se puede dividir en dos partes que son: el (American National Standards Institute, por formato de representación interno del sus siglas en inglés). Algunos de los símbolos programa, que constituye el lenguaje más utilizados se muestran en el siguiente máquina o código ejecutable, y el formato de cuadro: presentación externa, que es un archivo o un El pseudocódigo es un lenguaje de especificación formal de algoritmos. La solución de un problema se representa de manera narrativa utilizando palabras claves, generalmente verbos, escritos en un lenguaje natural. Es una de las representaciones de algoritmos más utilizadas por su parecido con el lenguaje natural y porque su codificación en un lenguaje de programación estructurado y modular es directa.