44
  Leonel Caseiro Morgado Metodologias de Programação III Relatório da unidade curricular “Metodologias de Programação III”, apresentado no âmbito de provas de agregação, de acordo com a alínea b), do número 2, do artigo 8.º do Decreto-Lei n.º 239/2007 de 19 de Junho de 2007. Universidade de Trás-os-Montes e Alto Douro Escola de Ciências e Tecnologia Maio de 2011

Metodologias de Programação III - Relatório da Unidade Curricular

Embed Size (px)

DESCRIPTION

Relatório apresentado no âmbito de provas de agregação, de acordo com a alínea b), do número 2, do artigo 8.º do Decreto-Lei n.º 239/2007 de 19 de Junho de 2007.A área do ensino da programação é vasta e com um longo historial. Neste documento procura-se apresentar a relevância, na formação dos alunos da Licenciatura em Informática, da UC “Metodologias de Programação III”. Esta UC visa propiciar uma ponte entre o acto de programação enquanto acto isolado de criação de artefactos intelectuais focados em problemas objectivos e simples, e o acto de programação enquanto elemento organizador de sistemas complexos, onde os diversos componentes podem surgir em diversas etapas ou fases, por parte de pessoas ou equipas distintas. Esta apresentação da unidade curricular será efectuada através de: objectivos, competências a adquirir, conteúdo programático, métodos de ensino, sistema de avaliação e bibliografia recomendada.

Citation preview

Page 1: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 1/44

 

 

Leonel Caseiro Morgado

Metodologias deProgramação III 

Relatório da unidade curricular “Metodologias de Programação III”, apresentado no

âmbito de provas de agregação, de acordo com a alínea b), do número 2, do artigo 8.º do

Decreto-Lei n.º 239/2007 de 19 de Junho de 2007.

Universidade de Trás-os-Montes e Alto Douro

Escola de Ciências e Tecnologia

Maio de 2011

Page 2: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 2/44

 

 

Page 3: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 3/44

 

 

Índice

1. Resumo .......................................................................................................................... 1

2. Enquadramento e objectivos da unidade curricular ..................................................... 2

3. Conteúdo programático ................................................................................................ 6

4. Métodos de ensino........................................................................................................ 8

5. Plano de aulas ............................................................................................................. 10

Aulas teóricas .................................................................................................................... 10

Aulas práticas .................................................................................................................... 11

6. Sistema de avaliação ................................................................................................... 12

7. Bibliografia recomendada ........................................................................................... 16

Principal ............................................................................................................................ 16

Auxiliar .............................................................................................................................. 16

Páginas Web ..................................................................................................................... 16

8. Referências .................................................................................................................. 17

Page 4: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 4/44

 

 

Índice de figuras

Figura 1 – Wiki de acompanhamento da elaboração dos trabalhos teóricos ...................... 13

Índice de tabelasTabela 1 - Plano de Estudos da Licenciatura em Informática (1.º ciclo de Bolonha) ............. 4

Tabela 2 – Resumo do conteúdo programático ..................................................................... 7

Tabela 3 - Plano de aulas teóricas ........................................................................................ 10

Tabela 4 - Plano de aulas práticas ........................................................................................ 11

Tabela 5 – Exemplos de temas de trabalhos teóricos .......................................................... 13

Page 5: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 5/44

 

1

1. Resumo

A unidade curricular (UC) “Metodologias de Programação III”, sobre a qual incide o

presente relatório para apreciação no âmbito das provas conducentes à obtenção do grau de

Agregado, faz parte do plano de estudos da Licenciatura em Informática da Universidade de

Trás-os-Montes e Alto Douro (UTAD). O candidato é regente da UC desde o ano lectivo

2006/2007. Leccionou durante os anos lectivos de 2006/2007 a 2010/2011 a componente

teórica da UC, tendo a componente prática sido assegurada, nos anos lectivos de 2006/2007 a

2008/2009, pelo Lic. António Marques e pelo Lic. Luís Barbosa. Este último assegurou a

componente prática integralmente nos anos lectivos 2009/2010 e 2010/2011.

A área do ensino da programação é vasta e com um longo historial. Neste documento

procura-se apresentar a relevância, na formação dos alunos da Licenciatura em Informática, da

UC “Metodologias de Programação III”. Esta UC visa propiciar uma ponte entre o acto de

programação enquanto acto isolado de criação de artefactos intelectuais focados em

problemas objectivos e simples, e o acto de programação enquanto elemento organizador de

sistemas complexos, onde os diversos componentes podem surgir em diversas etapas ou fases,

por parte de pessoas ou equipas distintas. Esta apresentação da unidade curricular será

efectuada através de: objectivos, competências a adquirir, conteúdo programático, métodos

de ensino, sistema de avaliação e bibliografia recomendada.

Page 6: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 6/44

 

2

2. Enquadramento e objectivos da unidade curricular 

Na UTAD, a Licenciatura em Informática foi criada no ano lectivo 2002/2003 (regime

anterior à colocação em prática do Processo de Bolonha), tendo funcionado no regime pré-

Bolonha até ao ano lectivo 2005/2006. Após adequação ao processo de Bolonha, o ano lectivo

2006/2007 viu a sua colocação em prática – ano este no qual iniciei a leccionação da unidade

curricular “Metodologias de Programação III”. 

Central a todo o Processo de Bolonha encontra-se uma alteração paradigmática do ensino

superior. De um paradigma clássico focado na transmissão de conhecimentos enquanto

directriz dos momentos lectivos, almeja-se a transição para um modelo de formação mais

amplo, focado no desenvolvimento de competências. O conhecimento surge doravante como

competência essencial e específica da área de formação, acompanhado pelas técnicas

associadas, mas requer-se igualmente o desenvolvimento de competências genéricas

(González & Wagenaar, 2003):

  competências instrumentais, entre as quais: capacidades de compreensão e

manipulação de ideias e conceitos, capacidades metodológicas (organização de

recursos, tomada de decisões, adopção de estratégias de aprendizagem) e técnicas

associadas ao uso de instrumentos tecnológicos, informativos e comunicacionais;

  competências interpessoais, a nível individual e social, como sejam a capacidade

para expressão emocional, auto-crítica e hetero-crítica, trabalho em equipa,

responsabilidade ética e social;

  competências sistémicas, capacidades e técnicas que lidam com o funcionamento

de sistemas, com a visão da relação entre as parte e o todo.

A adequação da Licenciatura em Informática ao Processo de Bolonha efectuou-se por

aplicação deste paradigma às recomendações dos “Computing Curricula 2005” produzidos

Page 7: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 7/44

 

3

conjuntamente pela Association for Computing Machinery (ACM) e pela Association for

Information Systems (AIS), e pela Computer Society do Institute of Electrical and Electronics

Engineers (IEEE-CS) (The Joint Task Force for Computing Curricula 2005, 2005), focando-se

especialmente, nestas recomendações, nas disciplinas designadas por “Ciência dos

Computadores” e “Engenharia de Software” (op.cit., p. 18; p. 21). O plano de estudos

resultante da actual Licenciatura em Informática consiste num curso de 1.º Ciclo (180 créditos

ECTS) composto por UC semestrais, ao longo seis semestres lectivos (vd. Tabela 1).

A UC “Metodologias de Programação III” surge assim, neste plano de estudos, visando

concretizar os objectivos do Processo de Bolonha com aspectos específicos da disciplina de

Engenharia de Software, em particular na área da programação. E, dentro desta, visa

desenvolver as capacidades de desempenho “Do large-scale programming”, “Do systems

programming” e “Develop new software systems” (op. cit., p. 28). Complementarmente, a

operacionalização destas efectua-se em simultâneo com o desenvolvimento de capacidades de

desempenho na área da interacção pessoa-computador, especificamente as capacidades

“Create a software user interface” e “Produce graphics or game software” (ibid .). Tem

evoluído desde o ano lectivo original (2006/2007), face à experiência de leccionação e

investigação do docente, ao acompanhamento de novas tendências pedagógicas em particular

no domínio do b-learning, e também face às recomendações actualizadas ACM/IEEE (CS2008

Review Taskforce, 2008).

Page 8: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 8/44

 

4

Tabela 1 - Plano de Estudos da Licenciatura em Informática (1.º ciclo de Bolonha) 

Fonte: adaptado de Diário da República, 2.ª série – N.º 88 – 8 de Maio de 2007, pp. 11957-11960.

Unidade Curricular T TP/S P/PL Tot. h. ECTS

1.ºAno

1.ºSemestr

e

Informática 4 168 6

Lógica Computacional 2 2 168 6

Álgebra Linear 2 2 168 6

Tópicos de Matemática 2 2 168 6

Português e Técnicas de Comunicação 3 112 4

Seminário I 2 56 2

Totais 6 9 6 840 30

2.º

Semestre

Arquitectura de Computadores 2 2 168 6

Metodologias de Programação I 2 2 168 6

Sistemas Digitais 2 2 140 5

Análise Matemática 2 2 168 6

Inglês e Técnicas de Comunicação I 3 84 3

Laboratório de Informática I 2 112 4Totais 8 5 8 840 30

2.ºAno

3.ºSemestre

Metodologias de Programação II 2 2 168 6

Sistemas Operativos 2 2 168 6

Métodos Estatísticos 2 2 168 6

Sistemas de Informação 2 2 168 6

Inglês e Técnicas de Comunicação II 3 56 2

Laboratório de Informática II 2 112 4

Totais 8 5 8 840 30

4.ºSemest

re

Metodologias de Programação III 2 2 168 6

Engenharia de Software 2 2 168 6

Comunicação de Dados 2 2 168 6Algoritmia 2 2 168 6

Engenharia nas Organizações 3 56 2

Laboratório de Informática III 2 112 4

Totais 8 5 8 840 30

3.ºAno

5.ºSemestre

Metodologias de Programação IV 2 2 168 6

Bases de Dados 2 2 168 6

Redes de Computadores I 2 2 140 5

Interacção Pessoa Computador 2 2 140 5

Empreendedorismo 3 112 4

Laboratório de Informática IV 2 112 4

Totais 8 5 8 840 30

6.ºSemestre

Metodologias de Programação V 2 2 168 6

Técnicas Avançadas de Bases de Dados 2 2 168 6

Redes de Computadores II 2 2 168 6

Desenvolvimento de Aplicações na Web 2 2 140 5

Projecto 3 140 5

Seminário II 2 56 2

Totais 8 5 8 840 30

Page 9: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 9/44

 

5

A opção pelo desenvolvimento destas capacidades de desempenho específicas, no âmbito

das recomendações ACM/AIS/IEEE, prende-se com o contexto da mesma no plano de estudos.

De facto (vd. Tabela 1), antecedem-na uma UC da área da algoritmia (“Lógica Computacional”)

e também UC dedicadas total ou parcelarmente à área da programação, onde as capacidades

de desempenho focadas são “Do small-scale programming” e, em menor medida, “Do large-

scale programming”. Nomeadamente, conceitos de programação imperativa/procedimental

(“Metodologias de Programação I”), de programação orientada a objectos (“Metodologias de

Programação II”) e de programação concorrente (parte de “Sistemas Operativos”). 

Estas capacidades são fortalecidas pela exigência de desenvolvimento de projectos de

programação nas UC “Laboratório de Informática I” e “Laboratório de Informática II”, cujos

objectivos não incluem a aquisição adicional de conhecimentos de programação, focando-se

especificamente no apoio ao desenvolvimento de competências de aplicação. Os alunos

contactam ainda com os conceitos de programação-máquina em código assembly , na UC

“Arquitectura de Computadores”. 

Desta forma, a UC “Metodologias de Programação III”, pretende servir como charneira no

processo de aprendizagem de programação. Propiciando aos alunos o contacto com um leque

variado de recursos de programação, pretende-se apoiá-los na evolução do grau de

complexidade da programação: do código a pequena escala, planeado e criado de raiz para

resolução de um problema, para o código em maior escala, planeado e criado por recurso a

componentes já existentes (quer através de bibliotecas e API disponíveis livremente, quer por

recurso a código aberto), e tentando antecipar futuras necessidades de reformulação ou

manutenção por outros programadores das soluções implementadas. Dada também a

natureza textual das interfaces utilizadas nas UC anteriores, pretende-se também apoiar os

alunos na transição para a produção de interfaces visuais de utilização, em diversos ambientes.

Page 10: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 10/44

 

6

3. Conteúdo programático

Os objectivos enunciados são implementados através do contacto com o conceito de

“padrão arquitectónico” enquanto directriz estruturadora do código, com ênfase no padrão

Model-View-Controller (MVC). Este é abordado segundo duas perspectivas distintas: a original

de Krasner & Pope (1988), que atribuía aos módulos Controller a responsabilidade pelo

processamento dos actos do utilizador; e uma mais moderna (Curry & Grace, 2008), que

entrega aos módulos View a responsabilidade integral pela mediação da interacção.

O conceito de MVC é analisado do ponto de vista teórico através do estudo das

possibilidades de sua implementação em diversas interfaces gráficas pessoa-computador, com

ambientes de programação distintos. A análise baseia-se na produção e conservação dos

módulos Model de forma independente das interfaces pessoa-computador, e no confronto dos

impactes daquelas nos módulos Controller e View , contrastando as abordagens de Krasner &

Pope e de Curry & Grace. Em particular, privilegiando a contenção dos impactes sobre os

módulos Controller de alterações de interface, favorecendo a sua resolução nos módulos View .

A concretização da análise tem lugar com recurso ao estudo de algumas ferramentas de

programação disponíveis na plataforma .Net, em linguagem C#. Nomeadamente, a análise do

processamento de erros por recurso a excepções é contrastada com o retorno de valores de

erro, e verificam-se as consequências, em termos de complexidade de implementação e de

gestão para diversas opções de interacção com o utilizador e comportamento aplicacional. O

recurso a delegados e eventos é estudado como forma de isolar componentes aplicacionais

por abstracção de funcionalidades e permitir, dessa forma, apoiar a independência entre os

módulos Model , View e Controller . As interfaces (enquanto artefacto de programação

produzido pela palavra-chave interface, não enquanto artefacto visual de interacção com o

utilizador) são analisadas no mesmo sentido, em particular enquanto forma de permitir

Page 11: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 11/44

 

7

fornecer ou receber objectos entre componentes sem revelação de informação desnecessária

sobre pormenores de implementação, e enquanto forma de permitir o intercâmbio de

objectos de forma mais independente e abstracta entre componentes, apenas por recurso a

características de interacção comuns.

A natureza central das interfaces visuais pessoa-computador no conteúdo programático

acima exposto leva a que o aluno possa iniciar nesta UC o contacto com o desenvolvimento

deste tipo de interfaces visuais – em particular dada a ênfase na independência entre os

módulos Model , View e Controller para interfaces distintas. Neste sentido, a UC recorre, de

forma contrastante, ao desenvolvimento de interfaces nos ambientes gráficos clássicos

(Windows Forms), em ambientes gráficos para smartphones (Windows Phone, Silverlight e

XNA) e em mundos virtuais tridimensionais (C# libOpenMetaverse + scripting Second

Life/OpenSimulator). A Tabela 2 resume esta apresentação do conteúdo programático.

Tabela 2 – Resumo do conteúdo programático 

A arquitectura MVC

  Introdução à arquitectura MVC

  Abordagens e implementações.

  Utilização da arquitectura MVC com Windows Forms,Windows Phone e libOpenMetaverse.

C# e Plataforma .Net

  Introdução à plataforma .Net e à linguagem C#

  Diferenças sintáctico-semânticas entre C# e C++

  Herança em C# e implementação de interfaces C#

  Processamento de eventos e excepções

  Registo de métodos de resposta a excepções

  Delegados e parâmetros de eventos

  Blocos try-catch-finally

  Colecções de dados da plataforma .Net 3.5 em C#

  Aspectos de programação em ambientes gráficos de utilizador

  Métodos para desenho gráfico em C#

Page 12: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 12/44

 

8

4. Métodos de ensino

As aulas são de duas tipologias: aulas teóricas e aulas práticas. Nas aulas teóricas indica-se

previamente aos alunos quais as fontes de estudo a seguir para aquisição dos conceitos a

trabalhar na aula seguinte. (Excepto, por redundância, na primeira aula, onde se sensibiliza os

alunos para a disciplina e seu método de funcionamento.)

Partido do estudo prévio solicitado aos alunos, as aulas teóricas iniciam-se por momentos

de exposição de casos, apoiado por diaporamas e/ou excertos de código. Os casos expostos,

inspirados em casos reais da prática profissional de programadores ou na actividade de

investigação do docente, são então fonte de reflexão aberta e debate coordenado pelo

docente, com base na temática de estudo prévio solicitada. Esta reflexão/debate é apoiada

com recurso ao registo visual ou textual dos contributos – ou mesmo testes de código – em

diaporamas interactivos ou em ferramentas de programação. As conclusões são registadas em

diapositivos criados em aula, que se acrescentam aos diaporamas de apoio e são

posteriormente disponibilizados aos alunos através das plataformas on-line de apoio à

aprendizagem.

A fase final da disciplina consiste na elaboração on-line de trabalhos teóricos em grupos

pelos alunos. Neste processo, o docente propõe os temas a desenvolver por cada grupo, bem

como as fases de desenvolvimento dos trabalhos, que implicarão interacção entre os alunos, e

entre estes e programadores externos à disciplina e à UTAD (conforme exposto na secção 6).

As várias fases dos trabalhos são obrigatoriamente elaboradas on-line, em plataformas

cooperativas ou sociais, permitindo ao docente acompanhar a evolução de cada trabalho

teórico e intervir com esclarecimentos, incentivos, advertências ou sugestões, bem como

percepcionar o envolvimento e contributo dos vários membros do grupo para o resultado

final. Os melhores trabalhos são então apresentados e debatidos em aula no final do semestre.

Page 13: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 13/44

 

9

Nas aulas práticas, procura-se colocar em prática métodos de ensino-aprendizagem

centrados no aluno, onde se dá ênfase à produção de código concreto de aplicação dos

conceitos teóricos. Todas as aulas são leccionadas em contexto de laboratório de

computadores com turmas de cerca de 20 alunos, para que o docente possa acompanhar o

trabalho realizado por cada aluno. As aulas seguem, genericamente, um formato comum que

consiste numa breve apresentação de um problema e de qual a técnica proposta para

resolução do mesmo. De seguida, é proposta aos alunos a tentativa de implementação da

resolução. É reservado um período de tempo para actuação pelos alunos, durante o qual o

docente acompanha e apoia os alunos, identificando dúvidas e erros, ou clarificando aspectos

particulares de implementação da solução. Decorrido o tempo previsto, é apresentada uma

resolução para o problema proposto e uma nova fase (mais avançada), do problema,

procedendo-se de igual forma. Cada aula estará, regra geral, estruturada para

desenvolvimento de três ciclos de problemas e resoluções.

Page 14: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 14/44

 

10

5. Plano de aulas

Os objectivos da UC são concretizados, por via do conteúdo programático e dos métodos

de ensino, nos planos de aulas que se seguem.

 Aulas teóricas

O plano de aulas teóricas (vd. Tabela 3) reflecte 30 horas de contacto semanais,

distribuídas ao longo de 15 semanas, em aulas de 2 horas.

Tabela 3 - Plano de aulas teóricas

Aula Conteúdo

1 Apresentação do docente, dos objectivos, do conteúdo programático, da bibliografiae dos métodos de avaliação.Sensibilização para as temáticas a abordar.

2 O padrão arquitectónico Model-View-Controller.

3 Diferenças entre C++ e C#/.Net: as referências e as propriedades.

4 Eventos e delegados em .Net e no padrão arquitectónico MVC.

5 Implementação de arquitectura MVC em Windows Forms.Delegados simples e multicast .

6 Resolução da 1.ª prova teórica de avaliação

7 Excepções em .Net, gestão de erros em MVC.

8 Interfaces em .Net aplicadas ao padrão arquitectónico MVC.

9 Análise de casos de aplicação em XNA.10 Resolução da 2.ª prova teórica de avaliação

11 Gráficos em Windows: a GDI+

12 Análise de casos de aplicação com libOpenMetaverse.

13 Apresentação de trabalhos teóricos.

14 Apresentação de trabalhos teóricos.

15 Resolução da 3.ª prova teórica.

Page 15: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 15/44

 

11

 Aulas práticas

O plano de aulas práticas (vd. Tabela 4) reflecte 30 horas de contacto semanais,

distribuídas ao longo de 15 semanas, em aulas de 2 horas.

Tabela 4 - Plano de aulas práticas 

Aula Conteúdo

1 Apresentação da metodologia das aulas práticas.Introdução à programação em C#:- Apresentação do ambiente de trabalho;- Aplicação básica de exemplo.

2 Desenvolvimento de aplicações com várias janelas:- Passagem de Informação entre janelas;- Classe DialogResult;Classes de manuseamento de ficheiros de texto.

Classes de diálogos de acesso a ficheiros.3 Desenvolvimento de aplicações com janelas:

- Menus de navegação (MenuStrip e ContextMenuStrip);- Componentes ComboBox, ListBox, ListView e TreeView;Desenvolvimento de aplicação para Windows em C# utilizando o padrãoarquitectónico Model-View-Controller (MVC).

4 Definição e implementação de eventos.Definição de delegados para utilização em eventos.Colecções List, ArrayList, Dictionary, OrderedList.

5 Desenvolvimento de aplicação Windows Forms em C# utilizando o padrãoarquitectónico Model-View-Controller (MVC) – 1.ª parte.

6 Desenvolvimento de aplicação Windows Forms em C# utilizando o padrãoarquitectónico Model-View-Controller (MVC) – 2.ª parte.

7 Leitura e escrita de ficheiros de texto em formatos XML.

8 Definição e implementação de excepções.

9 Definição e implementação de interfaces.

10 Utilização de bibliotecas externas: libOpenMetaverse para integração com o mundovirtual Second Life, utilização em MVC.

11 Correcção da parte prática do 2.º Teste.

12 Utilização de bibliotecas externas: exemplos de desenvolvimento para WindowsPhone em MVC.

13 Gráficos em Windows:- contextos de dispositivo e a GDI+ (classe Graphics).- operações e componentes de desenho gráfico.

14 Gráficos em Windows:- Windows Presentation Foundation.

15 Resolução de exercícios de aplicação de conceitos.

Page 16: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 16/44

 

12

6.  Sistema de avaliação

Pelo exposto nas secções anteriores, a UC “Metodologias de Programação III” requer o

domínio complementar de competências de compreensão e manipulação de conceitos e de

competências de concretização desses conceitos em programação. Desta forma, a avaliação

debruça-se sobre ambas as componentes (prática e teórica), com idêntica ponderação.

Assim, os alunos serão avaliados de forma individual em três provas periódicas com

consulta, distribuídas ao longo do semestre e com recurso ao uso do computador (a

componente teórica é ainda alvo de um trabalho a realizar em grupo). Dado o foco da UC na

compreensão e domínio de competências, a consulta a fontes de informação e o emprego de

ferramentas de software durante estes momentos de avaliação periódica decorre em plena

liberdade de formatos (fontes impressas e on-line). A única restrição reside na não ocorrência

de comunicação com outras pessoas durante as provas (cada prova é individual).

Estas provas são de carácter obrigatório para todos os alunos. Os alunos com estatutos

especiais, em caso de impossibilidade de realização das provas deverão contactar o docente

para combinar datas alternativas para a sua realização. Os temas incidem sobre o conteúdo

leccionado no período compreendido entre duas provas, tendo uma duração aproximada de

50 minutos para cada componente (prática/teórica). A componente prática foca-se em

exercícios de aplicação e a teórica em análise de casos. No Anexo A apresentam-se exemplos

destas provas.

A componente teórica, além das provas de avaliação periódicas, requer também a

realização de um trabalho de grupo. O Anexo B apresenta um exemplo desses trabalhos. No

trabalho de grupo visa-se reforçar as competências instrumentais, interpessoais e sistémicas

dos alunos, levando-os a contactar com comunidades reais de programadores no sentido de

Page 17: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 17/44

 

13

debater e reflector sobre os desafios lançados pelo docente, tendo por produto final novos

materiais teóricos. Estes trabalhos decorrem on-line, numa plataforma wiki (por ex.:

mpiii20102011.pbworks.com – vd. Figura 1), para que o docente possa acompanhar e

aconselhar os alunos no decurso do trabalho teórico, não apenas reagir a eventual

apresentação de dúvidas e avaliar o resultado final.

Figura 1 – Wiki de acompanhamento da elaboração dos trabalhos teóricos

Tabela 5 – Exemplos de temas de trabalhos teóricos 

Tema de trabalho

Escrever um documento pormenorizado que explique como aplicar o padrão arquitectónicoMVC ao desenvolvimento de aplicações com a libOpenMetaverse. Esse documento devecomplementar essa explicação com exemplos concretos das várias formas de aplicação queconcebam.

Escrever um documento pormenorizado que explique como aplicar o padrão arquitectónico

MVC ao desenvolvimento de aplicações na Windows Phone Application Platform, com aframework XNA. Esse documento deve complementar essa explicação com exemplosconcretos das várias formas que concebam para aplicação do padrão.

Escrever um documento pormenorizado que explique como aplicar o padrão arquitectónicoMVC ao desenvolvimento de aplicações na Windows Phone Application Platform, com aframework Silverlight. Esse documento deve complementar essa explicação com exemplosconcretos das várias formas que concebam para aplicação do padrão.

Escrever um documento pormenorizado que explique como aplicar o padrão arquitectónicoMVC ao desenvolvimento de aplicações para Windows com a WPF (Windows PresentationFoundation). Esse documento deve complementar essa explicação com exemplos concretosdas várias formas que concebam para aplicação do padrão.

Page 18: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 18/44

 

14

Os trabalhos teóricos são compostos por quatro partes, avaliadas independentemente: a)

pesquisa bibliográfica inicial, preparatória; b) pesquisa por especialistas e/ou comunidades de

prática sobre o tema; c) interacção com os especialistas e comunidades de prática

identificados, debatendo ideias em busca de soluções para os desafios; e por fim d)

apresentação em aula dos resultados. A Tabela 5 apresenta alguns exemplos de temas de

trabalho propostos aos alunos.

Este modo de avaliação, designado por “Avaliação periódica”, é o modo ordinário, sendo

os restantes exclusivamente decorrentes da aplicação das Normas Pedagógicas da UTAD para

resolução de casos especiais. Em particular, tais normas definem um requisito prévio à

avaliação, designado como a obtenção de “Frequência” a uma UC. No caso de Metodologias

de Programação III, face à sua natureza enquanto UC com horas de contacto lectivas e a

componente prática de avaliação, decorre directamente das normas pedagógicas que a

frequência seja obtida pelo cumprimento cumulativo de duas condições:

•  o aluno não deve faltar a mais de 25% das horas de contacto previstas no

calendário escolar;

•  deverá igualmente obter não menos de 8,5 valores (escala 0 – 20) à componente

prática da avaliação periódica.

Os alunos que obtenham frequência face às condições anteriores obterão a nota final de

avaliação através da seguinte expressão:

Tt = Trabalho teórico, componente n.º t; Pt = Prova teórica n.º t; Pp = Prova prática n.º p

Page 19: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 19/44

 

15

Os alunos que, tendo-se submetido à avaliação periódica, tenham obtido frequência à

disciplina mas não aprovação pela aplicação da fórmula anterior, poderão realizar uma prova

escrita de avaliação complementar (PAC). Este modo de avaliação (“Avaliação periódica mais

PAC”) incidirá sobre as vertentes prática e teórica da unidade curricular, sendo que estes

alunos só poderão efectuar PAC à vertente em que tiverem tido nota inferior a 9,5 valores na

avaliação periódica. A nota obtida em cada vertente da PAC substituirá as componentes

negativas respectivas da fórmula anterior.

Os alunos que, por usufruírem de estatuto especial previsto nas Normas Pedagógicas da

UTAD ou por terem obtido frequência no ano lectivo imediatamente anterior, não tendo

contudo obtido nesse ano aprovação à UC, poderão ser avaliados através de uma prova única

de exame final, que incidirá sobre as vertentes prática e teórica da UC. Neste modo de

avaliação (“Exame final”), a nota final é decorrente da seguinte fórmula: 

Pt = Parte teórica; Pp = Parte prática

Page 20: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 20/44

 

16

7. Bibliografia recomendada

Principal Marques, Paulo; Pedroso, Hernâni; Figueira, Ricardo (2009). C# 3.5. Lisboa, Portugal: FCA.

Curry, Edward, & Grace, Paul (2008). Flexible Self-Management Using the Model-View-

Controller Pattern. IEEE Software, 25 (3), 84-90.

Krasner, G. & Pope, S. (1988). A cookbook for using the model-view controller user

interface paradigm in Smalltalk-80, Journal of Object-Oriented Programming, 1(3), 26 –49.

 Auxiliar 

Stellman, Andrew; Greene, Jennifer (2010). Head First C#: A Learner's Guide to Real-World 

Programming with Visual C# and .NET (2nd Edition). Sebastopol, CA, EUA: O'Reilly Media.

Páginas Web

Visual C# Developer Center 

http://msdn2.microsoft.com/en-gb/vcsharp/default.aspx

101 Visual Basic and C# Code Samples

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=08e3d5f8-033d-420b-a3b1-3074505c03f3

Visual C# Starter Kits

http://msdn2.microsoft.com/en-gb/vcsharp/aa336742.aspx

C# Stationhttp://www.csharp-station.com/

Page 21: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 21/44

 

17

8. Referências

CS2008 Review Taskforce (2008). Computer Science Curriculum 2008: An Interim Revision of CS

2001 Report from the Interim Review Task Force [on-line]. http://www.acm.org/

education/curricula/ComputerScience2008.pdf (23 de Abril de 2011).

Curry, Edward, & Grace, Paul (2008). Flexible Self-Management Using the Model-View-

Controller Pattern. IEEE Software, 25 (3), 84-90.

González, Julia; Wagenaar (Eds., 2003). Tuning Educational Structures in Europe – Final Report 

– Phase One. Bilbau, Espanha: Universidad de Deusto.

Krasner, G. & Pope, S. (1988). A cookbook for using the model-view controller user interface

paradigm in Smalltalk-80, Journal of Object-Oriented Programming, 1(3), 26 –49.

The Joint Task Force for Computing Curricula 2005 (2005). Computing Curricula 2005 – The

Overview Report covering undergraduate degree programs in Computer Engineering,

Computer Science, Information Systems, Information Technology, Software Engineering.

ISBN 1-59593-359-X. Nova Iorque, EUA: ACM.

Page 22: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 22/44

 

18

 Anexo A – Exemplos de provas

Page 23: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 23/44

 

19

Page 24: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 24/44

 

20

Page 25: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 25/44

 

21

Page 26: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 26/44

 

22

Page 27: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 27/44

 

23

Page 28: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 28/44

 

24

Page 29: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 29/44

 

25

Page 30: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 30/44

 

26

Page 31: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 31/44

 

27

 Anexo B – Exemplos detrabalhos teóricos

Page 32: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 32/44

 

28

Trabalho teórico de Metodologias da

Programação III

Os alunos deverão organizar-se em grupos de 4/5 alunos.

O docente atribuirá um problema específico a cada grupo, o qual deverá ser

solucionado, com recurso a documentos científicos e por discussão com peritos da área ou

participação em fóruns e comunidades de prática.

O trabalho que se propõe decompõe-se em três fases, que se encontram abaixo

descritas.

Cada grupo deverá organizar a informação recolhida e disponibilizá-la no wiki da

unidade curricular (http://mpiii20102011.pbworks.com/  ), o qual funcionará como portfólio de

grupo, respeitando os prazos previstos para cada fase.

1.ª Fase – Pesquisa bibliográfica sobre o problema

Duração: 3,5 semanas 7h de carga horária por aluno (2h/semana)

Deadline: 20/03/2011

Tarefas:

1. 

Pesquisa bibliográfica acerca do tema/problema atribuído pelo docente a cadagrupo

2.  Elaboração de fichas de leitura sobre os materiais bibliográficos considerados

relevantes para o trabalho

Nota: no wiki deverão constar:

- locais de consulta (referências correctas)

- materiais seleccionados (cópias dos documentos, salvo se páginas Web)

- fichas de leitura.

Page 33: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 33/44

 

29

2.ª Fase – Pesquisa e contacto com peritos e/ou comunidades de prática

Duração: 2,5 semanas 5h de carga horária por aluno (2h/semana)

Deadline: 07/04/2011 

Tarefas:

1.  Procurar peritos e/ou comunidades relacionadas com o tema do trabalho e

estabelecer o contacto com os mesmos (mailing lists, Facebook, Twitter, LinkedIn,

fóruns de debate, Second Life, etc.);

2.  Convidar esses peritos e/ou comunidades à participação no debate e resolução da

situação-problema;3.  Calendarizar reuniões/encontros virtuais com elementos do grupo e os peritos ou

elementos das comunidades anteriormente contactados, ou ainda outras pessoas

que demonstrem interesse em participar.

Nota: no wiki deverão ser disponibilizados:

- comprovativos do contacto estabelecido com elementos externos à disciplina

(cópias de e-mails ou de posts em fóruns, redes sociais, comunidades, etc.).

- calendário ou cronograma das reuniões a realizar, com respectivas datas, horário e

local (Second Life, fóruns, Facebook, etc.).

3.ª Fase – Troca de ideias/ Procura de soluções para as situações-

problema de cada grupo

Duração: 3,5 semanas 7h de trabalho por aluno (2h/semana)

Deadline: 09/05/2011 

Tarefas:

1.  Estabelecer trocas de ideias/informações com os peritos e comunidades

anteriormente contactados, de forma a enriquecer o trabalho desenvolvido na fase

1;

Page 34: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 34/44

 

30

2.  Realizar debates/reuniões com os mesmos peritos e/ou comunidades, na tentativa

de procura de soluções para a situação-problema de cada grupo;

Nota: no wiki deverão ser disponibilizados:

- Actas e excertos dos encontros/discussões (printscreens; gravação de reuniões

síncronas; materiais trocados e ou indicados pelos peritos/comunidades)

- Relatório com resultados relevantes para a resolução do problema.

4.ª Fase – Apresentação dos melhores trabalhos desenvolvidos

Serão seleccionados os melhores trabalhos elaborados, pelo material disponibilizado no

wiki da unidade curricular.

Os grupos seleccionados apresentarão o trabalho na aula (2 últimas aulas teóricas do

semestre).

Tempo de apresentação: 15 a 20 minutos por grupo.

Page 35: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 35/44

 

31

Exemplo

Área: Administração e Marketing

Tema: O negócio electrónico (E-business/ E-commerce/E-marketing)

Objectivo/Questões-problema:

Desenvolver uma estratégia de negócio electrónico para a uma empresa local

  Que tipo de modelos de negócio deverei seguir?

  Quais as ferramentas mais indicadas para fins de marketing e divulgação? Redessociais? Sítio Web? Blogue? Usar Marketing multicanal?

  Que empresas portuguesas estão apostar neste tipo de negócio? Que estratégias

usam? Com que objectivos?

Fase 1: Pesquisa bibliográfica

Websites consultados:

  Website: Web 2.0 Marketing for Small Bussiness 

Facebook for Business Marketing: This Week’s Posts and Good Links 

http://pegcorwin.com/ 

  Harness The Power Of Twitter For Local Marketing 

http://searchengineland.com/how-to-use-twitter-for-local-marketing-16809 

  A new Twitter business model – a comprehensive hashtag strategy

http://socialmediatoday.com/pkitano/258580/new-twitter-business-model-

developing-comprehensive-hashtag-strategy?ref=node_other_posts_by 

Page 36: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 36/44

 

32

Documentos consultados:

  Bernardo, M., Guerra, J., Rabadão, C., Gonçalves, R., Morgado, L. (2008).

Perspectivas sobre o comércio no Second Life pelos próprios residentes

(comerciantes e produtores de conteúdo). In Actas da conferência cef^SL 08 -Comunicação, Educação e Formação no Second Life®, 26 a 28 de Junho, Universidade

de Aveiro. Consultado em 2010-02-17, Disponível em

http://home.utad.pt/~leonelm/papers/MartineBernardo_et_al.pdf 

  Romão, F. (2010). e-Business: Estratégias e Modelos. Dissertação de Mestrado em

Estatística e Gestão da Informação – Universidade Nova de Lisboa. Consultado em

2011 – 02 - 17, Disponível em

http://dspace.fct.unl.pt/bitstream/10362/2657/1/TEGI0245.pdf 

Ficha de leitura (modelo):

Page 37: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 37/44

 

33

Fase 2: Pesquisar e estabelecer contacto com peritos ou comunidades de prática

Pesquisa:

Page 38: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 38/44

 

34

Page 39: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 39/44

 

35

Page 40: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 40/44

 

36

Contactos estabelecidos:

Page 41: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 41/44

 

37

Page 42: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 42/44

 

38

Page 43: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 43/44

 

39

Page 44: Metodologias de Programação III - Relatório da Unidade Curricular

5/17/2018 Metodologias de Programação III - Relatório da Unidade Curricular - slidepdf.com

http://slidepdf.com/reader/full/metodologias-de-programacao-iii-relatorio-da-unidade-curricular 44/44

 

40

Cronograma de reuniões a realizar:

Reunião Data/Hora Local Convidados1 31.Março.2011

21h (a confirmar)

Twitter AMargaridaMaia

Part Kitano2 15.Abril.2011

19h (a confirmar)Second Life AMargaridaMaia

Pat KitanoSandra Truchi

Fase 3: Resultados

Reunião 1:

31.Março.2011 – Twitter

Presentes: Margarida, Gonçalo e Ricardo, Pat Kitano e AMargaridaMaia 

Duração: 1h

Reunião 2:

15.Abril.2011 – Second Life

Presentes: Margarida, Gonçalo e Ricardo, AMargaridaMaia, Pat Kitano e Sandra

Truchi 

Duração: 1h:30min