1 apresentação da disciplina estruturas de dados i

22
1 Apresentação da Disciplina Estruturas de Dados I

Upload: internet

Post on 17-Apr-2015

125 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Apresentação da Disciplina Estruturas de Dados I

1

Apresentação da Disciplina Estruturas de Dados I

Page 2: 1 Apresentação da Disciplina Estruturas de Dados I

22

Sumário

Conceito de Estruturas de DadosTipo de programasProtótiposNecessidade de programação e prototipaçãoConstataçãoConvocaçãoLinguagens de ProgramaçãoLinguagens de “scripting” atuaisLinguagens de programação atuaisO que se espera que os alunos de graduação saibamTipos de aulasCritérios de avaliação

Page 3: 1 Apresentação da Disciplina Estruturas de Dados I

33

Conceito de Estruturas de Dados

Em Ciência da Computação uma estrutura de dados é uma maneira de armazenar dados em computadores de forma a usá-los de maneira eficiente.Uma estrutura de dados bem escolhida pode permitir o emprego de um algoritmo mais eficiente.A escolha de uma estrutura de dados começa com a escolha de uma estrutura de dados abstrata.Uma estrutura de dados bem projetada permite a execução de uma variedade de operações críticas usando tão poucos recursos (tempo de execução e espaço de memória) quanto possível

Page 4: 1 Apresentação da Disciplina Estruturas de Dados I

44

Tipos de programas

Sistemas com longa vida útil sendo desenvolvidos durante largos períodos de tempo Sistemas de Tratamento da Informação Sistemas de Cálculo Outros

Sistemas de apoio à decisão com pequena vida útil, sendo úteis para um momento específico e, portanto, tendo de ser desenvolvidos em curtíssimo período de tempo

Page 5: 1 Apresentação da Disciplina Estruturas de Dados I

55

Protótipos

Protótipos são ferramentas para a criação ou simulação de programas. Estas ferramentas freqüentemente permitem a “colagem” de programas existentes, mesmo que em diversas linguagens de programação.Protótipos de programas são necessários para: Verificar a viabilidade de uma proposta ou de um Sistema pois

conhecimentos recentemente adquiridos são de difícil validação sem testes

Comunicação com os usuários Comunicação com a equipe de desenvolvimento de Sistemas Comunicação empresarial Mostrar desenvoltura, iniciativa e competência

Page 6: 1 Apresentação da Disciplina Estruturas de Dados I

66

Necessidade Programação e Prototipação

O desenvolvimento de Sistemas, para a maioria dos profissionais é atividade para curto prazo em sua vida profissional (5 a 15 anos)A necessidade de programação é atividade para toda a vida profissionalA necessidade programação quase sempre recai na necessidade de geração de protótiposEm geral profissionais constroem de 3 a 20 Sistemas em sua vida profissional mas tem de fazer (ou mandar fazer) um protótipo a cada 20 dias, ou seja, a cada ano da vida profissional se faz (ou se deveria fazer) mais protótipos do que os Sistemas feitos em toda a vida profissional

Page 7: 1 Apresentação da Disciplina Estruturas de Dados I

77

Constatação

O desenvolvimento de Sistemas tem se tornado cada vez mais complexoOs aplicativos são abundantes, flexíveis e poderososOs profissionais programam cada vez menos tornado-se “pilotos de aplicativos”Quem conseguir enfrentar as “feras”, dominando o desenvolvimento de Sistemas, torna-se um profissional de destaqueA maioria dos profissionais procura soluções fáceis

Page 8: 1 Apresentação da Disciplina Estruturas de Dados I

88

Convocação

Evitem as soluções de baixo nível

Enfrentem as “feras”

Sejam melhores do que a concorrência

Destaquem-se da multidão: sejam especiais

O esforço é grande mas de curta duração

O resultado é para toda a vida

Page 9: 1 Apresentação da Disciplina Estruturas de Dados I

99

Linguagens de Programação

Linguagens de Programação são difíceisNão existem mais Linguagens de Programação fáceis desde o advento de Orientação a Objeto, Programação Por Eventos, Linguagens VisuaisLinguagens de Programação permanecem pequeno tempo “em moda”O número de Linguagens de Programação existentes é gigantesco e vai continuar a crescerLinguagens de “scripting” são simples e fáceis mas não servem para Sistemas

Page 10: 1 Apresentação da Disciplina Estruturas de Dados I

1010

Linguagens de “scripting” atuais

JCL

Rexx

WFL

"Shells" Unix (sh, csh, ksh, ...)

Prolog

Perl

Tcl

Python

Page 11: 1 Apresentação da Disciplina Estruturas de Dados I

1111

Linguagens de programação atuais

Para grandes Sistemas Java C++

Para pequenos Sistemas e prototipação VB (Basic) Delphi (Object Pascal) LISP

Page 12: 1 Apresentação da Disciplina Estruturas de Dados I

1212

O que se espera que os alunos de graduação saibam

Necessidades Uma Linguagem de Programação Orientada a Objeto Uma Linguagem Visual Orientada a Eventos

Disponibilidade atual Pascal

Problemas Não há escala para Sistemas desenvolvidos em Pascal Em qual Disciplina (ou disciplinas) serão ensinadas as

linguagens “necessárias”? Será obrigação dos alunos aprender por conta própria?

Page 13: 1 Apresentação da Disciplina Estruturas de Dados I

1313

Linguagens de Programação do Curso de Estruturas de Dados

Os alunos terão a liberdade de escrever os programas exigidos pelo Curso em qualquer linguagem de programação Todavia a facilidade de montagem dos fontes fornecidos por

Bruno Preiss tornará evidente a facilidade e o potencial do reuso de código propiciado pelo paradigma de programação orientado a Objeto.

Para facilitar a aprendizagem serão mostrados os trechos de código que terão de ser incorporados ao programa para obter a funcionalidade desejada, tanto em Java quanto em C++Para os resistentes à Orientação a Objeto serão fornecidos códigos em Programação Estruturada C usados em 1995

Page 14: 1 Apresentação da Disciplina Estruturas de Dados I

1414

Tipos de aulas

Aulas expositivas como “default”Laboratório quando necessárioOs alunos deverão acompanhar a exposição com o material disponível na página do professorOs alunos poderão escolher a linguagem a estudar nas Notas de Aula (Java ou C++)A parte de código deverá ser estudada em sala com o acompanhamento pelo professor cuja tarefa principal será tirar dúvidas

Page 15: 1 Apresentação da Disciplina Estruturas de Dados I

1515

Aprovação por via normal

Provas (peso 2) Primeira e segunda prova alternativas Terceira prova obrigatória

Trabalhos de programação (peso 1) Pilhas e filas Aplicações de pilhas e recursividade Listas e árvores binárias Classificação

Page 16: 1 Apresentação da Disciplina Estruturas de Dados I

1616

Aprovação pela via de pesquisa

Pesquisa de frameworks em outras linguagens Delphi VB

Implementação dos frameworks em outras linguagensAvaliação Apresentações semanais fora do horário de aula cujo

resultado é eliminatório da via de pesquisa (peso 6) Resultado obtido (peso 3) Apresentação para a turma (peso 1)

Page 17: 1 Apresentação da Disciplina Estruturas de Dados I

1717

Programação para o Segundo Período de 2007

Page 18: 1 Apresentação da Disciplina Estruturas de Dados I

18

Material de apoio para as aulasD atas D ia O rdem As s unto Apres entação

28/08/2007 3 1 Apres entação da D is c iplina Apres entaE D 130/08/2007 5 2 Hierarquia de c las s es de B runo P reis s F ramework de B runo P reis s04/09/2007 3 3 Hierarquia de c las s es de B runo P reis s C ontainers T AD06/09/2007 5 4 Hierarquia de c las s es de B runo P reis s E s truturas F undamentais11/09/2007 3 5 P ilhas e F ilas P ilhas e F ilas13/09/2007 5 6 P ilhas e F ilas P ilhas e F ilas18/09/2007 3 7 P ilhas e F ilas P ilhas e F ilas20/09/2007 5 8 Variáveis dinâmicas e C aixa de nós25/09/2007 3 9 L aboratório27/09/2007 5 10 T rans formação e avaliação de expres s ões E xpres s ões Aritméticas02/10/2007 3 11 R ecurs ão R ecurs ividade04/10/2007 5 12 Apres entação do primeiro trabalho09/10/2007 3 13 P rimeira prova11/10/2007 5 14 D eques , L is tas D eques16/10/2007 3 15 L aboratório18/10/2007 5 16 L is tas L is tas O rdenadas e L is tas C las s ificadas23/10/2007 3 17 L is tas L is tas C irculares e L is tas D uplamente E ncadeadas25/10/2007 5 18 Árvores - conceito Árvores30/10/2007 3 19 Árvores - conceito Árvores01/11/2007 5 20 Árvores binárias Árvores de B us ca06/11/2007 3 21 L aboratório08/11/2007 5 22 Apres entação do s egundo trabalho13/11/2007 3 23 S egunda prova15/11/2007 5 P roc lamação da R epública20/11/2007 3 24 L aboratório22/11/2007 5 D ia de Araribóia27/11/2007 3 25 T raves s ia de árvores P ercurs o Não R ecurs ivo em Árvores29/11/2007 5 26 Heaps e F ilas de P rioridade Heaps e F ilas de P rioridade04/12/2007 3 27 Apres entação do terceiro trabalho06/12/2007 5 28 Árvores balanceadas Árvores de B us ca11/12/2007 3 29 C las s ificação C las s ificação13/12/2007 5 30 C las s ificação S hell S ort18/12/2007 3 31 Apres entação do quarto trabalho20/12/2007 5 32 Gerênc ia de memória Gerenc iamento de memória25/12/2007 3 33 R odíz io27/12/2007 5 34 R odíz io01/01/2008 3 35 R odíz io03/01/2008 5 36 T erceira P rova08/01/2008 3 37 T erceira P rova10/01/2008 5 38 VS

Page 19: 1 Apresentação da Disciplina Estruturas de Dados I

19

Influência do Tamanho do Empregador

$86,564*

A Sampling of Average Total Compensation by Company Revenue

Less than $100M

Less than $100M

Less than $100M

Less than $100M

Less than $100M

Less than $100M

Less than $100M

Less than $100M

Less than $100M

$72,257 $43,945 $79,041 $62,252 $69,558 $51,522 $62,585 $73,026 $69,797

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$100M to $999.9M

$84,137 $49,460 $78,732 $69,422 $70,438 $56,790 $67,994 $74,002 $80,369

$1B to $10B $1B to $10B $1B to $10B $1B to $10B $1B to $10B $1B to $10B $1B to $10B $1B to $10B $1B to $10B

$89,383 $55,509 $86,023 $78,425 $80,451 $67,394 $72,268 $85,011 $83,132

More than $10B

More than $10B

More than $10B

More than $10B

More than $10B

More than $10B

More than $10B

More than $10B

More than $10B

$96,812 $56,590 $89,373 $83,163 $82,565 $70,465 $77,413 $100,185 $89,092

Page 20: 1 Apresentação da Disciplina Estruturas de Dados I

20

Code Project newsletter (13/08/2007)

20

Este sítio é de programação “pesada”. O pessoal que o freqüenta está mais para o desenvolvedor independente do que para o desenvolvedor de grandes Sistemas em equipe.

GNU, GPL, IBM e Sun dão apoio substancial à linguagem Java.

Page 21: 1 Apresentação da Disciplina Estruturas de Dados I

21

Dados da Consultoria TIOBEPosition

Aug 2007 Position

Aug 2006 Delta in Position Programming Language

Ratings Aug 2007

Delta Aug 2006

Status

1 1

J ava 21.768% -0.61% A

2 2

C 15.699% -1.73% A

3 3

(Visual) Basic 10.646% -0.55% A

4 4

C++ 10.111% -0.14% A

5 5

PHP 9.696% +0.06% A

6 6

Perl 5.320% +0.01% A

7 8

C# 3.987% +1.30% A

8 7

Python 2.749% -0.32% A

9 10

J avaScript 2.575% +0.56% A

10 13

Ruby 1.906% +1.10% A

11 12

PL/ SQL 1.833% +0.68% A

12 11

SAS 1.389% -0.60% A

13 19

D 1.251% +0.79% A

14 9

Delphi 1.222% -0.94% A

15 52

Lua 0.645% +0.59% B

16 16

COBOL 0.600% +0.04% B

17 20

ABAP 0.587% +0.18% B

18 15

Lisp/ Scheme 0.585% 0.00% B

19 28

Transact-SQL 0.549% +0.27% B

20 17

Ada 0.537% -0.02% B

Page 22: 1 Apresentação da Disciplina Estruturas de Dados I

22

Dados da Consultoria TIOBE