UFMG - ICEx - DCC
DCC030 – Tópicos em Ciência da Computação
DCC049 – Tópicos em Sistemas de
Informação
Interfaces, Mecanismos e
Modelos de
Programação de Aplicações -- IMMPA
2o. Semestre de 2011
Terças e quintas-feiras, sala
2016, 14:55-16:35
Ementa:
Nesta disciplina são discutidos
diversos aspectos relacionados ao uso de APIs (interfaces de programação de
aplicações), mecanismos de desenho (design) e modelos para a programação de
aplicações discutidos na literatura.
Programa:
A disciplina discute parte da API da
linguagem Java, em particular APIs relacionadas com coleções e interface
gráfica de usuário(SWING), onde houver interesse estas APIs são contrastadas
com as da linguagem C++ e talvez até Objective-C.
Discute-se também a questão de
componentização e algumas APIs de componentes. Ao longo da disciplina deverão
ser feitos vários pequenos programas utilizando principalmente o ambiente Java
a partir das IDEs Netbeans e Eclipse. Alguns dos mecanismos de desenho são
discutidos e exemplificados juntamente com algumas possibilidades de modelagem
utilizando UML. A avaliação será 60% provas e 40% trabalhos práticos.
Bibliografia
------------
1)Notas de aulas
2)Martin Fowler, UML Distilled
Addison-Wesley, third edition, 2004
3)Paul Fischer, Introduction to Graphical User Interfaces with Java Swing
Addison-Wesley Pearson, 2005
4)Maurice Naftalin, Philip Wadler, Java Generics and Collections
O´Reilly, 2006
5)Jaroslav Tulach, Practical API Design: Confessions of a Java Framework Architect
Apress, 2008
6)Martin Reddy, API Design for C++
Morgan Kaufmann, 2011
7)Kent Beck, Implementation Patterns
Addison-Wesley 2008
8)Andy Ju An Wang, Kai Qian, Component Oriented Programming
Wiley-Interscience, 2005
9)Joshua Bloch, Neal Gafter, Java Puzzlers: Traps, Pitfalls, and Corner Cases
Addison Wesley, 2005
9)Joshua Bloch, Effective Java, second edition,
Addison-Wesley, 2008
10)a ser anunciado
---------------------
Avaliação:
60 pontos: duas provas valendo 30 pontos cada
40 pontos: trabalhos práticos, listas de exercícios, testes etc.
Quando o aluno não comparecer à
aula, deve arranjar um colega que forneça as anotações de aula. Parte do
material será disponibilizado neste sítio Web.
Provas:
As provas são sem consulta, mas você pode trazer uma folha tamanho A4 contendo
quaisquer anotações de próprio punho; não é para imprimir, não é para copiar
(não faça colagens). A folha de consulta deverá ser entregue junto com a prova.
O objetivo da folha de consulta é evitar que o aluno escreva na carteira, na
régua ou na borracha. O objetivo da folha de consulta não é testar se o aluno
sabe condensar centenas de folhas em uma só folha.
São escolhidas as
duas melhores notas caso o aluno faça as três provas. O objetivo de existirem
três provas e serem escolhidas duas notas é evitar que o professor tenha que
fazer julgamento de mérito no caso de alunos que não podem comparecer em algum
dia de prova. A possível melhoria de nota é um efeito colateral.
1a. Prova:
2a. Prova:
3a. Prova:
Trabalhos Práticos:
Listas de Exercícios:
Testes Surpresa:
Material Extra:
Dicas sobre o uso polido e educado
de correio eletrônico
Calendário
|
Data |
Aula |
Evento |
Assunto |
|
Agosto |
|
|
|
|
09 |
01&02 |
|
Visão
geral - Construtor |
|
11 |
03&04 |
|
Euler:
Tutorial Android |
|
16 |
05&06 |
|
pacotes e
linhas |
|
18 |
07&08 |
|
contador
e botões |
|
23 |
09&10 |
|
UML;
textbox (análise de texto) |
|
25 |
11&12 |
|
UML; Gen. Dep. Assoc. Realiz |
|
30 |
13&14 |
|
UML;
camundongo; 13, 14, 55 |
|
Setembro |
|
|
|
|
01 |
15&16 |
|
Implementação
de “Listeners” |
|
06 |
17&18 |
|
cardápios |
|
08 |
19&20 |
|
Gráficos
simples |
|
13 |
21&22 |
|
abstração |
|
15 |
23&24 |
|
Apresentações
Exercicio |
|
20 |
25&26 |
|
Apresentação
Exercícios |
|
22 |
27&28 |
|
abstração;
Parametrização de Tipos |
|
27 |
29&30 |
|
Parametrização
de Tipos (Generics) |
|
29 |
31&32 |
|
1ª. Prova |
|
Outubro |
|
|
|
|
04 |
33&34 |
|
Revisão |
|
06 |
35&36 |
|
JFileChooser,
JList |
|
11 |
37&38 |
|
contratos
de interface gráfica- Exercício |
|
13 |
39&40 |
|
Novo
exercício: Tetris |
|
18 |
41&42 |
sem.
conhec. |
dúvidas
& aula |
|
20 |
43&44 |
sem.
conhec. |
dúvidas
& aula |
|
25 |
45&46 |
|
demonstração |
|
27 |
47&48 |
|
demo |
|
Novembro |
|
|
|
|
01 |
49&50 |
|
Requisitos,
UML Casos de Uso |
|
03 |
51&52 |
|
Requisitos,
UML Casos de Uso |
|
08 |
53&54 |
|
|
|
10 |
55&56 |
|
Revisão 2ª Prova |
|
15 |
|
Procl.
Repub. |
|
|
17 |
57&58 |
|
3ª. Prova |
|
22 |
59&60 |
|
|
|
24 |
61&62 |
|
Revisão |
|
29 |
63&64 |
|
|
|
Dezembro |
|
|
|
|
01 |
65&66 |
|
|
|
06 |
67&68 |
|
|
|
08 |
|
Imacul.
Conc. |
|
|
10 |
|
Encerramento |
|
Elos de navegação
Construtor (NutritionFacts)
Construtor (transcriação) – nota
sobre aninhamento e internação de classes
pacotes vs unnamed package
classe Thread e interface Runnable –
linhas de execução
Primeira interface gráfica: contador e botões
(detalhe sobre escutador de ação de botão e EventQueue.invokeLater )
Segunda interface Análise de texto
Eventos do Camundongo
Cap. 5 (Practical API Design) 13, 14 e 55
Opções de implementação de Listners
Introdução aos cardápios
Desenhos
simples
Exercício: Estude como funciona um
KeyListener e modifique o programa SimpleGraphics para permitir a seleção de
itens e permitir a remoção de itens.
Abstração
– “cluelessness”
Parametrização de Tipo (Generics)
JtextArea, Rolagem & Cia
JFileChooser
Na próxima aula vc deve
demonstrar seu programa que via JFileChooser seleciona dois diretórios e via
algum componente (por exemplo JList) descreve a semelhança e desigualdade de
arquivos entre os dois diretórios. Algum tipo de interatividade deve ser
desenhada que permita a sincronização dos diretórios, isto é um diretório fique
com o mesmo conteúdo que o outro.
O próximo exercício é entender uma implementação
do jogo Tetris disponível na Internet (Tetris)
e demonstrar algum aperfeiçoamento. A avaliação leva em conta o tipo de aspecto
aperfeiçoado e a extensão e complexidade do aperfeiçoamento.
----------------------------------------
Em função da solicitação da UFMG de
não haver avaliações no período de 17 a 21 de outubro, os exercícios: (i)
programa para sincronização de diretórios e (ii) aperfeiçoamento de Tetris da
internet, deverão ser demonstrados no dia 25/outubro/2011.
--------------------------------
Para a discussão de Casos de Uso da
UML vamos considerar:
Martin Fowler, UML Distilled, Addison-Wesley, third edition, 2004
A sugestão bibliográfica para
desenho de sistemas interativos é
Designing Interactive Systems A comprehensive guide to
HCI and interaction design
David Benyon
Second edition, Addison Wesley, 2010
Exercícios: fazer o diagrama de
casos de uso do “sincronizador”, e fazer o diagrama de casos de uso do tetris.
-------------------