Programa de Ensino 20201
Aprovado pelo Departamento em: 3-8-2020
- Identificação:
- 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
- Curso(s):
- Ciências da Computação (208)
- Sistemas de Informação (238)
- 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
- 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.
- 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:
- Apresentar as principais tecnologias utilizadas no desenvolvimento de aplicações exemplo.
- Possibilitar que os estudantes pratiquem o desenvolvimento de aplicações para web.
- Possibilitar que os estudantes aprendam a instalar, configurar e administrar servidores web.
- 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
- 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
- Tecnologias de Comunicação
- 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
- 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
- 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.
- 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.