Programação Orientada a Objetos II Definição de Diretrizes para o Semestre.
Transcript of Programação Orientada a Objetos II Definição de Diretrizes para o Semestre.
Programação Orientada a Objetos II
Definição de Diretrizes para o Semestre
Objetivo da Aula“Construir diretrizes para trabalhar o conteúdo de
Programação Orientada a Objetos II ao longo do semestre”
Como vamos avaliar se o objetivo foi atingido?
• Participação de TODOS durante o dia;• Quadro com as dificuldades, pontos fortes e visão de
futuro;• Lista de habilidades já desenvolvidas;
Plano de Trabalho• Qual minha experiência;• Minhas dificuldades, pontos fortes e visões de futuro;Apresentação
• Compreender melhor o perfil de vocês;• Consolidar resultado em um quadro guia para o semestre;Dinâmica: Dificuldades, Pontos
fortes e Visões de Futuro
• Rever alguns conceitos de Programação OO;• Reconhecer o conhecimento atual da turma para preparar as aulas
futuras;
Habilidades e Competências da Turma: Revendo os Conceitos.
• Visão geral do mercado de TI em Florianópolis;• Salários, opções de trabalho, cursos de graduação.O Mercado de TI em
Florianópolis: Possibilidades.
• Revisão do que foi construído durante a aula;• Próximas aulas;• Feliz páscoa...
Fechamento
Apresentação – Geral
• Kaléu Caminha, 21 anos;• 8ª Fase do curso de Sistemas de Informação
na UFSC;• 4 Anos de experiência com programação;• 1 ano de experiência em iniciação científica;• Experiência com Empresa Júnior, Centro
Acadêmico e Organização de Eventos;• Freelancer, Estagiário, CLT...• Cursos de Desenvolvimento Pessoal pela
UNIPAZ- SUL;
Apresentação – Competência Técnica
• Foco em Desenvolvimento Web com PHP5 OO, Interfaces Ricas com JavaScript e AJAX, XHTML, CSS;
• Uso de Diversos Frameworks e Construção de framework para interfaces gráficas;
• Java Durante todo o curso de Sistemas de Informação;
Apresentação – Atividades Atuais
• Professor SENAI Web Design, iniciação profissional e Programação OO;
• Freelancer em Desenvolvimento Web com Elgg, Wordpress e outros;
• TCC: Criação de um ambiente de suporte a Comunidades de Prática;
Apresentação - Contato
• http://kaleucaminha.com• [email protected]
Com o que quero trabalhar?
Quanto quero ganhar?
O que gosto de fazer?
O que mais gostei de fazer até agora?
O que acho que faço bem e que gosto de construir?
Com qual matéria mais me identifiquei?
O que não entendo?
Quais as atividades e matérias mais difíceis?
Quais conceitos ainda são confusos?
Dinâmica“O Objetivo dessa dinâmica é construirmos um quadro com as principais dificuldades que vocês tem em programação, seus pontos fortes (o que gostam de fazer) e o que buscamos para
o nosso futuro como profissionais.”
Dificuldades Pontos Fortes Visão de Futuro
Iniciando...
Criação de Ambientes Sociais para troca de
conhecimento;
Mestrado em Engenharia e Gestão do
Conhecimento;
Trabalhar com Ensino.
Uso de Frameworks, API’s, Design Patterns,
Libs, enfim, tudo que me ajuda a nunca repetir
trabalho;
Desenvolvimento de Interfaces e Design de
Interação;
Qualidade de Código e Código Limpo;
Aplicãções Sociais.
Testes de Software.
Simplicidade;
Algoritmos complexos e matemáticos.
Dificuldades Pontos Fortes Visão de Futuro
Esqu
ema
da D
inâm
ica Formação de
Pequenos Grupos (4 pessoas)
Cada aluno pode falar por
5 minutos sobre os itens
solicitados
Escolha de Relator para o Grupo e exposição para
toda a turma os itens apresentados.
Criação de Quadro de
Referência com as principais dificuldades,
pontos fortes e Visões de Futuro da
turma
20 min
2 min
30min
Habilidades e Competências“O Objetivo agora é ter uma visão ampla e clara das
competências técnicas em Programação que vocês já viram.
Para isso utilizaremos uma escala que vai de ‘Nunca ouvimos falar’ até ‘Somos experts’ .
Serão apresentados os temas, algum exemplo e cada aluno será chamado a responder alguma pergunta ou apresentar
algum exemplo.”
Programação Estruturada
Sequência / Linear
Estruturas de Decisão
Estruturas de Iteração
Exemplo de outra estrutura de decisão além do IF...
Exemplo de outra estrutura de iteração além do FOR...
Programação Orientada a ObjetosAbstração
Se esta classe pessoa fosse utilizada para registrar informações de alunos no sistema do SENAI. Quais atributos e métodos seriam relevantes?
E se utilizássemos a abstração Pessoa para um jogo como “the Sims”, quais métodos e atributos ela poderia ter?
Classes e Objetosclass Aluno
protected String matricula;protected String nome;protected Curso curso;...
public String getNome();public void setNome(String nome);public boolean estaMatriculado();...
Outro exemplo de classe do mundo real...
Aluno kaleu = new Aluno(“Kaléu Caminha”);
Aluno pedro = new Aluno(“Pedro Antônio”);
Aluno joana = new Aluno(“Joana Rebello”);
cursoInformatica.addAluno(kaleu);cursoInformatica.addAluno(pedro);cursoInformatica.addAluno(joana);
E alguns exemplos de objetos...
Variáveis e Tipos...String nome = “Kaléu Caminha”;Aluno kaleu = new Aluno(nome);Aluno pedro = new Aluno(“Pedro Antônio”);Aluno joana = new Aluno(“Joana Rebello”);
Curso cursoInformatica = new Curso(“Técnico em Informática”);cursoInformatica.addAluno(kaleu);cursoInformatica.addAluno(pedro);cursoInformatica.addAluno(joana);...
Tipos Primitivos
Tipos Compostos
Exemplos de tipos primitivos além de int...
Atributos e Encapsulamentopublic protected private
class JogoTabuleiro {
public Tipo qualquerAtributo; //não deve ser utilizado em nenhuma hipótese... protected Jogador jogador1;
protected Jogador jogador2;
private int controleJogadorDaVez;
}
Exemplos...
Métodos...public boolean realizaLogin(String login, String senha){
...return true; // Se login e senha existem.
}
public void enviaEmail(String destinatario, String mensagem, String assunto){
...}...
Tipo do valor de retorno Parâmetros
O que significa o “void mesmo?”
Associação, Composição e Agregação
Qual a diferença entre Associação e Composição?
Exemplos...
Herança
Outro Exemplo...
Polimorfismo...public int quadrado(int x){
return x * x;}
public float quadrado(float x){return x * x;
}...
class Moto extends Veiculo {...
public int getNumRodas(){return 2;
}...}
class Carro extends Veiculo {...
public int getNumRodas(){return 4;
}...}
...public int soma(int x, int y){
return x + y;}
public int soma(int x, int y, int z){
return x + y + z;}...
Classes Interface
Quem Realiza O que?
Onde mais podemos utilizar Interfaces?
Classes Abstratas
O que uma classe abstrata tem que uma interface não tem?
Como saber se devo utilizar uma ou outra?
Classes e Métodos estáticos
public class Calculo {
public static int soma(int x, int y){
return x+y;}public int multiplicacao(int
x, int y){return x*y;
}
}
...int valor1 = 10;int valor2 = 15;Int result = Calculo.soma(valor1, valor2);...
Qual a diferença entre métodos estáticos e não-estáticos?
IDE’s
Alguma outra?
Quais recursos você utiliza? Geração de código?
Interfaces Gráficas
Frameworks e Design Patterns
O que é um Framework? Tem um exemplo?
O que é um Design Pattern? Um exemplo?
E além...
O que mais foi visto em aula?
E fora do curso, viram algo diferente?
O Mercado de TI - PossibilidadesGames
DesktopCriação de
Sites e PortaisSofwtare Desktop
Banco de Dados
Games Celular
Aplicativos para redes sociais
Sistemas de Informações Educacionais
Engenharia e Gestão do
Conhecimento
Games Web / Flash
Sistemas Baseados em
Web
Qualidade de Software
Gestão de TI
Designer 3D
Engenharia de Software Hardware Ensino
O Mercado de TI - SaláriosCargo Valor MédioEstagiário PHP ~600,00Programador PHP/Javascript Júnior 1.300Programador PHP/Javascript Intermediário 1.700 / 2.000Programador PHP/Javascript Pleno 2.500 / 3.000Estagiário Java ~600.00Programador Java Júnior 1.600Programador Java Intermediário 2.000 / 2.400Programador Java Pleno 3.000 / 3.500Desenvolvedor Interfaces Médio 1.500 / 2.000
O Mercado de TI – Algumas Empresas de Floripa
Fechamento
• Obrigado e Feliz Páscoa.!!!!