Prévia do material em texto
Universidade Federal de Goiás Escola de Engenharia Elétrica e da Computação Bacharelado em Engenharia Elétrica Plano de Ensino Componente Curricular Código Disc. Nome Carga Horária 165 ALGORITMOS E PROGRAMAÇÃO II Teórica Prática 45 15 Turma A: 2020/1 Professor: Jesus José de Oliveira Neto EMENTA DA DISCIPLINA Abstração; classe; objeto; herança; polimorfismo. Interface gráfica, entrada e saída (streams). Tratamento de exceção. Concorrência (threads). Ferramentas de desenvolvimento: testes de unidade; controle de versão e geradores (como GNU Make). Modelagem e especificação elementares de aplicações orientadas a objeto. Projeto orientado a objeto: noções, patterns e arquiteturas. Implementação de aplicações orientadas a objetos. OBJETIVOS DA DISCIPLINA Objetivo geral Fornecer subsídios para o projeto e implementação orientados a objeto, visando a estruturação de problemas segundo este paradigma e a utilização de ferramentas de desenvolvimento. Objetivos específicos Aprender os fundamentos teóricos a respeito do processo de desenvolvimento de aplicações segundo o paradigma denominado de orientação a objetos; Adquirir capacidade para empregar, de maneira eficaz e eficiente, a programação orientada a objetos para o desenvolvimento de aplicações segundo este paradigma; Conhecer, e ser capaz de utilizar, as ferramentas vinculadas à programação orientada a objetos disponíveis na linguagem de programação Java; Tornar-se capaz de desenvolver, integralmente, uma aplicação empregando o paradigma de orientação a objetos PROGRAMA Semana 1 (31/08 a 03/09) – Introdução à disciplina e metodologia de ensino. Linguagem Java e Ferramentas de desenvolvimento Semana 2 (10/09 a 14/09) – Conceitos de Programação Orientada a Objetos Objeto. Instância, Classe, Abstração, Atributo, Métodos. Semana 3 (17/09 a 21/09) – Conceitos de Programação Orientada a Objetos Objeto. Herança, Associação, Encapsulamento. Semana 4 (24/09 a 28/09) – Conceitos de Programação Orientada a Objetos Objeto. Polimorfismo, Interface; Semana 5 (01/10 a 05/10) – Modelagem e especificação de aplicações orientadas a objetos Semana 6 (08/10 a 15/10) – Tratamento de Exceções e Outras Técnicas Semana 7 (22/10 a 26/10) – Concorrência (Threads). Conceito de thread. Implementação de threads através de herança e implementação de interface. Métodos da thread. Semana 8 (29/10 a 05/11) – Concorrência (Threads). Threads: estados, prioridade, sincronização, comunicação. Semana 9 (09/11 a 12/11) – Teste de software Semana 10 (19/11 a 23/11) – Aplicações com Interface Gráfica em Java. AWT e Swing Semana 11 (26/11 a 03/12) – Aplicações com Interface Gráfica em Java. Tratamento de eventos em interface gráfica Semana 12 (14/12 a 17/12) – Projeto orientado a objeto LEGENDA DOS PROCEDIMENTOS DIDÁTICOS Legenda Descrição Objetivo AEX Aula teórica Transmitir conhecimento utilizando quadro ou slides. AP Aula prática Proporcionar ao aluno a aplicação prática do conteúdo ministrado em aula teórica. ED Estudo dirigido Desenvolver a capacidade analítica, capacidade de síntese, de avaliação crítica e de análise. OTR Outros Transmitir conhecimento utilizando quadro ou slides. RE Aula teórica com resolução de exercícios Desenvolver o raciocínio lógico, criatividade e capacidade de abstração e a capacidade de identificar, analisar e projetar soluções de problemas. SE Seminários Desenvolver o raciocínio lógico, criatividade, capacidade de abstração, capacidade para identificar, analisar, projetar soluções de problemas, a capacidade de comunicação oral e a capacidade de trabalhar em grupo. TG Trabalho em grupo Desenvolver a capacidade de comunicação oral e escrita. Capacidade de trabalhar em grupo. FERRAMENTAS E RECURSOS PARA O ENSINO REMOTO Fórum Pode ser utilizado isolado ou associado a outras ferramentas em atividades dirigidas. Nele, os participantes podem expressar sua opinião. É uma ferramenta assíncrona. Sua utilização considera aspectos qualitativos e quantitativos. Diário Permite aos participantes postarem suas reflexões acerca de um tema e o relato, de modo assíncrono, do seu processo de aprendizagem. Possibilita a interação apenas entre estudante e professor-tutor. Wiki Ferramenta assíncrona de escrita colaborativa. Permite edição coletiva dos documentos e atualização dinâmica. É necessário estar articulada a outra ferramenta, como o fórum e o chat, para que os participantes possam organizar suas ideias e traçar suas metas. Chat Ferramenta de comunicação síncrona, exigindo que os participantes da discussão estejam conectados simultaneamente, de modo síncrono, para que o processo de comunicação seja efetuado; bate-papo por meio de aplicativos de instant message (exemplo: Whatts app, Telegram, Discord, etc.). Lista de discussão Ferramentas de comunicação assíncronas. Caracteriza-se pelo recebimento e envio de mensagens por e-mail. Blog/ Videoblog Páginas pessoais da Internet cujo mecanismo possibilita registrar e atualizar em ordem cronológica, opiniões, fatos, emoções, imagens, além de outros conteúdos que se queira disponibilizar; Tarefa Consiste na descrição ou no enunciado de uma atividade a ser desenvolvida pelo participante, de modo assíncrono, que pode ser enviada em formato digital ao servidor da plataforma e será verificada posteriormente pelo professor-tutor; Aula remota Aula (preleção, demonstração, orientação) mediada por ambiente virtual em que professor e estudantes participam de modo síncrono, contendo recursos de interatividade (áudio, vídeo e/ou chat). Exemplos: Google Meet, MS Teams, Zoom, BBB, Whereby, etc.) Glossário Ferramenta que permite criar e atualizar uma lista de definições como em um dicionário, de modo assíncrono. Questionário Ferramenta assíncrona de recepção de materiais, possibilitando ao estudante submeter arquivos digitais, para posterior avaliação e feedback do professor. Podcast/ Videocast Ato de difundir mensagens de áudio e/ou vídeo pela Internet (ou de modo listado) em servidores de vídeos (Youtube, SnapTube, etc.). Permite ao participante criar arquivos de áudio ou vídeo para publicação e/ou difusão de conhecimentos, episódios, demonstrações, etc. Enquete online Recurso de interação para obtenção de respostas acerca de um tema, pesquisa ou questão posta no modo síncrono. CRONOGRAMA DE ENSINO E ATIVIDADES Dia/Semana #Aula FERRAMENTA EAD ENSINO/ATIVIDADE 31/08 a 03/09 4 Aula Remota Tarefa Aula Remota: Apresentação do plano de ensino da disciplina aos alunos. Revisão da Linguagem Java e Ferramentas de desenvolvimento. Compiladores; IDEs; tipos primitivos; estruturas condicionais; estrutura de repetição; funções/métodos. Tarefa: Resolução de exercícios propostos. 10/09 a 14/09 4 Aula Remota Chat Tarefa Aula Remota: Conceitos de Programação Orientada a Objetos -- Objeto/Instância, Classe, Abstração, Atributo, Métodos. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 17/09 a 21/09 4 Aula Remota Chat Tarefa Aula Remota: Conceitos de Programação Orientada a Objetos -- Herança, Associação, Encapsulamento. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 24/09 a 28/09 4 Aula Remota Chat Tarefa Aula Remota: Conceitos de Programação Orientada a Objetos -- Polimorfismo, Interface. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 01/10 a 05/10 4 Aula Remota Chat Tarefa Aula Remota: Modelagem e especificação de aplicações orientadas a objetos. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos.08/10 2 Chat Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. 15/10 2 Prova 1 Primeira Avaliação 19/10 a 23/10 4 Aula Remota Chat Aula Remota: Tratamento de Exceções e Outras Técnicas. Tratamento de exceções, try-catch- finally, throw e throws, Exceções verificadas e não verificadas. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. 26/10 a 30/10 4 Aula Remota Chat Tarefa Aula Remota: Concorrência (Threads). Conceito de thread. Implementação de threads através de herança e implementação de interface. Métodos da thread. Threads: estados, prioridade, sincronização, comunicação. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 05/11 a 09/11 4 Aula Remota Chat Tarefa Aula Remota: Teste de software. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 12/11 2 Prova 2 Segunda Avaliação 16/11 a 23/11 6 Aula Remota Chat Tarefa Aula Remota: Aplicações com Interface Gráfica em Java -- Tratamento de eventos em interface gráfica. Tratamento de eventos em interface gráfica; componentes do modelo de delegação de eventos; interfaces gráficas que interagem com o usuário. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 26/11 a 03/12 6 Aula Remota Chat Tarefa Aula Remota: Aplicações com Interface Gráfica em Java -- AWT e Swing. AWT e Swing AWT; containers e componentes; gerenciadores de layout, FlowLayout, BorderLayout, GridLayout; criação de layouts complexos. Chat: Comunicação para resolução de dúvidas sobre os assuntos tratados. Tarefa: Resolução de exercícios propostos. 07/12 a 10/12 4 Chat Fórum Chat: Comunicação para resolução de dúvidas sobre o trabalho final. Fórum: Esclarecimento de dúvidas pelo fórum da disciplina. 14/12 a 17/12 4 Trabalho Final Apresentação e entrega de um projeto orientado a objetos. 21/12 2 Avaliação Substitutiva Avaliação substitutiva de uma das provas PROCEDIMENTOS METODOLÓGICOS O processo de ensino-aprendizagem será orientado pela aplicação de diversas técnicas, de modo mesclado, coerente com os objetivos de aprendizagem e tipo de conteúdo. A disciplina será desenvolvida com as aulas expositivas dialogadas, debates e aulas práticas por meio de realização de atividades síncronas e assíncronas, utilizando um Ambiente Virtual de Aprendizagem (AVA). O Google Meet será o ambiente utilizado e o seu link é: https://meet.google.com/xch-yyov-pbo A dedicação do estudante na resolução das atividades desenvolvidas dentro e fora do AVA, bem como a revisão dos conteúdos apresentados e a supervisão do professor são fundamentais para que o aproveitamento seja satisfatório. No desenvolvimento das atividades remotas emergenciais, algumas poderão ser gravadas. Dessa forma, poderá haver a captura de imagem e voz do professor e dos estudantes. A gravação das atividades remotas ocorrerá a partir da anuência conjunta do docente responsável pela disciplina e os estudantes nela regularmente matriculados. Poderão ter acesso ao ambiente virtual de ensino, apenas o docente e os estudantes regularmente matriculados nesta disciplina. Depende de autorização do professor, o acesso de terceiros ao ambiente virtual, que porventura, não estejam diretamente envolvidos com as atividades nela desenvolvidas. Os materiais didáticos, que porventura, forem disponibilizados pelo docente, não poderão ser objeto de divulgação ao público externo, seja por meio de redes sociais, filmagens, vídeos, impressos de fotografias e quaisquer outros meios de publicação e comunicação. O material didático produzido e fornecido pelo docente deve ser utilizado apenas para fins educacionais e pedagógicos da disciplina. É proibida a reprodução e/ou a distribuição de trechos ou da integralidade das aulas gravadas sem a autorização expressa do professor. CRITÉRIO DE AVALIAÇÃO A avaliação de desempenho do aluno na disciplina é determinada pela entrega da(s) atividades programada(s), em conformidade com o cronograma, e com a(s) nota(s) obtida(s) na(s) unidade(s) avaliativa(s). As unidades avaliativas correspondem aos tipos de atividades desenvolvidas na disciplina. Assim, temos 02 unidades avaliativas: Unidade avaliativa 01 (Peso 0.25): Prova 1 Unidade avaliativa 02 (Peso 0.25): Prova 2 Unidade avaliativa 03 (Peso 0.30): Trabalho Final Unidade avaliativa 04 (Peso 0.20): ∑ Exercícios de programação Toda atividade terá o valor máximo de 10,0 pontos. Assim, se uma unidade avaliativa é constituída de duas atividades, a nota final da unidade avaliativa será a média aritmética simples de ambas. Para o caso do trabalho final, o aluno receberá uma nota individual e uma nota do grupo, e a nota final será a média aritmética simples de ambas. O trabalho final trata-se de uma aplicação completa que deverá ser desenvolvida pelos alunos. Eles serão divididos em equipes/trios que farão a implementação e a descrição de diagramas de classes da UML como parte da documentação da aplicação Fórmula de cálculo da Média Final (MF): MF = ∑ unidades avaliativas Será atribuída a nota 0,0 (zero) a qualquer atividade ou trabalho não realizado ou não entregue na data estipulada. O pedido de segunda chamada deverá seguir o estipulado pelo RGCG. O aluno que não comparecer a pelo menos 75% das aulas estará reprovado por falta. O aluno que não conseguir média final maior ou igual a 6,0 (seis) estará reprovado por média. BIBLIOGRAFIA Bibliografia Básica DEITEL, Paul J; DEITEL, Harvey M. Java: como programar. 8.ed. São Paulo: Pearson Education do Brasil, 2010, 1144 p., ISBN 9788576055631. Bibliografia Complementar The Java™ Tutorials (Oracle Tutorials and reference guides for the Java Programming Language) em: http://download.oracle.com/javase/tutorial/ WU, C. Thomas. An introduction to object-oriented programming with Java. 5th ed. -. Boston: McGraw Hill Higher Education, c2010, 987 p., ISBN 0073523305. Bibliografia Sugerida Furgeri, SERGIO. Java 6: Ensino didático: Desenvolvendo e Implementando Aplicações. São Paulo: Érica, 2008. Ziviani, Nivio. Projeto de Algoritmos, com implementações em Java e C++. São Paulo: Thomson Learning, 2007. JEDI – Java Education and Development Initiative. Curso de Introdução à programação I. Lições: 5, 8, 9, 10, 11 e 12. Disponível em http://jedi.wv.com.br/course/view.php?id=3. Acesso em 16 de fevereiro de 2011. JEDI – Java Education and Development Initiative. Curso de Introdução à programação II. Lições: 1, 2, 5, 7, 8, 9 e 12. Disponível em http://jedi.wv.com.br/course/view.php?id=4. Acesso em 16 de fevereiro de 2011. JEDI – Java Education and Development Initiative. Curso de Engenharia de Software. Lições: 2, 6 e 8.