¿Qué lenguajes de programación enseñan?
Khan Academy enseña JavaScript y SQL. Para lenguajes de marcado y de hojas de estilo, ver ¿Qué lenguajes de marcado y de hojas de estilo enseñan?
Javascript
En nuestro “Currículo de dibujo y animación”, enseñamos un lenguaje de programación que se llama JavaScript y enseñamos todas las cosas básicas del lenguaje JavaScript: variables, cadenas, arreglos, funciones, bucles, objetos. También incluimos en nuestro ambiente de programación una librería adicional que se llama ProcessingJS, y ahí es donde obtenemos la funcionalidad de dibujo y animación; con funciones como “rect()”, “ellipse()”, “fill()”, etc.
Además, en nuestro “HTML/JS: hacer páginas web interactivas” incluimos el DOM (Document Object Model, modelo de documento con objetos ) para acceder a métodos, modificaciones, eventos, animación y usar librerías JP; y en nuestro “HTML/JS: hacer páginas web activas con jQuery” incluimos algunas partes de la librería jQuery para simplificar la escritura de HTML del lado del cliente y en particular la DOM API.
Por razones de seguridad y protección, no todas las manipulaciones DOM o jQuery se permiten en Khan Academy.
Utilizamos varias herramientas* para verificar que tu código Javascript sea válido antes de ejecutarlo. Si encontramos algo erróneo, mostramos un mensaje de error que describe el problema. Por ejemplo, esas herramientas verifican:
- Errores de sintaxis: estos suceden cuando el intérprete de JS no entiende el código en absoluto, por ejemplo, si escribieras “var bla = [ };”, se confundiría mucho con las llaves incorrectas y dejaría de intentar de convertirlo en código.
- Mejores prácticas: hay algunas partes de la sintaxis de JS que son opcionales, como terminar sus declaraciones con punto y coma, pero se considera una "mejor práctica" usar puntos y comas porque hace que tu código tenga menos errores, por lo tanto hacemos que todo nuestro código tenga punto y coma.
- Convenciones: como JS es un lenguaje muy flexible y te permite escribir las mismas cosas de múltiples maneras, aplicamos ciertas convenciones para mejorar la coherencia del código en nuestra comunidad, para que sea más fácil aprender unos de otros. Por ejemplo, JS te permite declarar funciones como “function funcName(){}” o “var funcName = function(){}”, pero nuestro entorno solo permite lo último.
- # de argumentos: JS realmente permite que el código llame a funciones con cualquier cantidad de argumentos, pero vemos que puede ser confuso cuando, por ejemplo, llama a una función con 3 parámetros en lugar de 4 y no hace lo que espera. Entonces, tenemos una herramienta que sabe cuántos argumentos se esperan en las funciones de ProcessingJS, como rect (), y generamos un error si vemos que se ha usado una cantidad de argumentos diferente a la esperada.
- Errores de ortografía: no queremos que los errores de ortografía interfieran con el aprendizaje de los programas, así que cuando veamos que hay una función o nombre de variable que no entendemos en tu programa, comprobamos si su escritura es similar a algo que conocemos.
*Esprima, JSHint, Pamela Fox’s supplemental BabyHint library (https://gist.github.com/pamelafox/7745401)
SQL
En nuestra “Introducción a SQL: consultar y gestionar datos” enseñamos lo básico de un lenguaje de programación diseñado para manejar datos en una base de datos relacional: SQL o Structured Query Language (lenguaje estructurado de consultas), con el dialecto SQLite. La introducción te lleva desde la creación de tablas, insertar datos, consultar datos, agregar datos, unir tablas y actualizar y borrar datos.
Utilizamos varias herramientas para verificar que tu código SQL escrito sea válido antes de ejecutarlo. Si encontramos algo mal, mostramos un error que describe el problema. Por ejemplo, esas herramientas verifican:
- Errores de sintaxis: estos ocurren cuando el intérprete de SQL no entiende tu código en absoluto - como si escribes “CREATE TABLE listadesuper()” y nada más, sería muy confuso por la falta de nombres de columna y tipos de datos y no podría convertirlo en código.
- Errores de ortografía: no queremos que los errores ortográficos interfieran con el aprendizaje de los programas, así que cuando vemos que hay una etiqueta que no entendemos en tu código, verificamos si se escribe de manera similar a algo que sí conocemos.