Introducción A La Programación
Introducción A La Programación
Introducción A La Programación
Módulo 0. Presentación
¡Bienvenidos a esta curso de introducción a la programación! Este curso está diseñado para gente que nunca se
había planteado programar. Tú ya te has planteado programar porque te has apuntado a este curso. Así que este
curso es para ti.
https://youtu.be/t6i5ka85210
Visita cada una de las actividades que te proponemos para profundizar en el tema, en la última actividad teórica
del módulo, tendrás la posibilidad de descargar un pequeño manual en el que se recopilan los conceptos
trabajados durante el mismo.
Para terminar el módulo debes realizar un pequeño test con cuestiones referidas a los contenidos que hemos
trabajado en el módulo.
Tipos de datos
Lo primero que vamos a trabajar durante este módulo de fundamentos son "Los tipos de datos". Vamos a trabajar
básicamente con 4 tipos:
Números
Cadenas
Booleanos
Tipos especiales
En el vídeo que tienes a continuación vamos a profundizar sobre cada uno de ellos. Cómo te hemos comentado al
inicio, no te asustes que no resultan complejos.
https://youtu.be/WtvvaM8dCKg
Operaciones
Una vez hemos visto los tipos de datos con los que vamos a trabajar, vamos a comenzar a realizar operaciones
con ellos. Vamos a trabajar básicamente con 3 tipos de operaciones:
https://youtu.be/r-eBmQM8GGk
Variables
Una variable es un cajón con una etiqueta donde almacenamos datos de un programa. Para definir una variable en
JavaScript, usamos la palabra reservada"var" seguida del nombre que le queremos dar a la variable.
En el siguiente video, veremos como declarar variables para utilizarlas en nuestros programas.
https://youtu.be/FBFGzX7XVPg
Una vez visto, qué son y cómo se declaran las variables en nuestros programas, ahora toca trabajar sobre la
comparación entre ellas. Vamos a ver los operadores principales para llevar a cabo la comparación entre varibles:
Igualdad y desigualdad
Mayor y menor
Falsy y truthy
https://youtu.be/WZkhNRrWSoQ
Ejercicio práctico
2. Define una variable cuyo valor sea una cadena que represente una carta de la baraja. Recuerda que representamos
las cartas con una cadena formada por un número que representa el valor, seguido de una letra que representa el
palo. Ahora crea otras dos variables que representan a la carta anterior y a las carta posterior en una baraja ordenada.
Finalmente, crea una última variable que concatene las cadenas de las 3 cartas anteriores usando las variables que
ya tienes.
3. Define una variable cuyo valor sea una cadena que represente una carta de la baraja, cuyo valor sea mayor que
9. Ahora utiliza el operador para indexar la cadena, y accede al palo de la carta. ¿Cuál es la diferencia si la carta
tiene un valor menor o igual que 9?
Hasta ahora hemos visto instrucciones en un orden secuencial, es decir, una detrás de otra. Aunque se
pueden ejecutar instrucciones bajo algunas condiciones, para poder ejecutar mediante estas instrucciones,
utilizaremos las estructuras de selección. En el siguiente vídeo te explicamos más sobre ellas.
https://youtu.be/Qr0-6wauXJ4
Estructuras de iteración
Las estructuras de interación, nos van a permitir repetir la ejecución de un bloque de código el número de veces
que estimemos oportuno, hasta que cumpla la condición de parada que hayamos establecido.
En el siguiente video verás como trabajar con este tipo de estructuras a la hora de empezar elaborar tus
programas.
https://youtu.be/VHrZeZgvyCg
Ejercicio práctico
1. Programa un ejemplo que, dada una variable de tipo cadena con la carta del 4 de corazones, compruebe si es
de corazones y además es el número 4. En caso afirmativo, lo imprimimos en la consola. Probamos el mismo
programa con el 3 de corazones, y con el rey de corazones. ¿Qué sucede?
Aquí puedes visualizar la solución, te recomendamos accedas a ella una vez hayas terminado el ejercicio por tu
cuenta
2. Utiliza un bucle para recorrer todos los años bisiestos anteriores a 2050, e imprímelos en la consola.
3. Utiliza un bucle para recorrer todas las cartas de la baraja, desde el 1 al 12 de cada palo. Imprime en pantalla
solamente las cartas rojas que sea múltiplos de 3.
Ejemplos de situaciones que requieren el uso de colecciones de datos: cuando trabajamos con los meses del
año, los contacto de la agenda del móvil, o, en nuestro ejemplo de la baraja, el listado de palos de la baraja.
Arrays
Según la Mozilla Developer Network un array es un constructor para matrices unidimensionales (también
llamadas vectores o arreglos), que son objetos tipo lista de alto nivel.
En el siguiente vídeo, veremos en detalle qué es un array y cómo podemos trabajar con ellos.
https://youtu.be/6ZUco46hhLE
Aritmética de Arrays
Durante esta actividad del módulo "Estructuras de datos" vamos a trabajar las operaciones con arrays, ¿qué tipo
de operaciones?:
Búsqueda
Inserción
Filtrado
https://youtu.be/IfhYZSqCGIE
Diccionarios
Los diccionarios son estructuras que nos permiten almacenar datos estructurados. También se les llama hash en
inglés. En los diccionarios la información se almacena con una clave y un valor. Por ejemplo, para almacenar una
dirección postal tendríamos la información de un calle, una población, un código postal y un país. Veamos como
trabajar con los diccionarios
https://youtu.be/sNeYybDdCJA
En esta actividad vamos a ver como trabajar de forma combinada con arrays y diccionarios. Para combinar estos
dos tipos de datos, vamos a realizar dos estructuras muy comunes a la hora de programar:
En el enlace de más abajo, puedes decargarte material de ampliación del módulo "Estructura de datos".
https://youtu.be/XAAgXnmN8rU
Ejercicio práctico
1. Programa un ejemplo que almacene en un array todas las cartas de la baraja, cada una representada con un
diccionario que tenga un palo y un valor.
Aquí puedes visualizar la solución, te recomendamos accedas a ella una vez hayas resulto el ejercicio por tu
cuenta
2. Partiendo del array que has construido en el ejercicio anterior, construye un algoritmo que filtre en un nuevo
array sólo las cartas rojas, y en otro array las cartas negras.
3. Partiendo del array que has construido en el ejercicio anterior, construye un algoritmo que filtre en un nuevo
array las cartas rojas y pares. Luego imprime en la consola la última carta de ese nuevo array.
Declaración de funciones
En esta actividad vamos a introducir el concepto de función. Una función, trabaja de la siguiente manera:
En el siguiente video te vamos a explicar cómo trabajar con funciones en detalle,ya que, nos permite contar con
un enorme potencial a la hora de escribir código.
https://youtu.be/IWQAxPziREI.
Cuando un progama va creciendo,es muy probable que contenga numerosas funciones que usen diferentes
variables o que las funciones se llamen unos a otras, incluso a sí mismas. Durante esta actividad, vamos a darte
respuesta a a estos dos problemas. En el sigiente video te explicamos como trabajar con funciones y variables,
para estructurar tu código de forma correcta y eficiente.
Nuestro objetivo, es conseguir a través de las funciones que todas estas variables no se confundan, ya que, nos
permiten definir el ámbito o scope. Este ámbito nos permite no confundir funciones ya que lo que conseguimos
al definirlo, es cercar las variables y funciones para evitar que se usen en otro diferente.
Una vez finalizado el vídeo, puedes descargarte el material adicional del módulo "Funciones y programas"
https://youtu.be/8KzTc7HWtaA
Ejercicio práctico
1. Desarrolla una función que puntúe una mano de cartas, que tenga como parámetro un array de cartas, cada una
representada por un diccionario con palo y valor. Al puntuar, las cartas suman su valor excepto si es un as que
suma 20. Prueba a invocarla con varias manos de cartas con y sin ases.
2. Partiendo de la función anterior, modíficala para que además las cartas rojas sumen el doble. Prueba a
invocarla con varias manos de cartas.
3. Desarrolla un programa que use la función anterior para puntuar las manos de cartas de dos jugadores e
imprima por consola al ganador, es decir, al que obtenga mayor puntuación.
Durante esta actividad vamos a ver como crear nuestras propia librería de código y cómo podemos trabajar con
las librerías que nos ofrece el sistema.
https://youtu.be/QtrwcpSnjig
Log
Clear
Now
Parse
SQRT
PI
En el enlace que tienes más abajo, puedes descargarte el material adicional del módulo "librerías de código"
https://youtu.be/0p7We6o-1Ys
Ejercicio práctico
1. Desarrolla una librería Croupier que tenga una función para barajar cartas. Para barajar, intercambiamos una
carta aleatoria dentro de nuestra baraja por otra. Y esto lo hacemos 100 veces. Se recomienda usar la librería
Math.random. Por ejemplo, intercambiar la carta en la posición 7 por la carta en la posición 24.
2. Desarrolla nuevas funciones de la librería Croupier: Repartir, que toma la carta en primera posición de la
baraja y la elimina del array Puntuar que, dada una mano de 4 cartas sume su valor. Pero si todas las cartas son
iguales, multiplica el valor por 10.
3. Desarrolla una librería Calculadora que calcula las longitudes de varias figuras geométricas como cuadrados,
rectángulos y círculos.
Hasta ahora hemos usado la estructura de datos de diccionario para almacenar datos y también para almacenar
funciones como en una librería o espacio de nombres (namespace en inglés). Un objeto encapsula ambas cosas
en la misma estructura de diccionario: datos y funciones que trabajan con esos datos. Por ejemplo, nuestro amigo
el croupier tiene la baraja de cartas como parte de sus datos. Y luego funciones que permiten barajar esa baraja,
repartir cartas de la baraja o puntuar una mano. En el siguiente video vamos a ver algunos ejemplos prácticos
sobre todo esto.
https://youtu.be/FibZjLwSXrY
Ejercicio práctico
1. Desarrolla un objeto Croupier que tenga como datos una baraja de cartas completa. Y puntuaciones especiales
para el as y las figuras (jota, dama y rey).
Jota = 12
Dama = 14
Rey = 17
As = 20
2. Añade al objeto una función para tomar 5 cartas aleatorias de la baraja. Y luego para puntuar esa mano de
cartas con las puntuaciones especiales.
¿Y ahora qué?
https://youtu.be/efFntTkQ1wI