O Mestrado
Tudo começou ainda em 2011. Vir para os Países Baixos, estudar Ciência da Computação na Universidade de Utrecht. Começou como um sonho, uma imagem borrada e distante, mas que cada vez mais foi se aproximando até o ponto onde não havia mais volta: no dia 02 de Setembro de 2012 eu acordei e meu quarto estava praticamente vazio, só com as malas ao pé da cama… E às 11:30 eu embarquei no avião que ao decolar começaria essa jornada fantástica.
Bom, depois de já ter falado aqui no blog do dia-a-dia por aqui, e de coisas interessantes que fiz nas horas livres até agora, acho que chegou a hora de falar da motivo “oficial” pelo qual estou aqui, chegou a hora de falar do meu mestrado em Ciência da Computação na Universiteit Utrecht.
Mais especificamente, vou tentar explicar o que diabos estou estudando e o que pretendo fazer no futuro (próximo)… O nome oficial do programa de mestrado que estou seguindo é “M.Sc in Computing Science” com especialização em “Programming Technology”. O programa tem duração prevista de 2 anos e é um mestrado acadêmico, ou seja, com intenção de preparar para a pesquisa. Aqui na Holanda é bem clara a diferença entre os mestrados profissionalizantes (geralmente duram 1 ano) e os de pesquisa (2 anos). Na nossa linha de pesquisa em “Programming Technology” está incluída muita programação funcional, implementação de ferramentas e linguagens de programação, otimização, compiladores, etc. Enfim, tudo o que fica “por baixo” de linguagens de programação.
Para dar uma boa idéia do que mais exatamente eu estou estudando, nada melhor do que a lista de todas as disciplinas que cursei/vou cursar:
No experimentation project (INFOMEPCS) e na tese, pretendo desenvolver pesquisa em um tema relacionado à área de programação massivamente paralela e/ou implementação de programas funcionais acelerados em hardware. Isso, pelo menos, é o que eu quero. Porém, muitas conversas com possíveis orientadores ainda vão acontecer nos próximos meses…
Já que estamos falando de tempo, vou explicar como funciona o calendário acadêmico aqui em Utrecht também: Cada disciplina é ministrada durante um período de tempo chamado “bloco”. Um bloco dura em média 11 semanas, e cada ano acadêmico é dividido em 4 blocos. E como uma imagem fala mais que mil palavras, aí vai calendário com todos os 8 períodos que formam o meu mestrado:
Como dá pra ver, a gente tem bem pouca folga por aqui… :P Claro, há as férias de verão (6 semanas) e uma pausa para o Natal (10 dias), mas não há NENHUMA pausa entre um bloco e outro. Há as semanas de “retake”, que ficam NO MEIO de cada bloco, ou seja, são semanas sem aula, mas com bastante trabalho pra entregar.
Mesmo assim, não posso reclamar. O trabalho é muito, mas, afinal das contas, gosto muito do que estou fazendo. As disciplinas e os projetos dão trabalho, mas também são inspiradores :) O “repositório” com os arquivos das disciplinas que já cursei até agora também estão numa seção aqui do blog (1o. e 2o. blocos), assim como fiz com a graduação.
Dentre todo o conteúdo das disciplinas, posso destacar dois projetos finais como as coisas mais legais que fiz nos dois primeiros blocos:
Generic Pandoc: Projeto final da disciplina “Generic Programming”. Envolvia um estudo de como aplicar técnicas de programação genérica em Haskell para aperfeiçoar o Pandoc.
Haskell Ants EDSL: Projeto final da disciplina “Advanced Functional Programming”, consistia em implementar uma linguagem de domínio específico (embutida em Haskell), para participar de uma competição de simulação de colônia de formigas. Tem um post aqui no blog sobre esse projeto.
Por enquanto é isso! Até os próximos blocos, até os próximos projetos!