COORDENAÇÃO DE SISTEMAS DE INFORMAÇÃO PLANO DE CURSO Disciplina: Programação II Área: Exatas CHS: 04 CHT: 128 Curso: Bacharel em Sistemas de Informação Professor: Ronaldo Ferreira da Silva Período: 3º ano Semestre/Ano: 1º/2016 1. EMENTA Conceitos de orientação a objetos: herança, polimorfismo, encapsulamento, abstração de dados. Programação orientada a objetos: Aplicações dos Conceitos de orientação a objetos. Aplicações em JAVA. Laboratórios de Programação. 2. OBJETIVOS A disciplina aborda o ensino de linguagens de programação para desenvolvimento de aplicações Web multiplataforma, especificamente utilizando a linguagem Java, abortando conceitos teóricos sobre desenvolvimento de sistemas para Web com recursos e conceitos da orientação a objetos, de alto nível e utilizando padrões, e sua aplicabilidade com utilização de laboratório de programação. Abordar de forma clara e objetiva, tendo como meta a compreensão do poder e organização da linguagem Java e uso dos seus principais pacotes de classes e interfaces disponibilizados no JDK (Java Development Kit), assim como a utilização e compreensão de recursos e tecnologias client side para criar e disponibilizar aplicações acessíveis e responsivas. Desenvolvimento de aplicações robustas de alto nível com utilização dos recursos da plataforma J2EE, APIs, e principais servidores de aplicações e web container disponíveis no mercado. Alta produtividade utilizando métodos ágeis e frameworks conceituados no mercado. Introdução ao desenvolvimento de aplicações mobile. 3. METODOLOGIA DE ENSINO A metodologia utilizada será composta por aulas expositivas teóricas e práticas no laboratório de informática, utilização de ferramentas de desenvolvimento disponíveis e IDEs (Integrated Development Environment) com a finalidade de obter maior produtividade e fixação do conteúdo. 4. CRITÉRIOS DE AVALIAÇÃO A média bimestral será composta de duas notas sendo uma valendo 40% (quarenta por cento), que poderá ser uma avaliação, como também um trabalho prático individual ou em grupo. A outra nota, valendo 60% (sessenta por cento) da média, será obtida de avaliação teórica. 5. CONTEÚDO PROGRAMÁTICO Período I Bimestre II Bimestre III Bimestre Conteúdo Introdução a Programação Web - Protocolo HTTP - Paradigma request response Tecnologias server side e client side - PHP, ASP, JSP, JavaScript, HTML, CSS Introdução ao desenvolvimento web com Java - Conceitos - Tecnologias Java para desenvolvimento Web Servidores de aplicações - Servidores full profile - Uma breve introdução e configuração do GlassFish Servlets Formulários HTML (Hyper Text Markup Language) O framework front-end Twitter Bootstrap - Um pouco de HTML, CSS e Javascript Enviando dados de formulários HTML para um Servlet Envio, recebimento e tratamento de parâmetros O métodos getParameter() O arquivo descritor de aplicação (web.xml) Deploy de uma aplicação web Java Ciclo de vida de um servlet Servlets e Threads Servlets e banco de dados O padrão Connection Factory Um pouco sobre o SGBDR MySQL Relembrando algumas classes da API JDBC Criando uma classe de conexão com o banco de dados MySQL Importando a classe para a aplicação Dividindo a aplicação em camadas Breve comentário sobre o modelo MVC (Model Control View) Breve comentário sobre o padrão DAO (Data Access Object) Criando as classes Modelo, DAO e Servlet Criação de uma aplicação simples CRUD seguindo os conceitos abortados Guardando estados de clientes A classe HttpSession e rastreio de sessões A classe HttpCookies A linguagem JSP (JavaServer Pages) Conceitos Arquitetura Elementos básicos JSP Fases da execução de um arquivo JSP IV Bimestre Expression Language Acesso aos parâmetros Ações JSP JavaBeans Diretivas JSTL (JSP Standard Tag Library) Estrutura e sintáxe Database Access taglib Desenvolvimento rápido Java com frameworks Aprofundando um pouco mais no padrão MVC - Hibernate, conceitos e aplicação - Conhecendo um pouco a JPA (Java Persistence API) - Spring MVC -- Principais características -- Implementação de um sistema utilizando o Spring MVC - VRaptor -- Principais características -- Implementação de um sistema utilizando o VRaptor - JSF (Java Server Faces) -- Principais características -- Implementação de um sistema utilizando JSF Introdução ao desenvolvimento mobile com Android 6. ATIVIDADES NA MODALIDADE SEMIPRESENCIAL (Art. 80 da Lei 9.394/96 (LDB)) Data prevista Conteúdo programático Não haverá atividades nesta modalidade 7. AULAS DE CAMPO E/OU PRÁTICA (Anexar projeto de ensino) Data prevista 30/04/2016 Conteúdo programático O FLISOL - Festival Latino Americano de Software Livre é um evento global que aborda diversas ferramentas free/open source, incluindo Sistemas Operacional, ferramentas de desenvolvimento, administração, monitoramento, etc. Os acadêmicos desta disciplina deverão participar de palestras e oficinas que abordam ferramentas e metodologias para desenvolvimento de aplicações Web. 06/2016 A Campus Party é um dos eventos de Internet mais do mundo, com palestras, workshops e oficinas sobre os mais variados temas relacionados a tecnologia da informação. 10/2016 A Latinoware é um evento que abre espaço para discussões e reflexões sobre a utilização do Software Livre na América Latina, na programação está incluso palestras sobre hardware e softwares livres. Obs.: Os projetos de ensino, serão desenvolvidos e anexados quando a programação dos eventos forem disponibilizados. 8. BIBLIOGRAFIA 8.1 BÁSICA 1. CANDENHEAD Rogers, LAMAY Laura - Aprenda em 21 dias Java 2. 4ª Edição - Editora Campus, 2005 2. JÚNIOR Jandl Peter, Java 6 - O guia do programador. 1ª edição - Editora Novatec, 2006. 3. GEARY David, HORSTMANN Cay, Core JavaServer Faces - Alta Books 2012 4. HEMARAJANI Anil, Desenvolvimento ágil em Java com Spring, Hibernate e Eclipse, Person 2006 8.2 COMPLEMENTAR 1. SILVA, Osmar. Programando em Java 2 interfaces gráficas e aplicações práticas com AWT e Swing, Ed. Érica, 2004.GAMMA, E. Padrões de projeto, soluções reutilizáveis de software orientado a objetos. Primeira Edição, Bookman, 2006. 2. Larman, C. Utilizando UML e Padrões, uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Terceira Edição, Bookman, 2007. 3. Flanagan, D. Java o guia essencial. Quinta Edição, O'reilly, Bookman, 2006. 5. CARDOSO, Caique, Orientação a Objetos na Prática - Aprendendo Orientação a Objetos com Java. 1ª edição - Editora Ciência Moderna, 2006. 6. BUDD, T. An Introduction to Object-Oriented Programming. ThirdEdition, Addison-Wesley, 2002. 7. BOENTE, Alfredo., Aprendendo a Programar com Java 2, 1ª edição - Editora Brasport, 2003. 8. BARNES, D. J., KÖLLING, M., Programação Orientada a Objetos com Java. Uma Introdução Prática Usando o BLUEJ 9. DEITEL, H. M., DEITEL, P.J. Java Como Programar. 6ª Ed., Pearson Prentice Hall, 2005 UNIVERSIDADE ESTADUAL DE GOIÁS - CÂMPUS POSSE, em 15 de fevereiro de 2016. Aprovado por: Data de aprovação: 15/02/2016 _______________________________ Professor(a) da Disciplina _______________________________ Coordenador(a) do Curso _______________________________ Coordenador(a) Pedagógico(a)