terça-feira, 10 de junho de 2008

Estratégias (Arcabouços)

Serviço Público Federal
Universidade Federal do Pará
Campus Universitário de Santarém
Faculdade de Sistemas de Informação
PROINT – Programa Integrado de Apoio ao Ensino, Pesquisa e Extensão
Projeto: Desenvolvimento de Arcabouços para o Suporte às Atividades Acadêmicas em Sistemas de Informação


Arcabouço de Sistemas de Computação
Participantes: Prof. Dr. Glaucio H. S Carvalho, prof. MsC. Cássio D. B. Pinheiro e 3 Bolsistas


Este arcabouço compreende algumas ações que levarão ao desenvolvimento de práticas pedagógicas que solidifiquem o ensino e aprendizado das disciplinas dessa área de competência, que maximizem a integração entre si e com outras do PPC. Como baluartes desse arcabouço destacam-se:

  • A disciplina Avaliação de Desempenho de Sistemas: a atuação transversal dessa disciplina possibilita a sua aplicação em várias áreas do curso, permitindo assim o exercício da interdisciplinaridade. Como exemplos têm-se: os modelos analíticos abordados durante o curso podem ser codificados em uma linguagem de programação, preferencialmente o Java por possuir características orientadas a objeto (primeiro relacionamento com uma disciplina). Esses modelos podem ser aplicados nas disciplinas [1][2][3]: Redes de Computadores, Tópicos especiais em Redes de Computadores, Gerencia de Redes de Computadores, Sistemas Operacionais, Banco de dados, Sistemas Distribuídos, etc. Da mesma forma, os capítulos relacionados à Simulação, podem induzir estudos usando simuladores de redes, como o Network Simulator [4], que podem ser usados para solidificar os conceitos em todas as disciplinas na área de redes de computadores. Não obstante, o estudo de técnicas de aferição pode induzir estudos para aplicação em Arquitetura e Organização de Computadores bem como em Sistemas Operacionais. Essas mesmas técnicas podem também ser usadas para a aferição de Redes usando o Ethereal que pode ser aplicado em Gerência de Redes. Modelos com cunho em desempenho podem ser especificados usando Métodos Formais [3] como Redes de Petri, UML e Statecharts o que aumenta o relacionamento com outras disciplinas. Por fim, Avaliação de Desempenho de Sistemas contém um alto grau de utilização dos conceitos probabilísticos e estatísticos, bem como, de álgebra. Dessa forma, tem-se o relacionamento com mais duas disciplinas do conteúdo básico da formação do bacharel em Sistemas de Informação que são: Probabilidade e Estatística e Álgebra Linear.

  • A linguagem de Programação Java: essa linguagem pode ser usada para o desenvolvimento dos modelos analíticos como descrito acima, mas também em muitos outros tópicos em Sistemas de Computação. A saber: durante a disciplina de rede, pode-se usar o Java para o desenvolvimento de aplicações Cliente e Servidor, Servidores MultiThread e aplicações P2P [5]. Analogamente, ela pode ser usada como suporte ao ensino de Sistemas Operacionais. Em última análise, ela pode ser usada ainda no desenvolvimento de Applets que auxiliem o professor ao ensino de diversas disciplinas. O possível uso de aplicações 3D para o suporte ao ensino ainda estende o relacionamento com a disciplina, a Computação Gráfica.
  • Simuladores: além do Network Simulator, outros simuladores podem ser usados como ferramentas de apoio ao ensino de disciplinas. Como exemplo, tem-se o SimpleEscalar que pode ser utilizado nas disciplinas de Arquitetura e Organização de Computadores [6]. Com esse simulador é possível modificar os vários elementos da organização, para alterar características de desempenho dos diversos componentes, e então avaliar os efeitos dessas modificações. Como esse, diversos aplicativos estão disponíveis na Internet e que podem ser usados para o apoio às disciplinas de Sistema de Computação.


Arcabouço de Engenharia de Software
Participantes: Profa. Dra. Ângela Vilhena Dias e 2 bolsistas.


O arcabouço de Engenharia de Software pretende integrar o ensino das disciplinas desta matéria a uma área de pesquisa de grande avanço tecnológico: a Visão Computacional (computação gráfica, processamento e análise de imagens). As atividades a serem desenvolvidas irão abranger as disciplinas de Programação, Laboratório de Programação, Estruturas de Dados I e II, Interface Usuário-Máquina, Paradigmas de Linguagens de Programação, Computação Gráfica e Tópicos Especiais em Computação Gráfica e Processamento de Imagens. Em adição, qualquer outra disciplina do curso que necessite de ferramentas para a visualização de dados poderá ser beneficiada.
O curso de BSI fundamenta-se no estudo e utilização de tecnologias para tratar, processar e gerenciar informações. As novas tecnologias permitem grandes mudanças no tipo da informação que pode ser manipulada. Por sua vez, as técnicas de aquisição de imagens disponibilizam a informação na forma visual. A área de visão computacional tem como objeto de estudo este tipo de informação através do uso de imagens digitais. Exemplos de áreas de aplicação incluem a medicina, com o diagnóstico por imagens e o sensoriamento remoto, com sistemas de monitoramento. As técnicas em Visão Computacional implementam estruturas de dados construídas a partir de listas, matrizes e grafos, entre outras. Estas estruturas e os algoritmos para manipulá-las são objetos de estudo da matéria de Engenharia de Software.
Serão desenvolvidos experimentos em Visão Computacional que apliquem as teorias da engenharia de software aos problemas de geração de gráficos e figuras, de visualização e manipulação de imagens e objetos gráficos. Os experimentos serão divididos em três módulos: Computação Gráfica, Processamento de Imagens e Análise de Imagens. Cada módulo deverá ter grau de dificuldade compatível com o semestre em curso e gerar um conjunto de materiais didáticos. Os experimentos serão úteis para o aluno (i) praticar e aprofundar o ensino recebido em sala de aula, (ii) aplicar e consolidar este ensino em uma área avançada da tecnologia: a Visão Computacional. Outro fator é que o projeto iniciará o aluno na atividade da investigação científica. Os experimentos e os estudos necessários para a execução serão transmitidos à comunidade acadêmica através de seminários e tutoriais.
As ferramentas para o desenvolvimento dos experimentos se concentrarão inicialmente em: a) três linguagens de programação: OpenGL, C e Java; e b) 4 ambientes de desenvolvimento: Eclipse, NetBeans, Dev-C++, Blender. O acesso a estas ferramentas é livre na Internet.
Arcabouço de Engenharia de Software
Participantes: Profa. MsC. Socorro Vânia Lourenço Alves e Prof. MsC. Cássio D. Borralho e mais 4 bolsistas.

Este arcabouço compreende ações que levarão ao desenvolvimento de práticas pedagógicas que solidifiquem o ensino e aprendizado das disciplinas dessa área de competência, que maximizem a integração entre si e com outras do PPC. Como baluartes desse arcabouço destacam-se:

  • A disciplina Engenharia de Software: essa disciplina tem por objetivo desenvolver uma visão geral sobre Engenharia de Software: etapas, atividades, técnicas, métodos, processos e ferramentas que auxiliam o processo de desenvolvimento de software e os produtos gerados por elas – principais pontos teóricos que embasam a engenharia de sistemas de software. Cada ponto desses é estudado em uma ou mais disciplinas diferentes do currículo do curso, o que caracteriza a atuação transversal dessa disciplina e conseqüente exercício da interdisciplinaridade. Como exemplos, têm-se: a descrição (geral) das fases de desenvolvimento do Software pode ser utilizada como referencia para definição/customização de um processo de desenvolvimento de software. Esse processo pode ser utilizado como processo padrão e pode ser aplicado nas disciplinas de programação, laboratório de programação, Análise e Projeto de Sistemas, Gerência de projetos de software e Sistemas de Informações Regionais. Da mesma forma, o tópico relacionado a técnicas de elicitação de requisitos e estudo de viabilidade podem definir artefatos de trabalho a serem usados como modelo para a descrição de dados numa base de dados nas disciplinas de Banco de Dados I e II, Análise e Projeto de Sistemas e Gerência de projetos de software. O estudo de Projeto Orientado a Objetos tem relacionamento direto com várias disciplinas ofertadas no curso, principalmente àquelas ligadas a área de desenvolvimento, onde estamos reforçando a cultura do paradigma OO. Não obstante, esse paradigma pode também trazer contribuições valiosas para a área de Análise e Projeto de Sistemas, Rede de Computadores, Arquitetura de Software e outras. Por fim, a Engenharia de Software também faz uso constante de conceitos de gerência de projetos e técnicas de projeto de interfaces. Assim, tem-se o relacionamento com mais duas disciplinas do currículo do curso de Sistemas de Informação: Gerência de Projetos de Software e Interação Homem Computador (IHC).
  • Processos de Desenvolvimento de Software que seguem a abordagem OO: o estudo e a utilização de processos que empregam os conceitos da Orientação a Objetos contribuem para o fortalecimento e a padronização de conceitos explorados em várias disciplinas do currículo do curso de Bacharelado em Sistemas de Informação, a saber: na disciplina de Análise e Projeto de Sistemas a adoção de um processo auxiliaria na sistematização das atividades de análise, na reutilização de artefatos,


Arcabouço de Ensino de Programação
Participantes: Prof. Msc. Cássio D. B. Pinheiro e 2 bolsistas


Até meados da década de 1980 havia poucos programas de aplicação para o dia-a-dia do usuário, não havia Internet e o uso corriqueiro de um computador exigia de seus usuários o conhecimento de pelo menos uma linguagem de programação. Estes fatores por si só motivavam os usuários, havidos pelo uso desta ferramenta, a aprender os principais métodos de programação existentes, tornando a tarefa de ensinar programação bem mais fácil para os profissionais destinados a esta tarefa.
Nos dias atuais, com os gerenciadores de janela (Mac OS, Windows, Kde, e outros) e ferramentas de Apoio ao Desenvolvimento de Software (ADSs), o usuário comum, com uns "clics" consegue criar suas próprias aplicações, fazendo com este processo seja muito mais fácil e intuitivo, e dispensando o conhecimento dos conceitos fundamentais do computador para que este possa ser usado.
O que parece ser uma boa notícia, para os professores da área de computação, não é, já que estas "facilidades" não motivam os alunos a aprenderem os conceitos fundamentais do funcionamento do computador, e conseqüentemente, a programar para sistemas de nível mais baixo, como utilitários e programas de suporte.
É com este objetivo que este arcabouço pretende especificar novos métodos e ferramentas de ensino/aprendizado de programação, de forma que os alunos e professores possam desempenhar esta tarefa com maior eficiência e facilidade, contornando os problemas já citados.
De forma específica, este arcabouço deve implementar algumas as ações que levem a consolidação do ensino/aprendizado das disciplinas da área de programação e afins, como Programação, Laboratório de Programação, Estruturas de Dados I, Redes, Gerência de Redes, e Banco de Dados I e II; tendo como base formadora de idéias as disciplinas de Lógica Aplicada a Computação, Paradigmas de Linguagens e Interação Usuários-Máquina.

Sem comentários: