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


Segunda prova adiada de 08/nov para 10/nov; 08/nov demonstrações CASOS DE USO

Revisão das provas: 24/novembro/2011; Trabalho do Nurikabe-> pontos extras


Gabarito

Livro: Practical API Design: Confessions of a Java Framework Architect

tema: “cluelessness”, considero menos problemático “abstração


 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

 

2ª. Prova demonstrações Casos de Uso

10

55&56

 

Revisão  2ª Prova

15

 

Procl. Repub.

 

17

57&58

 

3ª. Prova

22

59&60

 

Revisão

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.

-------------------