Introduzir os conceitos de programação Orientada a Objetos e utilizá-los no desenvolvimento de uma aplicação em Engenharia Elétrica. A aplicação é desenvolvida de forma incremental, isto é, são agregadas novas funções a cada aula. Desenvolver a capacidade dos alunos para organização, construção, teste e depuração de programas. Objetivo de Aprendizagem 1: Aplicar conceitos de orientação a objetos (classe/objeto, atributo, método, herança, polimorfismo, classe abstrata, métodos e atributos estáticos, pacotes), programação defensiva e manipulação de arquivos para implementar especificações de software, individualmente e em grupo. Objetivo de Aprendizagem 2: Aplicar conceitos de depuração para corrigir defeitos encontrados. Objetivo de Aprendizagem 3: Relacionar os conceitos de orientação a objetos com a solução de problemas de Engenharia Elétrica.
Aspectos básicos de programação. Conceitos de orientação a objetos. Encapsulamento. Ciclo de vida de objeto. Herança. Polimorfismo. Programação defensiva. Manipulação de Arquivos. Desenvolvimento de programas em Engenharia Elétrica.
O curso consta de aulas semanais e atividades extra-classe. Programa: 1. Histórico. 2. Aspectos básicos de codificação: estilo de codificação, nomes de variáveis, comentários. 3. Conceitos de orientação a objetos: classe e objeto, atributo, operação e método. 4. Conceito de encapsulamento, modos de visibilidade. 5. Ciclo de vida de um objeto: alocação na memória, construtor e destrutor. 6. Apontadores. 7. Tipos de dado abstrato. 8. Pacotes. 9. Conceito de herança. 10. Classe abstrata e classes concretas. 11. Métodos e atributos estáticos. 12. Polimorfismo: sobrecarga de operação, redefinição de operação e variável polimórfica. 13. Programação defensiva, exceção e tratamento de erros. 14. Manipulação de dados e operação em arquivos. 15. Programação de aplicações em Engenharia Elétrica.
[1] BUDD, T. An Introduction to Object-Oriented Programming 3rd Edition. Addison-Wesley. 2001. [2] LAFORE, R. Object-Oriented Programming in C++. 4th Edition. SAMS. 2002. [3] SAVITCH, W. C++ Absoluto. Ed. Pearson/Addison Wesley. 2004. [4] STROUSTRUP, B. The C++ Programming Language. 4th Edition. Addison-Wesley. 2013.