Que é AlgoRitmia

Presentación

Proxecto Algoritmia é unha páxina con material didáctico para profesorado de Primaria, Secundaria e Bacharelato interesado en desenvolver a competencia dixital en xeral e a competencia programadora en particular. É un traballo que xorde da necesidade de elaborar material didáctico en galego que permita secuenciar correctamente a adquisición de conceptos e competencias relacionadas coa Programación e visualizar os requisitos previos a desenvolver en cada nivel.

A nosa intención é que Proxecto AlgoRitmia vaia medrando e incorporando outros materiais relacionados coa aprendizaxe da programación e de cultura algorítmica. Se queres colaborar non dúbides en poñerte en contacto con nós, mediante os nosos mails ou en Twitter.

Autoría:

foto autoría

Peregrina Pintos Testa, profesora de Tecnoloxía no IES do Castro de Vigo  (peregrina.pintos at gmail.com, @peregrinapintos)
Daniel Rodríguez Pizarro, profesor de Tecnoloxía no IES Alexandre Bóveda de Vigo (tecnocoia at gmail.com, @tecnocoia)

Proposta didáctica de AlgoRitmia

A nosa proposta didáctica de Primaria a Bacharelato pode resumirse en 3 niveis de competencia programadora que poden desenvolverse ao longo do currículo educativo:

proposta de programacion competencia dixital
Proposta didáctica de Primaria a Bacharelato. En cor o traballado explícitamente en AlgoRitmia.

  • Nivel 0: Manexo básico do ordenador, pensamento algorítmico básico desenvolto con actividades focalizadas nel (como xogos), uso dos Sistemas Operativos e de diferentes interfaces, coñecemento básico de hardware. Será moi importante o dominio de conceptos como ficheiro, formato, estrutura de cartafoles e ruta.
  • Nivel 1: Uso de programas por bloques (Scratch) para desenvolver o pensamento algorítmico a nivel medio (bucles, condicionais, variables...). Uso de internet e conceptos de seguridade básica.
  • Nivel 1 avanzado: Coñecer e utilizar a nivel medio unha linguaxe de etiquetas (HTML + CSS), coñecer os comandos básicos da terminal (shell) do SO.
  • Nivel 2: Pensamento algorítmico avanzado (funcións, datos estruturados...) programando unha linguaxe textual como Python, linguaxes de controladora ou de robots como Arduino, arquitectura e protocolos de redes. coñecementos de seguridade informática.

Os niveis non se corresponden coas etapas educativas. O feito de estar nun nivel non implica non realizar actividades do nivel anterior. Por exemplo haberá alumnado que estea programando en Scratch que non teña claro os conceptos dos sistemas operativos como formato ou ruta.

Ao noso entender o obxectivo principal no desenvolvemento da competencia dixital non é o dominio dun ou varios programas ou incluso linguaxes (iso é a formación técnica a secas), senón o desenvolvemento explícito do Pensamento Algorítmico, o conxunto de técnicas e recursos que convirten a unha persoa nun programador ou programadora máis competente, e que lle facilitan a aprendizaxe de novos recursos. Por remitirnos ao Currículo vixente, o importante na nosa época é a competencia de Aprender a aprender, as outras son secundarias e supeditadas a esta. De igual xeito que a formación ofimática das pasadas décadas foi desastrosa cando quedaba relegada á aprendizaxe exhaustiva dunha suite concreta (e por riba privativa e de pago), a aprendizaxe actual en programación pode non ser todo o competente que desexemos se o obxectivo é unha linguaxe ou interface concreta (e xa non digamos cando sexa unha linguaxe privativa non estandarizada como a de moitos robots comerciais, que se introducen en moitas escolas sen ningunha reflexión didáctica ao respecto).

Contidos en AlgoRitmia

Os contidos formativos en AlgoRitmia se articulan en dúas partes diferenciadas (aínda que teñan conexións entre elas):

  • Antes de Scratch: actividades e recursos para desenvolver o pensamento algorítmico de xeito explícito, de tal maneira que se mellore competencia dixital do alumnado que vaia a empezar a programar con Scratch, o cal redundará nunha mellor adquisición dos conceptos a desenvolver con e dende Scratch. As actividades non teñen unha secuencia predefinida, podendo servir como repositorio para o profesorado.
  • Despois de Scratch + Python: actividades e recursos secuenciados para ensinar Python partindo do aprendido en Scratch, tanto da sintaxe de programación como dos conceptos.

 

Cultura Algorítmica

Aínda que a páxina de AlgoRitmia podería estar adicada só á aprendizaxe de Programación, pensamos que é necesario sempre en Educación realizar un enfoque interdisciplinario e ter aspiracións dunha formacion integral (e máis na época actual) que contextualice a formación técnica. De pouco serve na educación da cidadanía aprender a programar un robot se non reflexionamos ao tempo sobre o impacto da robótica na nosa sociedade. 'Fabricar' enxeñeiros e enxeñeiras sen ética nin conciencia histórica non pode ser o obxectivo do sistema educativo, por moi competentes que sexan a nivel técnico. Para rachar con esa brecha tan perniciosa (e anticuada) para a nosa sociedade das Ciencias vs. Letras é que poñemos en paralelo unha sección adicada á Cultura, nun sentido moi amplo, relacionada coa Programación:

 

Un pouco de intrahistoria

A introdución da Informática nos centros educativos de primaria e secundaria (alá polos anos 80 e que nos vivimos como alumnado) producíuse co estudo da programación en linguaxes como o Basic ou o Logo. Era, naquel momento, o profesorado de matemáticas o principal encargado desta labor tan importante e, aqueles innovadores que se atraveron, facíano precisamente co convencemento de que o estudo da programación era unha magnífica ferramenta para o desenvolvemento do pensamento algorítmico.  Pero o avance exponencial da informática fixo que o ensino desta derivase no ensino de ferramentas informáticas, arrinconando o potencial matemático da programación.

Coa introdución da materia de Tecnoloxía e, sobre todo, das materias de TIC reapareceu a programación no currículo,  pero, e dicímolo con coñecemento de causa, excesivamente centrado na aprendizaxe de linguaxes de programación e de hardware de sistemas de control por ordenador.  Foi a aparición do Scratch a que marcou un fito no desenvolvemento da capacidade algorítmica ao desvincular o mundo da programación do mundo da sintaxe. E ilusionados con este programa desenvolvimos  o proxecto Código Octopus (xunto con María Loureiro).

Agora quixemos dar un paso adiante (e outro atrás ...non a canción non!) e continuar este traballo,  pero centrándonos, por unha banda, no pensamento algorítmico independente de calquera linguaxe de programación e, por outra banda, no estudo das principais estruturas da programación informática, empregando como ferramenta a linguaxe Python e a analoxía co Scratch.

Cultura algorítmica

A Cultura é, entre outras cousas, o contexto do coñecemento. Na ensinanza formal estamos a dar moito coñecemento técnico (cando o damos ;-) descontextualizado, e iso é un grave erro aínda que a moitas persoas (incluído moito profesorado) lle pareza mellor, pois opinan que o coñecemento ten que ser neutro e aséptico. Iso é confundir coñecemento con información.

Despois de Scratch

Despois de Scratch...pois temos que aprender unha linguaxe de programación textual. E unha das máis recomendables (pero non a única) a día de hoxe é Python.

Imos repetir moitas cousas que xa sabemos facer en Scratch, para aprender a facelas en Python. Se logo continuamos aprenderemos a facer cousas que non sabemos facer en Scratch. O único que se que require é paciencia e interés.

Tipos de busca

Xogar ao escondite, xogar a Afundir a flota ou a outros xogos onde hai que desenvoler unha estratexia para atopar obxectos é un dos retos que nos gustan ás persoas. Pero, como lle explicamos a unha máquina como buscar cousas de maneira eficiente?.  A continuación propoñemos unha serie de xogos que vos axudarán a afondar nestes conceptos.

Primeiro xogo: Adiviña quen ten a carta

 

Figuras xeométricas mediante coordenadas

Estamos tan afeitos a ver imaxes nunha pantalla que non nos preguntamos como están feitas.

As imaxes dixitais están compostas por pixeles. Cada pixel representa a cor dun único punto da imaxe. Por tanto un pixel é como un pequeno cuadradiño dunha única cor. Cada cor pode ser creada misturando a cantidade axeitada de luz: vermella, verdeazul.