martes, 10 de diciembre de 2019

Tareas code.org

La iniciación a la programación  la vamos a realizar en varias fases progresivas.
En una primera trabajaremos los conceptos de secuenciación de tareas en tareas simples y de algoritmo.
Para ello usaremos la página code.org, que almacena diversos cursos basados en scratch, en los cuales no hay que escribir prácticamente nada, pues la creación de los programas se realiza mediante bloques. Esta pagina alberga numerosos retos de muy diferentes niveles, desde primaria hasta el equivalente (en España) al bachillerato.

  • Para el grupo de TIC I (diurno) seguir este enlace e introducir el código XQXXST
  • Para el grupo de TIC I (Nocturno) seguir este enlace e introducir el código VXKQGW
  • Para el grupo de TIC II (Nocturno)  seguir este enlace e introducir el código FPBSVF
La primera vez, dado que aún no se tiene cuenta, solicitará datos para crear una cuenta. Anotar la contraseña.
Posteriormente, ya conduce al índice de niveles y es posible comenzar la tarea.

En la misma página hay bastantes retos bajo el formato "hora de código". Podéis hacer todos los que queráis.

lunes, 9 de diciembre de 2019

Práctica Codecombat

Para crear una cuenta en Codecombat, el proceso es muy sencillo. Solo hay que hacer click en el enlace de mas abajo correspondiente a tu clase, que te conduce directamente a la práctica.
Si es la primera vez que se entra, pide los datos para crear una cuenta de alumno.
Tras ello, nos pide elegir un personaje, que será nuestro avatar en los niveles del curso.
Al hacerlo, manda a la página inicial del alumno, donde un botón START conduce al mapa de niveles, que habrá que ir superando.





Atención:

  • Algunos niveles son bajo suscripción y no deja entrar en ellos. No son necesarios para completar el nivel.
  •  Otros niveles tiene parte a, b... y, según tus habilidades, puede hacerte pasar por ellos (y repetirlos) o saltarlos.
  • El primer nivel (Mazmorras de Kithgard) debería completarse tras acabar 18 desafíos.




Ejercicios processing

Varios ejercicios encontrados por Internet

Batería de ejercicios

Programacion y robotica

Makit

Para la entrega de ejercicios, el proceso será el siguiente:
  1. Creación de una cuenta en openprocessing.org
  2. Realización de la tarea creando un nuevo sketch
  3. Guardar el sketch
  4. Obtener el código embed para incrustar el sketch
  5. Publicar el sketch en una nueva entrada en el blog del alumno
Quedará tal que así:

Tutorial Joan Soler

Tutorial encontrado en Internet, original de Joan Soler


  1. Hola mundo
  2. Funciones graficas
  3. Variables
  4. Setup y draw. Processing en movimiento
  5. Condicionales
  6. Números aleatorios
  7. Bucles
  8. Arrays
  9. Funciones
  10. Clases

Prácticas processing p&r

Curso dividido en 18 lecciones, cuyo origen esta en la página programación y robótica


Lección Ejercicio
1- Descarga e instalación
2- Mi primer programaTarea final (nombre)
3- Formas básicas
4- Propiedades de la forma Elegir 1 tarea (de las dos propuestas al final)
5- Variables
6- Mostrando información Tarea: Último cuadro de texto con tres lineas
7- Iteraciones. Bucle for() Elegir 2 tareas (entre las 4 propuestas al final)
8- Iteraciones. Bucle while() Tarea final (lineas sobre fondo rojo)
9- Interacción con el ratón Tarea de ejemplo (seguir el ratón)
10- Generación de números aleatorios Tarea final (fondo aleatorio)
11- Estructuras condicionales
12- Interacción con el teclado Tarea final
13- Control del tiempo Tarea final
14- Cargar una imagen Tareas finales (las 2)
15- Control del sonido
16- Control de fecha y hora Tarea final
17- Giros Tarea final 2 (Archivos necesarios)
18- Matrices

3. Software


Se conoce como software al soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware. La interacción entre el software y el hardware hace operativo un ordenador (u otro dispositivo), es decir, el Software envía instrucciones que el hardware ejecuta, haciendo posible su funcionamiento.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas, tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario. (Wikipedia)

2. Hardware


La palabra hardware en informática se refiere a las partes físicas, tangibles, de un sistema informático; sus componentes eléctricos, electrónicos, electromecánicos y mecánicos. Los cables, así como las cajas, los periféricos de todo tipo, y cualquier otro elemento físico involucrado, componen el hardware o soporte físico; contrariamente, el soporte lógico e intangible es el llamado software.

El término es propio del idioma inglés, y su traducción al español no tiene un significado acorde, por tal motivo se lo ha adoptado tal cual es y suena. La Real Academia Española lo define como «Conjunto de los componentes que integran la parte material de una computadora».​  (Wikipedia)

Arquitectura de Von Neumann

Arquitectura de Von Neumann


La arquitectura Von Neumann, también conocida como modelo de Von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John Von Neumann.​ Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de:
El concepto ha evolucionado para convertirse en un computador de programa almacenado en el cual no pueden darse simultáneamente una búsqueda de instrucciones y una operación de datos, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann, y muchas veces limita el rendimiento del sistema.
Arquitectura Von Neumann

El diseño de una arquitectura Von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones.
Arquitectura Harvard

Un ordenador digital de programa almacenado es aquel que mantiene sus instrucciones de programa, así como sus datos, en una memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que se programaron mediante el establecimiento de conmutadores y la inserción de cables de interconexión para enrutar datos y para controlar señales entre varias unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre Von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.

Estructura clásica de las máquinas Von Neumann


Una máquina Von Neumann, al igual que prácticamente todos los computadores modernos de uso general, consta de cuatro componentes principales:
  1. Dispositivo de operación (DO), que ejecuta instrucciones de un conjunto especificado, llamado sistema (conjunto) de instrucciones, sobre porciones de información almacenada, separada de la memoria del dispositivo operativo (aunque en la arquitectura moderna el dispositivo operativo consume más memoria -generalmente del banco de registros-), en la que los operandos son almacenados directamente en el proceso de cálculo, en un tiempo relativamente corto
  2. Unidad de control (UC), que organiza la implementación consistente de algoritmos de decodificación de instrucciones que provienen de la memoria del dispositivo, responde a situaciones de emergencia y realiza funciones de dirección general de todos los nodos de computación. Por lo general, el DO y la UC conforman una estructura llamada CPU. Cabe señalar que el requisito es consistente, el orden de la memoria (el orden del cambio de dirección en el contador de programa) es fundamental a la hora de la ejecución de la instrucción. Por lo general, la arquitectura que no se adhiere a este principio no se considera Von Neumann
  3. Memoria del dispositivo — un conjunto de celdas con identificadores únicos (direcciones), que contienen instrucciones y datos.
  4. Dispositivo de E/S (DES), que permite la comunicación con el mundo exterior de los computadores, son otros dispositivos que reciben los resultados y que le transmiten la información al computador para su procesamiento.
Evolución del bus simple del sistema

Evolución


Evolución de la arquitectura del bus simple del sistema

A lo largo de las décadas de los años 1960 y 1970, las computadoras se hicieron, en general, tanto más pequeñas como rápidas, lo que llevó a algunas evoluciones en su arquitectura. Por ejemplo, el mapeado en memoria de E/S permitió que los dispositivos de entrada y salida fueran tratados de la misma como la memoria. Un único bus de sistema podría ser utilizado para proporcionar un sistema modular con un menor coste. A veces esto se denomina "racionalización" de la arquitectura.​En las décadas siguientes, los microcontroladores sencillos permitirían algunas veces omitir características del modelo a menor costo y tamaño. Las computadoras más grandes añadían características para un mayor rendimiento.

Fuente: Wikipedia


Introducción:

La mayoría de los sistemas informáticos actuales siguen al pie de la letra la arquitectura propuesta por Von Newmann en el diseño del EDVAC. Esta arquitectura se caracteriza porque el programa que ejecuta el sistema informático está almacenado internamente (es información) en el propio sistema.
La arquitectura de Von Newmann define los siguientes elementos:
  • Unidad Central de Proceso (CPU - Central Processing Unit)
  • Memoria principal
  • Controlador de entrada salida
  • Buses del sistema
    • Bus de datos
    • Bus de direcciones
    • Bus de control

Unidad Central de Proceso (CPU)

La CPU es el lugar en el que se procesa la información de acuerdo a las instrucciones del programa. La CPU de un sistema informático repite una serie de pasos en los que continuamente accede a memoria para leer la próxima instrucción a ejecutar, realiza lo que ordena la instrucción y vuelta a empezar.
Cuando la CPU está implementada en un único circuito integrado se llama microprocesador (µP).
En una CPU podemos distinguir:
Unidad aritmético lógica (ALU Arithmetic and logical unit)
Se encarga de realizar las operaciones aritméticas (sumas, restas, multiplicaciones, etc..) y lógicas (AND, OR, rotaciones, desplazamientos, etc...) con los datos. Normalmente los datos con los que opera, así como los resultados de la operación se encuentran en registros de la CPU.
Las operaciones que es capaz de realizar están definidas por el juego de instrucciones de la CPU. Es posible encontrar ALUs con capacidades orientadas hacia la operación con valores enteros, coma flotante o números imaginarios (por ejemplo en las DSP.)
Banco de registros
Proporciona un espacio de almacenamiento para los datos con los que trabaja la CPU. Los registros se deben cargar con información que proviene de la memoria principal antes de comenzar a operar, cuando se necesita dejar espacio libre en el banco de registros para operar con nuevos datos su valor debe escribirse en la memoria principal.
Operar con datos en el banco de registros es mucho más rápido que operar con datos que se encuentran en la memoria principal, por eso, cuanto mayor sea el banco de registros se requerirán menos trasvases con la memoria principal y la tarea se realizará antes.
Es posible que no todos los registros tengan las mismas características. Normalmente se distingue entre:
  • Registros de datos: Guardan la información con la que se trabaja.
  • Registros de direcciones: Guardan direcciones de memoria (en las que puede haber datos).
  • Registros de control: Controlan el estado de la CPU (flags: zero, overflow, underflow, positivo/negativo...)
Unidad de control
Se encarga de leer las instrucciones máquina almacenadas en la memoria principal y de generar las señales de control necesarias para controlar y coordinar el resto de las unidades funcionales de un ordenador, con el fin de ejecutar las instrucciones leídas.

Partes fundamentales:
  • Contador de programa: Registro que apunta a la dirección de memoria de la próxima instrucción a ejecutar. Se incrementa automáticamente después de ejecutar cada instrucción.
  • Registro de instrucción: Guarda la instrucción que se está ejecutando.
  • Decodificador: Interpreta la instrucción a ejecutar.
  • Reloj: Genera una señal de sincronía.
  • Secuenciador: Activa en el orden adecuado las diferentes unidades funcionales para ejecutar la instrucción.

Los dos tipos más frecuentes de unidades de control son:
  • Cableada: La lógica de las operaciones está implementada mediante hardware.
  • Microprogramada: Se trata de una pequeña CPU en miniatura que puede programarse para realizar diferentes tareas. Son más flexibles pero más lentas.
 
Buses
Transportan la información entre los diferentes elementos de la CPU. Se distingue entre el bus de datos (que transporta la información que se está procesando) y el bus de control (que proporciona toda la señalización necesaria para realizar el trabajo de forma ordenada).

Memoria principal

La memoria principal tiene por objeto guardar información que es accesible a la CPU. La CPU puede leer y/o escribir datos en las diferentes posiciones de memoria que componen la memoria principal.
La memoria principal tiene menor capacidad que la memoria secundaria (que virtualmente es ilimitada), pero es mucho más rápida. Actualmente la memoria principal se implementa mediante circuitos integrados. La memoria principal de los sistemas informáticos suele estar formada por dos áreas diferenciadas:
  1. Memoria RAM (Random Access Memory): Memoria de acceso aleatorio (no tiene porqué ser utilizada de manera secuencial) que permite tanto la lectura como la escritura. Habitualmente en los sistemas informáticos se trata de un medio de almacenamiento volátil, de manera que se pierde su contenido al cesar la alimentación.
  2. Memoria ROM (Read Only Memory): Memoria de acceso aleatorio que sólo permite la lectura de los datos que almacena. Se trata de un medio de almacenamiento persistente, pues no pierde su contenido cuando cesa la alimentación.

Controlador de Entrada/Salida (I/O)

En la medida en la que el sistema informático precisa comunicarse con el mundo exterior (utilizando diferentes periféricos), es necesario un elemento que controle el flujo de información que entra y/o sale del sistema informático.
Los periféricos del sistema informático se pueden clasificar en:
  • Periféricos de entrada: Si sirven para introducir información en el sistema informático (ej. teclado, ratón...)
  • Periféricos de salida: Si representan información que sale del sistema informático (ej. monitor, impresora...)
Las tres técnicas más extendidas de gestión de I/O son:
  1. Polling o espera activa: La CPU se encarga de la transferencia de información consultando continuamente el estado del dispositivo periférico. Simple e ineficiente.
  2. Uso de interrupciones: La CPU se encarga de la transferencia de información pero el dispositivo periférico le notifica los cambios de estado mediante una interrupción.
  3. DMA (Direct Memory Access): El controlodador DMA se encarga de toda la transferencia de información (puede ser un bloque, y puede requerir de conversión). Al finalizar el controlador DMA utiliza una interrupción para notificarlo a la CPU. Con esta técnica, la CPU programa al controlador DMA para realizar el trabajo y queda libre (para realizar otras tareas). Es la técnica más eficiente.

Buses del sistema

Los buses son las vías de comunicación que permiten mover la información entre los distintos elementos de la arquitectura Von Neumann.
Desde el punto de vista electrónico un bus es una serie de pistas que transportan información entre diferentes elementos. El número de líneas que tiene el bus determina el número de bits que se pueden transportar en paralelo. Los buses suelen ser elementos síncronos que funcionan gobernados por un reloj. Normalmente en cada ciclo de reloj se transporta un dato (de 8, 16 o 32 bits según la anchura del bus), también existen buses que realizan dos operaciones en cada ciclo de reloj (utilizan tanto el flanco de bajada como el flanco de subida).
Ejemplo:
El bus PCI cuenta con la siguiente especificación:
  • Ancho del bus: 32 bits
  • Reloj: 33 Mhz
Fácilmente podemos calcular la cantidad máxima de información que puede transportar en un segundo. Simplemente necesitamos multiplicar la información que mueve en cada ciclo (32 bits = 4 Bytes) por el número de ciclos que tienen lugar en un segundo (33*106).

Información por segundo: 4 Bytes * 33*106 = 132000000Bytes/s = 125.88MB/s

Si el bus fuese capaz de utilizar tanto el flanco de subida como el de bajada para transmitir información, se doblaría la capacidad útil.
Bus de datos:
Como su nombre indica transporta datos. Estos datos pueden ser la información que se está procesando o las instrucciones del programa que se ejecuta. Hay que recordar que en la arquitectura Von Neumann el programa está guardado en el interior del sistema informático codificado como información.
El ancho en bits del bus de datos define el tamaño de la palabra del sistema informático, habitualmente es 8bits, 16bits, 32bits o 64bits.
Bus de direcciones:
El bus de direcciones se utiliza para indicar el origen y/o el destino de los datos. En el bus de direcciones se indica la posición de memoria a la  que se está accediendo en cada momento. Puede tratarse de una dirección de la memoria principal o puede tratarse de una dirección de memoria en la que está mapeado un periférico.
El ancho en bits del bus de direcciones determina el tamaño del espacio de memoria direccionable.
Bus de control:
El bus de control proporciona señales para coordinar las diferentes tareas que se realizan en el sistema informático.
Algunas de las señales que podemos encontrar:
  • CLKFrecuencia de reloj
  • CS (Chip select): Activa el chip a utilizar
  • READY: Está disponible el dispositivo ?
  • R/W: Se trata de una operación de lectura o escritura ?

domingo, 8 de diciembre de 2019

Blogger y las CSS (Cascade Style Sheet-Hojas de estilo en Cascada)

CSS (Hojas de Estilo en Cascada) es el código que usas para dar estilo a tu página web. Forma parte del lenguaje HTML, que divide las páginas web en dos partes: la propia página, donde esta el contenido: texto, imágenes y desde ella se llama a la hoja de estilos, donde se define la presentación de los elementos de la página: tipo de letra, tamaño, color, fondos, bordes...

sábado, 7 de diciembre de 2019

Servicios de contenido para usar en el blog

Podemos incluir contenido muy vistoso en nuestro blog que va a hacer lucir mas nuestro contenido, atraer mas visitantes y que estos nos visiten mas a menudo.
Veremos a continuación bastantes servicios que nos ayudaran a crear e incrustar contenido en nuestro blog, centrándonos en lso que tengan sobre todo utilidad educativa

Documentos

  • Google drive: evidente. Si tenemos el blog en blogger, ya tendremos una cuenta de google con la que tenemos acceso a google docs, donde podemos crear documentos de texto, Hojas de calculo, presentaciones, formularios, dibujos... Que quedan almacenados en nuestro google drive y que podemos compartir e incrustar en nuestro blog. Casi todas las presentaciones usadas en este blog para ilustrar los temas están almacenados en google drive e incrustados al blog desde ahí, así que no voy a poner mas ejemplos
  • Office365. Servicio espejo del anterior, propiedad de microsoft. Permite crear documentos con versiones recortadas de sus programas del paquete office y almacenarlos en su disco en la nube: Onedrive. Igualmente podemos incrustar estos archivos en nuestro blog tras compartirlos

Mapas


En Google maps, Bing maps, Here maps, Open Street Maps, Repsol, Via Michelin... podemos obtener mapas personalizados del lugar que deseemos para incrustar en nuestro blog Con la etiqueta iframe proporcionada por la pagina de mapas y que, generalmente podemos personalizar, obtenemos resultados como este


Otros servicios


Giphy (crear gifs animados)

Imagen de Giphy

Genially (Presentaciones, imágenes interactivas, infografías)

Ejemplo 1: Foto interactiva con hiperenlaces


Ejemplo 2: Foto interactiva con explicaciones formativas

Playbuzz  (Quiz & Trivia interactivo)





Juxtapose (comparar dos fotografías)



myhistro (líneas de tiempo)

Kahoot (preguntas y respuestas)

educaplay (actividades educativas)

mapchart (crea mapas descargables para luego subir al blog)

Storymap (mapas)

emaze (presentaciones)