Mostrando las entradas con la etiqueta introducción. Mostrar todas las entradas
Mostrando las entradas con la etiqueta introducción. Mostrar todas las entradas

El algoritmo y su importancia

jueves, 16 de enero de 2014 0 comentarios





"No es lo que tu tienes, sino como usas lo que tienes lo que marca la diferencia." 

Zig Ziglar
Antes que se escriba un programa, el programador debe entender con claridad y planificar qué datos van a usarse, el resultado deseado y el procedimiento que va a utilizarse para producir este resultado. En esta oportunidad nos enfocaremos en  los procesos de solución  los cuales se denomina algoritmos.

Algoritmo


Con más precisión, un algoritmo se define como una secuencia paso a paso de instrucciones que deben realizarse y describe cómo han de procesarse los datos para producir las salidas deseadas.
En la década de 1930, antes de la llegada de las computadoras, los matemáticos trabajaron con gran celo para formalizar y estudiar el concepto de algoritmo, que entonces se definía de manera informal como un conjunto claramente especificado de instrucciones sencillas a seguir para resolver un problema o calcular una función. Se idearon e investigaron varios modelos de cómputo formales. Muchos de los primeros trabajos en este campo, llamado teoría de la computabilidad, hicieron hincapié en describir o caracterizar los problemas que se podían resolver algorítmicamente, y en presentar algunos problemas que no se podían resolver de esa manera.
Sin importar cuál campo de trabajo elija o cuál pueda ser su estilo de vida, tendrá que resolver problemas. Crear un programa no es diferente porque un programa es una solución desarrollada para resolver un problema particular. Por ello, escribir un programa casi es el último paso en un proceso de determinar primero cuál es el problema y el método que se usará para resolverlo.




Características


Un algoritmo es un conjunto finito de reglas que dan una secuencia de operaciones para resolver un determinado problema. Es, por consiguiente, un método para resolver un problema que tiene en general una entrada y una salida. Las características fundamentales que debe cumplir todo algoritmo son:
  • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
  • Un algoritmo debe estar bien definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
  • Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; es decir, debe tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.
  • Entrada. "Un algoritmo tiene cero o más entradas: cantidades que le son dadas antes de que el algoritmo comience, o dinámicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos específicos de objetos".
  • Eficacia. "También se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a realizar en un algoritmo deben ser suficientemente básicas como para que en principio puedan ser hechas de manera exacta y en un tiempo finito por un hombre usando lápiz y papel".
  • Salida. "Un algoritmo tiene una o más salidas: cantidades que tienen una relación específica con las entradas".


Herramientas   para diseñar algoritmos


Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo indicando cómo hace el algoritmo la tarea solicitada, y eso se traduce en la construcción de un algoritmo. El resultado final del diseño es una solución que debe ser fácil de traducir a estructuras de datos y estructuras de control de un lenguaje de programación específico.
Las dos herramientas más comúnmente utilizadas para diseñar algoritmos son: diagramas de flujo y pseudocódigos.



Algoritmos de forma gráfica (Diagramas de flujo)


Cuando una secuencia de actividades que definen un problema es muy simple en su naturaleza, es decir que sólo implique seguir una serie de pasos, uno después de otro, y que no tenga decisiones lógicas ni alternativas a tomar, es muy fácil describirlo en palabras. Pero si esta secuencia de actividades se hace más compleja será no sólo difícil describirlo en palabras sino también retener todas las alternativas.
Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio.

Ejemplo:




Algoritmos de forma escrita (Pseudocódigo)


Un pseudocódigo e un falso lenguaje siendo así  una serie de normas léxicas y gramaticales parecidas a la mayoría de los lenguajes de programación, pero sin llegar a la rigidez de sintaxis de estos ni a la fluidez del lenguaje coloquial. Esto permite codificar un programa con mayor agilidad que en cualquier lenguaje de programación, con la misma validez semántica, normalmente se utiliza en las fases de análisis o diseño de Software, o en el estudio de un algoritmo.
El pseudocódigo describe un algoritmo utilizando una mezcla de frases en lenguaje común, instrucciones de programación y palabras clave que definen las estructuras básicas. Su objetivo es permitir que el programador se centre en los aspectos lógicos de la solución a un problema. No siendo el pseudocódigo un lenguaje formal, varían de un programador a otro, es decir, no hay una estructura semántica ni arquitectura estándar. Es una herramienta ágil para el estudio y diseño de aplicaciones

Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..
Programa; área
Entorno: BASE, ALTURA, AREA son número enteros
Algoritmo:
            escribir “Introduzca la base y la altura”
            leer BASE, ALTURA
            calcular AREA = BASE * ALTURA
            escribir “El área del rectángulo es “AREA
Finprograma





Programación Orientado a Objetos

miércoles, 1 de enero de 2014 0 comentarios



"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
 Confucio
La POO es de manera  simplificada  un sistema de programación que utiliza objetos para la resolución de problemas, interrelacionándolos mediante mensajes.
Es decir que la Programación Orientada a Objetos aparece como una evolución natural en los paradigmas de programación que busca solucionar los principales problemas del paradigma anterior.
Los Objetivos principales de este paradigma son los siguientes:
  • Distinta abstracción del mundo.
  • Dificultad en modificación y actualización.
  • Dificultad en mantenimiento.
  • Dificultad en reutilización.


Caracteristicas de la Programacion Orientada a Objetos






Conceptos de clase y objeto, que proporcionan una abstracción del mundo centrada en los seres y no en los verbos.
Los datos aparecen encapsulados dentro del concepto de clase.
El acceso a los datos se produce de manera controlada e independiente de la representación final de los mismos.
Como consecuencia, se facilita el mantenimiento y la evolución de los sistemas, al desaparecer las dependencias entre distintas partes del sistema.
Mediante conceptos como la composición, herencia y polimorfismo se consigue simplificar el desarrollo de sistemas.
La composición y la herencia nos permiten construir clases a partir de otras clases, aumentando en gran medida la reutilización.




Objetos y Clases


Mediante la POO, a la hora de tratar un problema, podemos descomponerlo en subgrupos de partes relacionadas. Estos subgrupos pueden traducirse en unidades auto contenidas llamadas objetos. Antes de la creación de un objeto, se debe definir en primer lugar su formato general, su plantilla, que recibe el nombre de clase.
Una clase, por lo tanto, puede definirse como un tipo de datos cuyas variables son objetos o instancias de una clase. Puede decirse que el concepto de clase es estático y el concepto de objeto es dinámico; ya que, sólo existe en tiempo de ejecución. Cada objeto de una clase comparte con el resto las operaciones, y a la vez posee sus propios valores para los atributos que posee:
Esto es, su estado. Las operaciones, también llamadas mensajes, se usarán tanto para cambiar el estado de un objeto como para comunicar objetos entre sí mediante el paso de mensajes.


Pilares del Paradigma a Objetos


Abstracción


Esta es una cualidad de los seres humanos que les permite encontrar lo básico que hay de común en una serie de objetos. Mediante la abstracción la mente humana modela la realidad en forma de objetos. Los seres humanos no pensamos en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo humano como un conjunto de células. Los humanos entendemos la realidad como objetos con comportamientos bien definidos. No necesitamos conocer los detalles de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas acciones en espera de una respuesta; cuando una persona desea desplazarse, su cuerpo le responde comenzando a caminar. Pero la abstracción humana se gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta es la forma de pensar que la orientación a objeto intenta cubrir.



Encapsulación


Una de los pilares básicos de la POO es la encapsulación de los datos. Según los principios de este paradigma de programación, el acceso a los datos de una clase debe realizarse de forma controlada, protegiéndolos de accesos no deseados. Cuando se desarrolla una aplicación, a veces es necesario ocultar los tipos de datos usados para que el usuario permanezca independiente de los detalles de los mismos.
La encapsulación es el mecanismo que enlaza el código y los datos, a la vez que los asegura frente a accesos no deseados. La principal razón del uso de la encapsulación es evitar el acceso directo a atributos de una clase desde fuera de la propia clase. Se busca, principalmente, que el acceso a estos atributos se realice siempre mediante funciones miembro de la propia clase. El acceso a ciertos elementos de datos se puede controlar de forma estricta considerándolos privados.

Polimorfismo

El polimorfismo es el tercer pilar de la programación orientada a objetos. Supone un paso más en la separación entre la interfaz y la implementación. Permite mejorar la organización del código y simplificar la programación. Además, aumenta las posibilidades de extensión y evolución de los programas.
Está directamente relacionado con las jerarquías de clase. Básicamente, nos va a permitir que unos objetos tomen el comportamiento de objetos que se encuentran más abajo en la jerarquía, aumentando enormemente la expresividad del lenguaje. En definitiva, se trata de la posibilidad de que la identificación del tipo de un objeto se haga en tiempo de ejecución en vez de en tiempo de compilación. De esta manera, se pueden, incluso, construir estructuras en las que cada uno de sus elementos es de un tipo diferente.



Herencia


Se puede agregar que la herencia es el proceso por el cual un objeto adquiere las propiedades de otro objeto.  Por ejemplo, un perro es un mamífero, y los mamíferos son animales, y los animales seres vivos. Del mismo modo,  se promueve en gran medida que las relaciones entre objetos se basen en construcciones jerárquicas. Esto es, las clases pueden heredar diferencialmente de otras clases (denominadas "superclases") determinadas características, mientras que, a la vez, pueden definir las suyas propias. Tales clases pasan, así, a denominarse "subclases" de aquéllas.



Antecedentes del lenguaje C

sábado, 21 de diciembre de 2013 1 comentarios



Si no fuera por el C, estaríamos escribiendo programas en BASI, PASAL, o OBOL. 
La computadora, a diferencia de otras herramientas que en general apoyan el esfuerzo físico  de los humanos, fue inventada para facilitar el trabajo intelectual. Es  decir que esta fue específicamente diseñada para brindar soluciones  a través de algoritmo que resuelve el problema, el programador lo codifica en un lenguaje de programación, el cual la  computadora es capaz de entender, luego la computadora ejecuta el algoritmo expresado  como programa en el lenguaje de programación en cuestión  y listo.
En consecuencia, los lenguajes de  programación tienen que adaptarse a éstas crecientes necesidades y aumentar la  expresividad para poder resolver problemas muy diversos y cada vez más complejos.
Además, tienen que ofrecer cierta eficiencia en la ejecución. Es un logro difícil de alcanzar  y por lo tanto, se requiere una búsqueda constante de nuevos lenguajes para ello.

Historia de C


C es una evolución de los lenguajes BCPL -desarrollado por Martin Richards- y B –desarrollado por Ken Thompson en 1970- para el primitivo UNIX de la computadora DEC PDP-7.
C nació realmente en 1978, con la publicación de The C Programming Languaje, por Brian Kernighan y Dennis Ritchie (Prentice Hall, 1978). 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 lenguaje C.

Características de C


Este es un lenguaje  de  programación  de propósito general que ofrece como ventaja economía  de expresión, control de flujo y estructura de datos mordernos y un rico conjunto de operadores. A demás, C no es un lenguaje  de muy alto nivel, y no esta especializado en alguna área especial de aplicación. Pero su ausencia de restricciones y su generalidad lo hacen más conveniente y efectivo para muchas tareas que otros lenguajes.
Este lenguaje ha sido estrechamente asociado con el sistema unix en donde fue desarrollado puesto que tanto que el sistema como los programas que corren en el están escritos en lenguaje C. Sin embargo este no está ligado a ningún sistemas operativo ni a ninguna máquina, debido a su utilidad para escribir compiladora y sistemas operativos, se utiliza con igual eficacia para escribir importantes programas de diversas disciplinas.

Lenguaje Imperativo

En este tipo de lenguajes, cuyo origen  está ligado a la propia arquitectura de von Neumann, la arquitectura consta de una  secuencia de celdas, llamadas memoria, en la cual se pueden guardar en forma codificada,  los mismo datos que instrucciones; y de un procesador, el cual es capaz de ejecutar de  manera secuencial una serie de operaciones, principalmente aritméticas y booleanas,  llamadas comandos. En general, un lenguaje imperativo ofrece al programador conceptos  que se traducen de forma natural al modelo de la máquina
Ventajas
  • C se caracteriza por su velocidad de ejecución. En los primeros días de la informática, los problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en lenguaje ensamblador (lenguaje muy cercano al lenguaje máquina).
  • El lenguaje C es poderoso y flexible, con órdenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.
  • Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.
  • Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación -propiedad conocida como portabilidad-. El hecho de que C sea portable es importante ya que la mayoría de los modernos computadores tienen un compilador C, una vez que se aprende C no tiene que aprenderse un nuevo lenguaje cuando se escriba un programa para otro tipo de computadora. No es necesario reescribir un problema para ejecutarse en otra computadora.
  • Debido a que existen muchos programas escritos en C, se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones. Existen bibliotecas del lenguaje C que soportan aplicaciones de bases de datos, gráficos, edición de texto, comunicaciones, etc.
Desventajas
  • C es un lenguja de relativo bajo nivel.
  • Este trata el mismo tipo de objeto que la mayoría de las computadoras, llamadas caracteres, números y direcciones.
  • No proporciona operaciones para tratar directamente con objetos compuestos, tales como cadenas de caracteres, conjuntos, listas o arreglos.
  • No existen operaciones que manipulen arreglos o cadenas completas.
  • El lenguaje no define ninguna facilidad para asignación de almacenamiento que no sea la de definición estática y la disciplina de pilas y provistas por las variables locales de funciones.
  • No emplea heap ni recolector de basura.
  • En si mismo no proporciona capacidades de entrada y salida; no hay propociones Read o write, ni métodos propios de acceso a archivos.

lo que debemos saber de la programación (breve introduccion) video

jueves, 12 de diciembre de 2013 0 comentarios


Saludos les comparto una breve introducción a la programación. En el encontraras conceptos que te ayudaran a incursionar en este nuevo mundo de la programación.
En temas como paradigmas de programación, tipos de lenguajes, entre otros.

Fundamentos de programación (Conceptos y definiciones)

lunes, 9 de diciembre de 2013 0 comentarios




"Encuentra un trabajo que te guste y no volverás a trabajar ni un sólo día de tu vida"
 Confucio

Lo que debemos saber de programación

Desde muchos puntos de vista aprender a programar es toda una disciplina,  que requiere nuestro mejor tiempo y dedicación. La principal razón por que las personas aprenden leguajes y técnicas  de programación es utilizar la computadora  como una herramienta para resolver problemas .
Aprender a programar apoyándonos en un sitio web de confianza, amigo, familiar o libros es una decisión que debemos tomar, según sea nuestro ritmo de aprendizaje. De la misma manera es muy importante en que rama de la  misma  queremos  desenvolvernos.

Como fue mencionado en nuestro anterior post, existen distintos tipos de aplicaciones en los cuales podemos desempeñarnos, pero eso no implica que no podamos dominar todas las ramas. Todo dependerá de nuestro nivel de prioridad que  demos al aprendizaje de cada rama de la programación.  A continuación mostrare algunos conceptos  y definiciones fundamentales  que será de gran ayuda en nuestra aventura de aprender el desarrollo de software.

Preguntas comunes


¿Qué es la  programación?

La Programación intenta resolver ciertos problemas que nos surgen todos los días basándose en una metodología. Por tanto la programación es el proceso de escribir  en un lenguaje de programación  el código fuente de un software.

¿Qué es  un   programa?

Un programa de computador es un conjunto de instrucciones órdenes dadas a la máquina que producirán la ejecución de una determinada tarea.

¿Qué es un programador?

A la persona que escribe programas se le denomina Programador, al proceso de escribir programas se denomina Programación.

¿Qué es un algoritmo?

Un algoritmo es un método para resolver un problema, Con más precisión, un algoritmo se define como una secuencia paso a paso de instrucciones que deben realizarse y describe cómo han de procesarse los datos para producir las salidas deseadas. En esencia, un algoritmo responde la pregunta: “¿Qué método se usará para resolver este problema?”.

 ¿Qué es un paradigma de programación?

Un paradigma de programación provee  y determina  la visión y métodos de un  programador en la construcción de un programa o subprograma. Diferentes  paradigmas resultan en diferentes estilos de programación y en diferentes formas  de pensar la solución de problemas  con la solución de múltiples “problemas” se  construye una aplicación.  En síntesis se describe como la forma de pensar que modela un mapa mental para dar solución a un problema.

¿Qué es un lenguaje de programación?

Un lenguaje de programación es aquella estructura que con una cierta base sintáctica y semántica, imparte distintas instrucciones a un programa de computadora.

¿Qué es un código fuente?

es un conjunto de líneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa.

¿Qué es un IDE de programación?

Un entorno de desarrollo integrado, llamado también IDE (sigla en inglés de integrated development environment), es un programa informático compuesto por un conjunto de herramientas de programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien puede utilizarse para varios.

¿Qué es un compilador?

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto

¿Qué es un intérprete?

En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

¿Qué es un depurador?

Un depurador (en inglés, debugger), es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo) procesador.

¿Qué es una Interfaz Gráfica?

La interfaz gráfica de usuario, conocida también como GUI (del inglés graphical user interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de una máquina o computador.

¿Qué es un diagrama de flujo?

Es la representación gráfica del algoritmo o proceso.




Características de los algoritmos.


Características de los algoritmos

Las características fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea,
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En el algoritmo de receta de cocina citado anteriormente se tendrá:
Entrada: ingredientes y utensilios empleados.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato (por ejemplo, cordero).


Los lenguajes de programación disponibles


Lenguaje de máquina

En su nivel más fundamental, los únicos programas que pueden usarse en realidad para operar una computadora son los programas en lenguaje de máquina. Tales programas, los cuales también se conocen como programas ejecutables, o ejecutables para abreviar, consisten en una secuencia de instrucciones compuestas por números binarios.

Lenguajes ensambladores

Debido a que cada clase de computadora, como IBM, Apple y Hewlett Packard, tiene su propio lenguaje de máquina particular, es muy tedioso y tardado escribir esos programas en lenguaje de máquina.
Uno de los primeros avances en la programación fue la sustitución de símbolos en forma de palabras, como ADD, SUB, MUL, por los opcodes binarios y los números decimales y etiquetas por las direcciones en memoria. Por ejemplo, usando estos símbolos y valores decimales para las direcciones en memoria.

Lenguajes de niveles bajo y alto

Tanto los lenguajes de máquina como los ensambladores se clasifican como lenguajes de nivel bajo. Esto se debe a que ambos tipos de lenguaje usan instrucciones que se vinculan en forma directa con un tipo de computadora. Como tal, un programa en lenguaje ensamblador está limitado porque sólo puede usarse con el tipo de computadora específica para el cual se escribió.
Un lenguaje de alto nivel usa instrucciones que se parecen a los lenguajes escritos, como el inglés, y pueden ejecutarse en una variedad de tipos de computadora. Visual Basic, C, C++ y Java son ejemplos de lenguajes de alto nivel.


Lenguajes Gráficos (UML)


En Lenguaje Unificado de Modelado (UML),  representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema.
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.

Tipos de Diagramas:


  • Casos de uso.
  • Clases.
  • Objetos.
Diagramas de comportamiento.
  • Estados.
  • Actividades.
  • Diagramas de Interacción.
  • Secuencia.
  • Colaboración.
Diagramas de implementación.
  • Componentes.
  • Despliegue.

 





Matemáticas para la computación


Propone desarrollar   habilidades y aptitudes de razonamiento lógico que permitan al estudiante identificar y resolver problemas en el tratamiento de la información, así como, comprender los conceptos lógicos fundamentales y las estructuras formales necesarias para la representación y manejo de datos.
 



¿Software Y Programa Son Lo Mismo?

lunes, 28 de octubre de 2013 0 comentarios



"Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones, llamadas programas  o software."
 A decir verdad muchas personas asocian el término software con los programas de computadora, ambas palabras suelen ser usadas constantemente en este ámbito, aunque sean relacionadas, lo cierto es que ambos tienen una diferencia conceptual.


Conceptos

 


Software: se define como  el equipamiento lógico o soporte lógico de un sistema informático, es decir los documentos asociados y la configuración de datos que se necesitan para hacer que estos programas operen de manera correcta.
Programa informático: se define como el conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar. Al conjunto general de programas, se le denomina software, que más genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora digital.





Propiedades del   software

 


El software se divide en dos grandes grupos: software del sistema y software de aplicaciones. El software del sistema es el conjunto de programas indispensables para que la máquina funcione; se denominan también programas del sistema. Estos programas son, básicamente, el sistema operativo, los editores de texto, los compiladores/intérpretes (lenguajes de programación) y los programas de utilidad.
El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típica mente humanas, tales como gestionar una contabilidad o escribir un texto. Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar el sistema operativo, para conseguir satisfacer estas necesidades.



Breve Historia


Al igual que la industria automotriz, la industria del software ha crecido de unos pocos visionarios que operaban en su garaje con sus prototipos. Steve Jobs y Bill Gates fueron los Henry Ford y Chevrolet Luis de sus tiempos. En el caso del desarrollo de software, el despegue final es generalmente aceptado que se produce con la publicación en la década de 1980 de las especificaciones para el IBM Personal Computer.


La historia del software como se ha visto, no surge con los equipos electrónicos, -aunque es con ellos que adopta el nombre- está presente desde el empleo de ábacos o sumadoras mecánicas. Sin embargo, en estos casos, el software no se encuentra incorporado en el equipo. Es aportado por el operario. La máquina analítica de Charles Babbage, incidentalmente, tuvo su software, y fue una amiga de éste, la legendaria lady Lovelace, quien aportó el software que no se llegó a usar, dado que la máquina nunca se completó. En el ENIAC el control de las operaciones estaba parcialmente integrado en el equipo. Dicho control era realizado por un circuito que requería un alambrado específico para cada aplicación. Imaginemos lo engorroso que resultaba realambrar el circuito cada vez que cambiaba el uso del ENIAC.

El concepto de programa de control almacenado en memoria, aportación popularmente atribuida a John von Neumann, precipitó el desarrollo de software. En éste se perfilaron dos tendencias de desarrollo: los programas de aplicación y los de servicio. Estos últimos tenían como propósito facilitar el desarrollo de programas a partir de programas. Algunos programas de servicio fueron simples cargadores que permitieron emplear notaciones como el octal o hexadecimal más compactas que el binario. Otros como los ensambladores simplificaron más el proceso al reemplazar las notaciones numéricas con los símbolos mnemónicos que aportaron para describir a cada instrucción de la máquina. El siguiente paso significativo fue la traducción de fórmulas, que permitió el desarrollo de la historia del software y la descripción de los algoritmos con el empleo de expresiones algebraicas.






¿Qué es el hardware y software?

domingo, 27 de octubre de 2013 0 comentarios



"Hardware y Software"
La principal razón para que las personas aprendan lenguajes y técnicas de programación es utilizar la computadora como una herramienta para resolver problemas.
La computadora se puede considerar como una unidad en la que se ponen ciertos datos seguidamente la computadora procesa estos datos y produce unos datos de salida.
Los sistemas Informáticos se componen de dos partes esenciales las que permiten hacer la comunicacion entre Maquina y Humano, los cuales se llama  hardware y Software.


Hardware


Hardware corresponde a todas las partes tangibles de un sistema informático sus componentes son: eléctricos, electrónicos, electromecánicos y mecánicos. Sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado.
Este se divide en dispositivos de entrada/salida,  unidad central de procesamiento y almacenamiento de respaldo.





Componentes del Hardware


  • Dispositivos de entrada

Dispositivos de entrada Dispositivos de entrada/salida se utilizan para obtener los  datos y la información se puede introducir en la computadora por la entrada (input) y a continuación se procesan para producir una salida (output, resultados).
Ejemplos:
Dispositivos de entrada: teclado, ratón, joystick, lápiz óptico, lector óptico y el micrófono.
Dispositivos de Salida: Monitores, Impresoras, amplificadores, audífonos, proyectores y  circuitos genéricos.
Dispositivos de entrada/salida: Unidades de almacenamiento: CD, DVD, Memory cards, Disco Duro Externo, Disco duro, Pendrive USB, Módem, Router, Pantalla táctil, Tarjeta de red.

  • La Unidad Central de Proceso (UCP) o (CPU)

La Unidad Central de Proceso, UCP (Central Processing Unit, CPU, en inglés), dirige y controla el proceso de información realizado por la computadora. Es decir, que lleva a cabo las instrucciones del programa en ejecución.
La CPU tiene tres partes principales:
Unidad lógica y aritmética: ALU (unidad aritmética y lógica), que realiza todos los cálculos.
La unidad de control: controla el flujo de datos redondas el ordenador mediante el envío de señales de control.
Memoria - que se utiliza para almacenar datos.

  • Almacenamiento de almacenamiento de respaldo

El     proporciona almacenamiento permanente de información y programas para la recuperación por parte del equipo.
El hardware ha sido un componente muy importante del proceso de cálculo y almacenamiento de datos desde que se volvió útil para que los valores numéricos fueran procesados y compartidos.




Software



Software es el nombre general que se da a todos los programas que se pueden ejecutar en el hardware del equipo. En su conjunto se puede dividir en un número de categorías en función de los tipos de trabajo realizados por los programas.
El software es el conjunto de instrucciones que las computadoras emplean para manipular datos. Sin el software, la computadora sería un conjunto de medios sin utilizar. Al cargar los programas en una computadora, la máquina actuará como si recibiera   una educación instantánea; de pronto "sabe" cómo pensar y cómo operar.
Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. Desde entonces el campo se ha desarrollado tremendamente. La programación de computadoras desde su creación se ha considerado como un arte, para el que existían pocos métodos sistemáticos.



Tipo  de software


  • El software de aplicación donde se incluyen aplicaciones de usuario final tales como procesadores de textos, hojas de cálculo o juegos.
  • El middleware controla y coordina los sistemas distribuidos.
  • Los lenguajes de programación definen la sintaxis de los programas de ordenador. Por ejemplo, muchas aplicaciones bancarias, o de adultos, fueron escritos en el lenguaje COBOL, originalmente inventado en 1959. Las nuevas aplicaciones se escriben a menudo en lenguajes de programación más modernos.
  • El software del sistema incluye los sistemas operativos, que rigen los recursos informáticos. Hoy en día hay grandes aplicaciones que se ejecutan en equipos remotos como los sitios web se considera que el software del sistema, porque la interfaz del usuario final es generalmente a través de una interfaz de usuario gráfica (GUI), como un navegador web.
  • Testware es un software para pruebas de hardware o un paquete de software.
  • Los controladores de dispositivos, tales como discos duros, impresoras, unidades de CD o monitores de ordenador.
  • Las herramientas de programación son tipos de software que ayudan a realizar tareas de computación en cualquier categoría mencionada anteriormente.








Historia de la Programación (vídeo)

miércoles, 23 de octubre de 2013 0 comentarios


Comparto estos  vídeos, los cuales muestras una síntesis de los antecedentes de la ciencia computaciona y la programación.









 
Taller de desarrollo c++ © 2013 | Designed by Alexander C.P , in collaboration with cienciaeducacion100 , Ciencias y Sistemas and cienciaeducacion100@gmail.com