Programação 2 Mestrado Integrado em Engenharia Electrotécnica e de Computadores Ana Paula Rocha José Magalhães Cruz Rui Camacho {arocha,jmcruz,rcamacho}@fe.up.pt FEUP Universidade do Porto 26 de Fevereiro de 2009 http://www.fe.up.pt/ prog2
Objectivos da disciplina A disciplina tem os seguintes objectivos fundamentais: aquisição de conhecimentos fundamentais de programação Orientada por Objectos aquisição de conhecimentos básicos de programação em C++ aquisição de conceitos básicos sobre algoritmia e sobre técnicas de concepção de algoritmos aquisição de conhecimentos sobre definições e usos de estruturas de dados
Conteúdo da disciplina 1. Conceitos de Programação Orientada por Objectos Da programação imperativa à programação OO Classes Encapsulamento Herança Abstracção Polimorfismo 2. Introdução à Programação em C++ Elementos básicos da linguagem Entrada/Saída Classes em C++ Templates Biblioteca STL
Conteúdo da disciplina (continuação) 3. Conceitos Fundamentais de algoritmia Análise de complexidade de algoritmos Estratégias de concepção de algoritmos 4. Algoritmos de ordenação e procura em vectores 5. Estruturas de dados Conceito de tipo de dados abstracto Estruturas lineares Tabelas de Dispersão Árvores Binárias de Pesquisa Heaps
Metodologia da disciplina Aulas teóricas para exposição da matéria Aulas teóricas para apresentação e discussão de pequenos exemplos de aplicação Aulas teórico-práticas para desenvolvimento de programas Aulas teórico-práticas para resolução de problemas envolvendo algoritmos e estruturas de dados tratados nas aulas teóricas Realização de um mini-projecto envolvendo programação em C++ fora do horário de aulas (apoio de Monitores)
Bibliografia Bibliografia principal: C++ Primer. Stanley B. Lippman. ISBN: 0-201-82470-1 Data structures and algorithm analysis in C++, Mark A. Weiss, Addison Wesley, 1999. ISBN: 0-201-36122-1 Bibliografia complementar: Programação com classes em C++. Pedro Guerreiro. ISBN: 978-972-722-375-6 Data structures, algorithms, and applications in C++. Sartaj Sahni. ISBN: 0-07-115595-3
Ferramentas recomendadas Utilização de um IDE Eclipse http://www.eclipse.org Utilização de editor e linha de commando emacs http://www.gnu.org/software/emacs/ g++ http://gcc.gnu.org/ Sistema Operativo Linux (usado nos mini-testes de programação)
Componentes da Avaliação A disciplina tem exclusivamente avaliação distribuída: 2 mini-testes de aptidão de programação em C++ de 1h30m cada, resolvidos em computador 2 mini-testes de 1h cada, resolvidos em papel Mini-projecto em grupos de 3 estudantes entrega de um relatório de requisitos Entrega de um relatório de especificação Entrega do relatório final e demonstração do trabalho
Cálculo da Nota Final Nota = 0.15 * MTP1 + 0.15 * MTP2 + 0.2 * MTE1 + 0.2 * MTE2 + 0.3 * MP em que a nota do mini-projecto é calculada por: MP = 0.05*RR + 0.05 * RE + 0.9 * RF legenda: MTP: mini-teste de programação MTE: mini-teste escrito MP: mini-projecto RR: relatório de requisitos RE: relatório de especificação RF: relatório final e demostração do trabalho
Obtenção de Nota de Frequência A nota de frequência é determinada pela nota no Mini-projecto Para ter frequência é necessário ter no mínimo 50% no Mini-projecto
Requisitos Mínimos Mínimo de 30% no primeiro Mini-teste de programação NOTA: o primeiro mini-teste de programação é eliminatório!!! Mínimo de 40% na média do Mini-testes escritos Mínimo de 50% no Mini-projecto
Informações adicionais Avaliação Especial (TE, DA,...) A avaliação relativa ao mini-projecto é exigida a todos os alunos Os alunos inscritos ao abrigo de regimes especiais sem frequência de aulas práticas devem acordar com os docentes as turmas em que realizam o mini-projecto. As restantes componentes da avaliação destes alunos são semelhantes às dos alunos ordinários. Os alunos inscritos em épocas especiais (TE, DA,..) realizam um exame composto por duas provas: uma prova de avaliação em computador (1h30m) e uma prova de avaliação escrita (1h30m).
Informações adicionais Melhoria de Classificação As melhorias de classificação requerem a inscrição na edição seguinte da disciplina, de forma a cumprir os requisitos de avaliação teórica e prática. A Página da disciplina está em: http://www.fe.up.pt/ prog2
Lembretes Os acetatos NÃO são OS elementos de estudo é fundamental ler livros Só se aprende a programar programando!! Começar desde o início a trabalhar para os trabalhos práticos qd estiverem estabelecidos Distribuir tarefas entre os elementos do grupo de trabalho