IEFP – DELEGAÇÃO REGIONAL DE LISBOA E VALE DO TEJO
CENTRO DE EMPREGO E FORMAÇÃO PROFISSIONAL DO SEIXAL
REFLEXÃO FINAL
CURSO: PROGRAMADOR/A DE INFORMÁTICA
UFCD: 3935 – PROGRAMAÇÃO EM C# (50 HORAS) UFCD: 3935 – PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – JAVA (50 HORAS)
Formanda: Maria João Fernandes Valfreixo Marques
Formador: Carlos Fernandes
14/06/2021 3935 – Programação em C#
A programação desenvolveu-se durante os anos 90 com linguagens como C# ou Java,
linguagens essas que adotaram os princípios e caraterísticas do paradigma orientado a objetos, em que esse objeto tem um estado interno, não volátil e é capaz d responder e efetuar operações sobre esse estado. Um dos primeiros conceitos lecionados neste módulo foi as estruturas de controlo, que permitem a execução de diferentes linhas de código a partir da avaliação de uma condição. Exemplo disso são as de recursos de seleção, if/else e switch/case, ou as de repetição, como o while, do/while, for ou foreach. Outro dos conceitos foi o de procedimentos e funções, em que o primeiro é qualquer bloco de código agrupado com objetivo de ser reutilizado e com forma organizacional. Este processo tem dois principais tipos: os que não retornam valores (que são reconhecidos como sendo iniciados pela palavra void) e as funções (também conhecidas como sub-rotinas), ou os que retornam um valor ao código original. A recursividade, uma função lecionada, representa um método que evoca a si mesmo para calcular o resultado pretendido, em que esse método é repetido até que o problema esteja resolvido, terminando a função, retornando o valor de forma a solucionar o cálculo. Deparamo-nos então com novo conceito – o de estruturas de dados, matrizes, compostas por elementos com o mesmo tipo primitivo, os vetores, que podem ser unidimensionais (uma variável com n posições) ou bidimensionais (sequência de variáveis, todas com o mesmo nome, diferenciadas entre si pelos seus índices). Como exemplo prático foi-nos pedido a elaboração do Jogo do Galo. De seguida, o conceito de estruturas dinâmicas foi abordado, com aplicação num trabalho prático pedido, o de simular um Esquema de Senhas Automáticas para Atendimento. Conceitos para utilização do Windows form, uma forma produtiva de criar aplicativos na área de trabalho, com base no design visual fornecido, no nosso caso, pelo Visual Studio, foi dado como base de arranque para os conceitos mais concretos de C#, para a programação orientada a objetos. Nesta fase, aprendemos que a programação orientada a objetos (POO) é uma técnica que utiliza objetos, que são estruturas de dados autocontidas que consistem em propriedades, métodos e eventos. As propriedades especificam os dados representados por um objeto, os métodos, o seu comportamento e os eventos, a comunicação entre os diferentes objetos. Uma classe é o modelo do qual são criados os objetos individuais. Assim, dentro de uma classe podemos ter os seguintes membros: atributos (elementos que definem a estrutura), construtores (responsáveis pela inicialização dos objetos das classes), destrutores, domínios, métodos (as ações que a classe ou instância realizarão), as propriedades (responsáveis pela inicialização dos objetos das classes), indexadores, delegates, eventos e classes aninhadas. Outro dos conceitos apresentado foi o polimorfismo, caraterizado pelo fato de uma operação poder ser implantada de diferentes maneiras pelas classes na hierarquia. Toda esta informação foi aplicada num novo projeto que nos foi pedido, o das Figuras. A seguir, abordámos os construtores múltiplos, construídos de forma a não sobrecarregar os métodos na mesma classe. Herança ou Composição? Duas técnicas usadas para estabelecer relacionamentos entre classes e objetos. Enquanto a herança deriva uma classe de outra, a composição define uma classe como a soma das suas partes. Ou seja, é por meio da herança que uma classe copia todas as propriedades, atributos e métodos de outra classe, reutilizando o seu código. Voltámos a classes e métodos, dando mais um dos seus conceitos, o do abstract, que são classes que não podem ser instanciadas (não podem criar objetos), tendo como finalidade fornecer uma definição comum de uma classe que pode ser compartilhada por várias classes derivadas (filhas). Um método abstrato não possui qualquer implementação, sendo um método virtual, possuindo apenas a definição da sua assinatura, sendo implantado na classe filha. Finalmente, foi abordado o conceito de interfaces, em que é um tipo de classes que contém apenas as assinaturas de métodos, propriedades, eventos e indexadores, ou seja, descreve a maneira como se deseja que o objeto seja utilizado, sendo assim possível utilizar heranças múltiplas entre classes de forma nativa, situação não possível em C#, exceto através da sua utilização. E, paralelamente á apresentação destes conceitos, fomos construindo um outro projeto, o dos Professores. Confesso que este módulo, de todo o curso, foi, para mim, o mais difícil. Talvez tenha sido eu que me perdi, a determinada altura…. Sempre senti o apoio e suporte de toda uma equipa de colegas, ao longo deste ano de curso… exceto neste módulo. Não sei se por egoísmo ou por falta de tempo (tento acreditar neste último), mas com o estágio aqui à porta, importa impressionar formadores… neste módulo senti que, havendo elementos já com fortes conhecimentos anteriores, os que nada sabiam, perderam o barco…. Neste final de curso foi-nos ainda pedido um último projeto, o chamado Projeto Final. Muito complicado…. A sensação de nada saber foi-se apoderando, o cansaço, o medo, o saber que a classificação deste trabalho irá validar todo um trabalho feito ao longo do ano, foram causas que me levaram para um estado de ansiedade e até mesmo pânico que se irá refletir seguramente no resultado do mesmo. Um curso como este, em que a distância foi o principal elemento, ninguém estava preparado para o que se iria encontrar. É de fato um curso, um módulo muito trabalhoso, que foi muito prejudicado pela falta de presença…. presencialmente, a dúvida aparece, está ali o formador…. On-line não… há sempre o medo de parecer que se está a destoar de todo um grupo… todos têm participação no saber ou não saber… muitas vezes não houve muitos silêncios de quem não estava a perceber, mas que, com vergonha ou mesmo receio, das reações e/ou comentários que iam sendo ditos e tidos, os ia adquirindo como hábito, tornando-se sombras que apenas pairavam pelo curso…. O formador foi sempre tentando suprimir esta falha, em boa parte feita pelos alunos, mas penso que também ele sentiu o que agora aqui deixo escrito. Não sei se conseguirei terminar este módulo, este curso, ir para estágio, mas uma coisa eu sei. Tudo fiz para o conseguir, o formador também o fez… sinto que algo falhou, o quê, não sei, talvez tudo tenha começado na seleção das pessoas deste curso… conhecimentos dispares, levam a que se alcance objetivos a diferentes velocidades. Mas no final, a avaliação desde módulo, deste curso é positiva… pelo menos para 6 dos 21 elementos que iniciaram esta aventura.