1 / 31

Introdução à Ciência da Computação-2

Introdução à Ciência da Computação-2. Fabio Nakano ( fabionakano@usp.br ) Por favor colocar no assunto: “ICC2 - <assunto>” Bloco A-1, segundo andar, sala 77. USEM COM SABEDORIA!!!. O profissional de SI da EACH. Ser capaz de entender os processos dentro da empresa em que se inserir

haven
Download Presentation

Introdução à Ciência da Computação-2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução à Ciência da Computação-2 • Fabio Nakano (fabionakano@usp.br) • Por favor colocar no assunto: “ICC2 - <assunto>” • Bloco A-1, segundo andar, sala 77. USEM COM SABEDORIA!!!

  2. O profissional de SI da EACH • Ser capaz de entender os processos dentro da empresa em que se inserir • Ser capaz de aplicar seus conhecimentos para a melhoria desses processos • Resolver problemas!!! • Saber programar é essencial, e tem mais!!!

  3. Dá para resolver tudo com programas? Conseguimos descrever qualquer processo usando uma linguagem como as de programação? Dado que conseguimos descrever o processo como um programa, esse programa retorna uma solução? Dado que retorna uma solução, o tempo gasto é aceitável?

  4. ICC, AED Conseguimos descrever qualquer processo usando uma linguagem como as de programação? Dado que conseguimos descrever o processo como um programa, esse programa retorna uma solução? Dado que retorna uma solução, o tempo gasto é aceitável?

  5. Fiquei P....!!! • Fui ajudar a minha mulher a pegar as compras na AVON. • Como eu queria ter uma lista ordenada por nome do produto!! Lição: Saber Computação/Algoritmos não serve só para usar computadores, serve para poupar trabalho e paciência!!!

  6. Saber Programar é essencial • Um programa é um conjunto de rotinas. • Um processo dentro da empresa é um conjunto de rotinas. Entender/criar um programa é como entender/criar um processo dentro da empresa!

  7. Um bom programa é... • Correto, • Claro (organizado, limpo,...), • Amigável para o usuário • Amigável para os colegas que têm que lê-lo • Estruturado, • Comentado, • Documentado. • Reutilizável

  8. O que você já sabe? • Programação básica em JAVA • Chamadas de função, • Passagem por referência e por parâmetro • Estratégia de solução de problemas • Recursão • Estruturas básicas • vetores • Matrizes • Tipos Abstratos de Dados

  9. O que vc vai aprender neste curso • Programação JAVA • Abstração, Objeto, • Herança • Polimorfismo • Sobrecarga de operadores • Algoritmos • Busca • Ordenação • Noções de análise de algoritmos • Estruturas de dados • Hashing

  10. O primeiro ponto serve para facilitar as tarefas do ciclo de vida do software: • Análise do problema • Projeto do software • Implementação do software • Teste do software • Manutenção do software • A DOCUMENTAÇÃO É FEITA EM TODAS AS ETAPAS!

  11. Os outros pontos têm a ver com Conseguimos descrever qualquer processo usando uma linguagem como as de programação? Dado que conseguimos descrever o processo como um programa, esse programa retorna uma solução? Dado que retorna uma solução, o tempo gasto é aceitável?

  12. As próximas matérias • Matemática Discreta • Teoria da Computação • Algoritmos e Estruturas

  13. Protocolo • São 4 professores dando a matéria em turmas diferentes. Vamos coordenar tópicos e EP’s. • Teremos listas de exercícios. • Frequência mínima: 70%. • Avaliação: • Duas provas (P1 e P2) • Três trabalhos (T1, T2 e T3): exercícios-programas (EPs) • Prova substitutiva: • somente para quem perdeu uma das provas (FECHADA) • substitui a que você perdeu • envolve todo o conteúdo ministrado na disciplina. • DIFÍCIL: USEM SÓ EM CASO DE EMERGÊNCIA! • Qualquer tentativa de fraude implicará em zero na atividade. • Número de aulas: 31

  14. Critérios para aprovação • Média de Provas (MP): • MP = (2*P1 + 3*P2) / 5 • Média de Trabalhos (MT): • MT = (T1 + T2 + T3) / 3 • Média Final (MF) : • se MP >= 5,0 e MT >= 5,0 então MF = (7*MP + 3*MT) / 10 • senão MF = mínimo(MP, MT)‏ • Se MF >= 5,0 → aluno aprovado • Se 3,0 <= MF < 5,0 → recuperação • Se MF < 3,0 → aluno reprovado.

  15. Recuperação • MFR (Média Final após recuperação): • Se REC >= 5 • MFR = máximo(5, (MF + REC)/2) • senão • MFR = (MF + REC)/2 • REC : envolve todo o conteúdo ministrado na disciplina. • É obrigatória (não fez → REC = 0) • Se MFR >= 5,0 → aluno aprovado • Se MFR < 5,0 → aluno reprovado

  16. Avisos • A programação é preliminar e pode estar sujeita a mudanças. • A disciplina tem 6 créditos, sendo 4 teóricos e 2 de trabalho: • Por isso: Trabalhos (EPs são obrigatórios!!!) • Sistema CoL: • responsabilidade é do aluno! • única responsabilidade do professor: incluir as turmas e os alunos! (ops! ) • Horário de atendimento: quintas, combinar horário.

  17. Bibliografia • KON, F.; GOLDMAN, A.; SILVA, P.J.S. “Introdução à Ciência de Computação com Java e Orientado a Objetos”, IME - USP, 2005. Disponível em: http://ccsl.ime.usp.br/introCCJavaOO • GOODRICH, M.; TAMASSIA, R. Estruturas de Dados e Algoritmos em Java. Ed. Bookman, 2a. Ed. 2002. • CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. Algoritmos - Trad. 2.º Ed. Americana. Ed. Campus, 2002. • ZIVIANI, N. – Projeto de Algoritmos, 2ª Ed., Editora Thomson, 2004. • TENEMBAUM, A.M., et all. Data Structures Using C, Prentice-Hall, 1990. • WIRTH,N. Algorithms + Data Structures = Programs, Prentice-Hall, 1986

  18. Mãos à obra!Abstração

  19. Abstrato • adj. Que designa uma qualidade, ação, ou estado, considerados em si mesmos, independentemente dos seres com que se relacionam: bondade, polidez, adoração, vingança, morte, sonho. / Que opera unicamente com noções: ciências abstratas, número abstrato. / Abstraído, distraído. // Arte abstrata, arte que não se prende à representação da realidade tangível.

  20. Abstração • s.f. Operação do espírito, que isola de uma noção um elemento, negligenciando os outros. / Resultado desta operação: a brancura considerada em geral, sem ser aplicada a um objeto, é uma abstração. // Fazer abstração de uma coisa, não levá-la em consideração.S.f.pl. Idéias quiméricas, desvinculadas da realidade: perder-se em abstrações.

  21. Em computação, abstração é: • Mecanismo utilizado na análise de um domínio • O indivíduo observa a realidade e dela abstrai: • entidades • ações • comportamentos • relacionamentos • São considerados somente os elementos essenciais para uma aplicação • Todos os aspectos julgados irrelevantes são excluídos

  22. Utilidade de abstrair • Abstrair elementos irrelevantes; • Abstrair detalhes de como se faz (adiando o detalhamento que será necessário, mas que no momento não queremos nos preocupar com isso), focando em o que é e o que faz;

  23. O que é relevante depende do objetivo e do ponto de vista

  24. Apresentando o paradigma de Orientação a Objetos • Objeto: abstração de uma entidade real, cujas características e comportamento são conhecidos • se apresenta a outras entidades por meio de uma interface bem definida • Visão Interna: define a estrutura e o comportamento do objeto, ou seja, define dados e métodos (e suas implementações) • Visão Externa: interface que define como o objeto é visto por outros objetos • Mensagem: comunicação entre objetos • Paradigma=s.m. Modelo, padrão, norma; exemplo.

  25. Objeto, características, comportamento, interface, visão interna, visão externa, mensagem

  26. Objetos e Tipos Abstratos de Dados • Tipo Abstrato de Dados - TAD • Def.: é uma coleção bem definida de dados a serem armazenados, e um grupo de operadores que podem ser aplicados para manipulação desses dados. • Características Fundamentais: • > Os operadores do TAD implementam regras bem definidas para manipulação dos valores armazenados; • > Os valores armazenados devem ser manipulados EXCLUSIVAMENTE pelos operadores do TAD.

  27. Consequencias das características • Ocultamento da informação e implementação • implementação do tipo pode ser alterada(contanto que mantenha as mesmas operações) sem afetar as unidades de programa que fazem uso dele • Aumenta a confiabilidade, pois nenhuma outra unidade de programa pode mudar, acidentalmente ou intencionalmente, as representações do tipo, aumentando a integridade de tais objetos

  28. Objetos • Extensão do conceito de TAD • Classe: definição do Tipo Abstrato de Dados • Atributos • Métodos • Objeto: cada instância derivada da classe • Representa em software entidades que encontramos no mundo real

  29. OOP e TAD • Em uma linguagem funcional fica a cargo do programador respeitar as características do modelo TAD. • Em uma linguagem orientada a objetos, a linguagem é construída de forma a ajudar o programador a respeitar as características do modelo.

  30. Exercícios • Modelar um objeto em termos de atributos e métodos. • Tarefinha: no caminho para casa, ou no caminho para cá, escolher um objeto e modelá-lo em termos de atributos e métodos.

  31. Fim da aula 1

More Related