
Cómo funciona este curso.
Instalaremos la herramienta para desarrollar programas en Pascal y luego crearemos el "Hola mundo" para verificar que todo funciona correctamente.
Instalaremos lo necesario para trabajar con C++ y crearemos el programa "Hola mundo" para verificar que todo funciona correctamente.
Para quienes resulte muy pesada la instalación de VisualStudio, instalaremos su versión más liviana llamada VisualStudio Code, la cual requiere configuración manual de MingW para poder compilar. No es lo recomendable pero es funcional a los objetivos del curso para quienes tengan equipos con baja potencia.
En Java primero hemos de obtener los paquetes necesarios para que un IDE pueda funcionar, por tanto es lo primero que haremos en esta clase.
El IDE Apache NetBeans nos servirá para crear proyectos Java así como proyectos web en HTML y JavaScript.
Una vez todo está configurado debemos comprobar que funciona correctamente, por lo que crearemos el proyecto más básico de todos, el "Hola mundo".
Dado que este curso abarcará los 3 tipos de lenguajes más utilizados, es momento de que los conozcas y sepas en qué terrenos te moverás.
Si bien HTML5 no requiere de un IDE para funcionar, ni tampoco de paquetes ni ninguna herramienta particular, ahora que todo funciona en el resto de lenguajes crearemos una página bien simple para mostrar el mensaje "Hola mundo".
Verás como imprimir información en consola de forma básica y simple con Pascal. Luego trasladaremos ese conocimiento al resto de lenguajes.
Habiendo entendido este concepto en Pascal, ahora lo aplicarás con C++, que tiene bastantes diferencias en la forma en que se escribe, pero es prácticamente idéntico en la mecánica.
Aprenderás a imprimir información en consola utilizando Java.
Salida estándar en HTML no tiene el mismo significado con en el resto de lenguajes, por lo que es importante prestarle un poco de atención.
Entender cómo funcionan las líneas de texto es muy importante. En esta clase lo aplicarás en Pascal para luego trasladar eso a la sintaxis del resto de tecnologías.
En Pascal tienes write y writeLn para impresión en consola, en Java los análogos son print y printLn. Veamos cómo funcionan.
Para leer información ingresada por el usuario necesitamos almacenarla en algún lugar de la memoria RAM. Eso se logra con el uso de variables, así que veamos cómo funciona esto.
Aplicaremos lo aprendido en Pascal a la sintaxis y lógica de C++.
Java no soporta la entrada estándar de forma primitiva como Pascal o C++, sino que hace falta crear un objeto (sí, un objeto) de tipo Scanner para leer datos desde la consola. Veamos pues cómo declarar variables y leer información ingresada por el usuario.
En HTML no podemos declarar variables ni leer información del usuario. Es ahí donde hace su aparición JavaScript. Veamos cómo.
Entendamos un poco mejor el uso de variables y comencemos a ver los tipos primitivos de datos.
Leer números tiene más sentido cuando se pretende hacer algo con ellos. Veamos cómo realizar cálculos sencillos.
Entendamos cómo lograr lo mismo que hicimos en Pascal pero en C++.
Java cambia un poco su lógica en lo que a entrada refiere, por lo que es importante prestar atención a cómo obtener números desde la consola.
Veamos cómo leer números y hacer cálculos en una página Web.
Veamos cómo hacer que una variable incremente o decremente su valor.
Entendamos más a fondo la acumulación, ahora aplicándola en C++.
Los números enteros no son los únicos que existen. Es momento de entender los reales o números de punto flotante.
Lo aprendido en Pascal servirá para entender a los reales en C++ y resto de tecnologías.
Veamos cómo Java procesa los números reales.
Introduciremos el concepto de constantes en Pascal.
Veamos cómo C++ define y procesa las constantes.
Veamos cómo Java define y procesa las constantes, siendo esto muy similar a lo que ocurre en C++.
Queda el último lenguaje por ver el uso de constantes. He aquí cómo hace uso de esta herramienta JavaScript.
Hay que practicar lo aprendido y a la vez profundizar en los conceptos.
Veamos cómo leer más de un valor de forma simultánea desde la consola.
Es importante entender la diferencia crucial que existe entre read y readLn.
Los comentarios son una parte crucial de todo código. Veamos qué son y cómo incluirlos en nuestros códigos.
Distinguir entre la división natural o entera, y la división real es crucial. Veamos qué nos ofrece Pascal al respecto.
Veamos cómo usar comentarios en C++ y cómo procesa éste el uso de DIV y MOD, ya que aunque tiene dichas herramientas, no existen del mismo modo que vimos en Pascal.
Veamos cómo Java procesa las divisiones numéricas según el tipo entero o real.
JavaScript también distingue entre división entera y real. Además veremos los comentarios en dicho lenguaje e incluiremos los comentarios propios de HTML.
Analicemos cómo leer caracteres uno a uno en Pascal mediante read.
Al igual que en Pascal veamos cómo leer caracteres uno a uno en C++ y conozcamos además los caracteres o secuencias de escape.
Veamos cómo Java hace uso de este tipo de secuencias.
Veamos una herramienta relativamente nueva en C++: la inferencia de tipos.
También relativamente nueva en Java, veamos cómo este lenguaje infiere tipos de variables.
Finalicemos este módulo poniéndonos al día con JavaScript y veamos cómo utiliza los caracteres de escape y los cuidados que debemos tener respecto a HTML.
Veamos cómo decidir qué código ejecutar en Pascal.
Veamos cómo esquematizar y diagramar un flujo básico de ejecución.
Veamos cómo utilizar IF en C++ siguiendo además el diagrama desarrollado anteriormente.
Veamos cómo Java utiliza IF.
Veamos cómo JavaScript utiliza IF.
Veamos qué implica concatenar IF diagramando un esquema.
Cuando una sola condición no basta se hace necesario concatenar un IF detrás de otro. Veamos cómo aplicar eso en Pascal.
Vayamos un poco más a fondo en este concepto.
Traslademos lo aprendido a C++.
Entrenemos lo aprendido de IF ahora en Java.
Entendamos IF ahora en JS.
La concatenación de IF se puede simplificar muchísimo si utilizamos CASE.
El análogo a CASE de Pascal en C++ se llama SWITCH. Veamos cómo funciona y qué salvedades hay que tener en cuenta respecto a su mecánica.
Con un funcionamiento casi idéntico a C++, Java nos provee de SWITCH en vez de CASE.
Funciona exactamente igual a C++, pero nunca está de más ver algún detalle. Conozcamos SWITCH en JavaScript.
Una de las bases principales de la programación estructurada: el uso de condiciones y tipos booleanos. Entiende además los operadores lógicos como AND, OR y XOR.
Veamos cómo usar el tipo booleano en C++.
Profundicemos este concepto ahora en Java.
Veamos brevemente cómo se usan estas herramientas en JavaScript, ya que es idéntico a lo sucedido en C++.
Terminemos de entender las comparaciones y los operadores que las acompañanan.
Veamos cómo poner un IF dentro de otro (anidar) y cómo funciona esto en todos los lenguajes de este curso.
El primer tipo de bucle es el FOR, que itera sobre un mismo código una cantidad finita predefinida de veces.
Nada como un buen ejemplo práctico para entender cómo funciona una herramienta. Creemos un pequeño juego donde el usuario deba aprender un número en una cantidad dada de intentos.
Introducir un FOR dentro de otro es necesario muchas veces, más aún cuando a futuro quieras trabajar con tablas o arreglos bidimensionales. Veamos cómo se puede lograr esto.
Veamos cómo aplicar lo aprendido en Pascal a C++.
Apliquemos lo aprendido en Pascal y C++ a Java.
Veamos cómo usar FOR en JS. Además, dado que no podemos ir imprimiendo en consola tenemos que generar la salida en una variable String para imprimirla al final.
Veamos cómo obtener números al azar en Pascal.
Veamos cómo hace C++ para generar números aleatorios dentro de un rango.
Veamos cómo hace Java para obtener números aleatorios.
Veamos finalmente cómo lograr obtener números al azar en JavaScript.
Proponemos aquí el primer proyecto obligatorio del curso.
Veamos otro método para repetir código que no dependa de una cantidad predefinida de ciclos, sino que dicha repetición dependa de una o más condiciones.
Traslademos lo aprendido en Pascal a la sintaxis de C++.
Siendo prácticamente idéntico a lo visto en C++, veamos el WHILE en Java.
Veamos cómo aplica JavaScript el bucle WHILE.
La última forma de repetición que tenemos en Pascal es REPEAT. Veamos cómo funciona.
Ni C++, ni Java, ni tampoco JavaScript tienen un bucle REPEAT, sino que tienen algo similar llamado DO..WHILE que es incluso más fácil de usar que REPEAT de Pascal.
Las cosas en Java son idénticas a C++.
Veamos finalmente esta estructura en JS.
Cerrando los conocimientos de programación estructurada, te proponemos el proyecto final.
¿Por dónde has de continuar? He aquí una hoja de ruta con los temas que todo/a programador/a debe dominar sin importar a qué área quiera dedicarse.
Aprender a programar es de las cosas más importantes y provechosas que puedes hacer en la era actual, donde la automatización domina cada vez más el mercado laboral y el desempleo se acrecienta día tras día. Desarrollar las habilidades de un/a programador/a te permitirá entrar mucho más rápida y fácilmente a un mercado laboral de alta demanda y alta remuneración, además de dotarte de la posibilidad de desempeñarte como freelance y trabajar para ti a distancia, desde la comodidad de tu hogar.
Además de todo lo anterior, aprender a programar hace que rompas las barreras que puedas tener frente a la tecnología, a la manipulación de información y al provecho que le sacas a todas las herramientas que hay a tu disposición. Si eres capaz de aprovechar las páginas Web, las redes sociales y los sistemas de información en tu beneficio y provecho, estarás encima de la ola de esta era, pudiendo lograr cosas que jamás creíste.
En este curso abarcaremos las bases indispensables para que domines cualquier lenguaje de programación, lográndolo a través de un entrenamiento intensivo utilizando 4 tecnologías a la vez:
Pascal
C++
Java SE
HTML-CSS-JavaScript, enfocándonos más que nada en este último.
¿Y por qué utilizar 4 lenguajes a la vez? Porque todos y cada uno de ellos aporta algo al aprendizaje, y al ser tecnologías diferentes cada una tiene una visión distinta sobre los mismos conceptos, dotándonos de un contraste que no encontrarás en ningún otro curso de programación, y mucho menos de un taller. He aquí, a grandes rasgos, el por qué de cada tecnología en este taller:
Pascal: Es tan poderoso como cualquier lenguaje moderno, pero mucho más fácil de aprender y con mayor facilidad para introducir conceptos nuevos, sin que exista un choque tan fuerte con temas avanzados. Lo usaremos como herramienta para introducir cada nuevo concepto.
C++: Uno de los más usados y demandados hoy día. Permite que traslades lo aprendido en Pascal, que no tiene tanta demanda laboral, a una de las herramientas más usadas en la actualidad, logrando un dominio excelente de ambas.
Java: Como verás en el curso, a diferencia de los dos anteriores, Java utiliza una máquina virtual para funcionar, lo cual implica que sus códigos son semi-interpretados y, casi en todos los casos, multiplataforma. Esto genera un salto bastante amplio entre la visión que aportan Pascal y C++. Además, al ser Java un lenguaje que nació a partir de C++ comparte muchas estructuras con este último, siendo más fácil trasladar lo aprendido.
HTML-CSS-JavaSript: Aquí el salto y cambio de paradigma es brutal. En primer lugar HTML y CSS no son lenguajes de programación, su utilidad es otra, pero JavaScript (JS) sí lo es, dotando a las páginas web de dinamismo y de la capacidad y poder que tienen otras herramientas como Pascal, C++ y Java. Al ser, además, JS un lenguaje interpretado, hay drásticos cambios en el uso de las mismas herramientas que se vieron en las tres tecnologías anteriores. Finalmente, estas tecnologías son altamente demandadas en el mercado laboral, y por tanto no pueden faltar.
Abarcaremos los 3 pilares que el Teorema del Programa Estructurado propone como esenciales y suficientes para lograr construir cualquier sistema informático:
Secuencia
Selección
Iteración o repetición
Completados estos tres pilares, cada estudiante podrá luego optar por especializarse en cualquiera de estas 4 tecnologías u otra de su elección, porque será más capaz que cualquier aprendiz de cualquier otro curso.
Temas
Entrada y salida estándar de información
Variables
Constantes
Inferencia de tipos
Tipos de datos primitivos
Estructura de una página Web
Embeber código JavaScript en HTML
Eventos básicos de JavaSript
Sentencia IF y selección
Condiciones compuestas y operadores lógicos
Tablas de verdad
Diagramas de flujo
Repetición iterativa finita con FOR
Repetición iterativa condicional con WHILE
Repetición iterativa condicional con DO-WHILE o REPEAT
Repetición condicionada por centinela
Dinamismo básico en páginas Web
Actualización de etiquetas específicas HTML mediante JS
Todo estará acompañado de proyectos que requerirán la aplicación de todo lo visto en el curso para que puedas aprenderlo e incorporarlo realmente a tus habilidades. Lograrás así un dominio de la PROGRAMACIÓN ESTRUCTURADA que te permitirá luego enfocarte en cualquier lenguaje o tecnología que quieras.