Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Esquentando os motores para Algoritmos

29 de Setembro de 2014, 17:17, por Software Livre Brasil - 0sem comentários ainda

Depois de alguns semestres lecionando disciplinas mais avançandas nos cursos de Informática (Integrado e Licenciatura) do IFRN, em 2014.2 voltarei a lecionar uma básica. Aquela que eu considero como a mais importante do curso: Fundamentos de Lógica e Algoritmos. Sim, considero com a mais importante porque faça uma boa disciplina (aprenda de verdade, não é só ser aprovado) e tenha um restante de curso tranquilo. Não aprenda de verdade (embora seja aprovado) e padeça o resto do curso.

Justamente por isso, as discussões sobre como “ensinar algoritmos?” são sempre muito constante. Qual a melhor linguagem? Fazer no papel? Usar computador? O que mais pode ser usado? O que os outros fazer? São questões comuns. Por outro lado, existem várias iniciativas ao redor do mundo para o ensino de programação. Incluindo para pessoas comuns, que não usarão programação no seu dia-a-dia. Sou um grande fã delas.

Atualmente, minha linguagem preferida para ensino de programação é Python. E será utilizada como linguagem de programação para praticar o que veremos nas aulas de Algoritmos. Importante destacar que o objetivo não é o ensino de Python, ou uma outra linguagem de programação qualquer, mas sim os fundamentos de lógica de programação. A linguagem aqui é meio e não fim.

Mas antes irei utilizar outras ferramentas mais lúdicas, como o Code.org, uma das iniciativas citadas anteriores. O site em si é em inglês mas os tutoriais estão em portugês do Brasil. Os vídeos com as instruções do que fazer em cada aula estão legendados, mas parecem estar bugados. Na janela onde o vídeo aparece tem uma aba “Nenhum vídeo? Mostrar notas.” Clicando ali, é exibido o texto do que eles falam.

Outra ferramenta bem parecida com essa, é o Scratch. Sendo que essa você deverá baixar e instalar. Além de não ter o acompanhamento que tem no Code.org. Mas tem liberdade para criar mais coisas. O céu é o limite.

Evoluindo para Python, também usaremos uma ferramenta online para auxiliar o processo de aprendizado, Codecademy. Ele tem cursos de várias linguagens, não só Python. Em disciplinas futuras, podemos usar outras, como HTML/CSS e JavaScript. Álias, onde mais tenho utilizado o Codecademy é em disciplinas de desenvolvimento web. Com um bom retorno.

Um recurso que eu sinto falta no Codecademy é a possibiliade de fazer um cadastro como professor e montar turmas com alunos, pra facilitar o acompanhamento. O Code.org tem esse recurso, mas ainda preciso ver até onde vai.




Dois anos de professor efetivo do IFRN

1 de Março de 2014, 21:34, por Software Livre Brasil - 0sem comentários ainda

Hoje, 01/03/2014, completam exatos dois anos que assumi o cargo de Professor Efetivo do IFRN. Mas minha história com essa instituição começou bem antes. Podendo ser cronologicamente resumida da seguinte forma:

  • 1998-2001 – Aluno do curso Técnico em Informática Integrado com o Ensino Médio
  • 2002-2006 – Aluno do curso Tecnologia em Desenvolvimento de Software
  • 2011-2012 – Professor Substituto no Campus Parnamirim
  • 2012-atual – Professor Efetivo no Campus Ipanguaçu

Vez ou outra me perguntam o porquê de que virei professor. Não existe um motivo único (o financeiro é um deles, já que meu cargo anterior era o de nível médio, e este de nível superior), mas talvez o que mais me atraiu foi a possibilidade de influenciar positivamente a vida de pessoas através da educação.

Anos antes de vislumbrar essa possibilidade, eu me envolvi ativamente com o Movimento (Social) de Software Livre, quando era aluno do curso tecnólogo. Organizei eventos, participei como expectador e palestrantes de outros. Sempre na intenção de atrair mais usuários e colaboradores.

Nessa época, ficou claro para mim que software livre é a melhor solução no que diz respeito ao ensino e aprendizagem. No entanto, havia, e ainda há, uma certa resistência pela adoção de uma política pró-software livre nas instituições de ensino. Foi aí que pensei, juntamente com outros vários colegas do movimento:

Nós precisamos ‘tomar’ o lugar dos atuais professores. Temos de mudar o sistema por dentro.

Esse é um dos aspectos pontuais pelo qual tenho trabalhado para influenciar meus alunos, mas não se restrigindo a ele. Fico extremamente feliz  quando um aluno me diz que fez isso ou aquilo por minha influência, ou quando vem me pedir opinião sobre algo, inclusive sobre vida pessoal e profissional.

O exemplo recente mais marcante que tenho/lembro é de um aluno do Campus Natal Central do IFRN que conversei sobre a carreira/vida de professor e dias depois ele veio me agradecer por essa conversa ter sido motivação para o mesmo fazer o atual concurso para professor do Instituto, inclusive ficando em 1º lugar na prova escrita. Certamente será um novo colega de trabalho nos próximos meses.

Ainda tenho muito o que fazer e aprender sobre o ofício da docência, mas avalio que tenho feito um bom trabalho nesse período, em particular com ensino e extensão. Que muitos anos venham pela frente.

 




Uma nota sobre álgebra relacional e o concurso do IFRN

27 de Janeiro de 2014, 11:48, por Software Livre Brasil - 0sem comentários ainda

No concurso que eu fiz para professor efetivo de Sistemas de Informação do IFRN, uma das questões discursivas era sobre a álgebra relacional por trás dos modelos de banco de dados. Envolvia conceitos que pouca gente deve conhecer, embora todos que trabalhem com banco de dados usem isso na prática todos os dias. A questão era resolvida com uma linha, mas o conhecimento necessário para saber o que colocar nessa uma linha (um simples SELECT <campos> FROM <tabela> (ou coisa do tipo)), e saber que era somente uma linha, era o que estava de verdade sendo avaliado. Costumamos ter a insegurança de achar que respostas curtas e simples estão erradas.

Abri agora a prova que foi aplicada ontem(26/01/2014) e adivinhem sobre o que tratava a primeira questão discursiva, a primeira questão que o candidato iria ver ao abrir a prova? Sobre exatamente a mesma álgebra relacional. Sendo que dessa vez, o candidato teria que ser mais inventivo (não sei se intencional, mas em um concurso para professores, isso também tem um bom fator didático/pedagógico). No meu concurso, foi dado o modelo e pedia-se o SQL, nesse ano o próprio modelo tem que ser apresentado pelo candidato e depois ele escrever alguns SQL’s exemplificando os conceitos de Seleção, Projeção, Junção e Produto Cartesiano.

Dizem que provas[/questões de concursos] não medem o conhecimento de ninguém. Diria que aí estão exceções para comprovar essa regra(?). Questões muito bem elaboradas e que realmente exigia um bom conhecimento do candidato. Também acredito que, em ambas as situações, essas questões foi a desgraça de muita gente.

As provas e gabaritos do concurso desse ano estão aqui.




Ubuntu 12.04 LTS em um Asus Eee PC 1005PEB

19 de Setembro de 2012, 0:00, por Software Livre Brasil - 0sem comentários ainda

Em meados de 2010 comprei um netbook Asus Eee PC 1005. Como foi um semi-novo, comprado de um usuário de GNU/Linux, ele já veio com o Ubuntu 10.04, que era o último LTS lançado na época. E desde então estava com essa versão.

Agora que saiu o mais novo LTS, o 12.04, fiz a atualização. Mas em vez de formatar, e fazer uma instalação limpa, fiz a atualização completa, conhecida como dist-upgrade, como já tinha feito várias outras vezes. Esse tipo de atualização lhe dá a comodidade de não precisar fazer as configurações e instalações de aplicativos que sempre são feitas depois da instalação do sistema operacional. Mas sempre há o risco de algo sair errado.

E dessa vez saiu: a rede não era inicializada junto com o restante do sistema operacional, o touchpad travava vez ou outra e algumas vezes a tela ficou toda preta, o que forçava uma resetada na máquina. Para o primeiro problema, resolvi inicializando o serviço de rede manualmente (agradeço ao John Wendell pela ajuda com isso), o segundo colocava um mouse para poder mover o cursor, mas o terceiro teve consequências*, a ponto de me obrigar a fazer uma instalação limpa.

Antes de comentar sobre como foi o reconhecimento do hardware, alguns pontos sobre o processo de instalação:

  • sempre coloque o /home em uma partição diferente do /. Isso evita inconvenintes futuros, como ter de obrigatoriamente fazer backup antes de uma instalação dessas e restaurar depois;
  • uma novidade que eu gostei no instalador do Ubuntu 12.04 é o reconhecimento do teclado. Ele vai pedindo para você apertar algumas teclas e perguntando se o teclado tem algumas outras, com base nisso seleciona o tipo de teclado para você;
  • eu iria colocar para partição / com 10GB de tamanho, mas ele só permitiu 18GB. Não sei se isso é um valor mínimo definido, baseado sabe-se lá em que pela Canonical (o meu outro computador tem o / com 6GB há um bom tempo), ou é uma porcentagem em relação ao tamanho do HD.

Sem fazer configuração alguma após a instalação, a compatibilidade foi a seguinte:

Ubuntu 12.04 no Asus Eee PC

Ubuntu 12.04 no Asus Eee

  • Vídeo OK
  • Saída para datashow – OK. Só plugar que ele já faz o ajuste, pelo menos no datashow que testei.
  • Som – OK. Caixas internas e fone de ouvido.
  • Microfone – não testado.
  • Tecla Fn – OK
  • Touchpad – OK
  • USBs – OK
  • Placa de rede – OK
  • Rede sem fio – OK
  • Suspensão – OK

É isso. Estou bastante satisfeito com o Ubuntu 12.04.

* Depois eu fui descobrir que essa apagar acontecia quando se aumentava o brilho ao máximo na tela de boot. Deve ter um bug ali que quando o brilho chega ao máximo a tela fica preta. Bizonho isso.




Investigação e Extensão de uma Ferramenta de Auxílio ao Ensino de Algoritmos em Ambientes GNU/Linux – G-Portugol

14 de Fevereiro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

O título deste foi o título do meu trabalho de conclusão de curso para obtenção do diploma de bacharel em Ciência da Computação pela Universidade do Estado do Rio Grande do Norte (UERN).

A investigação se deu na medida em que pesquisei algumas ferramentas que pudessem ser utilizadas em disciplinas de algoritmos/introdução a programação em sistemas GNU/Linux. Em particular, refiro-me a ferramentas que pudessem compilar/executar programas escritos em portugol. O resultado dessa pesquisa pode ser resumida na tabela abaixo:

Tabela 1: Comparação entre ferramentas de auxílio ao ensino de algoritmos
Quila AlgoMais G-Portugol
Linguagem em que foi desenvolvido C++ Java C++
Licença GPL ??? GPL
Compilador x x
Interpretador x x
Editor x x
Nativo x x
Documentação Razoável Excelente
Ativo x
Usabilidade Boa Razoável Boa/Excelente
Instalação Difícil Muito difícil Difícil

Apresentando um pouco mais sobre cada um destas ferramentas:

  • Quila: a característica mais vantajosa dessa ferramenta é a sintaxe semelhante ao Pascal, mas com as palavras-chaves em português. Porém, esse interpretador só está disponível em formato de código-fonte, sendo necessário sua compilação para uso, que pode não ser trivial para quem está começando no mundo da computação. Atualmente o projeto está abandonado pelo seu autor original.
  • AlgoMais: é um interpretador de algoritmos que embora feita na linguagem Java, conhecida pela sua portabilidade, para ser executado em ambiente GNU/Linux é necessário uma série de ajustes manuais, o que o deixa inviável para iniciantes.
  • G-Portugol: é um projeto que envolve a definição de uma linguagem, também chamada de G-Portugol. Sua principal ferramenta é o GPT, que faz a compilação para linguagem de máquina, tradução para C e Assembly, e interpretação dos algoritmos. A outra ferramenta é o GPTEditor, editor para a linguagem com recursos de destaque de sintaxe e depuração.

Disso tudo, podemos deduzir que o projeto mais completo e bem acabado é o G-Portugol, incluindo a documentação. No entanto, a linguagem G-Portugol não é totalmente compatível com o Português Estruturado comumente apresentado nos cursos de algoritmos, não podendo ser completamente utilizado em um curso que envolvesse programação. Por exemplo, não havia o instrução “repita… até…” nem passagem de parâmetros por referência. E foi aí que entrou a “extensão”. Analisei o código fonte do GPT e fiz a inclusão do “repita… até…” e a correção de alguns bugs, além da documentação de todo esse processo, facilitando para que outros deem continuidade.

Quando propuz este trabalho, o professor da disciplina de orientação do TCC disse que compiladores são normalmente construídos durante uma disciplina. E, de fato, do ponto de vista técnico da implementação, do produto final produzido pelo meu trabalho, não há nada de grandioso ou inovador. Mas não era isso que eu tinha em mente.

Uma auto-restrição que apliquei foi a de que todo o código produzido deveria ser retornado para o projeto, já que este era um software livre. E realmente, este foi o maior trunfo deste trabalho, bastante elogiado pela banca, por sinal. Aquele não seria mais um trabalho encadernado e esquecido na biblioteca, de fato, trabalhos futuros partirão de onde parei. A partir do código que produzi. Este é o modelo que deveria ser utilizado pela instituições de ensino, principalmente pelas públicas.

Para quem tiver interesse, segue abaixo o trabalho escrito, devidamente licenciado em Creative Commons.

Até o próximo.