Escola Superior de Tecnologia e Gestão Descritor de Unidade Curricular Nível de ciclo de estudos: Licenciatura Curso: Engenharia Informática Unidade Curricular: 9119114 – Linguagens de Programação Ano 2 Semestre 3 Tipo de Unidade Curricular: Obrigatória Área CNAEF: 523 Modo de Ensino: Presencial ECTS: 6,0 Língua de Trabalho: Português DOCENTE RESPONSÁVEL: José Jasnau Caeiro TEMPO DE TRABALHO DO ESTUDANTE EM HORAS Horas de Contacto HORAS TOTAIS Ensino teórico (T) Ensino teóricoprático (TP) Ensino prático e laboratorial (PL) 15 45 150 Trabalho de campo (TC) Seminário (S) Estágio (E) Orientação tutorial (OT) Outra (O) Horas de Trabalho Autónomo 90 Pré-requisitos (se aplicável): n/a. OBJETIVOS EDUCACIONAIS / RESULTADOS DE APRENDIZAGEM C1 Classificação e propriedades das linguagens de programação C2 Paradigmas de programação: imperativo; funcional e orientado por objetos C3 Programação imperativa em Python C4 Programação funcional em Python C5 Programação orientada por objetos em Python C6 Desenvolvimento de protótipos de aplicações com Python C7 Programação em Python com ligação a outras linguagens de programação (Java e C) C8 Interfaces gráficas em Python C9 Aplicações matemáticas e numéricas em Python C10 Utilização da plataforma .NET C11 Programação com C# C12 Programação orientada por objetos em C# C13 Programação funcional orientada por objetos em C# C14 Utilização de sistemas de consulta integrada LINQ CONTEÚDOS PROGRAMÁTICOS I Linguagens de Programação I.1 Sintaxe e semântica: gramática e Backus-Naur-Form I.2 Sistemas de tipos I.3 Paradigmas de programação: funcional; orientado por objetos e imperativo. I.4 Interpretação e compilação. Compilação Just in Time. II Python II.1 Sistema de Tipos Página 1 de 3 II.2 Estruturas de Controlo de Fluxo II.3 Funções II.4 Programação funcional e recursividade II.5 Estruturas de dados sequenciais II.6 Cadeias de carateres II.7 Ficheiros II.8 Bases de dados embebidas II.9 Exceções II.10 Iteradores e Geradores II.11 Programação orientada por objetos II.12 Bibilioteca padrão II.13 Interfaces gráficas II.14 ORM e Web Framework II.15 Cálculo Numérico e Cientifico III C# III.1 Plataforma .NET III.2 Sistema de tipos III.3 Cadeias de caracteres III.4 Controlo de fluxo III.5 Programação Orientada por objetos III.6 Eventos, delegates e expressões lambda III.7 Exceções III.8 LINQ DEMONSTRAÇÃO DA COERÊNCIA DOS CONTEÚDOS PROGRAMÁTICOS COM OS OBJETIVOS DE APRENDIZAGEM A matriz de relação de conteúdos programáticos com os objetivos de aprendizagem é: C1 – I1, I2 C2 - I3 C3 – II.1, II.2, II.3, II.5, II.6, II.7, II.8, II.9 C4 – II.4, II.10 C5 – II.11 C6 – II.12, II.14 C7 – II.12 C8 – II.13 C9 - II.15 C10 – III.1 C11 – III.2, III.3, III.4, III.7 C12- III.5 C13- III.6 C14- III.8 MÉTODOS DE ENSINO E APRENDIZAGEM Aulas teórico-práticas com exposição de slides em ecrã. Realização em aulas práticas de código em guias de laboratório. DEMONSTRAÇÃO DA COERÊNCIA DAS METODOLOGIAS DE ENSINO COM OS OBJETIVOS DAS APRENDIZAGENS* Os conceitos teóricos de linguagens de programação e a exposição formal da sintaxe de Python e C# adequam-se ao ensino em ambiente de aula teórica com slides. O treino da programação requer aulas práticas com guias de orientação da execução Página 2 de 3 do código. MÉTODOS DE AVALIAÇÃO Realização dum trabalho prático em Python (25% da avaliação). Realização dum trabalho prático em C# (25% da avaliação). Realização de exame (50% da avaliação). BIBLIOGRAFIA PRINCIPAL [1] Mark Lutz, "Learning Python 5ed," O'Reilly Media, 2013. [2] Luciano Ramalho, "Fluent Python," O'Reilly Media, 2015. [3] David Beazley e Brian Jones, "Python Cookbook, 2ed", O'Reilly Media, 2013. [4] Rob Miles, “C# Programming Yellow Book, 7ed” University of Hull, 2015. Ano letivo de entrada em vigor: 2015/2016 | Data de aprovação em Conselho Técnico-Científico: 2016-01-06 Página 3 de 3