INTRODUCCIÓN A LA PROGRAMACIÓN
1. CONCEPTOS BÁSICOS
Aprende los conceptos básicos de programación, los principios de desarrollo de un programa, sus
fases y los lenguajes de programación más utilizados en la actualidad.
© Accenture todos los derechos reservados Confidencial
TABLA DE CONTENIDOS
INTRODUCCIÓN A LA PROGRAMACIÓN
1. Conceptos Básicos
1.1. Programa / Software: ¿Qué es?
1.2. Fases de la programación
1.3. Lenguajes de programación
1.4. Lenguajes de programación más populares
1.5. Principios de la programación
1.6. Preguntas Frecuentes
2. Componentes de la programación
2.1. Traductores
2.2. Algoritmos: Características y estructura
2.3. Algoritmos: Tipos de representación
2.4. Preguntas Frecuentes
3. Paradigmas de la programación
3.1. Tipos de paradigmas
3.2. Programación Estructurada: ¿Qué es?
3.3. Ventajas de la Programación Estructurada
3.4. Preguntas Frecuentes
© Accenture todos los derechos reservados Confidencial
1. CONCEPTOS BÁSICOS
1.1. PROGRAMA / SOFTWARE: ¿QUÉ ES?
¿QUÉ ES UN PROGRAMA INFORMÁTICO?
Un programa informático, también conocido como Software (SW), es una secuencia de
instrucciones que permite realizar una determinada tarea a través de cualquier hardware (HW),
como un ordenador o teléfono móvil.
El software está muy presente en nuestra vida cotidiana y en todos los ámbitos de la sociedad,
aunque muchas veces nos pasa desapercibido. No sólo hay programas y aplicaciones en los
ordenadores o en los móviles para comunicarnos, buscar información, realizar compras online,
etc., sino que la mayor parte de los electrodomésticos, coches… llevan su propio software, más
o menos simple, incorporado.
Los programadores son las personas que se encargan de desarrollar estas aplicaciones o
programas informáticos utilizando diferentes lenguajes de programación.
TIPOS DE SOFTWARE
Software de Sistema
Este tipo de programa es la base para poder controlar o interactuar con el hardware, así como
las aplicaciones y redes instaladas en el mismo. También ofrecen soporte a estas aplicaciones.
Dentro de esta tipología encontramos los Sistemas Operativos.
Microsoft Mac OS Linux
Windows
Software de Aplicación
Programas diseñados para facilitar la realización de tareas específicas desde nuestro hardware.
Encontramos navegadores web, hojas de cálculo, videojuegos, redes sociales, reproductores…
Google Microsoft Instagram Videojuegos YouTube
Chrome Word (App) (Pac Man) (App)
Hardware: partes físicas de un sistema informático. Por ejemplo, el teclado, el disco duro o el monitor.
Lenguaje de programación: colecciones de palabras, códigos y símbolos que permiten a un programador dar
instrucciones al ordenador.
2
d
© Accenture todos los derechos reservados f Confidencial
1. CONCEPTOS BÁSICOS
1.2. FASES DE LA PROGRAMACIÓN
¿QUÉ ES PROGRAMAR?
Programar es el proceso por el cual se crea o se mantiene un Software. El Software se compone
de un código fuente, que los programadores se encargan de desarrollar.
FASES DE LA PROGRAMACIÓN
1. ANÁLISIS DEL PROBLEMA
El problema se analiza teniendo en cuenta estas dos variables: qué buscamos y qué datos
necesitamos. En este punto, debemos definir qué queremos que haga el programa, y
recopilar los datos que hemos identificado como necesarios.
2. DISEÑO DE LA SOLUCIÓN
En este paso debemos hacernos otra pregunta: ¿cómo consigo llegar a la solución?
Diseñamos el algoritmo, que nos permite valorar qué acciones deben llevarse a cabo para
resolver el problema, y en qué orden. Para resolver un mismo problema se pueden plantear
soluciones diferentes. Hay que tratar de buscar la forma más sencilla y eficiente.
3. CODIFICACIÓN
La codificación consiste en convertir las acciones definidas en el algoritmo que hemos
creado en la fase previa, en instrucciones. La solución diseñada la transformamos en un
lenguaje de programación, siguiendo el conjunto de reglas, palabras, símbolos y códigos
necesarios y establecidos.
4. COMPILACIÓN Y PRUEBA
Para que el hardware sea capaz de interpretar nuestras instrucciones, traducimos el
lenguaje de programación a lenguaje máquina. A esta traducción le llamamos compilación,
y con ello obtenemos el programa. Una vez compilado, hay que comprobar y eliminar los
posibles errores que puedan aparecer.
5. DOCUMENTACIÓN Y MANTENIMIENTO
Dejar por escrito las distintas fases del ciclo de vida del Software: análisis, diseño y
codificación, además de un manual de usuario y normas para el mantenimiento. Esto nos
permite reutilizar el código, que otros programadores sean capaces de interpretarlo, etc.
Ten en cuenta que… las fases de la programación que hemos visto aplican exclusivamente
a lenguajes compilados, como Java. En cambio, existen otros lenguajes que no necesitan
ser compilados, como por ejemplo Python.
Código fuente: conjunto de líneas de texto escritas por el programador o desarrollador, que contendrá las
instrucciones de nuestro programa y será ejecutado por el ordenador.
Algoritmo: conjunto de instrucciones que nos servirán para solucionar un problema.
Lenguaje máquina: conjunto instrucciones compuestas por unos y ceros (Ej.: 1000101) directamente
interpretables por el ordenador o máquina (destino), que determinarán una serie de acciones a realizar por el
mismo.
3
d
© Accenture todos los derechos reservados f Confidencial
1. CONCEPTOS BÁSICOS
1.3. LENGUAJES DE PROGRAMACIÓN
LENGUAJES DE PROGRAMACIÓN
Un lenguaje de programación es una forma de escribir instrucciones comprensibles por un
ordenador, a partir de las cuales, éste es capaz de ejecutar determinadas tareas.
A continuación, mostraremos los diferentes tipos de lenguajes de programación según el
momento en el que surgió cada uno de ellos, dividiéndolos en función de su generación, según
su propósito y según su proximidad al lenguaje máquina.
CLASIFICACIÓN HISTÓRICA
1ª GENERACIÓN
Lenguaje máquina
Consiste en sucesiones de códigos binarios (Ej. 11001010). Todas las instrucciones se llevan a
cabo en la unidad central de procesamiento formando cadenas de estos dígitos. Es una forma
muy lenta y propensa a errores.
2ª GENERACIÓN
Lenguaje ensamblador
A diferencia del lenguaje máquina, las instrucciones se representan con símbolos fáciles de
reconocer, conocidos como mnemotécnicos, pero siguen siendo de bajo nivel, es decir, muy
cercano al lenguaje máquina.
3ª GENERACIÓN
Lenguaje procedimental
Sustituye los símbolos por códigos, es decir, el programador especifica en su programa qué
tiene que hacer el ordenador y cómo debe hacerlo. Se trata de un paso más allá que permite
ejecutar la tarea con mayor nivel. Ejemplos: Cobol, C++ y Java.
4ª GENERACIÓN
Lenguaje no procedimental
Son comandos que dan lugar a un lenguaje de programación de alto nivel, más parecido al
idioma inglés que a un procedimiento. Especifican la tarea que se quiere hacer en vez de cómo
ejecutarla, y están orientados a la gestión y manejo de datos. Ejemplos: SQL y Visual Basic.
5ª GENERACIÓN
Lenguaje inteligente
Se crea para la inteligencia artificial y el procesamiento de lenguajes naturales. Son capaces de
resolver problemas complejos. Ejemplos: Lisp y Prolog.
Unidad central de procesamiento: la pieza de Hardware que interpreta las instrucciones de un programa.
© Accenture todos los derechos reservados Confidencial
CLASIFICACIÓN SEGÚN SU PROPÓSITO
PROPÓSITO GENERAL
Permiten la implementación de prácticamente cualquier programa o aplicación.
Ejemplos: Pascal, C, C++, Java, Delphi.
PROPÓSITO ESPECÍFICO
Tienen unas características concretas que les hacen adecuados para tareas muy específicas.
Ejemplos: JavaScript para desarrollo web, Lisp para inteligencia artificial, SQL para consultas
de bases de datos relacionales.
CLASIFICACIÓN SEGÚN SU PROXIMIDAD AL LENGUAJE MÁQUINA
BAJO NIVEL
Son lenguajes de código máquina, un conjunto de instrucciones en código binario que el
ordenador es capaz de ejecutar directamente.
Ejemplos: Lenguaje máquina y lenguaje ensamblador.
ALTO NIVEL
Son más parecidos al lenguaje natural, con un léxico y una gramática.
Ejemplos: C, Basic, Java.
Bases de datos relacionales: se trata de una base de datos que permite almacenar y conectar distintas tablas de datos con el objeto de
extraer información de interés o volver a montar los datos de maneras diferentes.
5
© Accenture todos los derechos reservados Confidencial
1. CONCEPTOS BÁSICOS
1.4. LENGUAJES DE PROGRAMACIÓN MÁS POPULARES
LENGUAJES DE PROGRAMACIÓN MÁS POPULARES
Según el Índice TIOBE, estos son los lenguajes más usados en enero de 2020. Este Ranking se
elabora en base al número de ingenieros cualificados en determinado lenguaje, las búsquedas
que se hacen en los buscadores de los distintos lenguajes de programación, la demanda de
cursos o los lenguajes que están siendo más utilizados.
1. JAVA
Sigue siendo el lenguaje más usado desde hace muchos años. Permite
crear aplicaciones y procesos en múltiples dispositivos (páginas web,
móviles, cajeros automáticos). Java es el lenguaje por defecto para
desarrollar aplicaciones para Android. Android
2. C
Uno de los lenguajes más utilizados, estando presente en la mayoría de los
sistemas operativos por su propósito general y flexibilidad. Es muy popular
para el desarrollo de aplicaciones de escritorio, como el conocido editor
gráfico GIMP. GIMP
3. PYTHON
Es un lenguaje de programación con una sintaxis sencilla y uno de los
mejores para iniciarse en el mundo de la programación. Tiene múltiples
aplicaciones: inteligencia artificial, aplicaciones big data y desarrollo web.
Instagram es una de las aplicaciones que está desarrollada con Python. Instagram
4. C++
Fue diseñado como una extensión del lenguaje C (de ahí su nombre C++)
con nuevas funcionalidades como la manipulación de objetos. Es un
lenguaje muy potente y en constante actualización. Está muy presente en
la programación de videojuegos y aplicaciones como el paquete Adobe.
5. C#
Creado por Microsoft, está presente en entornos empresariales, como
instituciones gubernamentales, entidades bancarias o médicas, además de
estar presente en desarrollo web, aplicaciones o videojuegos. Por ejemplo,
Skype
la versión de Skype para Windows está desarrollada en C#.
6
© Accenture todos los derechos reservados Confidencial
6. VISUAL BASIC .NET
Cada vez más usado por una gran cantidad de personas que no cuentan
con conocimientos profundos como desarrolladores, quienes encuentran
en visual basic, además de una sintaxis sencilla, la posibilidad de
automatizar sus propios procesos y crear sus propias aplicaciones web
Windows
dentro del sistema operativo de Microsoft Windows.
7. JAVASCRIPT
Es un lenguaje que sirve para crear páginas web, servidores o
aplicaciones móviles cuando se quieren plantear elementos interactivos
o más visuales. También es usado en aplicaciones externas como por
ejemplo la calculadora de escritorio. Calculadora
escritorio
8. PHP
PHP está orientado a facilitar el desarrollo web con contenido dinámico
y además permite combinar su código con código HTML (contenido web
estático). Muchas páginas web están diseñadas con WordPress, que
trabaja con el lenguaje PHP.
Wordpress
9. SWIFT
Creado por Apple y enfocado en el desarrollo de aplicaciones iOS y
macOS. Desde que Apple decidió hacer Swift de código abierto su uso ha
tenido el crecimiento más rápido de la historia. Uno de sus ejemplos más
conocido es la App de Airbnb. App de
Airbnb
10. SQL
Es un lenguaje usado en programación y diseñado para administrar para
administrar, proteger y recuperar los datos de sistemas de gestión de
información, lo cual ha sido muy utilizado en los últimos años a partir del
desarrollo de la ciberseguridad. Entre muchas de las empresas que usan
SQL para gestionar sus bases de datos, está el Corte Inglés. El Corte Inglés
7
© Accenture todos los derechos reservados Confidencial
1. CONCEPTOS BÁSICOS
1.5. PRINCIPIOS DE LA PROGRAMACIÓN
¿CÓMO DETERMINAR SI UN PROGRAMA ES VÁLIDO?
La programación persigue la obtención de programas de calidad. Así, antes de adentrarnos en
los componentes de la programación, debemos tener en cuenta que existen una serie de factores
que permiten evaluar esta calidad y validez de los programas creados.
A continuación, hacemos referencia a aquellos factores más relevantes…
FACTORES QUE PERMITEN EVALUAR LA CALIDAD Y
VALIDEZ DE LOS PROGRAMAS CREADOS
1. CORRECTITUD 2. CLARIDAD
Un programa es correcto si desempeña las La claridad y legibilidad resultan esenciales,
funciones esperadas, tal y como se tanto para el desarrollo del programa como
estableció en las fases anteriores a su para el posterior mantenimiento.
desarrollo.
Esto se consigue a través de una estructura
Para asegurar que cumple este principio, sencilla y coherente, facilitando el trabajo
será importante comparar qué queremos del programador en todas las fases.
que haga antes de su desarrollo con lo que
realmente hace.
3. EFICIENCIA 4. PORTABILIDAD
El programa no solo debe realizar las La portabilidad depende de si se puede hacer
funciones para lo que fue creado, sino que uso del programa en un dispositivo /
también debe gestionar los recursos de la plataforma (Software o Hardware) distinto al
mejor forma posible. Los indicadores más que fue creado.
comunes son:
Por ejemplo, si el programa se creó
- El tiempo que tarda en hacer la tarea en Microsoft Windows, será portable si se
puede usar también en Mac OS.
- La cantidad de memoria que requiere.
8
© Accenture todos los derechos reservados Confidencial
1. CONCEPTOS BÁSICOS
1.6. PREGUNTAS FRECUENTES
• Si accedo a Youtube a través de su página Web, ¿esto es un software?
Sí, se trata de una aplicación web que puedes utilizar accediendo a un servidor web, a través
de internet mediante un navegador.
• Para resolver cualquier problema, ¿es necesario seguir estas 5 fases?
Un buen hábito y como buenos programadores es la de llevar una metodología para solucionar
un problema por más mínimo que este sea. A veces pensamos que con hacer las cosas
directamente vamos a ganar más tiempo, pero en realidad no es así, muchas de las veces el
tiempo que se lleva programando un problema directamente sin haber hecho un análisis
previo, es el doble o triple que, si hubiésemos hecho previamente un análisis, por lo general se
cometen muchos errores, que a la larga perdemos tiempo.
• ¿Las 5 fases deben ser acometidas por la misma persona?
No necesariamente. Puede haber una persona / equipo especialista para cada una de las fases,
o bien una misma persona que realice todo el proceso de programación de inicio a fin.
• ¿Los lenguajes de programación más populares son los más punteros?
No necesariamente. Cada poco tiempo aparecen nuevos lenguajes de programación que
aportan muchos beneficios respecto a los lenguajes más utilizados. Por ejemplo, se dice que
Kotlin en el nuevo rey de la programación de las ‘apps’. Un lenguaje de programación
moderno, robusto, simple y potente que en 2017 se convirtió en un lenguaje oficial de Android,
al mismo nivel que Java. En ese año BBVA lanzó su App con Kotlin, premiada por Forrester
como la mejor de la industria bancaria mundial, son su diseño fresco y actual, su óptimo
rendimiento, la capacidad de estar siempre a la última tecnológicamente y, por supuesto, su
seguridad. Por tanto, te recomendamos estar al día sobre los nuevos lenguajes de
programación emergentes.
• He leído otro tipo de clasificación de lenguajes de programación, ¿cuál es la forma
correcta?
No hay un tipo de clasificación correcto frente a otro. En este curso te explicamos la
clasificación histórica, en base al desarrollo de las computadoras según sus diferentes
generaciones, pero hay otros criterios. Por ejemplo:
- Clasificación por nivel: Lenguajes de alto y bajo nivel
- Clasificación por paradigmas: imperativo, declarativo, orientado a objetos
- Clasificación por propósito: general y específico
• ¿Qué ocurre si olvido o no pongo en práctica alguno de los principios de programación?
Correrías el riesgo de entregar un código / programa que no cumpla con la calidad esperada o
que no sea válido para su implantación.
© Accenture todos los derechos reservados Confidencial
© Accenture todos los derechos reservados Confidencial