CDIA.Rio - Rede de Ciência de Dados & Inteligência Artificial do Rio de Janeiro

Ensino de Programação e IA

Este texto é uma contribuição para a Hora do Código [1], iniciativa internacional para estimular o ensino de programação de computadores para alunos de todas as idades. Ela acontece sempre em dezembro, quando se celebra a semana do ensino de ciência da computação nos EUA, mas o site deles tem conteúdo disponível o ano todo em diferentes idiomas, inclusive em Português.

Vale conferir o que o https://code.org/ oferece, sendo que este ano o tema escolhido para a campanha foi “Festa dançante”, já de olho em atrair mais meninas para o universo da informática. As ferramentas e atividades propostas em anos anteriores ficam também disponíveis, de modo que qualquer um encontre algo alinhado a suas próprias preferências.

Quando consultei o site pela última vez havia 167.232 atividades cadastradas, sendo 264 no Brasil. Em geral são eventos gratuitos pensando em quem nunca fez um programa de computador. Monta-se uma pequena turma e em uma hora (a duração pode ser maior) todos conseguem desenvolver um exercício de programação completo! A ideia é “fisgar” a maioria para que queiram seguir aprendendo.

Este nosso mundo que está em plena transformação digital vai precisar cada vez mais de profissionais capacitados a trabalhar com as Tecnologias da Informação e Comunicação – TICs, motivo pelo qual todo este movimento começou e continua muito forte nos EUA. O artigo “South Carolina Offering Free Online Coding Courses for All Residents” [2] descreve a iniciativa do estado norte-americano da Carolina do Sul que passou a ofertar cursos online (via internet) para qualquer residente do estado, já focando em treinar a mão de obra adulta para as empresas ali instaladas.

De qualquer modo, ter muitos eventos cadastrados na Hora do Código não significa muita coisa e não precisamos ficar preocupados pelo fato do Brasil ter apenas 0,16% (menos de 1%) destes eventos acontecendo no nosso território. China e Inglaterra nem aparecem na lista, muito embora estejam com programas nacionais sólidos de ensino de computação para jovens. O que deve ser motivo de preocupação é que aqui o ensino de programação nem é considerado prioritário, enquanto diversos países mundo a fora já estão revisando seus próprios programas para incluir a Inteligência Artificial (IA) no currículo da garotada!

O que ensinar para crianças e jovens

Antes de mais nada, não custa lembrar que já vem de anos a discussão sobre a pertinência e resultados concretos do uso de tecnologia em sala de aula. Um artigo recente que trata do assunto é o “The Backlash Against Screen Time at School” [3], como tantos outros, utilizados como justificativa para ir postergando o investimento em programas deste tipo nas escolas públicas do nosso país.

Em algumas poucas escolas privadas, como é o caso do Instituto ORT, os alunos aprendem programação, robótica e muito mais, embora a maioria não tenha nem mesmo um laboratório de informática. Até porque também não dispõem de laboratórios de ciência, biologia ou qualquer outra infraestrutura voltada para atividades práticas. Prevalece o ensino de diversas teorias e fatos históricos com poucas oportunidades para aplicar o que se aprende.

O curioso é que quando existe um laboratório de informática é comum usar os computadores para simular laboratórios de outras disciplinas, permitindo que os alunos possam usar um microscópio poderoso ou misturar diferentes reagentes químicos, tudo virtualmente na “telinha”. Nada contra, até porque as TICs são usadas em todas as áreas do conhecimento. Iniciativas como esta pode ser até muito interessantes nos primeiros contatos, mas a novidade não dura muito. Se o professor da disciplina deixar a turma somente com o técnico do laboratório é grande a chance da maioria dos alunos perder o foco e não aprender nada.

Ainda ha muito o que aprender sobre como tirar o melhor proveito da tecnologia no ensino, e certamente não se pode achar que computadores e seus aplicativos serão a resposta para tudo. Talvez a parte mais importante da experiência escolar de crianças e jovens seja justamente aprender a se relacionar com os outros, enfrentando desafios e frustrações e descobrindo como superá-los de acordo com os valores e códigos de conduta existentes nas suas comunidades.

Pessoalmente acredito que é também importante ajudar os alunos a tirar melhor proveito das ferramentas que estarão disponíveis para eles no seu dia a dia, seja na vida pessoal ou no trabalho, sendo por isto mesmo importante não apenas torná-los usuários de computadores, tablets e celulares, mas também versados nas tecnologias associadas a estes dispositivos.

Assim como nem todo aluno que estuda biologia no colégio vai se tornar um profissional da área biomédica, nem todo aluno que aprender noções básicas de programação se tornará um profissional de TIC. Mas já passou da hora deles poderem ter acesso a estes conhecimentos. Em particular, o ensino de programação permite o contato com a resolução de problemas (aplicando os conhecimentos recebidos) e dominando técnicas de tomada de decisão.

Aprender a tomar decisões pode ser até um conjunto de novas disciplinas no ensino médio, como defende o artigo “Decision-Making Should Be a Required Course in Every High School” [4], até porque este outro texto “Untangling your organization’s decision making” [5] trata da complexidade crescente envolvendo o processo decisório em grandes corporações e como elas podem enfrentar o problema. O alvoroço todo em torno do uso da inteligência artificial é justamente por conta dela poder ser usada de modo a agilizar a tomada de decisões em diferentes situações. Tem até uma nova categoria de sistemas informatizados que começa a surgir no mercado, sendo chamados de plataformas digitais de decisão, conforme descrito no artigo “Digital Decisioning Platforms – A New Way to Slice the Pie” [6].

Com tantas transformações acontecendo fica até difícil imaginar o que os jovens precisam aprender hoje para conseguir emprego quando estiverem concluindo sua formação. O que leva a uma outra discussão bastante acalorada sobre o efeito que as TICs, e mais especificamente a IA, terão sobre o mercado de trabalho.

O futuro do trabalho

São tantas as referências sobre o assunto que ele poderia facilmente ocupar todo o espaço deste texto, fugindo do propósito inicial de discutir o ensino de programação e IA. O boa notícia para quem quer se aprofundar nesta temática é que tenho duas dicas em Português muito completas: “Estudo inédito desenvolvido por WGSN e LinkedIn revela qual será o futuro do trabalho” [7] e “Novas considerações sobre o futuro do trabalho na era da IA” [8].

O primeiro é um estudo analisando diferentes facetas do impacto da tecnologia sobre as profissões e sobre o mercado de trabalho, trazendo inclusive recomendações de como se preparar para enfrentar os novos cenários que o futuro nos reserva. É tanto material que os organizadores montaram um site para facilitar o acesso. Já a segunda referencia é um artigo do Cezar Taurion, recentemente apontado como uma das “Top Voices” do LinkedIn no Brasil em 2018, dando mais destaque aos impactos da IA e recheado com citações a livros e textos relevantes sobre o assunto, e assim traçando um panorama que explora tanto a visão dos mais pessimistas como a visão dos otimistas, comentando as considerações apresentadas por cada lado.

No curto prazo, no entanto, quem esta apostando em carreiras ligadas a tecnologia parece não ter do que se arrepender. O estudo “Cybersecurity, AI Most Sought-After IT Career In 2019: Study” [10] deixa isto bastante claro.

O que talvez nem todo mundo se dê conta é que a tecnologia esta mexendo, e muito, com as profissões do pessoal que mexe com TICs. Em 2012 participei de um congresso sobre ensino online nos EUA que teve como uma das “Keynote Speakers” a Daphne Koller, professora de Ciência da Computação na Universidade de Stanford e fundadora da empresa Coursera, destaque entre as principais plataformas de ensino online existentes no mercado.

Ela comentava que tinha sido aluna de doutorado em Stanford e que passados alguns anos desde que tinha se graduado, já como professora na mesma universidade, ajudava a ministrar uma grade de cursos bem diferente para os candidatos a doutor começando o curso em 2012. A tônica na ocasião era o enorme impacto sendo observado com a oferta de cursos abertos e online para uma enorme massa de alunos (acima de mil inscritos).

O “fenômeno” transformador dos conhecimentos que precisam ser dominados na área de TIC continua com toda a força. As as gerações mais novas parecem ficar ainda mais motivadas com isto, conforme testemunho de um recém graduado no texto “The Puzzling Future of the IT Profession” [10]. Ele inclusive descreve suas preferências sobre como se manter atualizado e cita a busca por conteúdo em vídeo na internet “just-in-time”.

O impacto da Ciência de Dados na Educação

Uma coisa é usar computadores em sala de aula, outra bem diferente é tirar proveito das ferramentas de “Machine Learning” – ML (Aprendizado de Máquina) que já estão chegando inclusive nos celulares. A ML, considerada parte da IA, só funciona bem com a análise de grandes volumes de dados, explorando diferentes técnicas, algumas consideradas especialmente promissoras e conhecidas como “Deep Learning” (Aprendizado profundo). Sistemas utilizando estas tecnologias são capazes de ir se autoaperfeiçoando, gerando grande expectativa em relação ao potencial de sua aplicação em diferentes setores, inclusive na Educação.

O artigo “How Data Science Is Improving Higher Education” [11] explora como instituições de ensino superior já estão tirando proveito destas tecnologias, num sentido bem amplo, já que não se limita a pensar apenas nos usos pedagógicos em sala de aula. Por sua vez, “4 Ways Machine Learning Can Improve Online Education” [12] foca na melhoria do ensino online, lembrando que muita coisa ainda esta sendo testada e pode demorar um pouco até chegar ao mercado.

O artigo mais interessante de todos, na minha opinião, é o “AI can humanize teaching—if we let it” [13], já provocando a turma que acha que o uso da IA fará com que professores percam o emprego e que a tecnologia irá desumanizar o ensino. As sugestões apresentadas no artigo são todas voltadas para apoiar o professor em suas atividades, seja ajudando a escolher fontes de consulta ou criando apostilas personalizadas, seja gerando questões automaticamente a partir destas fontes para montar uma prova. Uma sacada bem legal foi imaginar o computador simulando o comportamento dos alunos em sala de aula, inclusive se comportando de forma indevida, para apoiar o treinamento de novos professores. Nesta mesma linha, já é possível imaginar uma aplicação capaz de analisar o video de uma aula gravada para dar feedback sobre o desempenho do professor naquela sessão.

São inúmeras as possibilidades, ou melhor, oportunidades. O Conselho de Ciências Matemáticas e Analíticas da Academia Nacional de Ciências, Engenharia e Medicina dos EUA vem conduzindo desde o final de 2016 mesas redondas para debater diferentes aspectos desta temática. Material sobre as reuniões já realizadas estão disponíveis em “Roundtable on Data Science Postsecondary Education” [14].

A situação no Brasil

“Tecnologias cognitivas impõem mudança curricular” [15]. Sim, a afirmação parece óbvia por tudo o que já foi dito acima, mas na verdade esta referência reporta os resultados de uma pesquisa com mais de 1.600 estudantes e profissionais envolvidos com IA em 82 países. Oitenta porcento dos universitários brasileiros que participaram do levantamento disseram que a formação acadêmica que estão recebendo não é suficiente para que trabalhem no futuro com novas tecnologias cognitivas.

Os títulos de outras duas referencias, “Brasil vai perder R$ 167 bilhões nos próximos cinco anos por falta de profissionais de TICs” [16] e “Brasil cai seis posições em ranking mundial de talentos do IMD”[17], ajudam a compreender o tamanho do nosso desafio.

Não estamos parados, podendo citar como exemplo: “USP investirá R$ 1 milhão em projetos acadêmicos de IA” [18]. Já o Prof. Alexandre Evsukoff da COPPE/UFRJ vem desenvolvendo cursos sob medida para a demanda dos clientes, seja em termos de escopo ou carga horária, enquanto a própria UFRJ e outros membros da CDIA.Rio já oferecem disciplinas regulares em seus diferentes programas ou treinamentos de curta, média e longa duração. Mas ao comparar o “tamanho” do nosso esforço, tomando como base o artigo “UC Berkeley launching data science division on heels of fast-growing major” [19], veremos que o MIT sozinho em Boston esta investindo 1 bilhão de dólares nesta área do conhecimento.

Formação de Novos Talentos

O mundo todo esta carente de profissionais de TIC, em especial aqueles que dominam Ciência de Dados e IA. Por isto mesmo são inúmeras iniciativas no exterior para estimular que profissionais já formados possam se reciclar e dominar estas tecnologias. Aqui no Brasil, para quem sabe Inglês, é possível tirar proveito destes conteúdos.

Posso citar três exemplos recentes: “Amazon’s own ‘Machine Learning University’ now available to all developers” [20], “Google’s machine-learning boot camp targets workforce gap” [21] e “Artificial Intelligence Era Requires New Approaches to Create AI Talent” [22]. Nos dois primeiros o nome da empresa patrocinadora aparece no título da referencia, sendo que o terceiro fala da iniciativa da Huawei. Todos buscando profissionais para “ontem”.

Engana-se, contudo, quem acha que é preciso já ser um profissional de TIC para atuar com IA. O artigo “Disabled veterans find work training AI” [23] descreve uma iniciativa com soldados veteranos que estão sendo treinados para descrever/anotar objetos identificados em diferentes fotografias. Este trabalho é necessário para que o computador, ou melhor, o algorítimo de IA possa ser treinado para reconhecer imagens semelhantes. Se as imagens não forem sensíveis ou sigilosas, até adolescentes poderiam fazer trabalhos deste tipo.

Tem também quem aposte em treinar aqueles em busca dos bons salários sendo praticados no momento, mesmo sem conhecimentos prévios de TIC. A Coursera, já mencionada acima, acabou de lançar uma linha de cursos focada neste público (“AI for Everyone”) [24].

Esta achando que você passou da idade de aprender “novos truques”? No artigo “Is It Too Late For Me To Learn Coding?” [25] o autor relata sua própria experiência, tendo aprendido a programar depois dos 40. Não é para qualquer um mas o caminho que ele sugere começa pelo uso de uma planilha eletrônica. As versões mais modernas deste tipo de ferramenta evoluíram muito e podem te dar a confiança para ir avançando com passos mais curtos. Só depois é que ele sugere que se aprenda Python, uma linguagem de programação mais fácil de ser ensinada (se comparada com Java ou as diferentes variações de C) e que tem se tornado cada vez mais popular por conta das diferentes bibliotecas disponíveis para desenvolver aplicações em ciência de dados e IA.

Python tem se tornado também muito popular como linguagem de programação para ser ensinada em escolas no exterior, me permitindo fazer um gancho para voltar a falar do ensino de programação e IA para adolescentes. O artigo “Teaching Data Science to High School Students” [26] defende justamente esta tese, inclusive sugerindo que as matérias relacionadas com programação de computadores perderão importância na medida em que a IA evoluir a ponto de permitir que os computadores assumam a tarefa de criar novos sistemas e aplicações.

As plataformas Low-Code / No-Code

Isto nos traz às plataformas de Pouco-Código / Sem-Código, melhor explicadas no artigo “Plataformas de Desenvolvimento Low-code, uma tendência para ficar” [27] da Maria Luiza Reis, CEO da Lab245. Existem várias plataformas deste tipo já disponíveis no mercado, inclusive uma ofertada pela própria Lab245, também membro nato da CDIA.Rio. Neste caso o foco é a modelagem de aplicações que geram automaticamente interfaces, automatizam as regras de negócios, criam formulários e objetos de integração usando interface gráfica e pouca codificação, principalmente para a parte criativa da aparência destas aplicações.

Existem também plataformas deste tipo com foco em ciência de dados e IA, conforme pode ser visto no artigo “Practicing ‘No Code’ Data Science” [28]. Apesar de serem citadas inúmeras plataformas, o autor deixou de fora, sabe-se lá porque, a RapidMiner, plataforma da qual sou embaixador aqui para o Brasil (se tiver interesse em receber mais informações sobre ela entre em contato comigo).

De qualquer modo, é preciso dizer que qualquer uma destas plataformas esta mais para pouco-código do que para sem-código. Quem não tiver domínio de lógica e de conceitos relacionados com a manipulação de dados terá dificuldade de usar estas plataformas. Aqueles que são programadores/desenvolvedores experientes, por outro lado, podem achar que estas plataformas não agregam vantagens significativas. Pelo menos é esta a impressão que fica ao ler os resultados de uma pesquisa recente, mencionada em “Report: Developers slow to adopt low-code and no-code solutions” [29].

Conclusões

Seja qual for o nível de ensino para o qual se olhe, os respectivos currículos precisam ser revisados para dar conta das novas tecnologias relacionadas com ciência de dados e IA. Técnicas antes exclusivas para doutores nos centros mais avançados de pesquisa vão se popularizando e sendo ofertadas em degraus mais baixos da escada de formação acadêmica, a ponto de fazer sentido introduzir algumas destas técnicas e conceitos no ensino médio e talvez até no básico.

O Brasil tem centros de ensino e pesquisa de nível internacional, mas na média estamos muito atrasados, especialmente no ensino básico e médio. Os desafios para ofertar ensino de qualidade em programação e IA nestes níveis do nosso sistema educacional são enormes e prefiro nem abrir esta discussão agora. Mas estes desafios precisam ser enfrentados! Falando especificamente de IA, é preciso repensar o que vem sendo feito também no ensino superior e discutir estratégias para reciclagem de uma parcela importante dos profissionais que já estão no mercado.

Acredito que as plataformas “low-code” vão evoluir bastante e permitirão aumentar a produtividade das empresas ao permitir que profissionais de todas as áreas possam mais facilmente modelar e desenvolver as análises e os MVP (produtos mínimos viáveis) de sistemas e aplicações digitais que continuarão a surgir nos esforços inovadores empreendidos por estas empresas. Aqueles produtos/serviços que forem sobrevivendo aos sucessivos testes impostos pelo mercado serão depois aperfeiçoados/otimizados por equipes de especialistas.

Mas se formos esperar que estas plataformas “low-code” evoluam a ponto de dispensar investimentos no ensino de programação, apostando apenas no contingente de profissionais já treinados e programas educacionais já existentes, ficaremos cada vez mais para trás. Isto pode até não fazer diferença para quem confia em nossas commodities, que já são e devem continuar sendo reconhecidas pelo peso que representam em nossa economia. Mas podemos mais e me incomoda apostar somente nas commodities, que à propósito, vão demandar conhecimentos nestas tecnologias aqui mencionadas para continuarem a ser produzidas de forma competitiva.

Os links para todas as referências feitas aqui estão disponíveis mais abaixo. Logo em seguida apresentamos outras sugestões de leitura organizadas em diferentes seções. Para quem se animou a aprender mais sobre ciência de dados e IA não deixe de conferir a seção “Primeiros Passos”. Os que já se converteram e buscam aperfeiçoar seus conhecimentos devem dar uma conferida em “Modelos, técnicas e ferramentas” ou “Dados e Repositórios”. Ainda não é exatamente o que você estava procurando? Confira as demais seções e nos diga o que esta faltando.

Se você tiver sugestões para melhorar este informativo temos todo o interesse em ouvi-las. Sugestões de novos links para as próxima edições também são bem vindas.