1. En la sociedad actual
1.1. Se utilizan los lenguajes de programación : Conjunto de símbolos y reglas que, siguiendo una estructura lógica, permiten escribir las líneas de código que componen las aplicaciones.
1.1.1. Al principio de la era informática
1.1.1.1. los programadores requerían de conocimientos tecnológicos muy complejos para crear programas usando solamente 0 y 1.
1.1.2. Se necesitan ampliar los horizontes de la tecnología
1.1.2.1. debido a sus avances mediante la ayuda de profesionales que sean creativos y hayan recibido una enseñanza previa en una edad temprana.
1.1.3. En cuanto al desarrollo profesional de software
1.1.3.1. existe gran variedad de lenguajes de programación para desarrollar las aplicaciones de escritorio, móviles y web.
2. Creación de un programa informático
2.1. Los algoritmos son la base para crear los programas. Un programa informático es un conjunto de instrucciones, escritas en un lenguaje de programación para que el ordenador lo pueda entender.
2.1.1. Las fases para crear un programa informático se conocen como ¨Ciclo de vida del software. Son las siguientes:
2.1.1.1. Análisis del problema
2.1.1.1.1. Se realiza un estudio detallado del problema a resolver, con la finalidad de que el resultado final coincida con lo que se esperaba. Se trata de una fase compleja.
2.1.1.2. Diseño de algoritmos
2.1.1.2.1. Se crean los algoritmos que permiten resolver el problema. Para representarlos, se usan diagramas de flujo y pseudocódigos.
2.1.1.3. Codificación del programa
2.1.1.3.1. Consiste en traducir el lenguaje algorítmico a un lenguaje de programación que el ordenador pueda entender, como Java, Python, C++ o Ruby.
2.1.1.4. Pruebas y depuración
2.1.1.4.1. Tras haber escrito el programa, éste se somete a una serie de pruebas para detectar posibles errores de funcionamiento. Para ello es necesario examinar todas las opciones posibles.
2.1.1.5. Documentación
2.1.1.5.1. Consiste en añadir comentarios al código fuente con el objeto de clarificar y explicar cada elemento del programa. Gracias a este último paso el código se podrá comprender mejor. Se utilizan símbolos como // y /*..*/
3. Diseño de algoritmos
3.1. Según el matemático George Polya(1945), en la solución de un problema intervienen cuatro operaciones mentales:
3.1.1. Entender el problema, analizando toda la información de la que se disponga.
3.1.2. Trazar un plan, escogiendo alguna estrategia de resolución: ensayo/error, heurística, algoritmo, descomposición del problema.
3.1.3. Ejecutar un plan, llevando a cabo las operaciones en el orden establecido.
3.1.4. Revisar cada fase y comprobar que la solución es la apropiada.
3.2. Algoritmo
3.2.1. Conjunto de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permite solucionar un problema determinado.
3.2.2. Se usa con frecuencia en la vida cotidiana para realizar tareas como conducir, vestirse...
3.2.3. Ejemplo de algoritmo para cocinar un bizcocho de chocolate:
3.2.3.1. Paso 1) Batir en un bol 4 huevos, 200 g de azúcar, 125 ml de aceite y 200 ml de leche.
3.2.3.2. Paso 2) Añadir 25 g de cacao en polvo, 400 g de harina y 1 sobre de levadura.
3.2.3.3. Paso 3) Remover hasta obtener una mezcla homogénea.
3.2.3.4. Paso 4) Verter la mezcla en un molde untado con mantequilla.
3.2.3.5. Paso 5) Introducir en el horno a 180ºC durante una hora.
3.2.4. Características que debe cumplir todo algoritmo:
3.2.4.1. Finitos: Solamente hay un inicio y un final, de forma que el algoritmo debe estar constituido por un conjunto determinado de pasos.
3.2.4.2. Definidos: Si se aplica el algoritmo varias veces, para los mismos datos de entrada, se debe obtener siempre el mismo resultado.
3.2.4.3. Precisos: Establece claramente los pasos a seguir, sin posibilidad de ambigüedad en ningún momento.
3.2.5. Diagrama de flujo
3.2.5.1. Representación gráfica de un algoritmo.
3.2.5.2. Tipos
3.2.5.2.1. Líneas de flujo
3.2.5.2.2. Terminal
3.2.5.2.3. Proceso
3.2.5.2.4. Decisión
3.2.5.2.5. Función
3.2.5.2.6. Entrada/Salida
3.2.6. Pseudocódigo
3.2.6.1. Se utiliza para describir un algoritmo en lenguaje natural.
4. Lenguajes de programación
4.1. Conjunto de reglas y símbolos que se utilizan para codificar las instrucciones de los programas de ordenador.
4.2. Evolución histórica de los lenguajes:
4.2.1. 1ªgeneración: Lenguaje máquina
4.2.1.1. Los primeros ordenadores se programaban directamente en código binario(0,1) Cada ordenador tenía que ser programado usando un conjunto de instrucciones específicas, por ello se llama lenguaje máquina.
4.2.2. 2ªgeneración: Lenguaje ensamblador
4.2.2.1. El lenguaje ensamblador usaba instrucciones sencillas, en lugar del código binario propio del lenguaje máquina, de modo que los programas eran más legibles. Para ello utiliza un traductor.
4.2.3. 3ªgeneración: Lenguajes de alto nivel
4.2.3.1. Los lenguajes de alto nivel sustituyen las instrucciones simbólicas por códigos independientes de la máquina mucho más cercanos al lenguaje natural. Necesitan un compilador para generar el programa en código máquina.
4.2.4. 4ªgeneración: Programación orientada a objetos
4.2.4.1. Modalidad de programación más cercana a la vida real, ya que los programas se escriben en términos de objetos sobre los que se realizan acciones y que interaccionan mediante el envío de mensajes entre ellos.
4.2.5. 5ªgeneración: Lenguaje natural e inteligencia artificial
4.2.5.1. Basados en el uso del lenguaje natural, o muy similar, para describir problemas que, utilizando técnicas de inteligencia artificial, el ordenador es capaz de resolver.
4.3. Sintaxis de los lenguajes de programación
4.3.1. Define el conjunto de reglas que se deben seguir al escribir el código fuente, de modo que los programas resulten sintácticamente correctos y, de ese modo, pueda generarse posteriormente el código máquina sin errores.
4.3.2. Con frecuencia se resaltan los elementos de la sintaxis con colores diferentes para facilitar su lectura e interpretación.
4.4. Variables y constantes
4.4.1. Si un dato no va a cambiar durante la ejecución del programa se puede definir como constante, mientras que los datos cuyos valores pueden cambiar son variables.
4.4.2. Se crean especificando su nombre y el tipo de datos que almacenan.
4.5. Tipos de datos
4.5.1. Entero
4.5.1.1. Representa los números enteros.
4.5.1.2. Ejemplo: int edad=16.
4.5.2. Real
4.5.2.1. Podrá almacenar números decimales.
4.5.2.2. Ejemplo: float pi= 3,1416.
4.5.3. Carácter
4.5.3.1. Es un dígito que puede ser numérico(0 al 9), una letra(a..z,A..Z) o un símbolo.
4.5.3.2. Ejemplo: char letra= ¨m¨
4.5.4. Booleano
4.5.4.1. Se usa para valores lógicos, por lo que su valor es Verdadero o Falso.
4.5.4.2. Ejemplo: boolean si =true.
4.5.5. Cadena
4.5.5.1. Almacena una cadena de caracteres de longitud variable.
4.5.5.2. Ejemplo: string cad=¨hola¨
4.5.6. Array
4.5.6.1. Almacena un conjunto de elementos de tipo variable.
4.5.6.2. Ejemplo: productos(4)=80.
4.6. Estructuras
4.6.1. Secuenciales
4.6.1.1. Sentencias
4.6.1.2. Llamadas a funciones
4.6.1.3. Asignación
4.6.1.4. Operaciones aritméticas
4.6.2. Selectivas
4.6.2.1. Sentencia if-else
4.6.2.2. Sentencia switch
4.6.3. Repetitivas o bucles
4.6.3.1. Mientras (while)
4.6.3.2. Hacer-Mientras (do-while)
4.6.3.3. Para (for)
4.7. Funciones
4.7.1. Conjunto de instrucciones que realizan una tarea específica. En general, toman ciertos valores de entrada llamados parámetros y proporcionan un valor de salida (return), aunque ambos son opcionales y pueden no existir.
4.7.2. F.recursivas
4.7.2.1. Aquella que se llama a sí misma para resolverse. En cada llamada varían los parámetros y se obtienen los resultados necesarios para resolver la función inicial.
5. Programación de juegos:Scratch
5.1. Entorno de programación
5.1.1. Se puede instalar en el ordenador o utilizar de forma online desde su página oficial
5.2. Objetos
5.2.1. Programas
5.2.1.1. Cada objeto cuenta con uno o varios programas que definen su comportamiento.
5.2.2. Disfraces
5.2.2.1. Diferentes formas que puede adoptar un mismo objeto.
5.2.3. Sonidos
5.2.3.1. Biblioteca de sonidos asociados a cada objeto que pueden sonar durante el programa.
5.3. Escenarios
5.3.1. Programas
5.3.1.1. Conjunto de instrucciones que definen el comportamiento del escenario.
5.3.2. Fondos
5.3.2.1. Imagen que puede ir cambiando.
5.3.3. Sonidos
5.3.3.1. Biblioteca de sonidos asociados al escenario que pueden sonar durante el programa.
5.4. Bloques de instrucciones
5.4.1. Scratch agrupa los bloques de instrucciones en diferentes categorías:
5.4.1.1. Movimiento
5.4.1.2. Control
5.4.1.3. Sensores
5.4.1.4. Sonido
5.5. Crear un juego en Scratch: Partido de fútbol
5.5.1. Pasos-proyecto:
5.5.1.1. Crear proyecto
5.5.1.2. Pantalla de inicio
5.5.1.3. Botón jugar
5.5.1.4. Cambiar al escenario de juego
5.5.1.5. Colocar a los jugadores y asignarles teclas de movimiento
5.5.1.6. Juego del balón
5.5.1.7. Marcar un gol
5.5.1.8. Final del partido
6. Programación de aplicaciones Android: App Iventor
6.1. App Inventor
6.1.1. Para facilitar la creación de aplicaciones en Android a todo tipo de usuarios.
6.1.2. Secciones de su interfaz:
6.1.2.1. Paleta
6.1.2.2. Visor
6.1.2.3. Componentes
6.1.2.4. Propiedades
6.1.3. Editor de bloques
6.1.3.1. Contiene el código que define el comportamiento de los objetos añadidos con el diseñador.
6.1.4. Alternativas para la conexión con dispositivo Android:
6.1.4.1. Al Companion
6.1.4.2. USB
6.1.4.3. Emulador
6.1.5. Componentes:
6.1.5.1. Interfaz de usuario: botones
6.1.5.2. Disposición: horizontal, vertical o tabular
6.1.5.3. Medios: grabador
6.1.5.4. Dibujo y animación: lienzos de dibujo
6.1.5.5. Sensores: acelerómetro
6.1.5.6. Gestión socia: contactosl
6.1.5.7. Almacenamiento: archivos
6.1.5.8. Conectividad: Bluetooth
6.1.6. Bloques de programación
6.1.6.1. Ejemplos:
6.1.6.1.1. Control
6.1.6.1.2. Lógica
6.1.6.1.3. Matemáticas
6.1.6.1.4. Texto
6.1.6.1.5. Listas
6.1.6.1.6. Colores
6.1.6.1.7. Variables
6.1.6.1.8. Eventos
6.1.6.1.9. Procedimientos
7. Programación estructurada y orientada a objetos: C++
7.1. C++
7.1.1. Lenguaje de propósito general, basado en el lenguaje de programación C, diseñado para manipular objetos.
7.2. Tipos de datos y operadores:
7.2.1. Caracteres(char)
7.2.2. Enteros(short,int, long, long long)
7.2.3. Números en coma flotante(float, doublé y long double)
7.2.4. Booleanos(bool)
7.2.5. Sin tipo (void)
7.3. Estructuras de control:
7.3.1. Sentencia if
7.3.2. Sentencia while
7.3.3. Sentencia for
7.4. Funciones
7.4.1. Conjunto de instrucciones que realizan una tarea específica. En general, toman ciertos valores de entrada denominados parámetros y proporcionan un valor de salida como resultado.
7.5. Clases y objetos
7.5.1. La programación orientada a objetos (POO) es un modelo de programación que utiliza objetos para la solución de problemas, a semejanza de lo que ocurre en el mundo real.