Departamento de Informática e Estatística

Programas de Ensino
Visitante (Entrar)

Programa de Ensino 20201

Aprovado pelo Departamento em: 3-8-2020

  1. Identificação: Visualizar em PDF
    • Disciplina: INE5646 - Programação para Web
    • Carga horária: 72 horas-aula      Teóricas: 36      Práticas: 36
    • Período: 1º semestre de 2020 até a presente data
  2. Curso(s):
    • Ciências da Computação (208)
    • Sistemas de Informação (238)
  3. Requisito(s):
    • Ciências da Computação (208) (currículo: 19961)
      • INE5384 - Estruturas de Dados
    • Ciências da Computação (208) (currículo: 20071)
      • INE5417 - Engenharia de Software I
    • Sistemas de Informação (238) (currículo: 20001)
      • INE5609 - Estruturas de Dados
    • Sistemas de Informação (238) (currículo: 20111)
      • INE5605 - Desenvolvimento de Sistemas Orientados a Objetos I
  4. Ementa:
    • Arquiteturas. Serviços. Protocolos de comunicação entre cliente e servidor e entre servidores. Representação de dados no cliente. Acesso a bases de dados. Escalabilidade. Linguagens de modelagem da interface com o usuário. Linguagens de programação no cliente e no servidor. Segurança. Instalação e configuração de servidores. Prática de programação.
  5. Objetivo(s):
    • Geral: Capacitar os estudantes para que compreendam os fundamentos conceituais e tecnológicos bem como as linguagens pertinentes ao desenvolvimento de aplicações para web.
    • Específicos:
      1. Apresentar as principais tecnologias utilizadas no desenvolvimento de aplicações exemplo.
      2. Possibilitar que os estudantes pratiquem o desenvolvimento de aplicações para web.
      3. Possibilitar que os estudantes aprendam a instalar, configurar e administrar servidores web.
  6. Conteúdo Programático:
    • Parte 1 - Linguagens para Desenvolvimento Web [14 horas-aula]
      • Visualização de dados
        • HTML
        • CSS
          • Frameworks
          • Pré-processadores
      • Representação de dados
        • XML
        • JSON
      • Programação
        • Visão Geral sobre PHP, Java, Python e Ruby
        • JavaScript
          • Elementos de Programação Orientada a Objetos
          • Elementos de Programação Funcional
          • Técnicas de Processamento Assíncrono: Callback, Promise, Observable, Async/Await
          • Modularização
          • Bibliotecas
          • Linguagens Alternativas: TypeScript e Elm
    • Parte II - Modelagem de Aplicações para Web [42 horas-aula]
      • Modelo Cliente-Servidor
        • Protocolos de Comunicação
          • HTTP
          • Websocket
        • Tecnologias de Comunicação
          • Ajax
          • SSE
      • Finalidade
        • Aplicações orientadas a serviço
          • Protocolo SOAP
          • Estilo Arquitetural RESTful: REST, GraphQL e Protobuf
        • Aplicações orientadas a página
          • Múltiplas Páginas
          • Página Única
          • Progressivas
          • Browser APIs
      • Arquiteturas
        • Monolíticas
          • Em camadas
        • Distribuídas
          • CQRS
          • Microserviços
      • Aspectos de Segurança
        • Transmissão da Informação
        • Autenticação do Usuário
        • Autorização para Acesso aos Recursos
        • Protocolo OAuth 2
          • OpenID Connect
          • JSON Web Token
        • Protocolo HTTP
          • Política de Mesma Origem
          • Cabeçalhos de Segurança
          • Filtros
          • Cookies
      • Operações de E/S Escaláveis
        • Acesso a webservices
        • Acesso a bases de dados
      • Técnicas de Desenvolvimento
        • No lado servidor
          • Domain Driven Design
          • Event Driven Design
          • Event Sourcing
          • Programação Reativa
        • No lado cliente
          • Componentes Web
          • Design Responsivo
          • Material Design
          • Gerenciamento de Estado
          • Processamento de Fluxos de Dados
          • MVC
          • Fluxo Unidirecional: Redux, MVI
    • Parte III – Estudo de Um Servidor de Aplicações [16 horas-aula]
      • Servidor Node.js
        • Características:
          • Ferramenta npm
          • Biblioteca libuv
          • Event Loop
          • Streams
          • Bibliotecas
        • Instalação, configuração e gerenciamento
  7. Bibliografia Básica:
    • LINDLEY, Cody. Front-end Developer Handbook 2019. Frontend Masters, 2019. Disponível em https://raw.githubusercontent.com/FrontendMasters/front-end-handbook-2019/master/exports/Front-end%20Developer%20Handbook%202019.pdf
    • MARDAN, A. Practical Node.js, 2nd ed, Apress, 2018. Disponível em https://itbook.download/topic/Practical_Node_js_2nd_Edition
    • KALBACH, James. Design de navegação web: otimizando a experiência do usuário. Porto Alegre: Bookman, 2009. xiii, 427p. ISBN 9788577804917.
    • SEBESTA, Robert W. Programming the world wide web 2009. 5th ed. Boston: Addison Wesley, c2010. xviii, 734p. ISBN 9780136076636.
    • SILVA, Maurício Samy. HTML 5: a linguagem de marcação que revolucionou a web. São Paulo: Novatec, 2011. 320 p. ISBN 9788575222614.
    • EVANS, Eric. Domain-driven design: atacando as complexidades no coração do software. Rio de Janeiro: Alta Books, 2009. xxviii, 499 p. ISBN 9788576083603.
  8. Bibliografia Complementar:
    • AMUNDSEN, Michael. Building hypermedia APIs with HTML5 and Node. Beijing: O'Reilly, 2011. xvii, 219 p. ISBN 9781449306571.
    • BONÉR, Jonas. Reactive Microservices Architecture. Sebastopol: O’Reilly Media, Inc, 2017. 84 p. ISBN 9781491994368.BURNS, Brendam. Designin Distributed Systems. Sebastopol: O’Reilly Media, Inc, 2017. 160 p. ISBN 9781491983638.
    • FREDERICK, Gail Rahn; LAL, Rajesh. Dominando o desenvolvimento web para smartphone: construindo aplicativos baseados em JavaScript, CSS, HTML e Ajax para iPhone, Android, Palm Pre, BlackBerry, Windows Mobile e Nokia S60. Rio de Janeiro: Alta Books, 2011. xiii, 344 p. ISBN 788576085140.
    • GHOSH, Debasish. Functional and Reactive Domain Modeling. New York: Manning Publications Co, 2017. 322p, ISBN 9781617292248.
    • HERRON, David. Node Web Development. Birmingham: Packt Publishing Ltd, 2013. 230p. ISBN 9781782163305.