Disciplinas relevantes
Apresentarei aqui as disciplinas que cursei durante o Bacharelado em
Ciência da Computação e que foram as mais relevantes não somente para
a iniciação científica em si, mas também para toda a minha formação
acadêmica e para as decisões que tomei.
As primeiras disciplinas introdutórias relacionadas à computação,
MAC0110 - Introdução à Computação e MAC0122 - Princípios
de Desenvolvimento de Algoritmos, foram particularmente
importantes para mim porque, ao contrário de muitos dos meus colegas,
meu conhecimento prévio de programação era muito baixo: antes de
entrar na faculdade eu só havia tido um breve contato com a linguagem
BASIC e mal conhecia o conceito de algoritmo. Com essas
disciplinas eu pude me familiarizar com programação imperativa, com a
linguagem C e, principalmente, conheci a idéia de eficiência
em programação. Cabe mencionar que essa idéia deveria ter sido melhor
desenvolvida com a disciplina MAC0323 - Estruturas de Dados,
mas esta infelizmente não foi dada com a profundidade adequada.
Na área mais teórica, as disciplinas MAT0138 - Álgebra I para
Computação e MAT0213 - Álgebra II me apresentaram
conceitos que são fundamentais na área pela qual optei, além de me
colocarem em contato com padrões e técnicas para enunciar e demonstrar
teoremas. Infelizmente, como mencionei na parte de desafios e frustrações, a maneira como cursei
os primeiros semestres do curso acabou evitando que eu me dedicasse
adequadamente a essas disciplinas. O mesmo ocorreu com as disciplinas
MAT0139 - Álgebra Linear para Computação e MAC0300 -
Métodos Numéricos da Álgebra Linear.
Felizmente, eu apreciei e me dediquei bastante a uma das disciplinas
mais importantes para a área que escolhi e para a minha iniciação
científica: MAC0315 - Programação Linear. Apesar do conteúdo
mais teórico, gostei muito desta disciplina mesmo na época em que eu
priorizava a parte mais prática da computação. Quando já estava
tendendo a me decidir pela área teórica, fui monitor da disciplina
para relembrar e solidificar os conceitos. Isso se mostrou útil tanto
para a iniciação como para ajudar a compreender o conteúdo de outra
disciplina relevante: MAC0450 - Algoritmos de Aproximação,
matéria que me colocou em contato com técnicas importantes da
combinatória poliédrica, como o primal-dual.
Quando cursei a disciplina MAC0414 - Linguagens Formais e
Autômatos, não lhe dei a devida relevância porque na época eu não
conhecia a real importância do conceito de reconhecimento de
linguagens. Isso me foi apresentado posteriormente na disciplina
MAC0430 - Algoritmos e Complexidade de Computação, na qual
pude compreender idéias extremamente importantes para a área de
otimização combinatória, como NP-completude.
As disciplinas MAC0328 - Algoritmos em Grafos e MAC0338 -
Análise de Algoritmos foram extremamente importantes tanto para a
iniciação científica como para minha formação acadêmica. Pude
solidificar e aprofundar meu conhecimento sobre eficiência de
algoritmos, aprendi conceitos importantes de grafos e otimização
combinatória e tive os meus primeiros contatos com a linguagem
CWEB e com a plataforma SGB. Estas duas disciplinas
provavelmente foram as mais relevantes para minha iniciação
científica. Cabe mencionar que elas tiveram grande peso na minha
escolha pela área teórica, em parte devido à excelente didática dos
professores José Coelho e Cristina Gomes Fernandes. Foi no período em
que as cursei que escolhi o Coelho como meu orientador de iniciação.
Mas a disciplina que pode ser realmente considerada o meu divisor de
águas, aquela que me convenceu a esquecer o desenvolvimento de
software e considerar a área acadêmica, foi MAC0436 - Tópicos de
Matemática Discreta, ministrada pelo professor Yoshiharu Kohayakawa. Foi
nessa disciplina que eu comecei a apreciar a beleza de certas
demonstrações matemáticas através do estudo de problemas combinatórios
que são simples de enunciar mas extremamente difíceis de provar. O que
me atraiu no conteúdo da disciplina foram as técnicas e argumentos
sofisticados que à primeira vista são indigestos mas, uma vez
compreendidos, tornam-se ferramentas poderosas que ajudam a obter
demonstrações surpreendentemente elegantes. Cursar essa disciplina
apesar do susto inicial foi provavelmente uma das melhores decisões
que tomei ao longo de todo o curso.
Diante da minha decisão de fazer mestrado em otimização combinatória,
cursei antecipadamente, por recomendação de meu orientador, algumas
disciplinas de pós-graduação. Aqui cabe enfatizar que a disciplina
MAC5770 - Introdução à Teoria dos Grafos, ministrada pelo
professor Paulo Feofiloff,
foi extremamente útil não somente em termos de conteúdo, mas também
porque o professor foi muito rígido em questões de formalidade e
corretude, e isso contribuiu muito para aprender a redigir
demonstrações.
Também foi interessante cursar a disciplina MAC5781 - Otimização
Combinatória, cujo conteúdo incluía os mesmos problemas da
iniciação. Apesar da aparente redundância, a disciplina complementou
a iniciação e vice-versa, pois em nosso projeto estudamos aspectos
mais relacionados à implementação dos algoritmos enquanto na
disciplina aprofundamos a teoria. Foi interessante ver os problemas a
partir de pontos de vista diferentes.
|