Está en la página 1de 20

Nombre completo:

Marcos Miguel Ravelo

Matricula:
2022-1947

Asignatura:
Introducción a la elaboración de algoritmos

Facilitador/a:
José Abreu Sánchez
Algoritmos Fundamentales:
Se puede entender un algoritmo como una secuencia de pasos finitos bien
definidos que resuelven un problema. Por ejemplo, la ejecución de tareas
cotidianas tan simples como cepillarse los dientes, lavarse las manos o seguir el
manual de instrucciones de armado de un mueble, se pueden ver como un
algoritmo.

También podemos decir que un algoritmo es un procedimiento paso a paso para


conseguir un fin.

En informática un algoritmo supone el paso previo a ponerse a escribir el código.


Primero debemos encontrar la forma de obtener la solución al problema (definir el
algoritmo informático), para luego, a través del código, poder indicarle a la
máquina qué acciones queremos que lleve a cabo. De este modo, un programa
informático no sería más que un conjunto de algoritmos ordenados y codificados
en un lenguaje de programación para poder ser ejecutados en un ordenador.

Las tres partes de un algoritmo son:

Input (entrada). Información que damos al algoritmo con la que va a trabajar para
ofrecer la solución esperada.

Proceso. Conjunto de pasos para que, a partir de los datos de entrada, llegue a la
solución de la situación.

Output (salida). Resultados, a partir de la transformación de los valores de entrada


durante el proceso.

De este modo, un algoritmo informático parte de un estado inicial y de unos


valores de entrada, sigue una serie de pasos sucesivos y llega a un estado final en el
que ha obtenido una solución.

Los algoritmos están muy presentes en el ámbito de la informática, pero también


en nuestra vida cotidiana. Existen numerosos tipos y ejemplos de algoritmos y,
dependiendo de la situación en que nos encontremos, unos u otros nos ayudarán a
llegar a la solución que necesitemos.

Diagrama de flujo de datos:


Un diagrama de flujo de datos es una técnica muy apropiada para reflejar de una
forma clara y precisa los procesos que conforman el sistema de información.
Permite representar gráficamente los límites del sistema y la lógica de los procesos,
estableciendo qué funciones hay que desarrollar. Además, muestra el flujo o
movimiento de los datos a través del sistema y sus transformaciones como
resultado de la ejecución de los procesos.

Esta técnica consiste en la descomposición sucesiva de los procesos, desde un nivel


general, hasta llegar al nivel de detalle necesario para reflejar toda la semántica que
debe soportar el sistema en estudio.

El objetivo del diagrama de flujo de datos es la obtención de un modelo lógico de


procesos que represente el sistema, con independencia de las restricciones físicas
del entorno. Así́ se facilita su comprensión por los usuarios y los miembros del
equipo de desarrollo.

El sistema se divide en distintos niveles de detalle, con el objetivo de:

 Simplificar la complejidad del sistema, representando los diferentes procesos


de que consta.

 Facilitar el mantenimiento del sistema.

Introducción al lenguaje de programación:


Un lenguaje de programación consiste en un vocabulario que contiene un conjunto
de reglas gramaticales destinadas a girar instrucciones a un ordenador o dispositivo
informático para que ejecuten tareas específicas. Cada lenguaje de programación
posee un conjunto único de palabras clave junto con una sintaxis especial para
organizar las instrucciones del software.

Existen lenguajes de programación de bajo nivel y de alto nivel que, a pesar de ser
simples en comparación con los lenguajes humanos, son más complejos que los
lenguajes de máquina. Los lenguajes de bajo nivel incluyen ensamblador y
lenguajes de máquina. Un lenguaje ensamblador contiene una lista de instrucciones
básicas y es mucho más difícil de leer que un lenguaje de alto nivel. Los lenguajes
de alto nivel, por su parte, están diseñados para ser fáciles de leer y entender, lo
cual permite a los programadores escribir códigos fuente de forma natural,
utilizando palabras y símbolos lógicos.

Tipos de datos: 
Los datos a procesar por una computadora pueden clasificarse en:
 
• Simples
• Estructurados
 
Los datos simples ocupan solo una casilla de memoria, por lo tanto, una variable
simple hace referencia a un único valor a la vez. Dentro de ese grupo de datos se
encuentran: enteros, reales, caracteres, booleanos.
 
Los datos estructurados se caracterizan por el hecho de que con un nombre
(identificador de variable estructurada) se hace referencia a un grupo de casillas de
memoria. Es decir, un dato estructurado tiene varios componentes (pueden ser
datos simples o estructurados). Sin embargo, los componentes básicos (los del
nivel más bajo) de un dato estructurado son datos simples. Dentro de este grupo de
datos se encuentran: arreglos, cadenas de caracteres, registros y conjuntos.

Manejo de Variables:
Las variables, como su nombre lo indica, se utilizan para almacenar valores que
tienen la propiedad de variar el contenido. Cuando hablamos de contenido nos
referimos a cualquier tipo de datos, por ejemplo, un nombre, una fecha, un color,
un número etc. A las variables se les asigna un nombre para poder utilizarlas.

Por ejemplo, puedo crear una variable llamada fecha y esta almacenará una fecha.
A los nombres de las variables se los denomina identificadores.

Cuando creamos variables, tenemos que tratar de asignarles un nombre que se


relacione con el tipo de dato que queremos almacenar. Por ejemplo, no tendría
mucho sentido crear una variable llamada m y allí guardar o almacenar un nombre
o un apellido, porque cuando se observe el código resultaría más difícil deducir
qué tipo de dato se está guardando. Por ejemplo, en este último caso sería mucho
más lógico crear una variable llamada "nombres" y allí guardar "Luciano",
"Pedro", "Natalia" etc.

Representación de la información en las computadoras:


Para representar la información en la computadora se utiliza el sistema binario.
Este sistema sólo reconoce dos valores: el cero y el uno (0, 1). A cualquiera de
estos valores se le llama bit (de Binary digit, que significa dígito binario). El bit es
la unidad de información más pequeña que reconoce una computadora.
Para representar las letras del alfabeto y otros símbolos, llamados caracteres, una
computadora utiliza un conjunto de 8 bits. A este conjunto se le llama byte.

Unidades de información:

Bit: es la mínima unidad de memoria y se corresponde con uno de los valores


posibles, en dígitos binarios 0 o 1.

Byte: representación de un solo carácter (letra, número, espacio o símbolo). Es la


mínima unidad de información. Un byte equivale a 8 bits.

Kbyte (kilo byte): conjunto de 1024 bytes.

Mbyte (mega byte): es igual a 1024 kbytes.

Gbyte (giga byte): es igual a 1024 mbytes.

Tbyte (tera byte): es igual a 1024 gbytes.

El desarrollo de programas web:


Se conoce como desarrollo de programas web al proceso de crear y mantener un
sitio web que sea funcional en internet, a través de diferentes lenguajes de
programación, según el modelo y la parte de la página que corresponda. Cada sitio
tiene una URL única que lo distingue de los demás en la red informática mundial.

Un sitio web puede clasificarse de diferentes formas. Para cuestiones de desarrollo


web principalmente se divide en dos partes.

Frontend: Es la parte que interactúa con el usuario, tanto en imagen como en


función. Por ello está íntimamente relacionada con la experiencia del usuario (UX)
y la interfaz de usuario (IU).

Backend: Se refiere a la parte que entra en contacto directo con el servidor; es


donde se aplica el código de programación para crear la estructura. Permanece en
un segundo plano a cargo de la accesibilidad, actualización, bases de datos y
cambios del sitio.

Pasos para la elaboración de un programa:


Una aplicación informática (o conjunto de programas) se desarrolla, como hemos
comentado, con el objetivo de solucionar un determinado problema. Para ello se
deberá tener en cuenta el llamado ciclo de vida, compuesto por las etapas que se
deben seguir secuencial y ordenadamente. Dichas etapas son:

1. Planificación: Antes de empezar un proyecto de desarrollo de un sistema de


información, es necesario hacer ciertas tareas que influirán decisivamente en el
éxito del mismo. Dichas tareas son conocidas como el fuzzy Frontend del
proyecto, puesto que no están sujetas a plazos.

2. Análisis: Fase de especificación de cuáles son las necesidades que debe


satisfacer nuestra aplicación y el planteamiento para cubrirlas.

3. Diseño: Una vez identificadas las necesidades, en la fase de diseño se deben


detallar todos y cada uno de los elementos que usaremos: recursos físicos
(característica del ordenador, periféricos, etc) y lógicos (sistema operativo,
compilador, herramientas de utilidad, etc).

4. Codificación: Como se ha visto en una sección anterior, la tarea aquí es la de


traducir a un lenguaje de programación la solución obtenida en la fase de diseño.

5. Explotación: Para explotar nuestra aplicación o programa se deberá implantar en


el sistema informático que estemos usando, esto es, instalándola para
posteriormente ejecutarla y comprobar los resultados que nos ofrece.

6. Mantenimiento: Esta última etapa está fundamentalmente relacionada con la


idea de mejorar el programa desarrollado, corrigiendo errores y proporcionando
ideas que lo hagan más eficiente. Así, en ocasiones puede dar lugar al reinicio del
ciclo de vida.

Cloud Computing (computación en las nubes):


Podemos definir la computación en la nube como una tecnología que nos permite
tener acceso remoto a un sistema, desde cualquier lugar del mundo y en el
momento en el que se desee. Permite tener acceso a sistemas de almacenamiento y
procesamiento de datos, así como al software.

Es el uso de una red de servidores remotos conectados a internet para almacenar,


administrar y procesar datos, servidores, bases de datos, redes y software. En lugar
de depender de un servicio físico instalado, se tiene acceso a una estructura donde
el software y el hardware están virtualmente integrados.

Software como servicio. (SaaS):


El software como servicio se encuentra en la capa más alta y caracteriza una
aplicación completa ofrecida como un servicio bajo demanda a través de
multitenencia una sola instancia del software que corre en la infraestructura del
proveedor sirve a múltiples organizaciones de clientes.

Las aplicaciones que suministran este modelo de servicio son accesibles a través de
un navegador web o de cualquier aplicación diseñada para tal efecto y el usuario
no tiene control sobre ellas, aunque en algunos casos se le permite realizar algunas
configuraciones. Esto le elimina la necesidad al cliente de instalar la aplicación en
sus propios computadores, evitando asumir los costos de soporte y el
mantenimiento de hardware y software.

Internet de las cosas:


El Internet de las cosas, es el concepto de conectar cualquier dispositivo (que se
pueda encender y apagar) a Internet y otros dispositivos, creando una gran red de
“cosas” y personas que recopilan y comparten datos sobre la forma en que se
utilizan y el entorno que los rodea. Estos dispositivos pueden ser teléfonos
celulares u otros aparatos con Wi-Fi, como microondas, refrigeradores, lámparas,
pulseras inteligentes, altavoces, lavadoras, etc. (básicamente cualquier cosa que se
pueda imaginar), aunque también se aplica a los componentes de máquinas, como
la bomba de expendio de combustible de una estación de servicio o incluso un
trépano de perforación de petróleo para grandes profundidades. Todo lo que tiene
un botón de encendido y apagado tiene el potencial de ser parte de la Internet de
las cosas.

La Web semántica y la Web 3.0:


La web 3.0 es el tipo de internet más actual, cuyas características principales son la
democratización y que basado en la tecnología de la web semántica. Dicha web
está construida a través de una cadena de bloques descentralizado donde no existe
una propiedad centralizada del contenido o las plataformas.

La web semántica, realiza un proceso de filtrado automático de los datos, lo que


implica que las máquinas comprendan el significado de la información que
contiene la web y así, procesen la información de manera más rápida, precisa y
eficiente.

Un escenario al que se aspira con la llegada de la web 3.0, es que cada usuario
tenga un perfil personal en internet basado en su historial de búsquedas, mismo que
se usará para brindarle una experiencia de navegación única. De esta manera, al
colocar dos personas los mismos criterios de búsqueda en un servicio, cada una
recibirá distintos resultados conforme a sus perfiles personales.

La web semántica es el siguiente paso en el desarrollo de la World Wide Web. En


la llamada Web 3.0, la información no solo se enlaza, sino que los contenidos de la
web se enriquecen con metadatos semánticos legibles por máquinas y se conectan
entre sí. El objetivo es optimizar el intercambio de información en la web haciendo
que las máquinas distingan y procesen específicamente los significados legibles
por máquinas, es decir, el contenido semántico.

Lenguajes de programación (programas y programación):


Encontramos diferentes lenguajes como C, C++, Java, PHP, Python, C#, ASP,
entre otros. Los programas habitualmente se diseñan o escriben a través de un
entorno de desarrollo integrado (IDE por sus siglas en ingles). Un IDE
habitualmente cuenta con un editor de texto (donde escribiremos nuestro código),
el compilador y la depuradora para el lenguaje que estemos utilizando y la
correspondiente plataforma en la que luego correrá.

Programas: Un programa es un conjunto de pasos lógicos escritos en un lenguaje


de programación que nos permite realizar una tarea específica. El programa suele
contar con una interfaz de usuario, es decir, un medio visual mediante el cual
interactuamos con la aplicación. Algunos ejemplos son la calculadora, el
navegador de internet, un teclado en pantalla para el celular, etc.

Programación: Es el proceso de crear un conjunto de instrucciones que le dicen a


una computadora como realizar algún tipo de tarea. Pero no solo la acción de
escribir un código para que la computadora o el software lo ejecute. Incluye,
además, todas las tareas necesarias para que el código funcione correctamente y
cumpla el objetivo para el cual se escribió.

Tipos de lenguaje de programación

 Lenguaje de alto nivel:


Los lenguajes de alto nivel son los más adaptados al lenguaje humano, por lo
que son los más sencillos de aprender en términos generales. Como los de
medio nivel, tienen que ser traducidos a lenguaje máquina para poder ser
ejecutados por un ordenador. Pese a esto, debido a las modificaciones del
lenguaje en relación al código máquina, los ensambladores no son útiles para
esto. Los lenguajes de alto nivel se adaptan al código máquina a través de
traductores y compiladores, dependiendo de si se requiere una ejecución más
rápida o menos.

Actualmente, la gran mayoría de lenguajes de programación existentes son


de alto nivel, a excepción de C y C++.

 Lenguaje de bajo nivel:


Lenguaje máquina

Este lenguaje de programación es el más antiguo que existe. El lenguaje


máquina es el único que comprenden los ordenadores. Cualquier código
redactado mediante lenguajes alternativos debe ser convertido a lenguaje
máquina para que un ordenador pueda leerlo.

El lenguaje máquina se basa en el código binario, es decir, se escribe a base


de 0 y 1.

Lenguaje ensamblador

Los lenguajes de bajo nivel están muy relacionados con el lenguaje máquina.
Ambos tipos de lenguaje tienen como objetivo ser comprendidos por un
ordenador. La única diferencia es que los lenguajes ensambladores están
hechos para ser escritos por humanos de manera sencilla. Pese a esto, tiene
que ser traducido por un programa conocido como Ensamblador para que los
ordenadores puedan comprenderlo.

Traductores de lenguaje: el proceso de traducción de un programa:


El proceso de traducción de un programa fuente escrito en un lenguaje de alto nivel
a un lenguaje máquina comprensible por la computadora, se realiza mediante
programas llamados “traductores”
Los traductores de lenguaje son programas que traducen a su vez los programas
fuente escritos en lenguajes de alto nivel a código máquina. Los traductores se
dividen en compiladores e intérpretes.

Intérpretes:
Un intérprete es un traductor que toma un programa fuente, lo traduce y, a
continuación, lo ejecuta. Los programas intérpretes clásicos como BASIC,
prácticamente ya no se utilizan, más que en circunstancias especiales.

Sin embargo, está muy extendida la versión interpretada del lenguaje Smalltalk, un
lenguaje orientado a objetos puro.

Compiladores:

Un compilador es un programa que traduce los programas fuente escritos en


lenguaje de alto nivel a lenguaje máquina. La traducción del programa completo se
realiza en una sola operación denominada compilación del programa; es decir, se
traducen todas las instrucciones del programa en un solo bloque.

El programa compilado y depurado (eliminados los errores del código fuente) se


denomina programa ejecutable porque ya se puede ejecutar directamente y cuantas
veces se desee; sólo deberá volver a compilarse de nuevo en el caso de que se
modifique alguna instrucción del programa.

La Compilación y sus fases:


La compilación es el proceso de traducción de programas fuente a programas
objeto. El programa objeto obtenido de la compilación ha sido traducido
normalmente a código máquina.

Para conseguir el programa máquina real se debe utilizar un programa llamado


montador o enlazador (linker). El proceso de montaje conduce a un programa en
lenguaje máquina directamente ejecutable.
El proceso de ejecución de un programa escrito en un lenguaje de programación y
mediante un compilador suele tener los siguientes pasos:

1. Escritura del programa fuente con un editor (programa que permite a una
computadora actuar de modo similar a una máquina de escribir electrónica) y
guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).

2. Introducir el programa fuente en memoria.

3. Compilar el programa con el compilador C.

4. Verificar y corregir errores de compilación (listado de errores).

5. Obtención del programa objeto.

6. El enlazador (linker) obtiene el programa ejecutable.

7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del programa.

Evolución de los lenguajes de programación:


El primer lenguaje de programación: En 1801, un inventor francés, Joseph
Marie Jacquard fue el inventor del telar programable. Jacquard creó unas tarjetas
programables que se introducían en un telar que leía el código, que contenía las
instrucciones y, de esta forma, se automatizaba el proceso. Esto permitió que
cualquier persona que tuviera un telar y las tarjetas perforadas, pudieran crear
diferentes diseños de tejidos sin ser expertos en ello.
Ada Lovelace & Alan Turín: En 1842, Ada Lovelace, una mujer que había
recibido formación exclusivamente en matemáticas, se propuso traducir las
memorias del matemático italiana Luigi Menabrea. Mientras realizaba esta labor,
creó un lenguaje de programación a mano para calcular la serie de números de
Bernoulli con la máquina de Babbage. Escribió el primer algoritmo informático de
la Historia de la programación. Hacemos un salto hasta 1936, en el que Alan
Turing, un matemático e informático teórico que revolucionó el mundo de la
computación con la Máquina de Turing. Esta, demostraba que, con un algoritmo,
podían resolver cualquier problema matemático.

1957: el primer lenguaje de programación de verdad: En este año, John W.


Backus, crea el primer lenguaje de programación de alto niveles y, el primero que
usaron programadores más cercanos a lo que conocemos hoy en día: Fortran.

Fortran, se trata del lenguaje de programación más antiguo y que continúa en uso
hoy en día. Este lenguaje se sigue utilizando en la industria automovilística,
gubernamental, aeroespacial y en la investigación. Por ejemplo, resulta muy eficaz
para pronosticar el tiempo.

1959: Cobol: (Common Business Oriented Language) se encuentra detrás de la


mayor parte de sistemas de transacciones de empresas, como los procesos de las
tarjetas de crédito, telefonía, gobierno, señales de tráfico, entre otros. Este lenguaje
de programación, desarrollado por Grace Murray Hopper, es un lenguaje uniforme
para transacciones empresariales. El objetivo de su creación era desarrollar un
lenguaje que fuera compatible para cualquier ordenador.

1964: Basic: Desarrollado por alumnos de Darmouth College, Basic fue diseñado
como un lenguaje simplificado para aquellos que no contaban con grandes
conocimientos técnicos o matemáticos. Una versión modificada de Basic,
elaborada por Bill Gates y Paul Allen, fue el primer producto de Microsoft. En
1977, Basic fue integrado en el Apple II para su puesta en marcha.

1969: C: Este lenguaje de programación se desarrolló entre 1969 y 1973, por


Dennis Ritchie para los laboratorios Bell Telephone, con el objetivo de utilizarlos
en el sistema Unix. C llegó a ser tan potente que gran parte del núcleo de Unix se
reescribió con C. De hecho, en la actualidad, Linux sigue basado en C.

1970 (Pascal): Este lenguaje de programación se creó por Niklaus Wirth, que le
puso en nombre “Pascal” en honor a Blaise Pascar, el inventor de las calculadoras
matemáticas. Este lenguaje se desarrolló como una herramienta de enseñanza y
formación, aunque su uso es comercial. Por ejemplo, es el lenguaje de
programación que se utiliza en Skype.

1983: C++: En los mismos laboratorios Bells, Bjarne Stroustrup modificó el


lenguaje C, por lo que surgió C++. Este lenguaje de programación es uno de los
más populares, y se encuentra en el Top Ten de los lenguajes de programación
desde 1986. Hoy en día se utiliza en Firefox, Adobe PDF Reader y Office.

1987: Perl: Desarrollado por un programador de Unix, Larry Wall, Perl como
solución a las flaquezas de Unix. Actualmente, se utiliza en CraigList.

1991: Python: Guido Van Rossum fue el creador de este lenguaje de


programación mundialmente reconocido. Fue creado para resolver lenguajes en el
lenguaje ABC y, hoy en día, se sigue utilizando con esta finalidad y también, para
más usos. La Nasa, Google y YouTube son algunas de las empresas que lo utilizan.

1993: Ruby: Este lenguaje fue creado por Yukihiro Matsumoto, que utilizó partes
de sus lenguajes de programación preferidos: Perl, Smalltalk, Eiffel, Ada y Lisp.
Ahora se utiliza por Base camp.

1995: PHP, Java, JavaScript: Este lenguaje de programación fue desarrollado


por Rasmus Lerdoff para reemplazar unos scripts de Perl utilizados para el
mantenimiento de su web personal. En la actualidad PHP es parte de una
arquitectura web integrada en veinte millones de sitios web. Facebook utiliza este
lenguaje hoy en día.

2001: c#: La llegada de los 2000, llegaron nuevos programas de programación,


como C# y Visual Basic. Junto a los años noventa, C# culmina como el mejor
momento de la historia respecto a los lenguajes de programación. C# es uno de los
lenguajes de programación más importantes para crear programas de todo tipo.

2009: Go, de Google: Se trata, nada más y nada menos, que el lenguaje de
programación creado por Google. 2009, Go, de Google. Se inspira en C, pero es
más complejo. Sigamos descubriendo más lenguajes que forman parte de la
evolución de los lenguajes de programación.

2012: KOTLIN: Hoy en día, este es uno de los lenguajes de programación de


moda, no porque sea el más sencillo, sino que Google lo ha señalado como el
lenguaje de programación óptimo para Android.

Paradigmas de programación:
Un paradigma de programación es una manera o estilo de programación de
software. Existen diferentes formas de diseñar un lenguaje de programación y
varios modos de trabajar para obtener los resultados que necesitan los
programadores. Se trata de un conjunto de métodos sistemáticos aplicables en
todos los niveles del diseño de programas para resolver problemas
computacionales.

Los lenguajes de programación adoptan uno o varios paradigmas en función del


tipo de órdenes que permiten implementar como, por ejemplo, Python o
JavaScript, que son multiparadigmas.

Lenguajes imperativos (procedimentales).


Los programas consisten en una sucesión de instrucciones o conjunto de
sentencias, como si el programador diera órdenes concretas. El desarrollador
describe en el código paso por paso todo lo que hará su programa.

Algunos lenguajes: Pascal, COBOL, FORTRAN, C, C++, etc.

Otros enfoques subordinados al paradigma de programación imperativa son:

Programación estructurada: La programación estructurada es un tipo de


programación imperativa donde el flujo de control se define mediante bucles
anidados, condicionales y subrutinas, en lugar de a través de GOTO.

Programación procedimental: Este paradigma de programación consiste en


basarse en un número muy bajo de expresiones repetidas, englobarlas todas en un
procedimiento o función y llamarlo cada vez que tenga que ejecutarse.

Programación modular: consiste en dividir un programa en módulos o


subprogramas con el fin de hacerlo más manejable y legible. Se trata de una
evolución de la programación estructurada para resolver problemas de
programación más complejos.

Lenguajes declarativos:
Este paradigma no necesita definir algoritmos puesto que describe el problema en
lugar de encontrar una solución al mismo. Este paradigma utiliza el principio del
razonamiento lógico para responder a las preguntas o cuestiones consultadas.

Este paradigma a su vez se divide en dos:


Programación Lógica: Prolog

Programación funcional: Lisp, Scala, Java, Kotlin

Lenguajes orientados a objetos:


En este modelo de paradigma se construyen modelos de objetos que
representan elementos (objetos) del problema a resolver, que tienen
características y funciones. Permite separar los diferentes componentes de
un programa, simplificando así su creación, depuración y posteriores
mejoras. La programación orientada a objetos disminuye los errores y
promociona la reutilización del código. Es una manera especial de programar,
que se acerca de alguna manera a cómo expresaríamos las cosas en la vida
real.

Podemos definir un objeto como una estructura abstracta que, de manera más
fiable, describe un posible objeto del mundo real y su relación con el resto
del mundo que lo rodea a través de interfaces.   Ejemplos de lenguajes de
programación orientados a objetos serían Java, Python o C#.

La programación orientada a objetos se sirve de diferentes


conceptos como:
 Abstracción de datos
 Encapsulación
 Eventos
 Modularidad
 Herencia
 Polimorfismo

Metodología de la programación:
La metodología de programación es el enfoque teórico - práctico que hace posible
encontrar soluciones a problemas complejos partiendo del análisis y apoyándose en
la planificación. Este planteamiento hace posible maximizar la eficiencia del
desarrollo del software al ganar en visibilidad y control.

Otro elemento transversal en el proceso de diseño de una solución informática una


vez elegida la metodología de programación, es el de la documentación. Se
requiere que sus responsables reúnan todos los datos de interés para la
implementación del programa y que se haga un registro en cada una de las fases
del proceso, atendiendo, claro está, a necesidades como:

Comentarios relacionados con el proceso de diseño y codificación.

1. Especificación de datos.

2. Diagramas de flujo o pseudocódigo.

3. Especificación de requisitos.

4. Listado de programas fuente.

5. Explicación de los algoritmos.

Programación estructurada.
La programación estructurada es una teoría orientada a mejorar la claridad, calidad
y tiempo de desarrollo utilizando únicamente subrutinas o funciones. Basada en el
teorema del programa estructurado propuesto por Böhm y Jacopini, ha permitido
desarrollar software de fácil comprensión.

La programación estructurada es una corriente que nació con la vocación de


facilitar la vida de los programadores, sobre todo cuando estos debían abordar
fases de mejora posteriores a la creación del programa, y de ordenar la forma en la
que se creaba cualquier tipo de programa.

La programación estructurada se convierte así, junto con la programación orientada


a objetos, en uno de los paradigmas de programación más populares que ejecuta
los lenguajes más potentes que seguro conoces, incluidos, entre otros, Java, C,
Python y C++.

a. Programación orientada a objetos:

La programación orientada a objetos se basa en el concepto de crear un modelo del


problema de destino en sus programas. La programación orientada a objetos
disminuye los errores y promociona la reutilización del código. Python es un
lenguaje orientado a objetos. Los objetos definidos en Python tienen las
características siguientes:
 Identidad. Cada objeto debe ser distinguido y ello debe poder demostrarse
mediante pruebas. Las pruebas is e is not existen para este fin.
 Estado Cada objeto debe ser capaz de almacenar el estado. Para este fin,
existen atributos, tales como variables de instancias y campos.
 Comportamiento. Cada objeto debe ser capaz de manipular su estado. Para
este fin existen métodos.

Python incluye las características siguientes para dar soporte a la programación


orientada a objetos:

 Creación de objetos basada en clases. Las clases son plantillas para la


creación de objetos. Los objetos son estructuras de datos con el
comportamiento asociado.
 Herencia con polimorfismo. Python da soporte a la herencia individual y
múltiple. Todos los métodos de instancias de Python son polimórficos y se
pueden alterar temporalmente mediante subclases.
 Encapsulación con ocultación de datos. Python permite ocultar los
atributos. Cuando se ocultan los atributos, se puede acceder a los mismos
desde fuera de la clase únicamente mediante los métodos de la clase. Las
clases implementan métodos para modificar los datos.

Herramientas de programación:
Las herramientas de programación, son aquellas que permiten realizar aplicativos,
programas, rutinas, utilitarios y sistemas para que la parte física del computador u
ordenador, funcione y pueda producir resultados.

Hoy día existen multiples herramientas de programación en el mercado, tanto para


analistas expertos como para analistas inexpertos.

Las herramientas de programación más comunes del mercado, cuentan hoy día con
programas de depuración o debugger, que son utilitarios que nos permiten detectar
los posibles errores en tiempo de ejecución o corrida de rutinas y programas.

Editores de texto:
Es un programa informático que permite crear y modificar archivos digitales
compuestos únicamente por textos sin formato, conocidos comúnmente como
archivos de texto o “texto plano”. El programa lee el archivo e interpreta los bytes
leídos según el código de caracteres que usa el editor. Es comúnmente de 7- u 8-
bits en ASCII o UTF-8, rara vez EBCDIC.

Por ejemplo, un editor ASCII de 8 bits que lee el número binario  0110
0001  (decimal 97 o hexadecimal 61) en el archivo lo representará en la pantalla
por la figura  a , que el usuario reconoce como la letra "a" y ofrecerá al usuario las
funciones necesarias para cambiar el número binario en el archivo.
Los editores de texto son incluidos en el sistema operativo o en algún paquete de
software instalado, y se usan cuando se deben crear o modificar archivos de texto
como archivos de configuración, lenguaje de programación interpretado (scripts) o
el código fuente de algún programa.
Programas ejecutables:
Cuando solicita que se ejecute un programa, el sistema operativo realiza una serie
de operaciones para transformar el programa ejecutable del disco en un programa
en ejecución.

En primer lugar, se deben explorar los directorios de la variable de entorno PATH


actual para encontrar la copia correcta del programa. A continuación, el cargador
del sistema (que no debe confundirse con el mandato ld, que es el enlazador) debe
resolver las referencias externas del programa a las bibliotecas compartidas. Para
representar su solicitud, el sistema operativo crea un proceso, o un conjunto de
recursos, como un segmento de direcciones virtuales privadas, que es necesario
para cualquier programa en ejecución.

El sistema operativo también crea automáticamente una única hebra dentro de ese
proceso. Una hebra es el estado de ejecución actual de una sola instancia de un
programa. En AIX®, el acceso al procesador y a otros recursos se asigna en una
base de hebras, en lugar de una base de proceso. El programa de aplicación puede
crear varias hebras dentro de un proceso. Estas hebras comparten los recursos que
son propiedad del proceso en el que se están ejecutando.

Proceso de compilación/ejecución de un programa:


La compilación de un programa consiste en traducir las instrucciones a un lenguaje
intermedio.
Una vez codificado el algoritmo, es decir, una vez que se obtiene el programa
fuente, es necesario poder introducirlo en la memoria de la PC y almacenarlo en
disco, esto se hace con un programa denominado editor.

Posteriormente el programa fuente debe ser traducido al lenguaje de máquina. Esta


tarea se lleva a cabo por un compilador, si no se detectaron errores en la
compilación se genera el ejecutable.

El compilador recibe el archivo de texto con las instrucciones en lenguaje (C,


BASIC, Java, etc.) y las "traduce" a un lenguaje intermedio.

Es la ejecución concurrente de más de un programa a la vez.. En realidad, una


computadora sólo puede ejecutar un programa a la vez, pero la velocidad de su
procesamiento interno es tan rápida que se pueden distribuir por turno "porciones"
del tiempo de la computadora entre varios programas. Esto hace que parezca que
se ejecutan varios programas a la vez. Cuando un trabajo necesita un proceso de
entrada/salida, otro puede iniciarse (o continuar) su realización; dos o más
programas independientes se ejecutan durante el mismo lapso al intercalar su
ejecución.

Consola de línea de comandos:


Consola de línea de comandos es un método que permite a las personas dar
instrucciones a algún programa informático por medio de una línea de texto
simple.

Las Consola de línea de comandos pueden emplearse interactívamente, escribiendo


instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una
forma mucho más automatizada (batch), leyendo comandos desde un archivo de
scripts.

Entorno de desarrollo integrado (IDE):


Es una aplicación informática que proporciona servicios integrales para facilitarle
al desarrollador o programador el desarrollo de software.
Normalmente, un IDE consiste en un editor de código fuente, herramientas de
construcción automáticas y un depurador. La mayoría de los IDE
tienen autocompletado inteligente de código (IntelliSense). Algunos IDE contienen
un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no,
tales como SharpDevelop y Lazarus.
El límite entre un IDE y otras partes del entorno de desarrollo de software más
amplio, no está bien definido. Muchas veces, a los efectos de simplificar la
construcción de la interfaz gráfica de usuario (GUI, por sus siglas en inglés), se
integran un sistema controlador de versión y varias herramientas. Muchos IDE
modernos también cuentan con un navegador de clases, un buscador de objetos y
un diagrama de jerarquía de clases para su uso con el desarrollo de software
orientado a objetos.

También podría gustarte