Desenvolvimento de software para web
2024/2 - Turma 0613
Ementa
Arquitetura de aplicações Web; Protocolos de comunicação na Web; Web Design; User eXperience; JavaScript; HTML; CSS; HTML DOM; Frameworks para desenvolvimento front-end; JSON; Comunicação assíncrona na web; Comunicação front-end e back-end; Desenvolvimento de APIs REST sobre o HTTP.
Competências
* Compreender questões relacionadas ao desenvolvimento de software para a internet e dos diversos cenários relacionados a este contexto, como o desenvolvimento de software seguindo as diretrizes de um Framework front-end e a comunicação com um serviço back-end
* Desenvolver senso crítico face à realidade de tantas possibilidades para o desenvolvimento de aplicativos para web.
Objetivos
OBJETIVO GERAL
* Desenvolver um software web utilizando recursos e ferramentas do desenvolvimento de front-end moderno e comunicação com um backend
OBJETIVOS ESPECÍFICOS
* Desenvolver um software web utilizando framework de desenvolvimento front-end
* Desenvolver um mecanismo de comunicação front-end e back-end
* Desenvolver um software web com funcionalidades como processamento de entrada de dados do usuário e navegação de página
Programa
* Protocolo envolvido na comunicação na Web (HTTP)
* Arquitetura de aplicações Web
* Utilização de frameworks e ferramentas para desenvolvimento front-end
* Modelo de comunicação entre navegador (cliente) e servidor web
* Programação front-end: HTML, CSS, JavaScript
* Manipulação do DOM
* Framework e biblioteca de desenvolvimento front-end
* Padrão arquitetural MVC
* Data binding
* Processamento de eventos
* Formulários: entrada de dados, tratamento de dados e validação
* Desenvolvimento orientado a componentes
* O formato JSON
* Desenvolvimento orientado a serviços
* Injeção de dependência e utilização de serviços em componentes
* Requisições assíncronas
* Comunicação entre front-end e back-end
* Armazenamento de dados no navegador (HTML5)
Metodologia
A disciplina faz parte do Programa de Extensão Interdisciplinar (PEI) denominado “Tecnologias para a Vida", que é compartilhado com os cursos do departamento de Computação do CEULP e tem como meta oferecer à comunidade acesso às tecnologias emergentes da área da computação com pleno entendimento de seus impactos no âmbito do mercado, da sociedade e do ser humano, o que acontece por meio do conhecimento construído no ambiente acadêmico pelo trabalho interdisciplinar realizado pelos alunos.
Nesse sentido, o Aporte Teórico-metodológico de Competências da disciplina será oferecido por meio de aulas expositivas, realização de atividades em sala de aula, discussões sobre métodos e abordagens para o desenvolvimento de aplicativos, apresentação e compartilhamento de resultados de experiências.
O Trabalho Discente Efetivo (TDE) se dará, em cada aula, por meio de atividades práticas relacionadas ao desenvolvimento de aplicativos utilizando recursos fornecidos por APIs e bibliotecas de desenvolvimento, construindo um aplicativo completo, de forma progressiva e incremental. Nestas atividades os alunos deverão se aprofundar no assunto com o apoio do material indicado e seguindo as instruções passadas pelo professor, compartilhar com a sua equipe ou com a classe o conhecimento obtido.
A disciplina pressupõe a utilização da pesquisa-ação na qual o pesquisador intervenha dentro de uma problemática social, analisando-a e anunciando seu objetivo de forma a mobilizar os participantes, desenvolvendo habilidades e competências. O método propicia investigar sua própria prática de maneira reflexiva envolvendo vários atores, acadêmicos e da sociedade, para solucionar problemas.
As atividades são organizadas em três etapas:
* Etapa 1: Fundamentação: conceitos de projeto de software, definição de problema e solução, apresentação de resultados, por meio de metodologias como storytelling, conceitos de aplicatições para web e fundamentos do projeto gráfico de telas utilizando sistemas de design de interface e componentes gráficos; contato com a ideia principal do contexto sobre o qual os alunos trabalharão durante o semestre;
* Etapa 2: Desenvolvimento de pequenas soluções: aprofundamento do entendimento dos conceitos e recursos disponibilizados por uma plataforma e biblioteca de programação de aplicatições web; desenvolvimento incremental da solução proposta para o problema identificado na etapa anterior;
* Etapa 3: Produção da solução final: refinamento e produção completa da solução proposta para o problema identificado na etapa 1, socializando os resultados por meio de apresentações semanais em formato de pitch até o momento de apresentação final do resultado em um evento de maior alcance, com participação do público externo e do público-alvo identificado na etapa 1.
Web Aula na plataforma Canvas: 03 aulas online serão disponibilizadas em um sistema web, compostas por recursos didáticos - como textos, apresentações e vídeos - e atividades individuais ou em grupo, seguindo as determinações da Portaria MEC nº 2.117, de 06 de dezembro de 2019.
Avaliação
O aluno será avaliado ao longo do semestre letivo em duas avaliações de grau, a saber:
Grau Um (G1):
- Atividades em sala (implementação com ou sem defesa): 4,0
- Prova presencial e individual, com conteúdo do primeiro bimestre letivo: 6,0
Grau Dois (G2):
- Atividades em sala (implementação com ou sem defesa): 4,0
- Prova presencial e individual, com conteúdo do semestre: 6,0
A Média Parcial (MP) será a média ponderada entre G1 e G2. Logo, MP = (G1 + 2 x G2) / 3.
Será aprovado o aluno que alcançar a MP igual ou superior a 6,0 (seis).
Para este conjunto de disciplinas não existe a possibilidade de Exame Final (EF).
Bibliografia
Básica
MAZZA, Lucas. HTML5 e CSS3: Domine a web do futuro. São Paulo: Casa do Código, 2012.
EIS, Diego. Guia Front-End: O caminho das pedras para ser um dev Front-End. São Paulo: Casa do Código, 2015.
PORTELA, F.; QUEIRÓS, R. Introdução ao Desenvolvimento Moderno Para a Web: Do Front-End ao Back-End. Uma Visão Global!. 6. ed. Lisboa: FCA, 2018.
Complementar
ALVES, William P. Desenvolvimento e design de sites. São Paulo: Érika, 2014. E-book. [Minha Biblioteca]. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788536519012. Acesso em: 04 mar. 2023.
ALVES, William P. HTML & CSS: aprenda como construir páginas web. São Paulo: Expressa, 2021. E-book. [Minha Biblioteca]. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9786558110187/. Acesso em: 04 mar. 2023.
ALVES, William P. Projetos de Sistemas Web: conceitos, estruturas, criação de banco de dados e ferramentas de desenvolvimento. São Paulo: Érika, 2015. E-book. [Minha Biblioteca]. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788536532462/. Acesso em: 04 mar. 2023.
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. Tradução de Daniel Vieira. 7. ed. São Paulo: Pearson Education do Brasil, 2018. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Loader/168492. Acesso em: 04 mar. 2023.
KALBACH, James. Design de navegação web. São Paulo: Grupo A, 2009. E-book. [Minha Biblioteca]. Disponível em: https://integrada.minhabiblioteca.com.br/reader/books/9788577805310. Acesso em: 04 mar. 2023.
Material Digital
ALURA. Estruturação de Páginas Usando HTML e CSS. Disponível em: https://www.caelum.com.br/apostila/apostila-html-css-javascript.pdf. Acesso em: 04 mar. 2023.
MOZILLA DEVELOPER NETWORK. MDN Web Docs. Disponível em: https://developer.mozilla.org/pt-BR/. Acesso em: 04 mar. 2023.
REACT.JS. Getting Started - React. Disponível em: https://pt-br.reactjs.org/docs/getting-started.html. Acesso em: 04 mar. 2023.
W3 SCHOOLS. CSS Tutorial. Disponível em: https://www.w3schools.com/css/default.asp. Acesso em: 04 mar. 2023.
W3 SCHOOLS. HTML Tutorial. Disponível em: https://www.w3schools.com/html/default.asp. Acesso em: 04 mar. 2023.
W3 SCHOOLS. JavaScript Tutorial. Disponível em: https://www.w3schools.com/js/default.asp. Acesso em: 04 mar. 2023.
BATTISTI, Matheus. Disponível em: https://www.youtube.com/watch?v=FXqX7oof0I4&list=PLnDvRpP8BneyVA0SZ2okm-QBojomniQVO. Acesso em: 04 mar. 2023.