UNIDADE GS1 - FUNDAMENTOS DE PROGRAMAÇÃO E DESENVOLVIMENTO DE SOFTWARE

 

Objetivo

Os estudantes deverão ser capazes de projetar e programar sistemas relativamente pequenos, baseados em computadores, os quais representem problemas orientados a processos.

Objetivos secundários

Os estudantes deverão ser capazes de:

1.seguir os princípios básicos de engenharia de software;

2.analisar metodicamente problemas orientados a procedimentos, até conseguir decompô-los em passos procedurais;

3.aplicar técnicas mais ou menos formais para projetar algoritmos efetivos e estruturas de dados:

4.codificar e implementar programas e subprogramas (módulos) usando um ambiente de programação de propósito geral;

5.usar um modelo funcional de um sistema de computação e de seu ambiente de programação.

  1.  

Contexto

Os alunos precisam desenvolver habilidades fundamentais tanto para a informática, como disciplina, como para o desenvolvimento de programas, em todos os níveis. Isso inclui o uso de métodos mais ou menos formais para a analise de problemas e projetos de programas, com ênfase na criação de programas não muito complexos que reúnam as especificações dadas e utilizem uma interface relativamente simples.

Atenção especifica deve ser dada aos tipos de problemas que podem ser programados usando tipos de dados simples e estruturados (caracteres, inteiros, reais, arrays, etc.); estruturas básicas de controle (seqüência, seleção e repetição); e uma linguagem de programação de alto nível bloco estruturado.

A ênfase esta na modelagem completa por meio da abstração do processo em estudo (decomposição, top-down em subprocessos e subprogramas). Os métodos de análise, as estratégias de projeto e o ambiente da linguagem de programação utilizados devem dar suporte a esse tipo de modelagem.

 

Conteúdo

Os estudantes solucionarão vários problemas, gradativamente mais complexos. Os problemas são esboçados a partir de aplicações reais, as quais os alunos possam rapidamente entender e modelar. Pequenos problemas individuais são escolhidos para ensinar como usar novas operações algorítmicas em conjunto com elementos que já são conhecidos. Entretanto, alguns problemas mais abrangentes devem ser incluídos, de modo que os alunos possam utilizar de maneira integrada tudo o que foi aprendido.

Analise do problema

Os alunos aplicam técnicas informais e técnicas formais elementares para analisar problemas simples, orientados a processos em várias áreas de aplicação, e descreve-los em termos de passos de subprocessos.

Projeto

ALGORITMOS: os alunos projetam soluções modulares por meio da análise top-down e refinamento passo a passo. Eles escolhem e especificam estruturas de dados e algoritmos adequados ao projeto. As estruturas de dados e as estruturas de controle usadas no algoritmo devem ser diretamente relacionadas com as estruturas primitivas da linguagem de programação estruturada.

Interface COM O USUÁRIO: os estudantes projetam interfaces com o usuário para os seus algoritmos, sob a forma de um conjunto de telas interligadas e dispostas hierarquicamente (arvore).

 

PROGRAMAÇÃO:

o algoritmo e a estrutura modular são codificados em uma linguagem de programação de uso geral.

IMPLEMENTAÇÃO E AVALIAÇÃO:

o código é então concretizado na forma de programa executável em um sistema de computação, utilizando-se um ambiente de programação disponível. Os alunos devem testar e remover os erros encontrados, além de identificar as limitações do programa.

Tópicos

Recursos

Recursos mínimos necessários:

Versão de uma linguagem de programação de alto nível bloco estruturada, como suporte ao projeto modular de programas e que contenha os tipos de dados e as estruturas de controle necessários.

 

Livros-textos de nível introdutório com exemplos de aplicações do uso da linguagem de programação. Textos mais recentes, sobre introdução a informática ou sobre modelos de organização da ciência da computação, os quais tenham sido desenvolvidos na prática e que estejam dentro dos objetivos desta unidade

 

Recursos extras adicionais

Textos adicionais sobre organização de computadores, sistema operacional, compiladores e tradutores de linguagens, representação interna da informação, engenharia de software e ciclo de vida dos programas.

Conexões

Metodologia

Os conceitos e as habilidades incluídos nesta unidade são aqueles que usualmente estão presentes em um primeiro curso de informática para estudantes de nível avançado, os quais alguns países podem achar mais apropriado para instituições de ensino superior do que para escolas secundárias. Esta unidade é bastante extensa e requer um tempo significativo de estudo semanal, estendendo-se desde um semestre para mais de um ano. O tempo necessário depende de experiência prévia e da formação dos alunos: se já estudaram Alfabetização em Computação ou programação em Nível Fundamental. Dependendo dos objetivos do grupo, uma subdivisão da unidade pode ser aconselhável, organizada em torno dos conceitos ou princípios que estão em estudo.

A ênfase nesta unidade deve ser dada sobre as aplicações construídas. Os alunos terão de aplicar técnicas e princípios, começando com problemas elementares e aprimorando suas habilidades para manipular problemas cada vez mais complexos. As habilidades e os conceitos aprendidos nas primeiras lições são constantemente reintroduzidos de modo pratico, em novos problemas que envolvem novos conceitos. Exercícios periódicos e projetos que permitam aos alunos a síntese e a integração dos conhecimentos aprendidos também devem ser incluídos.

Retornar Apêndice 3

Retornar