Skip to content

Mi PLE

by

En el siguiente enlace os dejo la presentción sobre mi PLE.

Presentación

Anuncios

Mi PLE

En esta entrada os explicaré en qué consiste mi entorno personal de aprendizaje (PLE) describiendo brevemente las herramientas que utilizo, los blogs que suelo consultar para estar a la última y qué medios utilizo para comunicarme y compartir información con eficacia.

 

Fuentes de información

  • Xataka: el blog por excelencia de noticias relacionadas con las últimas tecnologías, móviles, informática, física y un largo etcétera. (https://www.xataka.com/)
  • GenbetaDev: destacado blog no tan conocido como <xataka> en el que escriben artículos sobre el desarrollo, la programación y las metodologías ágiles. (https://www.genbetadev.com/)
  • Vitonica: blog que publica artículos sobre vida sana, nutrición, actividad física, etc. (https://www.vitonica.com/)
  • StackOverflow: sólo existen dos tipos de personas. Los que han recurrido a este blog y les ha ayudado y los que recurrirán a él en algún momento. Importantísimo sitio que todo programador debe conocer y tener en cuenta. (https://es.stackoverflow.com/)
  • ElOtroLado (EOL): sitio de referencia en lo que a consolas, videojuegos y tecnología se refiere. También dispone de un foro muy activo con temas relacionados con la electrónica y la programación. (https://www.elotrolado.net/)
  • Un informático en el lado del mal: blog de Chema Alonso, experto en seguridad informática en el cual publica interesantísimos artículos del mundo de la ciberseguridad. (http://www.elladodelmal.com/)

 

Herramientas de comunicación y compartición

  • Whatsapp: aplicación de mensajería instantánea muy eficiente. La funcionalidad de creación de grupos es muy útil si se utiliza correctamente.
  • Google Docs: aplicación web muy interesante para realizar trabajos en grupo. El documento puede editarse a la vez y se va viendo en tiempo real lo que va haciendo cada uno. Dispone de un chat y ponemos consultar quién hizo determinado cambio y en qué momento.
  • Dropbox: para el intercambio de ficheros (muy interesante su utilización para subir los materiales de clase)
  • Reddit: sitio web de marcadores sociales y agregador de contenido. Los usuarios pueden votar a favor de determinados temas, haciendo que aparezcan más o menos destacados.
  • Diigo: se trata de un sistema de gestión de información personal que permite la agregación de contenidos como (imágenes, documentos, enlaces, etc.) el cual puede utilizarse en grupo, generando una notificación por correo a todos los participantes cuando se publique una nueva entrada.

 

Herramientas para crear contenidos

  • Google Docs: herramienta potentísima para realizar trabajos en grupo. Muy versátil y cómoda.
  • OpenOffice: alternativa libre y gratuita a la suite ofimática de Microsoft.
  • Prezi: útil para crear presentaciones dinámicas y muy vistosas.
  • Gimp: para el tratamiento de imágenes un poco más profesional que llega a donde el Paint no puede
  • Snagit: para realizar capturas de pantalla, con la posibilidad de poder subrayar en colores, poner indicadores, flechas, etc. Lo que la hace una herramienta imprescindible para realizar tutoriales.
  • Audacity: software libre para tratamiento de audio que permite realizar cortes, eliminar ruido, convertir a diferentes formatos, etc.

 

 

Organizadores de contenidos

  • Microsoft Outlook: lo utilizo en la oficina para gestionar y planificar las tareas que llegan por correos electrónicos. Son muy útiles las funcionalidades de: 1) reglas automáticas, llevan los correos la carpeta que le corresponde, aliviando en gran medida la carga en la bandeja de entrada. 2) Recordatorios 3)
  • OpenProject: gestor de proyectos libre, gratuito y muy sencillo de utilizar y adaptar a las necesidades de cada empresa.
  • Upday de Samsung: se trata de un agregador de noticias de Samsung que hace más sencilla la tarea de estar informado.
  • Symbaloo: agregador de contenidos en forma de escritorio que contiene todos los enlaces organizados como desees. Es posible añadir una imagen a cada enlace, haciendo mucho más sencilla su identificación.
  • Xmind: software utilizado para la creación de mapas conceptuales y esquemas.

 

Por último, os dejo el enlace a mi presentación -> https://prezi.com/p/vkpp2kl0frix/

(PLE) Mi entorno personal de aprendizaje

by

MI PLE

Mis agregadores de contenido:

Feedly: Es un conocido agregador de contenidos que te permite estar informado de tus páginas web favoritas. Es un lector de RSS que permite organizar y acceder rápidamente desde un navegador web o desde su app a todas las noticias y actualizaciones de blogs agregadas. Lo uso casi siempre desde el móvil.

Symbaloo: Lo he descubierto gracias a esta actividad. Es un escritorio online muy útil para tener organizadas todas las páginas web o URLs que nos interesen en un tablero, de manera visual y atractiva.

Diigo: También descubierto gracias a esta actividad. Nos permite guardar online todas las direcciones de nuestros sitios favoritos mediante un sistema de etiquetas para su más fácil localización. Además se pueden formar comunidades tipo facebook, crear foros,  oenviar mensajes con los enlaces a las páginas que queramos.

Otros tipos de agregadores de contenido que sigo serían Reddit, menéame o divulgame. Se trata de sitios web donde los usuarios pueden subir escritos, noticias, dejar enlaces a contenidos web…etc, para ser valorados según su calidad y utilidad por la comunidad de ese sitio web.

 

Mis organizadores de tareas:

Trello: Para crear varias listas de tareas y sincronizarlas con otras aplicaciones como Google Drive o Dropbox. La app te deja crear “tableros” específicos para cada proyecto, y dentro de esos tableros puedes crear columnas con tarjetas. Además de que es muy útil también para usarla de forma colaborativa.

Google Calendar: Agenda y calendario electrónico. Puede ejecutarse en cualquier SO con conexión a internet, tiene una gran sincronización con el móvil y perfectos avisos de todos tus eventos.

Google Keep: Aplicación simple pero muy rápida y útil para tomar notas. Las notas se pueden reorganizar, fijar, recuperar, etiquetar. También se pueden incluir imágenes, dibujar, añadir recordatorio de tareas, compartirlas y convertir en documentos. Además de que ofrece muy buena sincronización con su versión de navegador y de Google Drive.

 

Mis herramientas de acceso a la información:

Wikipedia: La enciclopedia libre que proporciona información sobre casi todos los temas. Muy actualizada y fantástica para un primer contacto con un determinado tema.

Youtube: Cada día más creadores de contenidos suben sus videos para aportar conocimiento a la red. Entretenimiento, tutoriales, charlas, recursos…

W3Schools: Fantástica página para comenzar a aprender los diferentes lenguajes implicados en el desarrollo web.

Google (Docs, books, scholar): Google es el navegador por excelencia. Pero además si centramos nuestra búsqueda en la enorme cantidad de libros y documentos que contiene obtenemos una búsqueda mucho más fiable y concreta.

Slideshare: Sitio web que aloja una gran cantidad de diapositivas con las que se puede aprender mucho sobre diversos temas.

WordPress: Gestor de contenidos que permite la creación de webs, blogs y tiendas online. Se pueden encontrar blogs y webs muy buenos tanto de profesionales como aficionados a una determinada materia.

Blogger: Funciona de forma similar a wordpress pero centrado en los blogs.

Stackoverflow: Comunidad de desarrolladores informáticas. Muy útil para aprender, compartir y solucionar dudas con respecto a la programación y otros temas de ámbito tecnológico.

Webs varias: Las webs que más me gusta leer de noticias/información en lo relativo a la informática son: El Android Libre, Genbeta y Genbetadev, Gizmodo, Wwwhat’s new, Xataka, Hipertextual, Geeksroom, Elhacker.net, Desarrolloweb, Elchapuzasinformático, RealoVirtual, Hardzone

 

Mis herramientas de creación y edición de información:

Microsoft Office: Suite ofimática de Microsoft que ofrece la creación de documentos, hojas de cálculo, presentaciones… A pesar de haber otras alternativas gratuitas como OpenOffice es de las que más utilizo por su comodidad y porque me he acostumbrado a trabajar con ellas.

Google Docs, Sheets y Slides: Ofrece la posibilidad de crear también documentos, hojas de cálculo y presentaciones de forma online, en cualquier dispositivo (incluido móviles) con un navegador. Compatible con formatos de Microsoft Office y OpenDocument. Permite crear y editar los archivos de forma colaborativa y online en tiempo real mostrando un historial de los cambios realizados por cada usuario.

Programas de edición de Adobe: En cuanto a programas de edición de imágenes o video me he acostumbrado a usar los proporcionados por Adobe como pueden ser Photoshop, Premiere o Illustrator.

Prezi: Herramienta para la creación de presentaciones muy dinámicas y visuales con diversas animaciones y efectos. Éstas pueden visualizarse online y ser compartidas.

Otras herramientas anteriormente mencionadas: Youtube, WordPress, Slideshare

Hay otras herramientas que he aprendido durante la realización de esta actividad que me gustaría añadir a mi PLE después de haberlas probado lo suficiente como Mindmeiser, Glogster o Socrative.

 

Mis herramientas de colaboración y relación con otros:

Dropbox: Servicio de alojamiento de archivos multiplataforma en la nube. Permite a los usuarios almacenar y sincronizar archivos en línea y entre ordenadores y compartir archivos y carpetas con otros. Posee soporte para historial de revisiones.

Google Drive: Servicio de alojamiento de archivos similar a Dropbox. Los documentos creados pueden ser compartidos y modificados en línea por los usuarios.

WeTransfer: Permite cargar y descargar archivos de gran tamaño (Hasta 2 GB).

Mega.nz: Servicio de backup remoto, almacenamiento en nube con posibilidad de compartir los archivos.

Gmail/Correo electrónico: Servicio de correo electrónico. Ofrece una capacidad de almacenamiento de 15 GB. Herramienta principal para contacta con otros usarios.

Otras herramientas anteriormente mencionadas: Diigo, Trello, Google Docs…

Redes sociales y apps: Skype, Whatsapp, Twitter, Tumblr, Pinterest, Facebook, Linkedin, Instagram, Youtube, Telegram, Hangouts

 

Aquí el enlace para la presentación: Mi PLE

Mi PLE

❶Fuentes de información

❷Herramientas de comunicación y compartición

❸Herramientas para crear contenidos

 

Redes sociales:

  • Facebook❷: Red social que permite compartir publicaciones de imágenes, vídeos, artículos, blogs o cualquier otra cosa.
  • Twitter❶: Red social que permite escribir en 140 caracteres cualquier tipo de información. Actualmente esta red social permite situarte en el marco contextual actual y seguir de lleno las noticias más comentadas y mencionadas por los usuarios. Recoge opiniones y por tanto contiene bastante carga de distintas ideologías políticas.
  • Linkedin❷: Comunidad social orientada a las empresas, a los negocios y el empleo. Partiendo del perfil de cada usuario, que libremente revela su experiencia laboral y sus destrezas en un verdadero currículum laboral, la web pone en contacto a millones de empresas y empleados. Así, se comparten publicaciones relacionadas con el sector del negocio, de preocupaciones de empleados y/o jefes y de recomendaciones, noticias, etc. El uso que le doy es poder comunicarme con otras empresas, así como recibir ofertas de empleo y actualizaciones sobre ciertas materias.

 

Contenidos Multimedia:

  • Youtube❶❷❸: Sitio web dedicado a compartir videos de usuarios.
  • El país❶: Periódico nacional que comparte sus noticias en su sitio web y redes sociales.
  • Público❶: Periódico nacional que comparte sus noticias en su sitio web y redes sociales.
  • Disco duro❶: Almacenamiento en componente físico externo que permite guardar todo tipo de contenido multimedia.
  • Prezi❸: Sitio web que permite la creación y compartición de presentaciones dinámicas.
  • Slideshare❶❸: Sitio web 2.0 de alojamiento de diapositivas que ofrece a los usuarios la posibilidad de subir y compartir en público o en privado presentaciones de diapositivas en PowerPoint, OpenOffice, etc.

 

Blogs:

  • Google❶: Buscador mediante el cual se accede a cualquier tipo de información.
  • WordPress❶❸: Sistema de gestión de contenidos o CMS enfocado a la creación de cualquier tipo de sitio web, blog o aplicación.
  • Blogger❶❸: Servicio adquirido por Google que permite crear y publicar una bitácora en línea. Similar al uso que se da a WordPress.
  • RSS❶:
    • Feedly: Lector de RSS que permite organizar y acceder rápidamente desde un navegador web o de sus aplicaciones para teléfonos inteligentes a todas las noticias y actualizaciones de blogs y demás páginas que el sistema soporta
    • Feedbin: Lector de RSS que permite organizar y acceder rápidamente desde un navegador web o de sus aplicaciones para teléfonos inteligentes a todas las noticias y actualizaciones de blogs y demás páginas que el sistema soporta

 

Bookmarking:

  • Evernote❸: Aplicación cuyo objetivo es la organización de información personal mediante el archivo de notas. Existen versiones instalables para diversos sistemas operativos y una versión web. Permite por tanto compartir información personal entre distintos tipos de dispositivos.
  • Diigo❸: Sistema de gestión de información personal basado en el concepto “nube”, que incluye marcadores web, bloc de notas post-it, archivo de imágenes y documentos, así como selección de textos destacados

 

Colaboración y compartición:

  • Github❶❷❸: Permite subir o compartir código fuente correspondiente a proyectos tecnológicos, comentar dicho código fuente entre los usuarios, descargarlo y realizar cambios mediante forks o commits sobre la versión original.
  • Google Drive❷: Permite el alojamiento de archivos y material multimedia en la nube, gestionado por Google.
  • Google docs/slides/sheets❷❸: Permite compartir entre distintas cuentas documentos de escritora, hojas de cálculo, presentaciones de powerpoint, etc.
  • Dropbox❷: Permite el alojamiento de archivos y material multimedia en la nube.
  • OneDrive❷: Permite el alojamiento de archivos y material multimedia en la nube, gestionado por Microsoft.
  • Trello❷: Herramienta de gestión de proyectos que hace que la colaboración sea sencilla e incluso divertida. La realidad es que sirve para casi todo, ya estés organizando proyectos en el trabajo, tareas del hogar, viajes o cualquier otra cosa. Se proporciona un board o tablero en el que se pueden crear listas horizontalmente de tareas.

El uso que le doy a esta herramienta es la de orientarme en qué tareas debo realizar dentro de algún proyecto personal o laboral, así como tareas del día a día que no quiero olvidar realizar. Un ejemplo sería la captura siguiente, con el uso de la herramienta para mi trabajo de final de máster, en el cuál también podíamos distinguir qué tareas eran de cada uno dentro del desarrollo del proyecto con compañeros del equipo de informática de la UA.

 

Comunicación:

  • Whatsapp❷: Aplicación de mensajería mediante la cual podemos intercambiar información con cualquier persona.
  • Telegram❷: Aplicación de mensajería mediante la cual podemos intercambiar información con cualquier persona.
  • Hangouts❷: Aplicación de mensajería mediante la cual podemos intercambiar información con cualquier persona.
  • Skype❷: Software que permite comunicaciones de texto, voz y vídeo sobre Internet.
  • Face to face❶❷: Tradicional forma de comunicarnos entre las personas, mediante la cual se extra mucha información.

 

Wikis:

  • Wikipedia❶: Enciclopedia libre, ​políglota y editada de manera colaborativa.
  • Wikiquotes❶: Enciclopedia en forma de colección de citas célebres de personajes famosos, libros y proverbios. Se realiza de forma colaborativa a través de Internet.
  • WikiHow❶: Enciclopedia de carácter libre y colaborativa que permite obtener información acerca de cómo hacer muchas cosas.

 

Contenidos educativos:

  • Google Scholar❶: Buscador de Google enfocado al mundo académico, que se especializa en literatura científico académica. Podemos encontrar muchos artículos también de carácter tecnológicos y universitarios.
  • Moodle❶: Herramienta de gestión de aprendizaje, o más concretamente de Learning Content Management, de distribución libre, mediante la cual se puede acceder a documentos, previamente compartidos por profesores.
  • Stackoverflow❶: Sitio web en el cuál interactúan desarrolladores informáticos, acerca de cómo realizar distintas funciones en ciertas tecnologías. Además, se corrigen fragmentos de código y se comentan buenas prácticas.
  • Udemy❶: Plataforma de aprendizaje online orientada a adultos (estudiantes y profesionales). Provee de expertos en cada sector que se encargan de crear cursos para ofrecerlos al público. Existen cursos gratuitos y otros para los cuáles es requerido pagar unas tasas. Además, algunos cursos ofrecen la posibilidad de dar un crédito cómo pueda ser una certificación técnica en la materia estudiada. El material que se proporciona es siempre de calidad, además de estar a la última y se puede encontrar en español. El uso que le doy es para formarme en distintas tecnologías.

 

Presentación con Prezi:

http://prezi.com/3bjmeuexackn/?utm_campaign=share&utm_medium=copy

Mi entorno personal de aprendizaje

Un Entorno Personal de Aprendizaje es el conjunto de elementos (recursos, actividades, fuentes de información) utilizados para la gestión del aprendizaje personal. Mis herramientas de aprendizaje las tenéis a continuación, clasificadas en tres categorías: acceso a la información, creación y edición de información y relación con otros.

Acceso a la información

  • Google
  • Wikipedia
  • Youtube
  • Pixabay
  • W3Schools
  • Stack Overflow
  • edX
  • Udemy

Creación y edición de información

  • Microsoft Office
  • Google Drive
  • WordPress
  • Prezi
  • MindMeister
  • Glogster
  • Moodle

Relación con otros

  • Gmail
  • WhatsApp
  • Facebook
  • LinkedIn

El enlace a la presentación de mi entorno personal de aprendizaje lo tenéis aquí: Mi PLE

La Herencia en las “Tribus Urbanas” [Metáfora]

Metáfora “Tribus Urbanas” para enseñar el concepto de Herencia en Informática (POO)

segmentacion-

En la vida normal, una herencia suele se algo que se pasa de padres a hijos. En orientación a objetos, se dice que una clase es derivada (hija) de otra cuando hereda algo de una clase base (padre). Ya que una clase de compone de atributos y métodos, una clase derivada heredará atributos y métodos ¿Pero qué se quiere decir con heredar atributos y métodos?

       Con el desarrollo de la siguiente metáfora en clase se pretende dar respuesta a esta y otras muchas interrogantes que pueden surgir del concepto herencia, de una manera atractiva para los alumnos. Incluso puede ser utilizada para que a partir de la propia metáfora los alumnos lleguen a una definición previa del concepto herencia.

Introducción al concepto “Herencia

La herencia es una simple ley de la naturaleza. Un ejemplo trivial es que los niños toman o reciben atributos de sus padres o ascendentes. La herencia es también natural en el mundo de la programación, y existen numerosos casos de ella. Por ejemplo, un menú emergente (pop-up), un cuadro de diálogo, tiene muchas cosas en común con una ventana; de hecho, estos elementos heredan ciertos atributos de la ventana (por ejemplo, un borde rectangular, un cursor,etc.).

El uso de la herencia en Programación Orientada a Objetos (POO) implica una creación de clases a partir de clases ya existentes. Dicho de otra manera, la herencia se aplica para extender y reutilizar el código existente:

  • EXTENSIBILIDAD: Los objetos se pueden construir de modo incremental a partir de otros objetos y pueden compartir código y estructuras de datos. Esto brinda la posibilidad de crear programas extensibles, derivando muchas clases de la misma clase base y creando un grupo de clases que tienen la misma interfaz pero distintas implementaciones.
  • REUTILIZACIÓN: Los algoritmos generales se pueden escribir de modo que se pueden reutilizar para nuevos tipos de objetos, incluso después que los algoritmos originales se han compilado. Con esta característica se consigue la reutilización efectiva del código de la clase base (o padres) para las necesidades de las clases derivadas (o hijas). Si se tiene una clase totalmente operacional (compilada, depurada), la herencia ayuda a reutilizar ese código en una nueva clase: Por lo tanto, no se necesita comprender el código fuente de la clase original, sino sólo lo que hace esa clase.

Entre los tipos de herencia tenemos herencia simple y herencia múltiple. Con esta metáfora, concretamente, se explica la herencia simple. Esta herencia se realiza tomando una clase existente y derivando nuevas clases de ella. La clase derivada hereda las estructuras de datos y funciones de la clase original. Además, se pueden añadir nuevos miembros a las clases derivadas y los miembros heredados pueden ser modificados. En este tipo de herencia cada clase derivada puede heredar de una única clase base, por lo que tiene sólo un ascendiente. Cada clase base puede sin embargo tener muchos descendientes. Por último, remarcar que la clase utilizada para derivar nuevas clases se llama clase base, padre, superclase o ascendiente; y la clase creada de otra clase se denomina clase derivada, hija, subclase o descendiente.

Metáfora “Tribus Urbanas”

Para enseñar el concepto Herencia introducido anteriormente, plantearemos una metáfora usando las Tribus Urbanas. Hemos seleccionado esta temática porque suele ser de interés para los adolescentes, etapa en la que se encontrarán los alumnos a los que va dirigida esta metáfora.

info-tribus-urbanas

Pasos para desarrollar la metáfora en clase:

  • Preguntar en clase si conocen lo que es una tribu urbana, que opinan al respecto, si se sienten identificado con alguna, etc.
  • Introducir la definición etimológica del término tribus urbanas: proviene del latín trivia que significa grupo o conjunto y urbi que significa aglomeración de personas en forma de ciudad o pueblo. Por tanto, una Tribu Urbana se caracteriza por estar formada por un grupo de personas que viven en una ciudad y se comportan como una tribu, compartiendo determinadas características e intereses.

Por tanto, las tribus urbanas son aquellos grupos de amigos, pandillas o simplemente agrupaciones de jóvenes que visten de forma similar, poseen hábitos comunes y lugares de reunión. Cuando los individuos se reúnen voluntariamente, por el placer de estar juntos o por búsqueda de lo semejante, se trata de un grupo o tribu urbana. Formar parte de una tribu urbana consiste en buscar en los congéneres modos de pensar y de sentir similares a los propios, compartiendo una misma cultura, y sin ser necesariamente conscientes de ello. El placer de pertenecer a una tribu urbana proviene de la suspensión de la exigencia de adaptarse a un universo adulto o social y a sus reglas de pensamiento y de conducta.

  • Dar pistas en clase para que sean los alumnos los que vayan definiendo los atributos o métodos que formaran parte de la clase ascendiente, de la cual heredaran las clases descendientes. Sin conocer el concepto herencia en Informática es posible ir haciendo una definición de la misma mediante el desarrollo de esta metáfora. Algunas de las preguntas que se le pueden hacer a los alumnos para ir dándoles pistas son:
    • cuáles serían las semejanzas y diferencias entre las tribus urbanas que conocen
    • cómo les gusta vestir (los miembros de una tribu urbana se visten de forma similar o no)
    • cuáles son sus hábitos (entre los miembros son iguales o diferentes)
    • tienen o no lugares de reunión comunes
    • una tribu es un un movimiento o ideología social o dentro de una tribu pueden confluir varias ideologías
  • Obtener datos similares a los que mostramos a continuación a partir del intercambio en clase. Que salga toda la información posible de los alumnos y el profesor que sirva un poco de guía en esta tarea.

Captura de pantalla 2017-11-12 a la(s) 17.39.57

Captura de pantalla 2017-11-12 a la(s) 17.40.05

Captura de pantalla 2017-11-12 a la(s) 17.39.41

Captura de pantalla 2017-11-12 a la(s) 17.39.28

Captura de pantalla 2017-11-12 a la(s) 17.43.39

  • Definir cuáles serían los atributos de la clase padre “tribu_urbana”, de la cual heredarían el resto de clases hijas.

Captura de pantalla 2017-11-12 a la(s) 17.46.05

  • Representar la jerarquía de clases para las tribus urbanas analizadas.

La relación padre-hijo entre clases puede representarse desde un punto de vista jerárquico, denominado vista de clases en árbol. La vista en árbol comienza con una clase general llamada superclase (o sea, clase primaria, clase padre, o clase principal; existen muchas metáforas genealógicas). Las clases derivadas (clase secundaria o subclase) se vuelven cada vez más especializadas a medida que van descendiendo en el árbol.

Captura de pantalla 2017-11-12 a la(s) 17.40.26

Conclusiones

Con esta metáfora sobre tribus urbanas creemos que será más sencillo deducir y comprender el concepto de Herencia en la especialidad de Informática para alumnos de la ESO y Bachiller. Además de ser un elemento motivador en la clase porque es un tema que despierta curiosidad en algunos y para otros es algo muy cercano. Por último, creemos que es un buen ejercicio para tratar en clase temas como: la aceptación del otro tal cual es, la importancia de la tolerancia y la empatía, respetar al otro, el entendimiento entre los compañeros de clase y la aceptación de unos y otros, independientemente de ideologías, gustos musicales, aficiones, formas de vestir, etc.

Notas:

http://imagendigital3.blogspot.com.es/2011/10/infografias.html

  • La bibliografía consultada:
    • Problemas resueltos de Programación en Lenguaje C++ de José Daniel García Sánchez, et. al. Editorial Paso a Paso
    • C++ a su alcance. Un enfoque orientado a objetos de Luis Joyanes Aguilar. Serie McGraw-Hill de Informática

La importancia del cifrado [Metáfora]

by

¿Qué es el cifrado?

Las tecnologías de cifrado de comunicaciones son ampliamente utilizadas por muchos sectores, como el financiero, gubernamental o de salud. La prohibición del cifrado es uno de los puntos claves de la batalla entre privacidad y seguridad que se está librando en nuestra era.

La metáfora usada para explicar inicialmente qué es cifrar algo sería decirles a los alumnos:

“Es como enviar una carta en vez de una postal. Prohibir el cifrado sería como requerir que toda la correspondencia se enviara a través de postales, incluidos los recibos del banco, las cartas del médico y las fotos de tus vacaciones. Tu cartero, los vecinos y Correos tardarían muy poco saberlo todo de ti”.

montaje1

Algunos gobiernos argumentan que el cifrado permite a los terroristas comunicarse sin que se les pueda espiar, pero lo cierto es que un mundo sin cifrado sería como un mundo sin sobres: todas las comunicaciones (no sólo las peligrosas) estarían a la vista.

Cifrado asimétrico

En un sistema de cifrado común, si la clave de nuestro cifrado es, por ejemplo “patata”. ¿Cómo podemos hacérselo saber a nuestro destinatario que vive a kilómetros de nosotros? ¿Le mando un libro de claves? ¿Se lo entrego en mano? ¿Uso intermediarios seguros? Es una solución poco práctica.

La criptografía asimétrica puso fin a esta situación y hoy en día es posible utilizarla para cifrar muchos datos de manera rápida y segura. Podemos pasarle archivos nuestro vecino, a nuestros amigos, nuestra abuela o a nuestro jefe que nadie de ellos necesitará tener un libro de códigos ni nada por el estilo ni tendremos que tener códigos secretos pre-establecidos.

Esto es utilizado para transmisiones bancarias, declaraciones de hacienda, u entrega de documentos certificados. El DNI digital permite la firma electrónica que se basa en esta “tecnología”.

Procedimiento

ANA, decide crearse un par de claves para cifrar y firmar sus datos con total seguridad. Una vez ha generado sus claves mediante un programa específico para tal finalidad tiene su clave privada y su clave pública.

La clave privada debe mantenerla secreta en su ordenador mientras que la clave pública la debe repartir por el mundo entero sin miedo a nada ya que con esa clave la gente podrá cifrarle los datos que solo él podrá volver a recuperar con su clave privada.

Podemos imaginarnos eso como que ANA acaba de comprar una gran caja fuerte. Una caja fuerte inexpugnable y quiere que sus amigos dejen allí dentro todas las cosas que le quieran enviar de manera segura.

Así que les manda una carta a sus amigos:

Querido PEPE, mi caja fuerte está en la Calle Patata, Piso 2a.

ejm 1

Esta dirección es la clave pública que ANA manda a todos sus amigos. Ahora cuando PEPE quiera enviarle algo ya sabe a dónde tiene que ir. Solo ANA, con la contraseña (clave privada ) de la caja fuerte puede abrirla y ver el documento de manera segura.

(Este es el proceso de cifrado. Vamos a ver ahora cómo funciona el proceso de Firmado que algo diferente.)

Al igual que antes PEPE tiene la dirección (clave pública) de la caja fuerte mientras que ANA tiene la contraseña (clave privada) de su caja.

Esta caja tiene en realidad dos cámaras. La primera la hemos utilizado antes y sirve para cifrar y proteger todo lo que se meta. Pero hay otra puerta en la parte trasera que tiene una ventanita. Por lo que todo quien mire por la ventanita podrá ver lo que hay dentro.

Así que ANA quiere enviar a su amigo PEPE una carta muy importante y existe el peligro de que haya algún impostor o Spammer de Nigeria que quiera suplantar una identidad.

Lo que hace ANA es ir a su caja fuerte y con su contraseña de la caja (clave privada) mete la carta importante dentro de ella. Pero lo mete dentro de la otra cámara, esa cuya puerta tiene una ventanita para que PEPE pueda leerla a través de la ventana.

ANA luego envía una copia de la carta (por correo ordinario de toda la vida) a PEPE quien la recibe y sospecha de que podría ser un engaño. Así que PEPE, ya que tiene la dirección de la caja fuerte (clave pública) va a darle una visita y comprueba a través de la ventana si la copia de la carta que él tiene y la que ANA ha guardado de manera segura son iguales.

De esta manera puede saber con certeza que ANA es la emisora de dicha carta. ANA ha “firmado electrónicamente” esa carta.ejemplo2

Una vez explicada por encima cómo es el funcionamiento del cifrado asimétrico y la firma digital, se puede explicar más detalladamente este proceso con otros factores que actúan  tanto por parte del emisor como el receptor como el “hash”, certificado digital, etc.

Esquema_firma

PROGRAMACIÓN CONCURRENTE [Metáfora]

La programación concurrente consiste en la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden ejecutar en una sola unidad central de proceso (multiprogramación), en varios procesadores o en una red de computadores distribuidos.

Para entender la concurrencia y el problema de sincronización que lleva asociado partiré de un ejemplo sencillo de concurrencia usando como metáfora  la preparación de la comida diaria en la que colaboran los miembros de una familia:

-La preparación de la comida y servirla, sería el objetivo de nuestro programa concurrente.

-Los pasos para preparar la comida como comprar los ingredientes, lavarlos, cortar, batir, hervir, freír, asar, preparar la mesa, etc. serían las múltiples tareas a ejecutar, el conjunto de procesos a ejecutar simultáneamente, los que se puedan, e inevitablemente en secuencia otros.

-Los recursos disponibles en la cocina como el horno, la batidora, ollas, cuencos, fuegos de la placa de cocina, etc. serían los recursos del procesador, de manera que en paralelo podrán hacerse por ejemplo las compras, poner la mesa, batir una salsa, hervir una guarnición, hornear el plato principal, preparar el postre.

-Los procesos pueden colaborar o pueden competir por los recursos de la cocina por lo que será necesario que los procesos se comuniquen y se sincronicen.

-Por tanto, nuestro programa, preparar comida, implica un orden de tareas y unos tiempos de espera entre algunas tareas bien porque un recurso está ocupado o bien porque para iniciarse necesitan la finalización de una tarea anterior, por lo que habrá que sincronizar tiempos y recursos.

Por ejemplo, la madre (color rojo, procesos M1 y M2) pone a calentar una olla con agua en un fuego, mientras se calienta, ralla la cebolla y pica la carne (podemos así disponer de otros procesos listos cuando el proceso en ejecución se bloquea en fase de espera). Sólo hay un rallador (el proceso M2 deberá bloquearlo para garantizar la exclusión mutua, no podrá acceder más de un usuario a la vez), así que el padre (color azul, proceso P1) tiene que esperar a que termine la madre de usarlo (condición de sincronización, M2 ya puede desbloquear el rallador) para rallar el tomate mientras la madre pica la carne (sincronización de los procesos). A su vez la madre espera 1 minuto para usar el tomate rallado por el padre para freírlo todo junto en una sartén en otro fuego. Mientras lo deja friendo, ya ha hervido el agua y procede a echar los macarrones. El padre al mismo tiempo prepara la ensalada y el postre. Cuando finaliza el proceso más largo ya pueden servir la mesa.

Esquema ejemplo concurrencia B

Metáfora acerca de conceptos de la POO

El gato cómo metáfora para la POO

Grady Booch es un guru del desarrollo de software que escribió uno de los libros más importantes de la Programación Orientada a Objetos: “Object-Oriented Analysis and Design with Applications. En este libro se usa la figura del gato para mediante metáforas definer distintos conceptos y principios de la POO.

Sistemas y subsistemas

subsistemas

Cómo se aprecia en la imagen, se observa un dibujo grande referente a un gato, que simbolizaría el sistema. Por otra parte, se encuentran los dibujantes trabajando en subsistemas del propio sistema, que serían otros dibujos menores que definan partes concretas del sistema. En este caso, los dibujos hacen referencia a elementos propios del gato (sistema de maullar, sistema de ronroneo, sistema de ventilación de respiro del gato, agravación de los pájaros, etc).

Abstracción

abstraccion

La abstracción en la POO trata analizar las características específicas de un objeto, aquellas que lo distinguen de los demás tipos de objetos y que logran definir límites conceptuales respecto a quien está haciendo dicha abstracción del objeto. Vemos cómo la cirujana veterinaria realiza una abstracción de las características principales del gato en lo que respecta a su ámbito.

Modularidad

modularidad

Cómo dice en la imagen, la modularidad organiza en discretas unidades las abstracciones realizadas. Así, en la imagen vemos un gato de juguete desmontado y vemos cómo son distintas piezas o unidades las que lo forman.

Encapsulación

encapsulacion

La encapsulación se encarga de esconder los detalles de la implementación del objeto, de manera que no se pueda ver lo que hay dentro. En la imagen vemos cómo el gato tiene todo su sistema encapsulado en su interior, que se cerrará con una llave. Por lo que la gente sólo podrá apreciar al gato por fuera y su comportamiento, pero no sabrá qué es lo que le hace ser así o comportarse así.

 

Persistencia

persistencia

La persistencia es la propiedad de un objeto a través del cual su existencia trasciende en el tiempo y/o espacio. Esto significa que un objeto presistente sigue existiendo después de que ha finalizado el programa que le dio origen y que además puede ser movido de la localidad de memoria en la que fue creado.

Otra metáfora que se podría usar para este concepto de Persistencia concretamente sería la siguiente, esta vez relacionada con un perro:

Supongamos que tenemos un perro al cual le estamos enseñando a dar vueltas y a hacerse el muerto. Supongamos además que al perro se le olvida todo lo que se le enseña cuando lo dejamos solo. Mientras estamos frente al perro, éste aprende y recuerda todo lo que se le ha enseñado, incluso si esto dura muchos meses; pero al momento en que nos vamos, el perro lo olvida todo.

Muchos programas se comportan de esta misma manera. Cuando se ejecutan, construyen información respecto a la tarea siendo realizada; mas al finalizar, la información se pierde. Afortunadamente, muchos programas pueden ser así de simples. Sin embargo, en aplicaciones del mundo real (por ejemplo, un sistema de nómina), este comportamiento es inaceptable porque los datos almacenados representan a personas u objetos que existen a través del tiempo, y las representaciones de éstos deben persistir también.

En la programación orientada a objetos, nos enfrentamos más seguido con este problema que bajo los esquemas tradicionales por el hecho de que los objetos creados y mantenidos en programas orientados a objetos tienen más parecido a personas que a estructuras de datos; los objetos [al igual que las personas] tienen estado y comportamiento, y un programa típico crea objetos y los manipula.”

¿Cómo funcionan los routers?

Explicaremos de una manera muy didáctica el funcionamiento de los enrutadores mediante una analogía con un deporte de equipo con balón (fútbol). Esta metáfora puede adaptarse a cualquier otro deporte como baloncesto, rugby, volley, balonmano, etc.

Empezaremos enumerando los conceptos abstractos a explicar:

  • Paquete de red
  • Red
  • Topología de red
  • Dispositivo conectado a una red
  • Router
  • Puerta de enlace
  • Protocolo TCP/IP
  • Timeout

 

Imaginemos que todos los equipos del mundo están jugando un partido a la vez en un superestadio y que solamente existe un balón. El juego no consiste en meter goles, sino en que un jugador envíe un balón con una pregunta escrita a otro jugador de su mismo equipo o a otro de otro equipo cualquiera. Ese mismo jugador deberá recibir el balón de vuelta con la respuesta a dicha pregunta, pasando previamente el balón por el capitán de cada equipo y habiendo dado visto bueno el entrenador. Importante: los jugadores de los equipos no se han visto nunca ni se conocen entre ellos, sólo los conoce entrenador de su equipo.

 

Dicho esto, procedemos a asociar elementos abstractos a conceptos que dominan y conocen:

  • Un paquete de red es el balón con la pregunta y la respuesta
  • Una red es un equipo de fútbol
  • La topología de red es cómo están dispuestos los jugadores de cada equipo en el campo
  • Un jugador es un dispositivo conectado a la red (móvil, ordenador, tablet, etc.)
  • La puerta de enlace de la red es el capitán de cada uno de los equipos que es el que reparte el juego
  • El router es el entrenador de cada equipo de fútbol que conoce a sus jugadores
  • Protocolo TCP / IP y UDP es lo mismo que decir quiero confirmación al enviar o recibir un pase por parte de un jugador
  • Timeout es el tiempo máximo que puede estar el balón en juego sin llegar a su receptor

 

De estos sustantivos podemos extraer las diferentes acciones o situaciones que pueden darse:

  • Enviar un paquete de red a un dispositivo de la misma red:
    1. El Jugador1 quiere enviar un balón con una pregunta escrita en él al Jugador 2 (de su mismo equipo)
    2. Para que sea posible, el balón debe pasar por el capitán, quien debe preguntar a su entrenador dónde está el jugador al que debe enviar el balón.
    3. El entrenador le responde que está en su mismo equipo.
    4. El capitán envía el balón al Jugador2.
    5. El Jugador2 escribe la respuesta y envía el balón de vuelta al capitán que a su vez éste lo devuelva al Jugador1.

 

  • Enviar un paquete de red a un dispositivo de otra red:
    1. Jugador1 (Real Madrid 2ª División) quiere enviar un balón con una pregunta escrita en él al Jugador2 (Real Madrid de 1ª División).
    2. Para que esto sea posible, el balón ha de pasar por el capitán del Real Madrid de 2ª División, el cual deberá preguntar a su entrenador dónde está el jugador al que debe enviar el balón.
    3. Su entrenador le responde que NO está en su mismo equipo y por tanto debe enviar el balón al capitán del Real Madrid de 1ª División.
    4. El capitán del Real Madrid de 1ª División recibe el balón y pregunta a su entrenador si el jugador es de su equipo, el cual le responde que sí y que debe enviárselo al Jugador2.
    5. El Jugador2 del Real Madrid de 1ª División responde al mensaje escribiéndolo en el balón y se lo devuelve a su capitán el cual lo redirige al capitán del Real Madrid de 2ª División que lo devuelve a su vez al Jugador 1.

 

Ejemplo.

Routers