segunda-feira, 25 de fevereiro de 2013

Sala Mundo 2011

Em 2011, partcipei do evento Sala Mundo. Hoje, arrumando minha sala, encontrei o caderno que nos entregaram (ver abaixo escaneado).

Este evento valeu a pena principalmente pelas palestras de Miguel Nicolelis e Ricardo Semler. Os demais palestrantes foram meros coadjuvantes.

sábado, 23 de fevereiro de 2013

Indicações de blogs: Papo de Aluno e Adonai Sant'Anna

A primeira indicação surgiu de uma excelente ideia de um professor da UFC, Wladimir Araújo Tavares: um blog que abre espaço para que alunos participantes do programa Ciência Sem Fronteiras relatem suas experiências:

http://papodoaluno.blogspot.com.br/

Outro blog  que recomendo fortemente é o do professor de Matemática da UFPR Adonai Sant'Anna:

http://adonaisantanna.blogspot.com.br/

São muitos os posts que valem a pena a leitura. Destaque para este:

Universidades federais finalmente expostas na Scientific American Brasil

sábado, 16 de fevereiro de 2013

Visita ao Instituto de Computação da UFAL

No dia 8 de fevereiro de 2013 estive no Instituto de Computação da Universidade Federal de Alagoas (IC-UFAL). Tenho uma ligação especial com este Instituto pois a UFAL é a minha Alma Mater. Foi lá que, em 1994, concluí o curso de Ciência da Computação (sou da turma 1990). Foi lá também que, em 1995, comecei a lecionar como Professor Substituto.

Novo prédio do Instituto de Computação


Até hoje estão lá vários colegas que foram meus professores e também colegas. E até mesmo alguns alunos meus tornaram-se professores lá.



Estive lá para apresentar a palestra "Métodos Ágeis na UTFPR" (ver slides aqui). Além disso, assisti a uma palestra muito interessante de alunos Diogo Fonseca, Hermes Vilar e Vitor Silva do professor Baldoino Neto. O tema foi "Automated Refactoring: An Introduction to JDT and LTK".

O trabalho do professor Baldoino Neto é bem interessante. Junta Engenharia de Software com Inteligência Artifiicial. Há uma possibilidade de estabelecermos algum projeto de pesquisa no futuro.

Infelizmente não consegui encontrar pessoalmente o professor Evandro de Barros Costa, que foi meu orientador de TCC e atualmente é Diretor do IC. Mas como espero voltar em julho para o Congresso da Sociedade Brasileira de Computação, devo reencontrá-lo em breve. Aproveito para agradecê-lo pelo convite da palestra, e ao professor Leandro Sales (que foi meu aluno no CEFET-AL) pela pronta resposta a minhas mensagens.

Automated Refactoring: An Introduction to JDT and LTK




Monumento na UFAL em homenagem aos perseguidos pela ditadura

Monumento na UFAL em homenagem aos perseguidos pela ditadura

Monumento na UFAL em homenagem aos perseguidos pela ditadura

Uma das várias placas de alunos formados em Ciência de Computação na UFAL. Turma 2000.

Uma das várias placas de alunos formados em Ciência de Computação na UFAL. Turma Realidade Virtual.



Antiga sala do professor Chico Potiguar (MAT).




Antiga sala do professor Chico Potiguar (MAT).

Corredor do prédio do velho bloco de Matemática e Computação






 Mais fotos:











Eu e o prédio onde estudei ao fundo.

Engarrafamento na saída da UFAL


 

terça-feira, 6 de novembro de 2012

Verificação de Programas

A aula de hoje foi minha última aula de Lógica para Computação no 1o. semestre (letivo) de 2012. Foi sobre Verificação de Programas. Os slides usados estão abaixo:




Verificação de Programas from Adolfo Neto


Além de apresentar os slides, gosto de, durante a aula, mostrar páginas relacionadas ao tema, para ilustrar o assunto.

Alguns dos links foram:

terça-feira, 30 de outubro de 2012

Test-Driven Development: Teste e Design no Mundo Real, de Mauricio Aniche - parte 2

Como escrevi em post anterior, estou lendo o livro sobre TDD do Mauricio Aniche.

Terminei hoje de ler os Capítulos 9 e 10.

O Capítulo 9 trata de TDD e Encapsulamento. Segundo Aniche, "encapsular é esconder os detalhes de como a classe realiza sua tarefa; as outras classes devem conhecer apenas o quê ela faz." Encapsulamente sempre foi um dos quesitos principais da Orientação a Objetos (OO). Lembro de textos que li quando OO ainda era novidade nos cursos de graduação em Computação no Brasil (na década de 1990, quando estudei na UFAL) e todos os textos enfatizavam a importância do encapsulamento.

Neste capítulo, Aniche apresenta o exemplo de um Processador de Boletos.  Primeiro apresenta um design com encapsulamento falho, mostra como os testes junto com o conhecimento de design OO indicam esta falha e depois apresenta a correção.

O núcleo do TDD
Fonte: http://www.javacodegeeks.com/2012/05/test-driven-development-win-win.html

 Entre outras coisas, apresenta conceitos como "Tell, Don't Ask", "Lei de Demeter", "intimidade inapropriada", "classes anêmicas". Enfim, aprendi bastante com este capítulo.

O Capítulo 10 é sobre Testes de Integração e TDD. Apresenta o que são Testes de Sistema, Testes de Integração e Testes de Unidade. Discute quando não usar Mocks. Ensina a fazer testes de DAOs. Questiona se devemos usar TDD em Testes de Integração ou em Aplicações Web. Tudo muito bem didático e fácil de entender.
  

segunda-feira, 29 de outubro de 2012

Test-Driven Development: Teste e Design no Mundo Real, de Mauricio Aniche

Estou lendo o livro Test-Driven Development: Teste e Design no Mundo Real, de Mauricio Aniche.



Recomendo-o fortemente a todos os interessados em Desenvolvimento de Software.

Ainda não terminei de ler. Estou começando o Capítulo 9. Mas tudo o que já li até agora já foi o suficiente para compensar o investimento de tempo na leitura*.

Por exemplo, o Capítulo 7 trata de TDD e Coesão.

O que é uma classe coesa? Segundo Aniche, "uma classe coesa é justamente aquela que possui apenas uma única responsabilidade."

Os testes que fazemos ao praticar TDD "podem nos avisar sobre problemas de coesão em nossas classes".

Aniche identificou alguns (anti-)padrões na prática de TDD que nos ajudam a encontrar problemas de coesão:
  • Muitos Testes Para Um Método
  • Muitos Testes Para Uma Classe
  • Cenário Muito Grande
  • Testes em Método Que Não É Público

Quando um dos padrões acima acontece durante a prática de TDD, é provavelmente hora de refatorar a classe que está sendo testada para melhorar sua coesão. No capítulo, Aniche dá exemplos dos padrões e mostra a solução para os exemplos.

Ao ler o livro, além de aprender sobre TDD você também aprende sobre Orientação a Objetos (e o livro faz referências a textos importantes da área) e sobre Desenvolvimento de Software em geral.

Leia a parte 2.


* Disclaimer: recebi uma cópia para avaliação da Casa do Código.

quinta-feira, 25 de outubro de 2012

BRACIS 2012

Participei como voluntário do BRACIS 2012, evento que congrega o SBIA, o SBRN e outros eventos menores.

Como neste momento estou trabalhando pouco com Lógica para Computação (meu foco no momento tem sido Engenharia de Software) não estava tão interessado assim nas palestras do evento. Fui mais como voluntário mesmo para ajudar os professores Myriam, Gustavo e Ernesto, que fazem parte da organização.

Fiquei um pouco decepcionado com o público. Pouquíssima gente (para o que eu esperava). Poucos alunos de graduação.

Um destaque positivo: uma aluna do Doutorado em Engenharia Elétrica e Informática Industrial da UTFPR, Sandra Venske, ganhou um dos prêmios do SBRN (ver imagem abaixo). A orientadora dela, Myriam Delgado, é professora do DAINF e também faz parte do Corpo Docente do PPGCA.

Prêmio recebido por artigo da aluna Sandra Venske, orientanda da a professora Myriam Delgado (DAINF).

Símbolo do BRACIS na camiseta dos voluntários do evento.


PS: o nome deste blog é uma homenagem a este livro.