Anda di halaman 1dari 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

Índice

  • 1. Resumo ..........................................................................................................................

1

  • 2. Enquadramento e objectivos da unidade curricular

.....................................................

2

  • 3. Conteúdo programático

................................................................................................

6

Métodos de

  • 4. ensino........................................................................................................

8

Plano de aulas

  • 5. ............................................................................................................. teóricas ....................................................................................................................

Aulas

10

10

Aulas práticas

....................................................................................................................

11

  • 6. Sistema de avaliação

...................................................................................................

12

  • 7. Bibliografia recomendada Principal

...........................................................................................

............................................................................................................................

16

16

Auxiliar

..............................................................................................................................

16

Páginas Web

.....................................................................................................................

16

8.

Referências

..................................................................................................................

17

Índice de figuras

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

13

Índice de tabelas

Tabela 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

13

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.

1

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

2

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).

3

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

   

Informática

     
  • 4 6

168

 

1.º Semestre

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 4

112

 

Seminário I

     
  • 2 2

56

 

1.º Ano

 

Totais

6

  • 9 6

 

840

30

 

Arquitectura de Computadores

2

 

2

168

6

 

Metodologias de Programação I

2

 

2

168

6

2.º Semestre

Sistemas Digitais

2

 

2

140

5

Análise Matemática

2

 

2

168

6

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

     
  • 3 3

84

 

Laboratório de Informática I

     
  • 2 4

112

 

Totais

8

  • 5 8

 

840

30

   

Metodologias de Programação II

2

 

2

168

6

3.º Semestre

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 2

56

 

Laboratório de Informática II

   
  • 2 112

 

4

2.º Ano

 

Totais

8

  • 5 8

 

840

30

 

Metodologias de Programação III

2

 

2

168

6

 

4.º Semestre

Engenharia de Software

2

 

2

168

6

Comunicação de Dados

2

 

2

168

6

Algoritmia

2

 

2

168

6

Engenharia nas Organizações

     
  • 3 2

56

 

Laboratório de Informática III

   
  • 2 112

 

4

 

Totais

8

  • 5 8

 

840

30

   

Metodologias de Programação IV

2

 

2

168

6

5.º Semestre

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

3.º Ano

 

Totais

8

  • 5 8

 

840

30

 

Metodologias de Programação V

2

 

2

168

6

 

6.º Semestre

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 2

56

 
 

Totais

8

  • 5 8

 

840

30

4

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.

5

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

6

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#

7

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.

8

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.

9

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 bibliografia e 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.

10

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ão arquitectó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ão arquitectónico Model-View-Controller (MVC) 1.ª parte.

6

Desenvolvimento de aplicação Windows Forms em C# utilizando o padrão arquitectó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 mundo virtual 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 Windows Phone 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.

11

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

12

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.

debater e reflector sobre os desafios lançados pelo docente, tendo por produto final novos materiais teóricos.

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ónico MVC ao desenvolvimento de aplicações com a libOpenMetaverse. Esse documento deve complementar essa explicação com exemplos concretos das várias formas de aplicação que concebam.

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 a framework XNA. Esse documento deve complementar essa explicação com exemplos concretos das várias formas que concebam para aplicação do padrão.

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 a framework Silverlight. Esse documento deve complementar essa explicação com exemplos concretos das várias formas que concebam para aplicação do padrão.

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

13

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:

T t = Trabalho teórico, componente n.º t; P t = Prova teórica n.º t; P p = Prova prática n.º p

Os trabalhos teóricos são compostos por quatro partes, avaliadas independentemente: a) pesquisa bibliográfica inicial, preparatória; b)

14

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:

P t = Parte teórica; P p = Parte prática

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

15

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), 2649.

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

C# Station

16

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), 2649.

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.

17

Anexo A Exemplos de provas

18

19

19

20

20

21

21

22

22

23

23

24

24

25

25

26

26

Anexo B Exemplos de trabalhos teóricos

27

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 cada grupo

  • 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.

28

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;

29

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.

30

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? Redes sociais? 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:

31

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):

Documentos consultados:  Bernardo, M., Guerra, J., Rabadão, C., Gonçalves, R., Morgado, L. (2008). Perspectivas sobrehttp://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): 32 " id="pdf-obj-35-21" src="pdf-obj-35-21.jpg">

32

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

Pesquisa:

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

33

34
34

34

35
35

35

Contactos estabelecidos:

Contactos estabelecidos: 36
Contactos estabelecidos: 36

36

37

37

38

38

39
39

39

Cronograma de reuniões a realizar:

Reunião

Data/Hora

Local

Convidados

1

31.Março.2011

Twitter

AMargaridaMaia

21h (a confirmar)

Part Kitano

2

15.Abril.2011

Second Life

AMargaridaMaia

19h (a confirmar)

Pat Kitano Sandra 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

40