
Video de presentación y esquema de trabajo.
Veremos cómo descargar el IDE Lazarus y el compilador Free-Pascal para trabajar con el lenguaje Pascal. La instalación es sumamente sencilla ya que está todo en uno.
OPCIONAL: Veremos cómo descarga e instalar el IDE Visual Studio configurado para trabajar con C++, lo cual ya descarga e instala el compilador para dicho lenguaje. Esto es opcional y solo lo usaremos al inicio del curso.
Para quién no quiera o no pueda usar Visual Studio, en esta clase veremos cómo utilizar Visual Studio Code y configurarlo para trabajar con C++. Esto se hace de forma mucho más manual que con Visual Studio, pero como pro, VSCode es mucho más liviano.
En esta clase veremos cómo instalar el JRE (Java Runtime Environment), que es el software necesario para ejecutar cualquier programa escrito en Java, así como el JDK (Java Development Kit), que contiene todos los paquetes necesarios para escribir programas en Java, así como incluye también al compilador de dicho lenguaje. Este kit será luego incluido en el IDE que se utilizará para programar en Java.
En esta clase veremos cómo instalar Apache Netbeans, el entorno de desarrollo para crear programas en Java, pero también es el que usaremos a lo largo de todo el curso para trabajar en HTML, CSS y JavaScript, por lo que es importante que lo instales.
Crearemos el programa "Hola Mundo" en Java para verificar que todas las configuraciones quedaron correctamente establecidas y que todo funciona bien.
Dado que verás el uso de varios lenguajes (Pascal, Java, JavaScript y C++), debes conocer de qué tipo es cada uno, ya que esto será crucial a lo largo de todo el curso.
Crearemos el programa "Hola Mundo" en HTML usando Netbeans, aunque estrictamente hablando no hace falta utilizar ningún IDE para lograrlo.
Pascal será nuestro lenguaje base de referencia, en él aprenderemos todos los conceptos y luego los trasladaremos a las demás tecnologías. Empezaremos pues, mostrando información básica al usuario por medio de la consola (salida estándar).
Al igual que en Pascal veremos cómo mostrar datos al usuario en la consola del sistema en C++.
Visto lo visto en Pascal y C++, haremos lo mismo con Java.
HTML no tiene una consola (aunque JavaScript sí), por lo que mostrar información en un documento HTML es relativamente sencillo. Veremos aquí cómo hacerlo.
Conociendo lo básico es momento de empezar a complejizar la salida poco a poco mostrando varias líneas de información al usuario.
Imprimiremos varias líneas de texto en la consola de Java.
La entrada de datos al programa implica el uso de variables, así que veremos ese nuevo concepto para empezar a lograr que nuestros programas se vuelvan poco a poco más útiles y avanzados.
Veamos cómo declarar variables en C++ y cómo leer información desde la consola del sistema.
En Java, leer datos desde la consola se vuelve un poquito más complejo que lo que ocurre en Pascal o C++ porque Java utiliza objetos para ello (en concreto usa la clase Scanner), y aún estamos muy lejos de aprender orientación a objetos. Sin embargo, es posible que aprendas a leer información y aplicar en Java los mismos conceptos vistos en Pascal y C++.
Es momento de introducir JavaScript, el lenguaje de programación que dota a HTML de dinamismo (ya que HTML es estático y no conforma realmente un lenguaje de programación como tal). Verás cómo declarar variables en JavaScript y cómo leer información desde el navegador Web. Aprenderás que en este lenguaje las cosas cambian bastante en relación a lo visto en Pascal, Java y C++, ya que JavaScript no utiliza tipos de datos estáticos cómo sí ocurre en las otras tecnologías.
Profundizaremos en el uso de variables y conoceremos más tipos de datos, en concreto tipos numéricos, para que vayas aprendiendo cómo se trabaja con la información en cualquier programa. Sabiendo esto en Pascal será fácil trasladarlo al resto de lenguajes.
Haremos algunos cálculos matemáticos sencillos en Pascal para dotar de utilidad a lo visto con los tipos de datos numéricos.
Ahora que aprendiste a usar tipos numéricos y a hacer cálculos en Pascal veremos cómo lograr lo mismo en C++.
Realizaremos lo mismo que hicimos en Pascal y C++ ahora en Java. Todo resultará muy familiar.
En JavaScript todo será muy similar a lo visto en otros lenguajes, con pequeñas salvedades.
Aprenderás a hacer que una variable numérica pueda variar su valor aumentándolo según sea necesario (el mismo concepto sirve para disminuir). Piensa en un juego que va acumulando puntos, o que pierdes vidas, pues eso es lo que aprenderás a hacer.
Lo que aprendiste en Pascal será casi idéntico aquí en C++.
No es lo mismo trabajar con números enteros que con números reales, por lo que aprenderás aquí a utilizar el tipo REAL de Pascal.
El tipo REAL tiene su homólogo en C++, así como en Java. Verás aquí cómo funciona.
Aplicarás los mismos conceptos vistos en Pascal y C++ con números reales pero ahora en Java.
Las constantes son como "variables" que no cambian de valor, manteniéndolo justamente constante. Su utilidad al principio no es muy notoria, pero en la medida en que avancemos en el curso verás que las usaremos para todo.
Veamos cómo utilizar constantes en C++.
En Java las constantes se conocen como variables finales, aunque su funcionamiento es igual que en Pascal y C++.
Veamos todo lo visto en Pascal, Java y C++ ahora en JavaScript, donde las cosas cambian un poco pero la esencia sigue siendo la misma.
Practiquemos un poco con la entrada estándar y la realización de cálculos sencillos en Pascal.
Veamos cómo leer más de una variable a la vez y, por ende, más de un dato en simultáneo desde la consola con Pascal.
Entendamos a fondo el uso de READ en Pascal.
Empezaremos a utilizar comentarios y a documentar el código en Pascal, luego veremos cómo hacer esto mismo en el resto de lenguajes.
Este punto es clave: veremos la diferencia entre la división matemática entera y la división real, entiendo cómo realizar la operación de módulo o cálculo de resto. Esto conllevará a algunas diferencias entre un lenguaje y otro, por lo que es importante que prestes atención.
Veamos cómo usar comentarios en C++ y cómo además aplicar la división entera y la división real en este lenguaje.
Veamos cómo realiza Java la división entera y la división real.
La división entera y real en JavaScript es un poquito más complicada que en los otros lenguajes, pero nada que no puedas comprender si prestas la debida atención. Como hemos dicho en otras oportunidades, la esencia siempre es la misma, cambia un poco la mecánica que hay detrás.
Trabajaremos un poco con caracteres (el tipo CHAR), que resultará muy útil a futuro.
Veamos cómo trabajar con caracteres en C++ y el uso de secuencias de escape, concepto que no existe como tal en Pascal pero que sí puede ser emulado, cuestión que verás a futuro.
Veamos las secuencias de escape en Java, que son idénticas a las de C++ y también a las de JavaScript.
Reciéntemente se ha introducido en C++ el concepto de inferencia de tipos, que sirve para declarar variables sin indicar explícitamente su tipo de datos. Es lo que JavaScript hace todo el tiempo, ya que los datos en este lenguaje son dinámicos. Este concepto también existe en Java.
Veamos cómo utiliza Java la inferencia de tipos que vimos en C++. JavaScript siempre está infiriendo tipos, así que el concepto es nativo en dicho lenguaje.
Veamos cómo usar los caracteres de escape en JavaScript. Spoiler: es igual que en C++ y Java.
A partir de ahora los programas se vuelven más interesantes porque será posible tomar diferentes caminos dependiendo de condiciones que nosotros como programadores/as definiremos. Veamos cómo utilizar la sentencia IF en Pascal y traslademos eso luego al resto de lenguajes.
Esquematizar siempre es de gran ayuda, y es independiente del lenguaje que estés utilizando. Es importante que aprendas las bases de crear diagramas de flujo, porque implica "pensar antes de hacer", planificar y ver a largo plazo.
Veamos cómo utilizar IF en C++.
Veamos el IF en Java, que es idéntico al de C++.
Veamos cómo utilizar IF en JavaScript, que es igual al visto en Java y en C++.
Diagramemos una concatenación de IF para entender lo que hay detrás, y luego llevemos eso a nuestros lenguajes de programación.
Concatenar IF es algo muy común y, de hecho, necesario. Veamos cómo lograrlo en Pascal.
Hagamos un ejercicio de concatenación IF en Pascal para luego pasar a otros lenguajes.
Ahora veamos cómo es la sintaxis de C++ para concatenar un IF con otro.
Veamos cómo hace Java para concatenar IF.
JavaScript tiene una sintaxis idéntica a Java y C++ para crear IF concatenados, aún así no está de más ver cómo funciona.
Hay una sentencia que permite usar IF concatenados pero sin escribir IF. En Pascal dicha sentencia se llama CASE, luego en el resto de lenguajes se llama SWITCH, y aunque su sintaxis cambia y algo de su mecánica también, en esencia es todo lo mismo.
Ahora CASE se llama SWITCH, y además requiere una instrucción extra llamada break para funcionar tal como vimos en Pascal. Veamos cómo aplica esto en C++.
Lo visto en C++ es idéntico aquí en Java.
C++, Java y JavaScript funcionan de forma idéntica en su sentencia SWITCH, asimismo veremos un ejemplo en JS para que no queden dudas.
El tipo BOOLEAN se vuelve imprescindible, y aunque complejiza un poco las cosas, es quién te dota de la capacidad de generar condiciones complejas para la toma de decisiones en tus programas. Veamos cómo usar este tipo de datos en Pascal.
El tipo BOOLEAN visto en Pascal ahora se llama bool, pero funciona igual.
El tipo bool ahora vuelve a ser boolean, pero también funciona igual que en Pascal y C++.
Aquí no hay un nombre para el tipo de datos, pero sigue siendo un booleano que puede valer TRUE o FALSE según sea necesario. Veamos un ejemplo de uso en JavaScript.
Veamos algunos operadores comparativos de Java para ir cerrando el concepto de selección.
Veamos ejemplos de anidación IF en todos los lenguajes abarcados por este curso.
La iteración es el último pilar de la Programación Estructurada, y es lo último que veremos en los 4 lenguajes para luego quedarnos solo con Pascal y JavaScript (y obviamente HTML y CSS). Comenzaremos con la sentencia FOR en Pascal para luego pasar a usarla en C++, Java y JavaScript.
Crearemos un pequeño programa en el que intentas adivinar un número secreto en una cantidad finita de intentos.
Veamos cómo anidar una instrucción FOR dentro de otra y las implicancias que esto tiene.
El funcionamiento de FOR en C++ es idéntico a lo visto en Pascal, pero su sintaxis cambia bastante. Veamos cómo funciona esta sentencia.
Como Java está basado en C++, la sintaxis de las estructuras básicas es idéntica, así que el FOR se escribe y utiliza de forma equivalente.
Lo que viste en C++ y Java será idéntico aquí, salvo por el uso de VAR o LET, cuestiones que se volverán muy importantes a futuro.
Veamos cómo lograr obtener números al azar en Pascal mediante la función RANDOM y el procedimiento RANDOMIZE.
Obtener números aleatorios en C++ es bastante distinto a lo visto en Pascal, pero nada que desentone mucho.
Veamos cómo hace Java para obtener números al azar.
En JavaScript es todo bastante distinto, por lo que es importante que veas exactamente cómo obtener números aleatorios en este lenguaje.
En esta clase te propongo un proyecto sencillo que debes realizar obligatoriamente en Pascal y en JavaScript, y opcionalmente en Java y C++. Verás la descripción en el video y tendrás un PDF con el detalle minucioso de lo que debes realizar.
Aprenderás ahora a generar bucles condicionales cuyas repeticiones no son finitas ni predefinidas como ocurre con FOR. Veamos primero que nada el uso de WHILE.
Conociendo WHILE en Pascal es sumamente fácil adaptarlo a la sintaxis de C++.
Como de costumbre, en Java las bases del lenguaje son idénticas a C++, y WHILE no es la excepción.
En JavaScript todo funciona idéntico a C++ y Java en lo que a sentencias básicas refiere.
La sentencia REPEAT cumple el mismo papel que WHILE con una sutil diferencia: se ejecuta siempre al menos una vez. Además, la condición de un REPEAT siempre es opuesta a la de un WHILE, por lo que hay que invertirla para pasar de una sentencia a otra.
No hemos visto ningún otro lenguaje con una sentencia REPEAT, sino que te encontrarás con DO-WHILE. Sigue cumpliendo la misma condición de ejecutarse al menos una vez, pero para pasar de un WHILE a un DO-WHILE no hace falta invertir la condición. Veamos cómo funciona esto en C++.
En Java tienes un DO-WHILE idéntico al que hay en C++.
En JavaScript tienes el mismo DO-WHILE que en C++ y en Java.
Este proyecto es opcional ya que te invita a investiga un poco el funcionamiento de cada lenguaje y a utilizar tu creatividad para adaptar el funcionamiento de consola hecho en Pascal al funcionamiento de navegador de JavaScript. También debes ver cómo obtener logaritmo en base 2 en cada lenguaje. Como programador/a siempre estarás enfrentando situaciones como estas: se debe lograr algo pero no se sabe cómo, así que hay que buscar respuestas en internet o incluso publicar preguntas a ver si alguien sabe cómo solucionar un problema concreto.
Veamos en más detalles los tipos primitivos en Pascal.
Dejando atrás a C++ y Java, es momento de aprender a usar tipos de datos estructurados, siendo el primero el arreglo.
Los arreglos en JavaScript funcionan de manera similar a Pascal en su sintaxis, pero internamente son muy diferentes.
Aprendamos a buscar elementos dentro de un arreglo.
Hagamos búsquedas en JavaScript.
Practiquemos un poco más con arreglos lineales antes de pasar a las matrices.
Lo visto en Pascal pero ahora en JavaScript.
En JavaScript todo arreglo es dinámico, pero en Pascal no, por lo que hay distinción entre los arreglos estáticos y los dinámicos. Veamos un poquito esto.
Veamos cómo crear matrices o arreglos de dos dimensiones.
En JavaScript las cosas son un poquito diferentes cuando de tablas o matrices se trata.
Entrenemos un poco el uso de arreglos y su recorrido.
Repitamos el proceso en JavaScript.
Aprendamos a usar el depurador, un herramienta crucial para detectar, buscar y reparar errores en nuestros códigos.
Aprende también a usar el depurador de NetBeans en conjunto con el de Chrome.
Leer caracteres uno a uno no es una tarea tan sencilla como parece.
Podemos generar números al azar pero... ¿letras?
Aprende a acumular o concatenar cadenas en JavaScript para generar salidas más interesantes.
Crearemos la primera versión del truco de cartas que adivina la carta que el jugador tiene en mente de un total de 21 presentadas. En esta oportunidad trabajaremos con caracteres; a futuro agregaremos imágenes pero aun no es el momento. Este proyecto es obligatorio.
Esta clase propone un proyecto extremadamente retador pero imprescindible, ya que es el camino para desarrollar verdaderamente tus cualidades y capacidades como programador/a.
Este proyecto propone una "pequeña" variación al proyecto anterior, lo cual hará que trabajes con el código que ya escribiste teniendo que modificarlo y mejorarlo. Es un acercamiento al "mantenimiento de código".
Ahora que sabes trabajar con arreglos podemos ver una variante del bucle FOR específicamente pensada para recorrer arreglos con una sintaxis más simple.
Análogo al FOR-IN de Pascal, JavaScript tiene FOR-OF para recorrer arreglos.
Comienza aquí el aprendizaje sobre modularización de código y el trabajo con subprogramas, herramienta que de ahora en más será indispensable. Iniciarás aprendiéndolo en Pascal dado lo robusto de este lenguaje, ya que en JavaScript las cosas son más simples y eso propicia el no comprender de fondo lo que ocurre realmente.
Hablar de subprogramas es hablar de parámetros o argumentos. Veamos qué son y para qué sirven.
Las funciones son como los procedimientos salvo que retornan valores al final. Veamos cómo funcionan y para qué sirven.
Los subprogramas introducen un nuevo concepto que debe ser comprendido: el alcance en los identificadores (nombres) que utilizamos en el código, ya que ahora aparecerán elementos locales y globales, así como contextos o bloques.
Usemos las funciones que arrojan valores boolean ya que tienen una utilidad particular.
Este concepto es crucial y JavaScript no provee un marco en el cual aprenderlo correctamente. Comprenderás las diferencias entre pasajes de parámetros y dominarás las referencias, ya que aunque JavaScript no permite usarlas de forma explícita, implícitamente las estarás manipulando. Pascal será entonces el marco ideal para comprender este tema.
Este concepto es solo aplicable a Pascal, ya que JavaScript posee una característica llamada levantamiento, que permite declarar cualquier elemento en cualquier parte del código independientemente de dónde será utilizado (o casi). Sin embargo, comprender cómo Pascal funciona (y también Java, C++ y otros lenguajes), te permite utilizar buenas prácticas como programador/a,
Comprendamos a fondo el uso de subprogramas con ejemplos prácticos.
La sobrecarga es la capacidad del lenguaje de utilizar el mismo identificador para diferentes operaciones, siempre y cuando su firma tenga variaciones. En Pascal esto es plenamente posible, al igual que en Java, C++ y otros lenguajes fuertemente tipados, pero no lo es tanto en JavaScript como verás en clases posteriores.
Ahora que tienes pleno dominio de procedimientos en Pascal, es hora de introducirlos en JavaScript.
Comprenderás que en JavaScript todo son funciones en realidad, pero sin embargo podemos usarlas como procedimientos cuando retornan un valor undefined (en Java o C++ por ejemplo este valor es void). Asimismo hay cuestiones importantes a comprender del uso de funciones en JavaScript.
Veamos cómo funciona el alcance en JavaScript, así como la introducción de la palabra reservada let.
Hay una enorme diferencia en el pasaje de parámetros que propone JavaScript respecto al que propone Pascal. En JS no podrás usar referencias, aunque sin embargo siempre estarán allí. Lo comprenderás a fondo cuando trabajemos con punteros, sin embargo ahora es momento de entender ciertas cuestiones importantes.
JavaScript propone varios tipos de sintaxis para definir funciones, veamos los pros y contras de cada cual y conozcamos los que existen.
Este proyecto propone modificar el código del programa MasterMind aplicando el uso de subprogramas. El funcionamiento de cara al usuario seguirá siendo el mismo, sin embargo internamente la estructura de tu programa estará ahora modularizada.
Es momento de comenzar a trabajar más profundamente con tipos de datos estructurados. Ya viste los arreglos, pero ahora es momento de ir avanzando en este camino. En JavaScript no existen las enumeraciones, pero aún así encontraremos mecanismos para emular este comportamiento, por lo que es importante que lo domines en Pascal para comprender lo que hay de fondo.
Entender los conceptos mediante ejemplos prácticos es importante, así que trabajemos con enumeraciones.
Los registros son el primer tipo de datos estructurado que presentará la precuela de lo que son los objetos. Claro, falta muchísimo recorrido para llegar allí, pero a partir de aquí comenzaremos a construir dicha teoría.
Apliquemos el uso de registros de forma práctica modificando el Adivinador.
En JavaScript no existen los registros del mismo modo que en Pascal o que el tipo struct en C++, por lo que emularemos dicho comportamiento usando las herramientas que JS pone a nuestra disposición.
Una forma ingeniosa de tener listas "dinámicas" en un programa.
Los arreglos de JavaScript son de por sí dinámicos, por lo que no tiene sentido la aplicación vista anteriormente en Pascal, aunque hay cosas interesantes por hacer.
Veamos más en detalle el poder de los arreglos en JavaScript.
En este proyecto el MasterMind se volverá más interesante, ya que ahora invertiremos los papeles y tú serás el pensador, teniendo tu programa que adivinar el código en base a las notas que recibirá por tu parte.
Es momento de comenzar a dividir el programa en archivos independientes. En Pascal se logra mediante unidades, en JavaScript de momento lo haremos de manera simple con scripts independientes, lo cual verás en la clase siguiente.
Aunque esto no es modularización propiamente dicha, genera la ilusión de serlo y además permite un trabajo mucho más organizado con programas cada vez más grandes en JavaScript, sin embargo no permite usar scripts que usen subprogramas, variables o constantes definidos en otros, y eso es una limitación enorme. No podemos, tal como se hace en Pascal, importar cosas de un archivo JavaScript a otro, al menos no de momento, sin embargo esto te permitirá iniciar con un trabajo modular que se extenderá luego.
En la Web no todo se trata de crear diferentes archivos de scripts, es crucial poder usar diferentes archivos HTML, es decir, diferentes páginas.
Este proyecto será sumamente sencillo, ya que constará únicamente de unir las dos funcionalidades desarrolladas en todos los proyectos anteriores, de forma que el usuario pueda elegir si quiere jugar como Adivinador o como Pensador.
¿Alguna vez has intentado aprender a programar y no sabes ni por dónde empezar? Hay tantísimas opciones, una extenuante cantidad de opiniones en internet y un sinfín de actualizaciones que es normal quedarse estancado/a. Incluso cuando tienes claro tu objetivo, hay tantas tecnologías que sirven para ello que no sabrás cuál elegir, cuál es más fácil, más eficiente o cuál tiene mayor oportunidad laboral. Es así que te ofrecemos lo siguiente:
Crea tus propias aplicaciones
Trabaja como FREELANCER o emprendedor vendiendo tu software
Postúlate a un empleo en el mundo real
Saca el máximo provecho de este curso
Capitaliza este contenido con excelentes beneficios.
Este curso nace justamente como solución al problema de no saber por dónde comenzar ni qué ruta seguir: hemos trazado una hoja de ruta profesional que te dará las bases imprescindibles y necesarias para que entres al mundo de la programación, e incluso al mercado laboral, con un solo curso. Pero claro, no se trata de enseñar mil lenguajes en un solo lugar, eso sería un despropósito, sino que se trata de enseñar las tecnologías esenciales más usadas hoy día para que puedas convertirte en un/a programador/a FULLSTACK e inclusive de ESCRITORIO, comprendiendo a fondo todo lo necesario para saber luego por dónde especializarte en caso de que quieras hacerlo.
Pero lo más importante es que con lo que aprenderás aquí podrás postularte a empleos reales en el mundo laboral e incluso trabajar por tu cuenta como freelancer, vender tu software a clientes reales y trabajar en proyectos de mediano y gran porte. Empezarás sin saber nada y llegarás a conocer muchísimo más de lo que puedas imaginar, todo en un entrenamiento altamente intensivo y demandante, a través de teoría bien explicada y prácticas bien diseñadas.
Veamos en detalle los temas que verás. Cada una de las unidades siguientes abarcarán varios módulos completos, por lo que habrá más de una veintena (20) de módulos.
|| ===== UNIDAD 1: PROGRAMACIÓN ESTRUCTURADA EN 4 LENGUAJES ======||
Iniciarás la ruta trabajando con dos lenguajes principales (Pascal y JavaScript), y dos complementarios (C++ y Java). De este modo abarcarás el espectro de lo que es programar lenguajes compilados, semi-interpretados y puramente interpretados, con todas las variaciones que ello conlleva.
Pascal será el lenguaje base que usaremos para introducir y estudiar cada tema, ya que es muy potente, moderno (a pesar de lo que piensan varios) y poderoso para el aprendizaje; y JavaScript será la contraparte, la oveja negra, quién mostrará una cara de la programación muy diferente a lo que proponen lenguajes más estructurados como Pascal, Java o C++.
Los temas que veremos serán:
Entrada y salida estándar de datos
Variables, constantes y tipos primitivos
Programación secuencial
Selección mediante IF
Diagramas de flujo
Encadenación IF
Case y Switch
Iteración con FOR
Iteración condicional con WHILE y DO-WHILE (REPEAT)
Proyectos de aplicación y desarrollo de software
|| ===== UNIDAD 2: ARREGLOS ======||
A partir de aquí abandonaremos a C++ y Java, ya que has aprendido las estructuras esenciales de ellos así como de Pascal y JavaScript. El curso continuará con Pascal como lenguaje base y JavaScript como referente para el mundo Web, incluyendo un poco de HTML. En esta unidad trabajarás:
Arreglos lineales
Arreglos bidimensionales o matrices
Arreglos dinámicos
Arreglos como objetos en JavaScript
Algoritmos de búsqueda y ordenación
El Juego de la Vida de John Conway
|| ===== UNIDAD 3: PROGRAMACIÓN MODULAR ======||
A partir de este punto empezarás a crear programas más grandes y complejos, por lo que comenzarás a trabajar con subprogramas (procedimientos y funciones), y todo lo que ello conlleva. El entrenamiento se intensificará en este punto. Los temas concretos serán:
Funciones fuertemente tipadas
Funciones con tipos dinámicos
Procedimientos fuertemente tipados
Procedimientos dinámicos
Pasaje de parámetros por copia
Pasaje de parámetros por referencia
Las vicisitudes del pasaje de parámetros en JavaScript
Alcance de identificadores
Registros
Tipos de datos estructurados
Modularización de código
Encapsulamiento básico
Manipulación de archivos
Conceptos de Bases de Datos
Conceptos de diseño de software
Punteros y memoria dinámica
Listas encadenadas o simplemente enlazadas
Tipos Abstractos de Datos
Operaciones primitivas
Selectoras, asignadoras, predicados, constructores y destructores
Creación de módulos en JavaScript
Uso de varias páginas HTML
TADs LinkedList, Stack y Queue
Árbol Binario de Búsqueda
Algoritmos de búsqueda y recorrido
Recursión computacional
|| ===== UNIDAD 4: PROGRAMACIÓN ORIENTADA A OBJETOS ======||
Todo lo visto hasta el momento es como la preparación para poder desempeñar la orientación a objetos. Este tema aplica absolutamente, y en gran profundidad, todo lo visto anteriormente. Es uno de los conceptos más demandados en el mercado laboral y extremadamente necesario si quieres aprender luego a usar cualquier tecnología, lenguaje, framework, etc.
Los temas que veremos, esencialmente serán:
Definición y estructura de los objetos
Definición de clases
Modificadores de acceso
Encapsulamiento avanzado
Propiedades
Clases internas
Campos y operaciones estáticas
Patrón de diseño SINGLETON
Importación y exportación de componentes
Modelos de objetos en JavaScript
Prototype en JavaScript
Herencia
Polimorfismo
Casteo de tipos (down-cast y up-cast)
Interfaces
Clases abstractas
Genéricos
Captura y lanzamiento de excepciones
Promesas
JSON
Operaciones de resurrección
Bases de UML y diseño de software
Mantenimiento y escalabilidad de código
|| ===== UNIDAD 5: INTERFACES GRÁFICAS DE USUARIO ======||
En este módulo aplicaremos todo lo visto hasta el momento para crear interfaces gráficas modernas para aplicaciones de escritorio. Sin embargo, todo lo que verás y entrenarás aquí lo aplicarás luego, casi de forma idéntica, para la Web, ya que JavaScript utiliza un modelo de eventos y gestión de componentes similar al que usarás en Pascal.
1. Creación de ventanas
2. Campos y formularios complejos
3. Eventos e interacción del usuario
4. Manipulación de componentes
5. Validación de información de ingreso
6. Diálogos simples y modales
7. Botones y componentes de acción
8. Menús principales y menús contextales
9. Tablas y filtros
10. Pasaje de información entre ventanas y cuadros
11. Estructuración de información al usuario
12. Generación dinámica de componentes en tiempo real
13. Uso de acciones
14. Paneles con pestañas
15. Iconos y decoraciones
16. Barras de carga y splash-screen
17. Creación de GUIs complejas
|| ===== UNIDAD 6: HTML y JavaScript ======||
A partir de este punto tienes todas las bases de la programación para escritorio y un entrenamiento exhaustivo en el uso de una gran variedad de herramientas. Realmente ya eres todo/a un/a programador/a, pero aún estás lejos de llegar a lo que el mercado laboral demanda. El mundo Web es la pata que falta, y a partir de aquí lo completaremos, ya que eres todo/a un/a experto/a en JavaScript pero falta diseñar Webs dinámicas, vistosas y responsivas, así como utilizar APIS y programar del lado de servidor.
Lo que veremos, a grandes rasgos es:
1. Estructuras básicas de HTML5
2. Enlazamiento interno de páginas
3. Enlazamiento externo entre páginas
4. Barras de progreso
5. Tablas, filas, columnas, celdas y estructuración
6. Creación de formularios complejos
7. Gestión de formularios y eventos
8. Elementos META
9. Elementos de estructuración semántica de página
10. Imágenes
11. Favicon
12. Mapas
13. Picture
14. Figure y Figcaption
15. Eventos con JavaScript
16. Documentación oficial
17. Programación multihilo con Workers
18. Cuadros de diálogo
19. Uso de frames internas
20. Audio y video
21. Uso de acciones
22. Creación de GUIs complejas
23. Drag and Drop
24. HTML Canvas
25. Creación de juegos de ejemplo
|| ===== UNIDAD 7: CASCADE STYLE SHEETS (CSS) ======||
Una vez que sabes trabajar a fondo y al máximo con HTML es momento de trabajar la visualización, el adorno, la estilización de una página. CSS es extenso y tiene varias cosas que trabajar, ya que es capaz, además de gestionar cómo se en las cosas, de dotar a HTML de ciertas funcionalidades extra muy interesantes.
Lo que verás en este módulo, a grandes rasgos es:
1. Estilos incrustados básicos
2. Estilos importados
3. Listas de colores y color-picker
4. Selectores
5. Definición de clases de estilos
6. Fuentes básicas
7. Importación de fuentes externas y uso de íconos
8. Posicionamiento absoluto y z-index
9. Posicionamiento relativo y span
10. Fondos y colores alfa
11. Dimensiones y alineaciones
12. Modelo de cajas
13. Menús desplegables
14. Barras de navegación
15. Sombras de texto y cajas
16. Bordes y márgenes
17. Animaciones
18. Transiciones y transformaciones
19. Cajas flexibles
20. Diseño multicolumna
21. Consultas @media
22. ToolTips
23. Menú contextual
24. Panel con pestañas
25. Uso de variables CSS
26. Selectores de atributos
27. Pseudoclases
28. Pseudoelementos
29. Condiciones
30. CSS dinámico desde JavaScript
|| ===== UNIDAD 8: DOM Y BOM ======||
Este módulo regresará a JavaScript y te mostrará cómo gestionar dinámicamente todos los componentes HTML, pudiendo ahora realizar verdadera magia con una página Web. El uso del DOM será, a partir de ahora, la base principal que usarás para el resto de tecnologías que aprenderás.
|| ===== UNIDAD 9: XML ======||
Es un lenguaje, o más bien un formato, que te permitirá organizar la información y configuraciones de una manera más automatizada y profesional. Es importante que conozcas las bases, ya que aunque no lo usarás tanto manualmente, la amplia mayoría de tecnologías crean formatos XML para configurar las aplicaciones y proyectos, por lo que es vital que sepas comprender este formato.
|| ===== UNIDAD 10: JQUERY ======||
JQuery es una biblioteca de JavaScript rápida, pequeña y rica en funciones. Hace que cosas como el recorrido y la manipulación de documentos HTML (uso del DOM), el manejo de eventos, la animación y Ajax sean mucho más simples con una API fácil de usar que funciona en una multitud de navegadores. Con una combinación de versatilidad y extensibilidad, jQuery ha cambiado la forma en que millones de personas escriben JavaScript.
Hay quienes afirman que esta biblioteca está en declive, pero de momento no hemos visto tal cosa, siguen siendo muy demandada e incluso cuando buscas cómo solucionar cosas en JavaScript puro salen ejemplos con jQuery. El mercado laboral aún lo demanda y además te puede facilitar la vida en muchas cosas, por lo que aprenderás a usar esta biblioteca.
|| ===== UNIDAD 11: TYPESCRIPT ======||
TypeScript es un lenguaje de programación fuertemente tipado que se basa en JavaScript, lo que le brinda mejores herramientas a cualquier escala. Básicamente es una extensión de JavaScript transformándolo en un lenguaje fuertemente tipado, como Pascal, C++, Java y cualquier otro, dotándolo de todos los beneficios de diseño que implica tener tipos de datos explícitos, entre muchísimas otras cosas.
Este lenguaje, al extender el JavaScript nativo es ampliamente demandado, fácil de aprender y recomendable. El mercado laboral lo demanda, te facilita la vida y es extremadamente necesario que lo conozcas, sea cual sea el camino que vayas a tomar a futuro.
|| ===== UNIDAD 12: NODE.JS ======||
Esta tecnología permite crear aplicaciones con JavaScript fuera del navegador, en concreto, podrás crear aplicaciones de escritorio (sí, como con Pascal o C++), así como aplicaciones del lado de servidor (que es su uso más requerido hoy en día). Aprender a utilizar Node te brindará un salto cuántico en tus capacidades y en tu valoración al mercado, tanto laboral como si trabajas por tu cuenta. Además, es la herramienta que nos permitirá saltar hacia la creación de aplicaciones de servidor.
Los temas que verás serán los siguientes:
1. Entorno de ejecución Node
2. Creación de aplicaciones de consola con JavaScript
3. Manipulación de archivos
4. Acceso al sistema operativo
5. Empaquetado de aplicaciones para su distribución
6. Introducción a NodeGUI
7. Uso de Electron para crear aplicaciones gráficas
8. Empaquetado de aplicaciones gráficas con Electron Forge
9. Paquete HTTP y creación de servidores básicos
10. Métodos GET, POST, PUT y DELETE
11. Uso del paquete Express para creación de servidor
12. Creación de API Rest
13. Uso de sockets para comunicación cliente-servidor
|| ===== UNIDAD 13: BASES DE DATOS RELACIONALES SQL ======||
Como gran tema final es imprescindible que sepas usar bases de datos relacionales. Para ello usaremos MySQL y SQLite. Este módulo te enseñará lo indispensable que debes conocer para manipular bases de datos SQL, conectarlas a tus aplicaciones y usarlas como métodos de persistencia. También recibirás nociones básicas de diseño. De este modo luego podrás decidir si quieres profundizar con un curso completo de SQL o no, o bien, puedes incluso ver opciones NO-SQL, como MongoDB y otras.
Los temas que verás son:
1. Concepto de base de datos relacional
2. Creación de bases de datos y tablas
3. Carga de datos desde un archivo
4. Consultas básicas y compuestas
5. Ordenación y limitación de resultados.
6. Cálculos simples y Funciones de uso común: MAX, COUNT, AVG, MIN, SUM
7. Modificación y eliminación de registros
8. Eliminación de tablas y bases de datos
9. Modificación de la estructura de una tabla (ALTER)
10. Funciones y formato de fecha
11. Trabajando con dos tablas y consultas combinadas
12. Conectar Pascal a MySQL
13. Conectar NodeJS a MySQL
|| ===== UNIDAD 14: BOOTSTRAP ======||
Bootstrap es un marco de desarrollo (framework) front-end (de cara al cliente o páginas Web visibles en el navegador) gratuito y de código abierto para la creación de sitios y aplicaciones web. Diseñado para permitir el desarrollo receptivo de sitios web móviles, Bootstrap proporciona una colección de sintaxis para diseños de plantillas. Se basa más que nada en CSS permitiendo un diseño mucho más ágil y rápido. En este módulo conocerás las bases para dominar este framework.
|| ===== UNIDAD 15: React ======||
Para crear un sitio o aplicación web que ofrezca funcionalidades complejas es necesario contar con tecnología que posibilite el desarrollo de software óptimo y eficaz. Desde controlar el clic en un botón, hasta animar el logo de una empresa, los desarrolladores/as buscan constantemente mejores herramientas para construir interfaces altamente interactivas, y una de ellas es la librería React.
Es una librería de código abierto que se utiliza principalmente para construir interfaces; es decir, es una tecnología enfocada en la interactividad. Está orientada al front-end (parte del software que el usuarios utiliza) y su adopción ha ido aumentado en los últimos años.
En este módulo te presentaremos las bases de React para que puedas utilizarla y luego, si te interesa, profundizar al máximo, ya sea con cursos específicos o por tu propia cuenta de modo autodidacta.