Músicas de PCS3110 – Algoritmos e Estruturas de Dados

Ao final de cada aula de PCS3110 – Algoritmos e Estruturas de Dados para a Engenharia Elétrica os professores colocavam uma música de encerramento. Nas aulas em que fui responsável, escolhi algumas músicas da minha playlist relacionadas aos conceitos da aula (muitas vezes envolvendo algum trocadilho). Seguem as aulas, as músicas e as explicações até para eu não esquecer! (Alguém poderia dizer que se a piada fosse tão boa, não precisaria de explicação, mas era uma questão de contexto).

Continue reading

Plugin do VS Code para reconhecer a linguagem de PCS3110

Por mais que eu goste de ensinar escrevendo código na lousa, isso não é prático no ensino a distância. Então criei um plugin para o VS Code que reconhece as palavras reservadas definidas no pseudocódigo que usamos em PCS3110 – Algoritmos e Estruturas de Dados para a Engenharia Elétrica. Essa linguagem é baseada na usada pelo livro do Cormen, Leiserson, Rivest e Stein (2009).

Continue reading

Algoritmos e Estruturas de dados de PCS3110 em Python

Montei um repositório ( https://github.com/levysiqueira/py-pcs3110) com a implementação em Python de vários dos algoritmos ensinados em PCS3110 – Algoritmos e Estruturas de Dados para a Engenharia Elétrica, na Escola Politécnica da USP.

Os algoritmos usados em PCS3110 foram adaptados dos livros do Cormen, Leiserson, Rivest e Stein (2011) e do Feofiloff (2009) pelos professores de PCS3110: Anarosa Alves Franco Brandão, Anna Helena Reali Costa, Marcos Antonio Simplício Júnior, Romero Tori e por mim. A implementação em Python foi feita por mim.

Gerência e Qualidade de Software na Univesp

Em 2018 fui responsável por uma disciplina na Univesp, que é uma universidade virtual pública do estado de São Paulo. A disciplina em questão foi Gerência e Qualidade de Software, assunto que já ministrei durante alguns anos uma disciplina de pós-graduação.

O conteúdo do curso inclui vídeo-aulas, as quais estão disponíveis no Youtube. Em duas aulas chamei o pessoal da Codus Tecnologia, através do Vinícius Oyama, para discutir V&V na prática e entrevistar alguns profissionais sobre qualidade de código.

Continue reading

Crítica: Livro “Clean Architecture”

O desenvolvimento de software já teve vários assuntos da moda. Lembro da moda de design patterns: as pessoas colocavam com orgulho no currículo o conhecimento de patterns. Agora design patterns estão fora de moda; aparentemente as pessoas estão se preocupando mais com frameworks / tecnologias específicas e aspectos gerenciais do que questões de design.

Por mais que eu não concorde com essa priorização, a moda faz sentido. Modas desse tipo não são uma mera questão de preferência pessoal ou a visão de alguma celebridade da área. O avanço das tecnologias é tão grande que frameworks resolvem grande parte dos problemas com simplicidade e, com isso, a gestão se tornou novamente o gargalo.

O interessante das modas é que elas são cíclicas… Sim, já houve uma moda sobre aspectos gerenciais. Isso não quer dizer que voltaremos a falar de design patterns; apesar de cíclica, há uma evolução. Então quando a moda de design voltar – e ela vai voltar -, outras questões de design serão importantes.

Todo esse preâmbulo é para falar do livro Clean Architecture, do Robert C. Martin. Como todo livro do “tio” Bob, ele é bem escrito e tem uma leitura fácil e recheada de relatos de experiência interessantes e alguns insights. Continue reading

Template em Word para Dissertações e Teses da EPUSP

Disponibilizei no GitHub um template em MS Word para monografias, dissertações e teses da Escola Politécnica da Universidade de São Paulo. O template atual disponível pela divisão de bibliotecas não usa os recursos de estilos do Word, o que o torna desnecessariamente manual.

Esse template é baseado no que fiz para a minha tese, em 2010. Fiz algumas atualizações para considerar a 4ª edição das Diretrizes e Dissertações da EPUSP.

Já tinha disponibilizado esse documento para alguns alunos, orientados e colegas. Agora torno-o público.

Usando este template, recursos como o de equação (a partir do Word 2007) e uma ferramenta como o Zotero você pode lidar com a gestão e formato das referências. Sem entrar na discussão LaTex X Word, mas já entrando, você só precisa usar LaTex se quiser…

Crítica: Livro “Princípios de Análise e Projeto de Sistemas com UML”

Capa - Princípios de Análise e Projeto de Sistemas com UML

A visão de que a melhor forma de se desenvolver software orientado a objetos é através da criação e do refinamento de modelos UML perdeu sua força depois da aceitação e disseminação dos métodos ágeis em meados da década de 2000 – especialmente por causa do Extreme Programming (XP). Com isso, a UML perdeu bastante da sua importância, sendo vista por alguns mais radicais apenas como uma notação para permitir a discussão (lembrando da “UML como rascunho”, apresentado por Fowler no seu livro UML Distilled).

Mas, claro, a UML e processos similares ao Processo Unificado (UP) ainda são aplicados em diversos contextos – métodos ágeis não são para todos os projetos. Pensando nesses contextos, o livro Princípio de Análise e Projeto de Sistemas com UML, do Eduardo Bezerra, apresenta a UML sugerindo o seu uso ao seguir um processo similar ao UP. O livro parece ser baseado no processo descrito no livro do Larman (Applying UML and Patterns), mas acrescenta algumas técnicas e heurísticas bem interessantes (questões de coesão e acoplamento, técnicas de análise OO, persistência, etc.).

Continue reading

Resultado do Painel na Campus Party 2014

Participei hoje de um painel na Campus Party 2014 sobre o uso de métodos ágeis em projetos de software livre. Além disso, também se discutiu o emprego de métodos ágeis em startups e o uso de métodos ágeis em grandes empresas. Participaram do painel José Honorato Ferreira Nunes (mediador), Alan Braz e Dairton Bassi.

O vídeo do painel deve ficar disponível em breve no site da Campus Party. Ao invés de reapresentar o meu ponto de vista, colocarei alguns artigos sobre esses temas para quem quiser se aprofundar um pouco mais sobre esses assuntos. Continue reading

Painel na Campus Party 2014

 

Dia 29/01/2014 participarei de um Painel na Campus Party 2014, às 11:45, no palco Sócrates. O painel é intitulado “Modelo de desenvolvimento ágil em software livre”. O objetivo é discutir a aplicação de método ágeis em projetos de software livre e em startups. Além de mim, o painel contará com a presença de José Honorato Ferreira Nunes, Alan Braz e Dairton Bassi. Segue a descrição sobre o painel:

Scrum, XP e Kanban são metodologias de desenvolvimento ágil que possibilitam grande redução do tempo de cada iteração de desenvolvimento, aumentando a velocidade do aprendizado através de feedback real dos clientes/usuários. Vamos debater como aplicar essas metodologias no desenvolvimento do software livre e também como trazer essa prática de startups para dentro de grandes equipes, tornando o desenvolvimento mais adaptável as mudanças.

Apesar de não ser um evento científico, esse evento será uma oportunidade interessante para disseminar o conhecimento de Engenharia de Software para a comunidade. Em especial, devo atacar alguns preconceitos comuns sobre métodos de desenvolvimento de software. O painel deverá ser gravado e ficará disponível no site do Campus Party. Pretendo, posteriormente, referenciar aqui alguns artigos e trabalhos que citarei sobre o assunto.