Nodo | Tipo | Descripción | Visible |
---|---|---|---|
Algoritmo | Un algoritmo es un método para resolver un problema. Aunque la popularización del término ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al-Khowârizmi, matemático persa que vivió durante el siglo IX y alcanzó gran reputación por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir números decimales; la traducción al latín del apellido en la palabra algorismus derivó posteriormente en algoritmo. Euclides, el gran matemático griego que inventó un método para encontrar el máximo común divisor de dos números, se considera con Al-Khowârizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).El profesor Niklaus Wirth —inventor de Pascal, Modula-2 y Oberon— tituló uno de sus más famosos libros, Algoritmos + Estructuras de datos = Programas, significándonos que sólo se puede llegar a realizar un buen programa con el diseño de un algoritmo y una correcta estructura de datos. Esta ecuación será una de las hipótesis fundamentales consideradas en esta obra. La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto. |
Visibilidad | |
Introducción a la ciencia de la computación y a la programación | Visibilidad | ||
Las computadoras | Una computadora es un dispositivo electrónico utilizado para procesar información y obtener resultados. |
Visibilidad | |
Lenguaje C++ Historia y características | C++, Java y C#, los tres lenguajes más populares junto con C en esta primera década del siglo XXI son herederos directos del propio C con características orientadas a objetos y a Internet. Actualmente, y aunque C sigue siendo, tal vez, el más utilizado en el mundo de la educación como primer lenguaje de programación y también copa un porcentaje alto de utilización en el campo profesional, los tres lenguajes con características técnicas de orientación a objetos forman con C el poker de lenguajes más empleados en el mundo educativo, profesional y científico actual y previsiblemente de los próximos años c++ es heredero directo del lenguaje C que, a su vez, se deriva del lenguaje B [Richards, 1980]. C se mantiene como un subconjunto de C++. Otra fuente de inspiración, como señala su autor Bjarne Stroustrup [Stroustrup, 1997] fue Simula 67 [Dahl, 1972] del que tomó el concepto de clase (con clases derivadas y funciones virtuales).El lenguaje de programación C fue desarrollado por Dennis Ritchede AT&T Bell Laboratories que se utilizó para escribir y mantener el sistema operativo UNIX (hasta que apareció C, el sistema operati-vo UNIX fue desarrollado por Ken Thompson en AT&T Bell Laboratories mediante en lenguaje en-samblador o en B). C es un lenguaje de propósito general que se puede utilizar para escribir cualquier tipo de programa, pero su éxito y popularidad está especialmente relacionado con el sistema operativo UNIX. |
Visibilidad | |
Lenguaje en la programación | Como se ha visto en el apartado anterior, para que un procesador realice un proceso se le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de interpretarel algoritmo, lo que significa:• comprender las instrucciones de cada paso,• realizar las operaciones correspondientes.Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato que se denomina programa, ya que el pseudocódigo o el diagrama de flujo no son comprensibles por la computadora, aunque pueda entenderlos cualquier programador. Un programa se escribe en un lenguaje de programación y las operaciones que conducen a expresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas. El proceso de traducir un algoritmo en pseudocódigo a un lenguaje de programación se denomina codificación, y el algoritmo escrito en un lenguaje de programación se denomina código fuente.En la realidad la computadora no entiende directamente los lenguajes de programación sino que se requiere un programa que traduzca el código fuente a otro lenguaje que sí entiende la máquina directa- mente, pero muy complejo para las personas; este lenguaje se conoce como lenguaje máquina y el código correspondiente código máquina. Los programas que traducen el código fuente escrito en un lenguaje de programación —tal como C++— a código máquina se denominan traductore. El proceso de conversión de un algoritmo escrito en pseudocódigo hasta un programa ejecutable comprensible por la máquina, se muestra en la Figura 1.20.Hoy en día, la mayoría de los programadores emplean lenguajes de programación como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, Java Script..., aunque todavía se utilizan, sobre todo profesionalmente, los clásicos COBOL, FORTRAN, Pascal o el mítico BASIC. Estos lenguajes se denominan lenguajes de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus algoritmos en programas escritos en alguno de estos lenguajes de programación. |
Visibilidad | |
Lenguaje unificado | UML es un lenguaje gráfico para modelado de programas de computadoras. “Modelado” significa como su nombre indica, crear modelos o representaciones de “algo”, como un plano de una casa o similar. UML proporciona un medio de visualizar la organización de alto nivel de los programas sin fijarse con detenimiento en los detalles del código real. El lenguaje de modelado está unificado porque está basado en varios modelos previos (métodos de Booch, Rumbaugh y Jacobson). En la actualidad UML está adoptado por OMG , un consorcio de más de 1.000 sociedades y universidades activas en el campo de tecnologías orientadas a objetos y está dedicado especialmente a unificación de estándares. UML tiene una gran riqueza semántica que lo abstrae de numerosos aspectos técnicos y ésa es su gran fortaleza. ¿Porqué necesitamos UML en programación orientada a objetos? En primer lugar, porqué UML nació como herramientas gráficas y metodologías para implementar análisis y diseño orientados a objetos y, en segundo lugar, porque en programas grandes de computadoras es difícil entender el funcionamiento de un programa examinando sólo su código y es necesario ver cómo se relacionan unas partes con otras. La parte más importante de UML, al menos a un nivel de iniciación o medio en programación, resi- de en un conjunto rico de diagramas gráficos. Diagramas de clases que muestran las relaciones entre clases, diagramas de objetos que muestran cómo se relaciona objetos específicos entre sí, diagramas de casos de uso que muestran cómo los usuarios de un programa interactúan con el programa, etc. Cuando se modelan clases, UML es de hecho estándar para representaciones gráficas. UML no es un proceso de desarrollo de software sino, simplemente, un medio para examinar el software que se está desarrollando. Aunque, al ser un estándar, UML se puede aplicar a cualquier tipo de lenguaje de programación, está especialmente adaptado a la POO. |
Visibilidad | |
Los hardware | Los dispositivos de Entrada/Salida (hadware) periféricos permiten la comunicación entre la computadora y el usuario. Los dispositivos de entrada, como su nombre indica, sirven para introducir datos (información) en la computadora para su proceso. Los datos se lee de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información de entrada en señales eléctricas que se almacenan en la memoria central. Dispositivos de entrada típicos son teclados, lectores de tarjetas perforadas lápices ópticos, palancas de mando lectores de códigos de barras, escáneres, micrófon , lectores de tarjetas digitales, lectores RFID (tarjetas de identificación por radio frecuencia), etc. |
Visibilidad | |
Origen del C++ como lenguaje universal | C s el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C, se ha producido porque este lenguaje no está prácticamente asociado a ningún sistema operativo, ni a ninguna máquina, en especial. Ésta es la razón fundamental, por la cual C, es conocido como el lenguaje de programación de sistemas, por excelencia . C es una evolución de los lenguajes BCPL —desarrollado por Martin Richards— y B —desarrolla- do por Ken Thompson en 1970— para el primitivo INIX de la computadora DEC PDP-7. c nació realmente en 1978, con la publicación de . Desde su nacimiento, C fue creciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los años junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron necesario pensar en la estandarización de la definición del len- guaje C. Así, en 1983, el American National Standard Institute (ANSI), una organización internacional de estandarización, creó un comité (el denominado X3J11) cuya tarea fundamental consistía en hacer “una definición no ambigua del lenguaje C, e independiente de la máquina” . Había nacido el estándar ANSI del lenguaje C. Con esta definición de C se asegura que cualquier fabricante de software que vende un compilador ANSI C incorpora todas las características del lenguaje, especificadas por el estándar. Esto significa también que los programadores que escriban programas en C estándar tendrán la seguridad de que correrán sus modificaciones en cualquier sistema que tenga un compilador C. C es un lenguaje de alto nivel , que permite programar con instrucciones de lenguaje de propósito general. También, C se define como un lenguaje de programación estructurado de propósito general; aunque en su diseño también primó el hecho que fuera especificado como un lenguaje de programación de Sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad. El estándar ANSI C formaliza construcciones no propuestas en la primera versión de C, en especial, asignación de estructuras y enumeraciones. Entre otras aportaciones, se definió esencialmente, una nue- va forma de declaración de funciones (prototipos). Pero es, esencialmente, la biblioteca estándar de funciones, otra de las grandes aportaciones. Hoy, en el siglo XXI , C sigue siendo uno de los lenguajes de programación más utilizados en la in- dustria del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades. Prácti- camente todos los fabricantes de sistemas operativos, Windows, UNIX, Linux, MacOS, Solaris..., sopor- tan diferentes tipos de compiladores de lenguaje C y en muchas ocasiones distribuciones gratuitas bajo cualquiera de los sistemas operativos citados. Todos los compiladores de C++ pueden ejecutar programas escritos en lenguaje C, preferentemente si cumplen el estándar ANSI C. |
Visibilidad | |
programación estructurada | Es decir, cada sentencia o instrucción señala al compilador para que realice alguna tarea: obtener una entrada, producir una salida, sumar tres números, dividir por cinco, etc. En resumen, un programa en un lenguaje procedimental es un conjunto de instrucciones o sentencias. En el caso de pequeños programas, estos principios de organización (denominados paradigma) se demuestran eficientes. El programador sólo tiene que crear esta lista de instrucciones en un lenguaje de programación, compilar en la computadora y ésta, a su vez, ejecuta estas instrucciones. Cuando los programas se vuelven más grandes, cosa que lógicamente sucede cuando aumenta la complejidad del problema a resolver, la lista de instrucciones aumenta considerablemente, de modo tal que el programador tiene muchas dificultades para controlar ese gran número de instrucciones. Los programadores pueden controlar, de modo normal, unos centenares de líneas de instrucciones. Para resolver este problema los programas se descompusieron en unidades más pequeñas que adoptaron el nombre de funciones. De este modo en un programa orientado a procedimientos se divide en funciones, de modo que cada función tiene un propósito bien definido y resuelve una tarea concreta, y se diseña una interfaz claramente definida (el prototipo o cabecera de la función) para su comunicación con otras funciones. Con el paso de los años, la idea de romper en programa en funciones fue evolucionando y se llegó al agrupamiento de las funciones en otras unidades más grandes llamadas módulos sin embargo, el principio seguía siendo el mismo: agrupar componentes que ejecutan listas de instrucciones (sentencias). Esta característica hace que a medida que los programas se hacen más grandes y complejos, el paradigma estructurado comienza a dar señales de debilidad y resultando muy difícil terminar los programas de un modo eficiente. Existen varias razones de la debilidad de los programas estructurados para resolver problemas complejos. Tal vez las dos razones más evidentes son éstas. Primero, las funciones tienen acceso ilimitado a los datos globales. Segundo, las funciones inconexas y datos, fundamentos del paradigma procedimental proporcionan un modelo pobre del mundo real. |
Visibilidad | |
Programación orientada | La programación orientada a objetos, tal vez el paradigma de programación más utilizado en el mundo del desarrollo de software y de la ingeniería de software del siglo XXI, trae un nuevo enfoque a los retos que se plantean en la programación estructurada cuando los problemas a resolver son complejos. Al contrario que la programación procedimental que enfatiza en los algoritmos, la POO enfatiza en los da- tos. En lugar de intentar ajustar un problema al enfoque procedimental de un lenguaje, POO intenta ajustar el lenguaje al problema. La idea es diseñar formatos de datos que se correspondan con las características esenciales de un problema. La idea fundamental de los lenguajes orientados a objetos es combinar en una única unidad o módulo, tanto los datos como las funciones que operan sobre esos datos. Tal unidad se llama un objeto. Las funciones de un objeto se llaman funciones miembro en C++ o métodos, y son el único medio para acceder a sus datos. Los datos de un objeto, se conocen también como atributos o variables de instancia. Si se desea leer datos de un objeto, se llama a una función miembro del objeto. Se accede a los datos y se devuelve un valor. No se puede acceder a los datos directamente. Los datos son ocultos, de modo que están protegidos de alteraciones accidentales. Los datos y las funciones se dice que están encapsulados en una única entidad. El encapsula-miento de datos y la ocultación de los datos son términos clave en la descripción de lenguajes orientados a objetos. Si se desea modificar los datos de un objeto, se conoce exactamente cuáles son las funciones que interactúan con las funciones miembro del objeto. Ninguna otra función puede acceder a los datos. Esto simplifica la escritura, depuración y mantenimiento del programa. Un programa C++ se compone normalmente de un número de objetos que se comunican unos con otros mediante la llamada a otras funciones miembro. |
Visibilidad | |
Representación de información en las computadoras | Una computadora es un sistema para procesar información de modo automático. Un tema vital en el proceso de funcionamiento de una computadora es estudiar la forma de representación de la información en dicha computadora. Es necesario considerar cómo se puede codificar la información en patrones de bits que sean fácilmente almacenables y procesables por los elementos internos de la computadora. Las formas de información más significativas son: textos, sonidos, imágenes y valores numéricos y, cada una de ellas presentan peculiaridades distintas. Otros temas importantes en el campo de la programación se refieren a los métodos de detección de errores que se puedan producir en la transmisión o almacenamiento de la información y a las técnicas y mecanismos de comprensión de información al objeto de que ésta ocupe el menor espacio en los dispositivos de almacenamiento y sea más rápida su transmisión. |
Visibilidad | |
Sistema operativo | Un sistema operativo SO es tal vez la parte más importante del software del sistema y es el software que controla y gestiona los recursos del computador. En la práctica, el sistema operativo es la colección de programas de computador que controla la interacción del usuario y el hardware del computador. El sistema operativo es el administrador principal del computador, y por ello a veces, se le compara con el director de una orquesta ya que este software es el responsable de dirigir todas las operaciones del computador y gestionar todos sus recursos. Normalmente, el sistema operativo se almacena de modo permanente en un chip de memoria de sólo lectura (ROM) de modo que esté disponible tan pronto el computador se pone en marcha (“se enciende” o “se prende”). Otra parte del sistema operativo puede residir en disco que se almacena en memoria RAM en la inicialización del sistema por primera vez en una operación que se llama carga del sistema (booting).Uno de los programas más importante es el sistema operativo, que sirve, esencialmente, para facilitar la escritura y uso de sus propios programas. El sistema operativo dirige las operaciones globales de la computadora, instruye a la computadora para ejecutar otros programas y controla el almacenamiento y recuperación de archivos (programas y datos) de cintas y discos. Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevos programas, así como instruir a la computadora para que los ejecute. Los sistemas operativos pueden ser: monousuarios (un solo usuario) y multiusuarios, o tiempo compartido (diferentes usuarios); atendiendo al número de usuarios y monocarga (una sola tarea) o multitarea (múltiples tareas) según las tareas (procesos) que puede realizar simultáneamente. C++ corre prácticamente en todos los sistemas operativos, Windows XP, Windows 95, Windows NT, Windows 2000, UNIX, Linux, Vista..., y en casi todas las computadoras personales actuales PC, Mac, Sun, etc. |
Visibilidad | |
software | El software de una computadora es un conjunto de instrucciones de programa detalladas que controlan y coordinan los componentes hardware de una computadora y controlan las operaciones de un sistema informático. El auge de las computadoras en el siglo pasado y en el actual siglo XXI, se debe esencialmente, al desarrollo de sucesivas generaciones de software potentes y cada vez más amistosas. Un programa de software es un conjunto de sentencias o instrucciones al computador. El proceso de escritura o codificación de un programa se denomina programación y las personas que se especializan en esta actividad se denominan programadores. Existen dos tipos importantes de software: software del sistema y software de aplicaciones. Cada tipo realiza una función diferente. |
Visibilidad |
Origen | Relación | Destino | Fecha |
---|---|---|---|
Introducción a la ciencia de la computación y a la programación | Algoritmo | ||
Introducción a la ciencia de la computación y a la programación | Las computadoras | ||
Introducción a la ciencia de la computación y a la programación | Lenguaje C++ Historia y características | ||
Introducción a la ciencia de la computación y a la programación | Lenguaje en la programación | ||
Introducción a la ciencia de la computación y a la programación | Lenguaje unificado | ||
Introducción a la ciencia de la computación y a la programación | Los hardware | ||
Introducción a la ciencia de la computación y a la programación | Origen del C++ como lenguaje universal | ||
Introducción a la ciencia de la computación y a la programación | programación estructurada | ||
Introducción a la ciencia de la computación y a la programación | Programación orientada | ||
Introducción a la ciencia de la computación y a la programación | Representación de información en las computadoras | ||
Introducción a la ciencia de la computación y a la programación | Sistema operativo | ||
Introducción a la ciencia de la computación y a la programación | software |