330 likes | 483 Views
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?.
E N D
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;
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 • kaleu.caminha@gmail.com
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.” Pontos Fortes Visão de Futuro O que não entendo? Quais as atividades e matérias mais difíceis? Quais conceitos ainda são confusos? Dificuldades 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? Com o que quero trabalhar? Quanto quero ganhar? O que gosto de fazer?
Iniciando... Testes de Software. Simplicidade; Algoritmos complexos e matemáticos. Dificuldades 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. Pontos Fortes Criação de Ambientes Sociais para troca de conhecimento; Mestrado em Engenharia e Gestão do Conhecimento; Trabalhar com Ensino. Visão de Futuro
Esquema da Dinâmica 2 min Criação de Quadro de Referência com as principais dificuldades, pontos fortes e Visões de Futuro da turma 20 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 Objetos Abstraçã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 “theSims”, quais métodos e atributos ela poderia ter?
Classes e Objetos 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); classAluno protectedString matricula; protectedString nome; protected Curso curso; ... publicStringgetNome(); publicvoidsetNome(String nome); publicbooleanestaMatriculado(); ... Outro exemplo de classe do mundo real... 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 Exemplos de tipos primitivos além de int... Tipos Compostos
Atributos e Encapsulamento public protected private classJogoTabuleiro { public Tipo qualquerAtributo; //não deve ser utilizado em nenhuma hipótese... protected Jogador jogador1; protected Jogador jogador2; privateintcontroleJogadorDaVez; } Exemplos...
Métodos ... publicbooleanrealizaLogin(Stringlogin, String senha){ ... returntrue; // Se login e senha existem. } publicvoidenviaEmail(Stringdestinatario, 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 class Moto extends Veiculo { ... publicintgetNumRodas(){ return 2; } ... } class Carro extends Veiculo { ... publicintgetNumRodas(){ return4; } ... } ... publicint quadrado(int x){ return x * x; } publicfloat quadrado(floatx){ return x * x; } ... ... publicint soma(int x, int y){ return x + y; } publicint 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 publicclass Calculo { publicstaticint soma(int x, int y){ returnx+y; } publicintmultiplicacao(intx, int y){ returnx*y; } } ... int valor1 = 10; int valor2 = 15; Intresult = 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?
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?
Fechamento • Obrigado e Feliz Páscoa.!!!!