PROGRAMAÇÃO III
(ADSIS80_014)
Henrique Vignando
- Mestre em Ciências da Computação (UEM)
- Bacharel em Informática (UEM)
- Líder técnico e engenheiro de dados e software na Mentorstec
- 9 anos em desenvolvimento de software
- 2 anos com engenharia de dados
- 1 ano com liderança técnica.
- Palestrante no Pentaho Day 2019.
- Entusiasta cultural das rotinas e pipelines de dados, arquitetura de software, boas práticas e padronizações
- Algoritmos e Lógica de Programação I
- Algoritmos e Lógica de Programação II
- Estruturas de Dados I
- Estruturas de Dados II
- Programação I
- Programação II
- Banco de Dados I
- Banco de Dados II
Premissas

Plano de Ensino
- Ementa
- Objetivo / Justificativa
- Programa
- Avaliação
- Referências
Ementa
Mapeamento objeto/relacional, persistência de objetos, gerenciamento de transações, frameworks mvc para desenvolvimento web, desenvolvimento com mvc (elementos de visão, modelo e controle), programação concorrente, programação de aplicações em rede, manipulação de XML.
Objetivos
Conhecer princípios técnicas básicas da programação orientada a objetos;
Aplicar esses princípios e técnicas no desenvolvimento de programas computacionais orientados a objetos usando a linguagem JavaScript e seus frameworks.
Justificativa
Existem diversas linguagens de programação no mercado de trabalho, dentre elas uma linguagem que tem se destacado tanto acadêmica como comercialmente é a
linguagem JavaScript para desenvolvimento de softwares.
Esta disciplina visa capacitar o acadêmico a utilizar a linguagem JavaScript na programação de sistemas transacionais web orientados a objetos.
JavaScript

Programa
Características de linguagens de programação, compilação e interpretação de linguagens, linguagens tipadas e não tipadas.
Tipos, variáveis e atribuições.
Objetos, classes e métodos. Parâmetros e valores de retorno. Tipos numéricos
Construção de objetos, métodos de acesso e modificadores. Referências a objetos.
Elaborando aplicações gráficas.
Níveis de abstração e interface pública de classes, comentários e geração de documentação. Campos de instância. Implementando métodos e construtores.
Categorias de variáveis. Parâmetros de método implícitos e explícitos.
Testes unitários.
Elaboração de classes com testes.
Encapsulando atributos de objetos (modificadores de acesso com métodos de obtenção/modificação)
Uso de construtores
Associações simples entre classes usando atributos de instância.
Uso de arrays.
Associações com cardinalidade superior a 1 (um) usando arrays como atributos de instância.
Uso de ArrayList comparado ao uso de arrays.
Tipos numéricos, arrendondamento e a classe BigDecimal.
Conversão e coerção de tipos, classes equivalentes aos tipos primitivos.
Projetando classes: descoberta, coesão e acoplamento
Projetando classes: imutabilidade, efeitos colaterais, pré-condições e pós-condições.
Projetando classes: pacotes, escopo, métodos e variáveis estáticas.
Interfaces e polimorfismo: uso de interfaces e reuso, extraindo interfaces de classes.
Interfaces e polimorfismo: comportamento polimórfico.
Interfaces e polimorfismo: callbacks e inner classes.
Uso de frameworks de testes unitários.
Projeto com classes projetadas para comportamento polimórfico com testes.
Herança: hierarquias e implementação de subclasses.
Herança: sobreposição de métodos.
Herança: conversão entre subclasse e superclasse.
Herança: herança e polimorfismo, estudo da classe Object.
Model driven design
Test driven development
TDD + DDD
Acesso a banco de dados com JDBC (drivers, conexões, statements e resultsets)
Input/Output - readers, writers e streams
Input/Output - acesso randômico
Input/Output - fluxo de objetos
Avaliação
- 1º. bimestre:
- Prova (60%)
- AEPs (20%)
- PI (20%)
- 2º. bimestre:
- Prova (60%)
- AEPs (20%)
- PI (20%)
Desafio
Implementar uma calculadora usando
HTML CSS e JavaScript
UniCesumar ADS Programação III - Introdução
By Henrique Vignando
UniCesumar ADS Programação III - Introdução
Aula1
- 46