Este é o wiki da disciplina CES-22, Programação Orientada a Objetos, do curso de Engenharia de Computação do ITA. O objetivo é reunir aqui todo material de suporte à disciplina e estabelecer um canal de comunicação aberto entre alunos e professores da disciplina.
Filosofia da Disciplina
A idéia do curso de Programação Orientada a Objetos é dar ao aluno embasamento necessário para compreender e aplicar os conceitos de orientação a objetos no desenvolvimento de software. Estes conceitos podem ser aplicados às diversas linguagens orientadas a objetos existentes.
CES-22 não será focado em uma linguagem somente. Sempre que possível, explicaremos os conceitos de forma universal, e exemplificaremos em algumas das linguagens orientadas a objeto atuais. Neste semestre, grande parte dos nossos exemplos e laboratórios será dada nas linguagens Java e Ruby, por serem os representantes mais eminentes de dois paradigmas de orientação a objetos (tipagem estática X tipagem dinâmica). C++, por sua importância no desenvolvimento de sistemas de "baixo nível" (mais próximos da máquina, como sistemas operacionais e software embarcado), também será abordado, de forma mais superficial, principalmente no que diz respeito a algumas de suas diferenças filosóficas em relação ao Java.
Desta forma, o curso não será um tutorial de programação em determinada linguagem nem explorará exaustivamente todas as construções, sintaxe e bibliotecas da linguagem. O aluno, no entanto, deverá se tornar proficiente em pelo menos uma linguagem orientada a objetos para desenvolver o software referente ao projeto final de curso. Deverá buscar esta proficiência por conta própria, utilizando-se dos inúmeros recursos disponíveis na internet, e dos diversos livros especializados. O aluno está livre para utilizar qualquer linguagem no projeto final, desde que compatível com o paradigma orientado a objetos.
Como esperado de um aluno do ITA, nosso curso visará formar "Engenheiros de Concepção", não meros "Técnicos de Programação". Engenheiros que compreendam o funcionamento das ferramentas que utiliza, não simplesmente as memoriza ou as toma como verdadeiras ou definitivas. As linguagens de programação evoluem e se tornam obsoletas rapidamente, mas os conceitos aprendidos são úteis por toda carreira do engenheiro.
Para reforçar o caráter conceitual do nosso curso, ensinaremos alguns dos padrões de projetos mais utilizados no desenvolvimento OO. O conhecimento de padrões de projeto é essencial ao engenheiro de computação moderno, e nos ajuda a compreender como as técnicas de orientação a objetos podem ser utilizadas para contribuir para o desenvolvimento de software de maior qualidade.
Mecânica do curso
Avisos (ex.: alterações de datas/horários, labs, etc) serão fornecidos no aqui. Usem um leitor de RSS para não perderem um aviso importante. Utilizem o forum integrado a este wiki para discutirem assuntos relacionados a esta disciplina, fazerem sugestões, etc.
Aulas Expositivas
Sala 2017
- Segundas, 10:10am - 11:00am
- Segundas, 11:10am - 12:00am
- Quartas de Semanas Ímpares, 10:10am - 12:00am
Labs
Sala 190
- Quartas de Semanas Pares, 10:10am - 12:00am
Provas
- 1a. Prova - 7a. Semana, Segunda - 08/09/2008
- 2a. Prova - 15a Semana, Segunda - 10/11/2008
Projeto Final (Exame)
- Definição do Tema e Grupos - 01/09/2008
- Relatório Parcial - 28/09/2008
- Entrega e Apresentação Final - 01/12/2008 a 05/12/2008
Avaliação
- 1o. Bimestre
- Prova - 70 %
- Labs - 30%
- 2o. Bimestre
- Prova - 30%
- Labs - 70%
- Exame
- Projeto (Inclui todas etapas) - 100%
Final = (1o. Bim. + 2o. Bim + Exame) / 3
Cronograma
Referências e Links
Estudo
Livros
Links Recomendados
Links Úteis (Compartilhados por vocês)