viernes, 6 de julio de 2018

Herramientas y servicios TIC abiertos para educación


Presentamos la aplicación online hecha con TiddlyWiki sobre herramientas y servicios educativos: Herramientas y Servicios TIC Abiertos Para Educación, cuya denominación más aproximada a la realidad sería la de libro electrónico.
Aplicación: Herramientas y Servicios TIC Abiertos Para Educación.
Dado que es un archivo ejecutable con cualquier navegador puede descargarse para su uso fuera de línea pulsando el botón formado por un círculo y una marca de verificación en su interior.

Hemos hecho una selección de herramientas de uso libre, bien porque son herramientas gratuitas, porque tienen un plan específico para educación o porque, aunque no lo tengan, la versión gratuita es totalmente operativa, aunque algunas características puedan estar bloqueadas.

Contiene más de 150 herramientas que están clasificadas de numerosas formas bajo el título Herramientas por tipo. Dado que son pocas las herramientas que tienen únicamente una función, la clasificación es redundante y podemos llegar a la misma herramienta por caminos diferentes. De esta forma esperamos que sea realmente sencillo encontrar la que se adapte a nuestras necesidades.

El buscador de TiddlyWiki es realmente potente y podemos buscar allí cualquier término que tenga relación con lo que deseamos. Este buscador se encuentra bajo el título junto a una pequeña lupa. Por ejemplo, si escribimos PDF, encontraremos todo lo relativo a este tipo de archivo.

Si abrimos cualquiera de las páginas, veremos que bajo el título de cada una existen unas etiquetas de color amarillo: son las categorías a las que pertenece esa página en particular. Pulsándolas veremos todas las páginas (sean herramientas o no) etiquetadas del mismo modo. Es otra forma de examinar y descubrir herramientas nuevas cuando utilizamos el buscador y aterrizamos en una paǵina de forma aleatoria.

Existe una pequeña sección llamada:  Técnicas de enseñanza. Donde se recopilan algunas técnicas como la del aula invertida (Flipped Classroom), entre otras, y una selección de herramientas para cada una. Esta selección es particular y sólo se han propuesto para que aquellos que empiezan puedan tener algo sobre lo que trabajar sin necesidad de buscar entre todas las que hay. Por supuesto el lector podrá elegir cualquier otra que se adapte mejor a sus necesidades.

También hay un listado con todas las herramientas ordenadas alfabéticamente, aunque esto es más una curiosidad ya que en sí seguramente no tiene mucha utilidad.

Algunas de las herramientas están marcadas con un asterisco, son aquellas que he considerado especialmente relevantes y, según mi opinión personal, son preferibles a otras.

Hay una sección, ligeramente diferente a las demás, llamada Áreas de conocimiento y REA (Recursos Educativos Abiertos) donde se dan listados de recursos por asignaturas (esta es la parte más incompleta ya que está prácticamente vacía y necesita una profunda revisión), las bibliotecas REA (bibliotecas de recursos para educación, normalmente de organismos oficiales) y, por último, una selección de 40 revistas científicas educativas, donde podremos informarnos de las novedades en la investigación educativa (en esta misma sección se explica el criterio seguido para la selección de las revistas).


domingo, 10 de junio de 2018

Introducción a la programación con Juni


Introducción a la programación con Julia
está disponible en Amazon
Os presento el penúltimo libro que he publicado sobre programación (del último dedicado a la programación estadística con R hablaré en los próximos días): Introducción  a la programación con Julia (el índice puede consultarse aquí).

Desde que, por casualidad, empece a probar el lenguaje Julia hace ya algo más de un año, me cautivó por su facilidad de uso. Desde entonces utilizo asiduamente la consola de Julia para todo tipo de operaciones con matrices y para dibujos rápidos de gráficas, aunque lógicamente es un lenguaje de propósito general con infinidad de usos de todo tipo.

Julia (https://julialang.org) es un lenguaje de programación, orientado a las aplicaciones científicas que surge ante la necesidad de disponer de un lenguaje de alto nivel y rápido para el cálculo numérico, técnico y científico. Una de las características de Julia es su alto rendimiento que lo aproximan al de lenguajes compilados como C. Otro de sus aspecto interesantes es que la comunidad de desarrolladores de Julia elabora una gran cantidad de paquetes externos que continuamente amplían sus capacidades.

Julia comenzó a ser desarrollado en 2009 por cuatro científicos informáticos que se habían propuesto crear un lenguaje de alto nivel y rápido; Jeff Bezanson, Stefan Karpinski, Viral B. Shah y Alan Edelman. En 2012 lanzaron el sitio web de Julia y desde entonces se ha creado una comunidad de usuarios y desarrolladores a su alrededor.

Es un lenguaje multiplataforma de forma que puede ejecutarse en Linux, Windows y macOS. Dispone de un compilador en tiempo de ejecución, JIT (Just In Time compiler), lo cual significa que los programas se compilan (se traducen a un lenguaje que los ordenadores pueden entender y ejecutar) en el momento en que se utiliza, a diferencia de otros programas, como C. Julia está diseñado para el cálculo en paralelo y en la nube, dispone de una terminal interactiva de texto, llamada REPL, donde se pueden obtener directamente los resultados a medida que son tecleados.

Una de sus características destacable es que es software libre y puede ser descargado de su página web de forma gratuita. Además, Julia plantea similitudes con otros lenguajes ya establecidos hace tiempo como R (lenguaje de programación estadística, véase la entrada en este mismo blog: Introducción a la programación con R), Python o MATLAB, entre otros. De Julia se puede afirmar que tiene la facilidad de uso de Python y la velocidad de C. Efectivamente, Julia es un lenguaje de programación que no requiere un esfuerzo excesivo para conocerlo, a diferencia de R, por ejemplo, en el que cuesta más conseguir un buen nivel de conocimientos. Julia es relativamente sencillo, lo que hace que la curva de aprendizaje sea similar a la de Python, uno de los programas más usados actualmente por la comunidad científica, debido precisamente a su simplicidad. En 2016 entró en la lista de los 50 lenguajes de programación más usados y en la actualidad continúa ascendiendo en la clasificación. A pesar de ser un lenguaje de programación muy nuevo, con sólo 6 años de existencia, se perfila como uno de los que más crecerán y se utilizarán en un futuro cercano.

Este es el aspecto que tiene este lenguaje, aquí en concreto está programada la solución de una ecuación de segundo grado donde se preguntan los parámetros a, b y c a través del teclado:

function ec2(a, b, c)

  x1 = (-b + sqrt(b^2 - 4 * a * c)) / (2* a)
  x2 = (-b - sqrt(b^2 - 4 * a * c)) / (2* a)
  x = [x1, x2]  return x
end

function main()

  print("a = ")
  a = parse(Float64, readline())
  print("b = ")
  b = parse(Float64, readline())
  print("c = ")
  c = parse(Float64, readline())
  x = ec2(a, b, c)
  println("x1 = ", x[1], "\nx2 =", x[2])
end


main()



Y como ejemplo de lo compacto que puede llegar a ser este lenguaje, la siguiente línea de código devuelve true (verdadero) si x es un número primo o false (falso) si no lo es.
esprimo(x) = x <= 1? false : !in(0, x .% (2:sqrt(x)))