Impressão em: 03-01-2013 17:11:20 Ficha da Unidade Curricular (UC) 1. Identificação Unidade Orgânica : Escola Superior de Tecnologia e Gestão Curso : [IS] Informática para a Saúde Tipo de Curso : UC/Módulo : Computadores e Programação Carácter : obrigatória Área Científica : Ciências de base ECTS : 7 Ano : 1º Semestre : 1º Ano Letivo : 2011/2012 Pré-Requisitos : Não tem. Horas de Trabalho Ensino Teórico (T) 30:00 Ensino Prático Laboratorial (PL) 45:00 Orientação Tutorial (OT) 5:00 Horas de Trab. Autónomo 109:00 Horas Totais 189:00 Idioma: Português e Inglês 2. Corpo Docente Docente Responsável : Ricardo Filipe Gonçalves Martinho Docentes: Catarina Isabel Ferreira Viveiros Tavares Reis Ricardo Filipe Gonçalves Martinho 3. Enquadramento Esta UC, disciplina básica do curso de Informática para a Saúde, proporciona ao estudante a aquisição de competências básicas de programação orientada a objetos. Esta aprendizagem é complementada na unidade curricular de Complementos de Programação. A capacidade de desenvolver programas em linguagens de programação orientadas a objetos é necessária em várias unidades curriculares do curso. A programação orientada a objetos é o paradigma dominante no mercado de software, incluindo a Informática para a Saúde. 4. Objetivos/Competências Gerais C1. Compreensão dos conceitos básicos da programação estruturada. C2. Compreensão dos conceitos básicos da programação orientada a objetos. C3. Capacidade de análise de um problema. C4. Capacidade de desenvolver programas que resolvam um problema. C5. Capacidade de exploração das bibliotecas de uma linguagem de programação. Específicas C6. Capacidade de formular algoritmos para resolução de problemas. C7. Capacidade de identificar os objetos envolvidos num problema, os atributos e serviços desses objetos. C8. Capacidade de estruturar um programa que resolva um determinado problema. C9. Capacidade de utilizar um ambiente integrado de desenvolvimento de software. Capacidade de manipular os elementos básicos da programação orientada a objetos que suportem a solução para um problema: C10. Capacidade de utilizar classes, variáveis, métodos e operadores. C11. Capacidade de encapsular classes. C12. Capacidade de utilizar estruturas de controlo.
C13. Capacidade de utilizar tabelas. C14. Capacidade de utilizar strings. C15. Capacidade de utilizar classes wrapper. C16. Capacidade de gerar a documentação de um programa. Transversais C17. Capacidade de trabalhar autonomamente. C18. Capacidade de compreender os termos em língua inglesa que ocorrem nas linguagens de programação. C19. Capacidade de utilizar informação de forma eficiente. C20. Capacidade de trabalhar em equipa. C21. Capacidade de realizar projetos. C22. Capacidade de abstração. C23. Capacidade de raciocínio lógico. 5. Programa 5.1 Resumido 1. Introdução à programação orientada a objetos 2. Tipos de dados e operadores 3. Estruturas de controlo 4. Métodos 5. Classes e objetos 6. Encapsulamento 7. Tabelas 8. Strings 9. Classes wrapper 10. Documentação de um programa 5.2 Detalhado 1. Introdução à programação orientada a objetos 1.1 Algoritmos 1.2 Noção de programa 1.3 Compilação e interpretação 1.4 Paradigmas de programação 1.5 Noção de classe e objeto 2. Tipos de dados e operadores 2.1 Comentários 2.2 Noção de variável e identificador 2.3 Tipos de dados primitivos e referenciados
2.4 Declaração e iniciação de variáveis 2.5 Constantes 2.6 Operadores aritméticos, de atribuição, de incrementação, relacionais e lógicos 2.7 Operador de conversão 2.8 Expressões 3. Estruturas de controlo 3.1 Estruturas de decisão 3.2 Estruturas de repetição 4. Métodos 4.1 Estrutura de um método 4.2 Passagem de parâmetros por valor e referência 4.3 Visibilidade das variáveis 4.4 Overloading de métodos 5. Classes e objetos 5.1 Estrutura de um programa 5.2 Estrutura e definição de classes 5.3 Instanciação e iniciação de objetos 5.4 Objetos: referências 5.5 Construtores 5.6 Manipulação de objetos 5.7 Membros da instância e membros da classe
5.8 Referência this 5.9 Garbage collection 6. Encapsulamento 6.1 Acesso público 6.2 Acesso privado 7. Tabelas 7.1 Declaração e instanciação de tabelas 7.2 Manipulação de tabelas 7.3 Métodos de ordenação de tabelas 7.3.1 Troca direta 7.3.2 Seleção 7.3.3 Borbulhamento 7.4 Métodos de pesquisa em tabelas 7.4.1 Pesquisa sequencial 7.4.2 Pesquisa binária 8. Strings 8.1 Classes String e StringBuilder 9. Classes Wrapper 9.1 Utilização de classes Wrapper 9.2 Autoboxing e unboxing 10. Documentação de um programa
5.3 Fundamentação da coerência dos conteúdos programáticos com os objetivos/competências da unidade curricular Os conteúdos programáticos lecionados contribuem para as competências gerais estabelecidas para a UC da seguinte forma: 1. Introdução à programação orientada a objetos 1.1 Algoritmos (C1, C6) 1.2 Noção de programa (C1) 1.3 Compilação e interpretação (C1) 1.4 Paradigmas de programação (C1, C2) 1.5 Noção de classe e objeto (C2, C7) 2. Tipos de dados e operadores 2.1 Comentários (C1, C16) 2.2 Noção de variável e identificador (C1, C10) 2.3 Tipos de dados primitivos e referenciados (C1, C10, C18) 2.4 Declaração e iniciação de variáveis (C1, C10, C11, C18) 2.5 Constantes (C1, C10, C18) 2.6 Operadores aritméticos, de atribuição, de incrementação, relacionais e lógicos (C1, C10, C23) 2.7 Operador de conversão (C1, C10, C18) 2.8 Expressões (C1, C10) 3. Estruturas de controlo 3.1 Estruturas de decisão (C1, C12, C18) 3.2 Estruturas de repetição (C1, C12, C18) 4. Métodos
4.1 Estrutura de um método (C1, C2, C3, C4, C10, C11) 4.2 Passagem de parâmetros por valor e referência (C1, C2, C3, C10) 4.3 Visibilidade das variáveis (C1, C2, C3, C10) 4.4 Overloading de métodos (C2, C3, C10, C18) 5. Classes e objetos 5.1 Estrutura de um programa (C2, C3, C4, C8) 5.2 Estrutura e definição de classes (C2, C3, C4, C8, C10, C18) 5.3 Instanciação e iniciação de objetos (C2, C3, C4, C10) 5.4 Objetos: referências (C2, C3, C4, C10) 5.5 Construtores (C2, C3, C4, C10) 5.6 Manipulação de objetos (C2, C3, C4, C10) 5.7 Membros da instância e membros da classe (C2, C3, C7, C10, C18) 5.8 Referência this (C2, C4, C10, C18) 5.9 Garbage collection (C2, C18) 6. Encapsulamento 6.1 Acesso público (C2, C3, C4, C11, C18) 6.2 Acesso privado (C2, C3, C4, C11, C18) 7. Tabelas 7.1 Declaração e instanciação de tabelas (C1, C2, C3, C4, C13) 7.2 Manipulação de tabelas (C1, C2, C4, C13) 7.3 Métodos de ordenação de tabelas
7.3.1 Troca direta (C1, C4, C13) 7.3.2 Seleção (C1, C4, C13) 7.3.3 Borbulhamento (C1, C4, C13) 7.4 Métodos de pesquisa em tabelas 7.4.1 Pesquisa sequencial (C1, C4, C13) 7.4.2 Pesquisa binária (C1, C4, C13) 8. Strings 8.1 Classes String e StringBuilder (C2, C4, C14, C18) 9. Classes Wrapper 9.1 Utilização de classes Wrapper (C2, C4, C15, C18) 9.2 Autoboxing e unboxing (C2, C4, C18) 10. Documentação de um programa (C5, C4, C16, C18) 6. Metodologia de Ensino / Aprendizagem 6.1 Presencial e Autónoma A metodologia de aprendizagem desenvolve-se através das seguintes componentes: Presencial 1. Ensino teórico 1.1 Apresentação dos conceitos da programação estruturada e orientada a objetos. 1.2 Exemplificação com problemas reais. 2. Ensino prático e laboratorial 2.1 Realização de exercícios de aplicação específica e de casos de prática simulada. 2.2 Desenvolvimento de um projeto. 3. Orientação tutorial 3.1 Sessões de orientação pessoal, em pequenos grupos para conduzir o processo de aprendizagem e esclarecerem-se dúvidas. 1. Estudo 1.1 Leitura da bibliografia recomendada pela unidade curricular. 1.2 Resolução dos exercícios recomendados pela unidade curricular.
1.3 Desenvolvimento de um projeto. 2. E-aprendizagem 2.1 Consulta de material relativo à unidade curricular. 6.2 Recursos Específicos 1. Ensino teórico - sala de aula normal 2. Ensino prático e laboratorial laboratório de aplicações informáticas 3. Orientação tutorial gabinete ou sala de aula normal 6.3 Fundamentação da coerência das metodologias de ensino com objetivos/competências da unidade curricular As metodologias de ensino usadas contribuem para as competências gerais estabelecidas para a UC da seguinte forma: Presencial 1. Ensino teórico 1.1 Apresentação dos conceitos da programação estruturada e orientada a objetos (C1 a C16) 1.2 Exemplificação com problemas reais (C1 a C16) 2. Ensino prático e laboratorial 2.1 Realização de exercícios de aplicação específica e de casos de prática simulada (C1 a C16, C18, C19, C22, C23) 2.2 Desenvolvimento de um projeto (C1 a C23) 3. Orientação tutorial 3.1 Sessões de orientação pessoal, em pequenos grupos para conduzir o processo de aprendizagem e esclarecerem-se dúvidas (C1, C2, C3, C4, C6 a C16) 7. Avaliação 7.1 Descrição Avaliação contínua:
Nota final (3 componentes): 50% - nota dos mini-testes teóricos escritos (1 por aula T, contam os 10 melhores) 15% - nota das fichas de avaliação práticas (3 fichas práticas) 35% - nota do projeto - Mínimos de 9,5 (em 20) em todas componentes; O projeto é realizado em grupos de 2 estudantes com apresentação e defesa obrigatórias. Épocas normal, recurso e especiais: 50% - Teste escrito teórico (mínimos de 9,5 valores em 20); 50% - Prova prática no computador (mínimos de 9,5 valores em 20). Nota importante: Os estudantes podem optar por substituir o teste escrito teórico pela nota global dos mini-testes obtida em avaliação contínua (>= 9,5 valores em 20), ou a prova prática no computador pela média ponderada das notas das fichas de avaliação prática e do projeto 7.2 Número de Elementos de Avaliação 7.2.1 Contínua/Periódica: 14 7.2.2 Final: 2 8 Bibliografia 8.1 Principal - Bruce Eckel, Thinking in Java, Prentice Hall, fourth edition, 2006. - F. Mário Martins, Java 6 e Programação orientada pelos objectos, FCA, primeira edição, 2009. - Apontamentos das aulas. 8.2 Complementar - David Arnow, Gerald Weiss, Introduction to Programming Using Java: An Object Oriented Approach, Addison-Wesley, second edition, 2003. - Timothy Budd, Understanding Object-Oriented Programming with Java, Addison-Wesley - The Java Tutorials (http://docs.oracle.com/javase/tutorial/). 9. Aprovação pelo CTC Aprovado em Conselho Científico em : 29-06-2012