1) O documento apresenta a disciplina Estrutura de Dados II lecionada pelo professor Daniel Arndt Alves na Universidade Presbiteriana Mackenzie.
2) Serão abordados tópicos como algoritmos de ordenação, busca, árvores e grafos, com avaliações incluindo uma prova parcial, listas de exercícios e nota de laboratório.
3) As regras incluem pontualidade nas aulas, entrega de trabalhos nas datas definidas e realização de provas nas datas programadas, com possibilidade de reagendamento
Modelos de Integração Moodle - Sistemas de Gestão Acadêmicos e Administrativos
Estrutura de Dados II - Apresentação da Disciplina
1. Universidade Presbiteriana Mackenzie
Aula 1: Apresentação da Disciplina
Prof. Ms. Daniel Arndt Alves
Faculdade de Computação e Informática
Estrutura de
Dados II
Apresentação da Disciplina 1Daniel Arndt Alves
2. Tópicos da Aula
• Professor
• Objetivos
• Conteúdo Programático
• Referências Bibliográficas
• Regras
• Notas
• Comunicados & Avisos
• Datas Importantes
Apresentação da Disciplina 2Daniel Arndt Alves
3. Tópicos da Aula
• Padrões de Nomenclatura
• Um Mau Layout
• Um Bom Layout
Apresentação da Disciplina 3Daniel Arndt Alves
4. Professor
• Daniel Arndt Alves
– Bacharel em Ciência da Computação
– Mestre em Engenharia Elétrica
• http://www.progdan.pro.br/
Apresentação da Disciplina 4Daniel Arndt Alves
5. Professor
• Mackenzie
– Professor PPI da Faculdade de
Computação e Informática
– Administrador do Mackenzie Virtual (Moodle) –
http://ead.mackenzie.br/mackenzievirtual/
– Administrador do Cluster de Pesquisa
em Computação Evolutiva e Autômatos
Celulares – http://ecca.mackenzie.br/
Apresentação da Disciplina 5Daniel Arndt Alves
6. Objetivos
• Cognitivos
– Aprender os fundamentos de
Estrutura de Dados e sua aplicações
– Analisar estratégias de
implementação destas Estruturas
de Dados
– Entender e analisar a eficiência destas estruturas
Daniel Arndt Alves Apresentação da Disciplina 6
7. Objetivos
• Habilidades
– Ser capaz de entender o
funcionamento das principais
estruturas de dados
– Ser hábil a avaliar a melhor estrutura
de dados para cada aplicação
– Ser capaz de desenvolver aplicações utilizando
estas estruturas de dados
Daniel Arndt Alves Apresentação da Disciplina 7
8. Objetivos
• Atitudes
– Ter consciência da importância da
avaliação do desempenho das
principais estruturas de dados para
aplicações científicas e/ou comerciais
– Valorizar o reuso de código
– Fazer o uso do trabalho cooperativo
para desenvolvimento de tarefas
complexas
Daniel Arndt Alves Apresentação da Disciplina 8
10. Conteúdo Programático
• Algoritmos de Busca
– Busca Binária
– Hashing
• Recursão
• Árvores
– Busca, Inserção, Remoção
– Percorrendo Árvores
• Grafos
– Busca, Caminho Mais Curto
Daniel Arndt Alves Apresentação da Disciplina 10
11. Referências Bibliográficas
• DEITEL, H. M., DEITEL, P. J. Java Como
Programar. 8ª ed. Prentice Hall, 2010.
• GOODRICH, M. T., TAMASSIA, R. -
Estruturas de Dados e Algoritmos em
Java. 4ª ed. Bookman, 2007.
Daniel Arndt Alves Apresentação da Disciplina 11
12. Regras
• Pontualidade
– O Professor dará o melhor de si
para se apresentar no horário de
início das aulas.
– Os Alunos darão o melhor de si para se
apresentarem no horário de início das aulas.
Daniel Arndt Alves Apresentação da Disciplina 12
13. Regras
• Presença
– A chamada será realizada no início de
cada aula.
– Eventualmente, a chamada poderá ser realizada
mais tarde, sem que isto deva ser entendido como
alteração desta regra.
Daniel Arndt Alves Apresentação da Disciplina 13
14. Regras
• Presença
– Os Alunos deverão gerenciar a sua
cota de faltas adequadamente,
levando em conta o tráfego da cidade,
as responsabilidades em seu trabalho,
feriados, possíveis problemas de saúde, distrações
durante a chamada, etc.
Daniel Arndt Alves Apresentação da Disciplina 14
15. Regras
• Presença
– O Professor não dará presença a um
aluno ausente, qualquer que seja a
razão. Abonos de faltas deverão ser
discutidos diretamente com a Secretaria Geral da
Universidade.
Daniel Arndt Alves Apresentação da Disciplina 15
16. Regras
• Entrega de Trabalhos
– Os trabalhos devem ser entregues na
data determinada pelo Professor.
Daniel Arndt Alves Apresentação da Disciplina 16
17. Regras
• Entrega de Trabalhos
– Atrasos poderão eventualmente ser
considerados em casos de doença,
sempre fundamentada em atestado
médico e requerimento apresentado à Secretaria
da FCI, no dia subsequente à alta médica
Daniel Arndt Alves Apresentação da Disciplina 17
18. Regras
• Datas das Provas
– As datas definidas para as provas
desde o início do curso, não serão alteradas em
hipótese alguma.
Daniel Arndt Alves Apresentação da Disciplina 18
19. Regras
• Datas das Provas
– O Aluno poderá, eventualmente,
efetuar a prova em outro dia, a ser determinado
pelo professor, nas seguintes situações:
• Doença – fundamentada por atestado
médico e requerimento apresentado
à Secretaria da FCI.
Daniel Arndt Alves Apresentação da Disciplina 19
20. Regras
• Datas das Provas
– O Aluno poderá, eventualmente,
efetuar a prova em outro dia, a ser
determinado pelo professor, nas
seguintes situações:
• Atividade no Trabalho – fundamentada por
correspondência da empresa, em papel timbrado,
esclarecendo o motivo e declarando ter sido informada
pelo aluno sobre a realização da prova, e requerimento
apresentado à Secretaria da FCI.
Daniel Arndt Alves Apresentação da Disciplina 20
21. Regras
• Datas das Provas
– O requerimento deve ser
apresentado à Secretaria da FCI no dia
subsequente à ocorrência.
Daniel Arndt Alves Apresentação da Disciplina 21
22. Notas
• Haverá 1 prova parcial (P1), Listas de
Exercícios e Micro-Avaliações (Ex),
mais participação em aula, e a nota de
Laboratório (Lab), com os pesos:
• N1 = (30 P1 + 20 PROCOMP + 10 Ex + 40
Lab)/100 + Participação
• MF = (N1 + PF)/2
Daniel Arndt Alves Apresentação da Disciplina 22
23. Notas
• A nota de Participação será composta
pelos seguintes critérios:
– 60% pelos Exercícios Complementares submetidos
no ambiente Moodle
– 40% do tempo gasto na interação com os recursos
disponíveis no ambiente Moodle
Daniel Arndt Alves Apresentação da Disciplina 23
24. Notas
• O desempenho nas aulas será
registrado no Ambiente Moodle,
no espaço dedicado à disciplina de Teoria.
• O aluno poderá consultar a qualquer
momento suas notas parciais através do
link “notas” no ambiente Moodle.
Daniel Arndt Alves Apresentação da Disciplina 24
25. Comunicados & Avisos
• Todos os comunicados e avisos
referentes à disciplina serão postados através
do Ambiente Moodle
(Mackenzie Virtual).
• O Aluno deve acompanhar seu e-mail
@mackenzista.com.br ou redirecioná-lo ao
provedor de sua preferência.
Daniel Arndt Alves Apresentação da Disciplina 25
26. Comunicados & Avisos
• Todas as atividades estarão
disponíveis no Ambiente Moodle
(Mackenzie Virtual).
• O Aluno deverá postar seus exercícios e
trabalhos somente no Ambiente Moodle
(Mackenzie Virtual)
Daniel Arndt Alves Apresentação da Disciplina 26
27. Datas Importantes
• 11 a 24/Set./2013 – Provas Parciais
• 23/Out./2013 – PROCOMP
• 25/Nov. – 15/Dez./2013 – Provas Finais e
Vistas
Daniel Arndt Alves Apresentação da Disciplina 27
28. Padrões de Nomenclatura
Daniel Arndt Alves Apresentação da Disciplina 28
“Programming is best regarded
as the process of creating
works of literature, which are
meant to be read.”
Donald E. Knuth,
Literate Programming
29. Padrões de Nomenclatura
Daniel Arndt Alves Apresentação da Disciplina 29
“Any fool can write code that a
computer can understand.
Good programmers write code
that humans can understand.”
Martin Fowler,
Refactoring, Improving the
Design of Existing Code
30. Padrões de Nomenclatura
• Variáveis
– int umaVariavel;
– int uma_Variavel;
• Funções
– public void umaFuncao (int
umParametro);
– public void umaFuncao (int
um_Parametro);
Daniel Arndt Alves Apresentação da Disciplina 30
31. Padrões de Nomenclatura
• Classes
– public class umaClasse;
– public class uma_Classe;
• Constantes
– static final String ERROR =
"Erro!”;
Daniel Arndt Alves Apresentação da Disciplina 31
32. Um Mau Layout
// Atribuindo n dividido por 2 em r
r = n / 2;
// Loop while r-(n/r) enquanto for maior que t
while(abs(r - (n / r)) > t){
// Atribuindo a metade de r+(n/r) em r
r = 0.5 * (r + (n / r));
}
Daniel Arndt Alves Apresentação da Disciplina 32
33. Um Bom Layout
/*
* Raiz quadrada de n com
* aproximação de
* Newton-Raphson
*/
r = n / 2;
while(abs(r - (n / r)) > t){
r = 0.5 * (r + (n / r));
}
Daniel Arndt Alves Apresentação da Disciplina 33