Áreas Científicas e suas disciplinas

Nesta página apresentam-se as várias Unidades Curriculares (UCs) que existem no Departamento de Informática, organizadas por área científica.

  • Arquiteturas e Sistemas Operativos
    • Sistemas Digitais
      1º ano, 1º semestre. Cursos: LEI, LEIRT.

      Docentes

       João P. Carvalho Carlos Fernandes Daniel Fernandes Sérgio Ferreira

      Apresentação

      Esta unidade curricular visa apresentar aos estudantes os conceitos básicos conducentes à compreensão de Unidades Curriculares mais avançadas, nomeadamente no domínio da arquitetura de computadores. Tem ainda como objetivo potenciar o desenvolvimento do racíonio lógico.

      Programa

      1. Códigos numéricos e Sistemas de Numeração (5%) Circuitos Lógicos Básicos (5%)
      2. Álgebra de Boole (10%)
      3. Funções Lógicas (10%)
      4. Circuitos Combinatórios Básicos( 15%)
      5. Circuitos Digitais com Memória (25%)
      6. Síntese de Circuitos Sequênciais Elementares (25%)

      Objectivos

      Os conteúdos programáticos são adequados aos objectivos da disciplina tendo em conta a actualidade e o processo de Bolonha tendo uma forte componente prática laboratorial. A matéria das aulas teóricas está devidamente actualizada e adaptada ao perfil dos alunos para o 1º ano do Curso de Engenharia segundo o protocolo de Bolonha.
      O responsável pela disciplina tem vindo a fazer evoluir os conteúdos programáticos ao longo dos anos em face da experiência profissional e académica próprias, tendo sempre presente o conteúdo programático das escolas de referência para as matérias leccionadas.

      Metodologia

      Aulas interativas com os alunos de forma a cativar os mesmos para terem uma base sólida de aprendizagem.

    • Arquitectura de Computadores
      1º ano, 2º semestre. Cursos: LEI, LEIRT.

      Docentes

       Daniel Fernandes Paulo Guedes Ricardo Santos Sérgio Ferreira

      Apresentação

      Esta unidade curricular (UC) introduz conceitos de circuitos lógicos combinatórios e sequenciais. Os alunos aprendem a construir uma máquina sequencial e posteriormente um microprocessador. Como transformar uma operação numa instrução que possa ser interpretada e executada por um processador é um dos objetivos principais desta UC.

      Programa

      Aulas Teóricas

      1. Circuitos digitais MSI: Portas Lógicas, registos, contadores, memórias, multiplexers e descodificadores. Simulação.
      2. Arquitetura de um Microprocessador (CPU) genérico.
        1. Componentes básicos: ALU, Registos e Barramentos.
        2. Instruções e Microinstruções
        3. Memórias de Programa e Dados.
        4. Fluxo de informação num CPU: Operações Fetch e Execution
      3. Estudo de um Microcontrolador comercial de baixo custo.
      4. Ambiente de desenvolvimento, programação, simulação e teste.

      Aulas Práticas

      1. Componentes digitais típicos
      2. Simulação de componentes básicos da arquitetura interna de um CPU genérico
      3. Projeto simples com um microcontrolador comercial económico

      Objectivos

      Entender o funcionamento dos computadores, de uma perspetiva microscópica até uma perspetiva macroscópica. Reconhecimento das potencialidades e limitações de um computador. Entendimento da forma como interagem os diversos elementos da estrutura/arquitetura de um computador.

      Metodologia

      Por descrever

    • Fundamentos de Electrónica
      1º ano, 2º semestre. Cursos: LEIRT.

    • Arq. Avanç. de Computador
      2º ano, 1º semestre. Cursos: LEI.

      Docentes

       Pedro Serra Daniel Fernandes Wellington Oliveira

      Apresentação

      Esta unidade curricular vem completar os conhecimentos adquiridos anteriormente nas UCs de Sistemas Digitais e Arquitectura de Computadores, abordando temas mais actuais e conceitos de mais alto nível. A compreensão destes conceitos avançados de arquitectura de computadores faz com que os alunos tomem consciencia das limitações e possibilidades do hardware. Consequentemente poderão criar programas mais eficientes, capazes de tirar partido das capacidades do hardware e que tenham em conta as eventuais limitações deste.

      Programa

      1. Introdução
      2. O processador
      Principais módulos funcionais
      Condutas e riscos
      Exceções
      Paralelismo ao nível da instrução
      3. Hierarquia de memória
      Dispositivos e tecnologia de armazenamento: disco magnético, memória flash
      Memórias cache
      Memória virtual
      Confiabilidade na hierarquia de memória
      Paralelismo: coerência entre caches, RAID
      4. Arquiteturas paralelas
      Limites de frequência, dissipação de energia e memória
      Paralelismo e limites ao aumento de desempenho
      SIMD e processadores vetoriais
      Multithreading em hardware
      Arquiteturas de multiprocessador¿ aglomerados e computação em grelha.
      GPUs
      Medição de desempenho
      5. Virtualização
      Origens e definição do conceito de máquina virtual
      Conceito de hipervisor
      Variantes de implementação
      Virtualização de sistema: processador, memória, periféricos (E/S)
      Exemplos de plataformas

      Projetos

      • Controlo e Gestão de Ginásio

        Descrição
        • Criação de um sistema automatizado com arduinos
        • Há liberdade de escolha do propósito do projeto

        Conceitos aplicados da Unidade Curricular
        • Montagem de circuitos eletrónicos com múltiplos sensores
        • Programação em C++
        Tecnologias usadas
        • Simulação no Thinkercad
        • Arduino Uno R3, ou outro modelo
        • Arduino IDE
      • Casa Inteligente

        Descrição
        • No âmbito da disciplina de arquitetura avançada de computadores decidimos como projeto final criar uma casa inteligente. O objetivo principal era criar um casa para um dia a dia mais pratico e facil.
        • Na nossa casa contamos com um sistema de segurança com fechadura com um código e um sistema de alarme por movimento. Iluminação interior e exterior com sensores para uma eficiência energética melhor. Um sistema de ar condicionado com um display que disponibiliza a temperatura ambiente da casa bem como o estado de funcionamento do ar condicionado. Contamos tambem com uma persiana automática e uma campainha.

        Conceitos aplicados da Unidade Curricular
        • Arduino
        • Programação em C
        Tecnologias usadas
        • C
        • Arduino IDE
        • Thinkercad

      Objectivos

      Os estudantes devem conhecer os componentes de um computador moderno e compreender o seu funcionamento e as suas interações. Devem ser capazes de identificar o fluxo de dados e analizar o desempenho de um computador.

      Esta competência é diretamente aplicável nos domínios do hardware e da administração de sistemas, e indiretamente aplicável no domínio do software – permitindo formar futuros engenheiros informáticos que tomem decisões de análise, desenho e implementação de software que tirem partido das capacidades do hardware e tenham em conta as eventuais limitações destas.

      Metodologia

      Trabalhos práticos com avaliação por pares

      Trabalhos práticos com componentes electronicos físicos

    • Sistemas Operativos
      2º ano, 1º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       João Craveiro Daniel M. Silveira João Madeira

      Apresentação

      O objectivo desta UC é o de apresentar os princípios fundamentais dos Sistemas Operativos, de forma a permitir uma compreensão detalhada da sua arquitectura e funcionamento, dando aos alunos os conhecimentos e capacidades para utilizar, configurar e optimizar este componente fundamental dos sistemas informáticos.

      Programa

      • Introdução a Sistemas Operativos
      • Processos
      • Threads e concorrência
      • Escalonamento do CPU
      • Sincronização de processos
      • Deadlocks
      • Gestão de Memória
      • Gestão de armazenamento em massa
      • Sistema de ficheiros
      • Virtualizacao

      Objectivos

      No final da cadeira, os alunos deverão:

      • Conhecer os princípios dos Sistemas Operativos actuais e identificar os vários componentes que o constituem.
      • Conhecer os algoritmos fundamentais em que assentam os principais componentes de um Sistema Operativo assim como as suas optimizações mais atuais.
      • Programar exemplos ilustrativos de alguns algoritmos mais representativos (escalonador, sistema de ficheiros, etc..)
      • Tirar partido da utilização directa das interfaces sistema para o desenvolvimento e optimização de aplicações complexas.

      Metodologia

      A aprendizagem é baseada em Aulas Teóricas e Práticas Laboratoriais, onde os alunos têm oportunidade de adquirir uma experiência aprofundada e directa dos principais temas abordados na cadeira, através da realização trabalhos e projectos centrados na implementação de funcionalidades essenciais dos Sistemas Operativos. O ensino é ilustrado por exemplos extraídos de alguns dos sistemas mais utilizados (Unix, Windows, …).

    • Computação Distribuída
      3º ano, 1º semestre. Cursos: LEI, LEIRT.

      Docentes

       Paulo Guedes Sérgio Nunes

      Apresentação

      Disciplina focada na construção de aplicações distribuídas, onde se abordam os principais aspetos teóricos e práticos necessários para a construção dessas aplicações.

      Programa

      1. Introdução. Caracterização, requisitos, arquitectura e funcionalidades
      2. Arquitecturas e Modelos de Comunicação Distribuída. Arquitecturas de sistemas, níveis de software
      3. Comunicação entre Processos Distribuídos (IPC). Características da comunicação entre processos, Invocação, parâmetros e heterogeneidade de dados
      4. Invocação Remota e Objectos Distribuídos. RPC: Modelo de execução. Linguagem de definição de interfaces (IDL). Plataformas de execução: Sun RPC, Java RMI
      5. Nomeação e Serviços de Directório. Tipos de Nomes. Espaços de nomeação. Serviços de Directório (Web, X.500, LDAP)
      6. Web Services (WS). Modelo de Execução Web Services (WS). O protocolo SOAP. Linguagens de definição de Serviços (WSDL)
      7. Segurança. Modelo de segurança. Autenticação. Controlo de acesso
      8. Sistemas de Ficheiros Distribuídos. Arquitecturas de SGF distribuídos. Implementações: NFS e AFS
      9. Transações. Modelo transaccional. Propriedades ACID das transacções. Transacções distribuídas. Protocolo 2-phase-commit

      Projetos

      • OceanView Seats

        Descrição
        • Este projeto consiste no desenvolvimento de um serviço distribuído de reservas de sombrinhas e espreguiçadeiras para praias no Algarve.
        • O sistema permite que os utilizadores realizem várias ações, como por exemplo,
        • listagem de sombrinhas (não reservadas) de uma praia, reserva de sombrinhas e cance-
        • lamento de reservas.
        • O serviço permite ainda registo e autenticação de utilizadores (de forma segura) de modo a que estes consigam fazer a gestão das suas reservas.
        • Todas as operações do serviço são disponibilizadas através de uma User Interface (UI) simples e intuitiva.
        • A arquitetura do sistema destaca-se pela eficiência e modularidade permitindo que este seja facilmente escalável.

        Conceitos aplicados da Unidade Curricular
        • Arquiteturas e Modelos de Comunicação Distribuída.
        • Invocação Remota e Objetos Distribuídos. Modelo de execução RPC (Remote Procedure Call).
        • Web Services (WS). Modelo de Execução Web Services (WS). Linguagens de definição de serviços (WSDL).
        • REST (REpresentational State Transfer) e SOAP (Simple Object Access Protocol).
        • Autenticação e controlo de acessos.
        • Segurança. Modelo de segurança.
        • Modelo transacional. Propriedades ACID
        Tecnologias usadas
        • Java
        • Eclipse IDE/IntelliJ IDEA
        • Maven
        • Java RMI
        • Apache Tomcat
        • GitHub
        • PostgreSQL (opção do grupo)
        • JavaFX (opção do grupo)

      Objectivos

      Esta unidade curricular tem por objectivo abordar os principais modelos de computação distribuída, começando pelas técnicas fundamentais, apresentando de seguida as tecnologias associadas à invocação remota de objectos e arquitecturas orientadas aos serviços e terminando com os fundamentos de segurança e transações distribuídas.

      Metodologia

      São realizados mini-testes para garantir que os alunos acompanham regularmente a disciplina

    • Enterprise Engineering – opcional
      1º ano, 2º semestre. Cursos: MEISI.

  • Genérica
    • Trabalho Final de Curso 1º Semestre
      3º ano, 1º semestre. Cursos: LEI, LIG.

      Docentes

       Luis A. Gomes Daniel Fernandes Gabriela Soares João P. Carvalho Lucio Studer Pedro Alves Sofia Naique Bruno Cipriano Bruno Saraiva Daniel M. Silveira Diogo Morais Duarte Neves João Caldeira João Craveiro José Cascais Brás Manuel M. Pita Maria Silva Pedro Perdigão Pedro Serra Rodrigo Correia Rui Ribeiro Rui Santos Sérgio Ferreira Sofia Fernandes Wellington Oliveira Zuil Pirola

      Apresentação

      O Trabalho Final de Curso (TFC) é um elemento fundamental do currículo da Licenciaturas, funcionando como um momento nuclear na formação dos alunos, nomeadamente em ordem à
      promoção da sua integração profissional e/ou iniciação ao trabalho científico.
      O TFC deve corresponder a um projecto aplicado na área objecto de estudo, podendo incluir a realização de projectos de produção de soluções relevantes para os conteúdos dos curso,
      desenvolvimento de software ou projectos de índole mais teórica ou académica. O TFC deve conduzir a resultados finais susceptíveis de utilização em contexto real (aparelho, programa, método, modelo conceptual, contributo para investigação ou conclusões sobre um problema).

       

      Programa

      CP1. Orientação.

      CP2. Elaboração do estado da arte.

      CP3. Desenvolvimento do projeto.

               CP3.1. Identificação de problema

               CP3.2. Planeamento do projecto

               CP3.3. Demonstração de viabilidade

               CP3.4. Execução

               CP3.5. Controlo do projecto

               CP3.6. Testes

      CP4. Apresentação dos resultados.

      Objectivos

      O principal objectivo desta unidade curricular é de integrar os conceitos que foram adquiridos pelo aluno ao longo do curso, num projecto de âmbito alargado e onde o aluno autonomamente resolva um problema.

      Este objectivo geral pode ser concretizado por:

      OA1. Saber aplicar os princípios e técnicas associadas à conceção e implementação de casos reais ou simulados.

      OA2. Saber aplicar os conhecimentos obtidos nas unidades curriculares do curso face a problemas ligados às mesmas, bem como a aplicação dos conhecimentos a novos paradigmas dos SI/TIC não abordados no curso.

      OA3. Saber investigar o estado da arte no objeto de estudo.

      OA4. Saber desenvolver um trabalho de natureza aplicada que integre os conhecimentos adquiridos ao longo da componente curricular do curso.

      Metodologia

      Por descrever

    • Trabalho Final de Curso 2º Semestre
      3º ano, 2º semestre. Cursos: LEI, LIG.

    • Metodologias de Investigação Científica
      1º ano, 1º semestre. Cursos: MEISI.

    • Seminário de Orientação
      1º ano, 1º semestre. Cursos: MEISI.

      Docentes

      Apresentação

      Esta unidade curricular pretende ser uma introdução à investigação e cultura científicas na área de informática e ciências da computação.

      Os alunos observam a aplicação de conceitos elementares do processo de investigação científica, sendo também encorajados a utilizá-los em situações práticas. Pretende-se que estes conhecimentos, teóricos e práticos, sejam aplicados nas restantes unidades curriculares do mestrado, em particular na elaboração da proposta de dissertação.

      Programa

      1. Processo de investigação científica
      2. Escrita científica e estratégias de publicação
      3. Análise crítica e discussão de artigos científicos 
      4. Pesquisa bibliográfica
      5. Realização de comunicações orais

      Objectivos

      Os objectivos pedagógicos desta UC são:

      – adquirir a capacidade de ler e analisar criticamente uma publicação científica, identificando as suas principais contribuições de forma a que as possam sintetizar numa comunicação oral e/ou escrita estruturada.

      – ter uma visão clara do processo de investigação científica, em particular do momento de pesquisa bibliográfica, devendo estar capacitados para executar este último de forma autónoma.

      – ter a capacidade de estruturar o estado da arte numa dada área científica, identificando gaps que levem a perguntas de investigação.

      – ter uma noção do processo de escrita e publicação científica e identificar uma estratégia de publicação

      Metodologia

      Embora nesta UC existam algumas aulas tradicionais, na maioria das sessões o docente tomará um papel menos activo – em particular, em sessões de journal club ou nas discussões após os seminários o docente tomará preferencialmente um papel de moderador na discussão, encorajando a participação dos alunos mas não impondo a sua visão.

      A própria avaliação consistirá, em boa parte, de apresentações dos alunos.

      Verifica-se que modelos similares, incluindo momentos de "flipped classroom", aumentam a participação dos alunos e a retenção de conhecimentos.

    • Seminário de Tutoria
      1º ano, 2º semestre. Cursos: MEISI, MCiD.

    • Seminário de Projecto
      2º ano, 1º semestre. Cursos: MEISI, MCiD.

      Docentes

      Apresentação

      Esta unidade curricular suporta a execução da dissertação de mestrado. O seu resultado final é a elaboração e defesa da dissertação.

      Programa

      Os conteúdos programáticos são definidos em cada caso em função do tema escolhido pelo candidato com base no seu trabalho de pesquisa e em sugestões do orientador.

      Objectivos

      Esta unidade curricular suporta a execução da dissertação de mestrado. Na dissertação o aluno irá aprofundar um tema e apresentar um texto académico de acordo com o método experimental e científico e defendê-lo perante um júri. Irá aprofundar a sua capacidade de identificação de problemas, o estudo de problemas semelhantes e abordagens relevantes publicadas na literatura, a capacidade de resolução de problemas não triviais, a capacidade de avaliação dos resultados e de tirada de conclusões, a capacidade de escrever de forma compreensível e exata o seu trabalho e a capacidade de o apresentar e defender perante terceiros.

      Metodologia

      N.A.

    • Metodologias de Investigação e inovação
      1º ano, 1º semestre. Cursos: DI.

    • Planeamento de Tese
      1º ano, 2º semestre. Cursos: DI.

  • Gestão e Softskills
    • Contabilidade
      1º ano, 1º semestre. Cursos: LIG.

    • Teoria e Prática de Marketing
      1º ano, 1º semestre. Cursos: LIG.

    • Competências Comportamentais
      1º ano, 2º semestre. Cursos: LEI, LIG.

      Docentes

       Diogo Morais Tomáz Saraiva

      Apresentação

      Esta unidade curricular (UC) inscreve-se num contexto onde têm sido elencadas necessidades de adaptação dos especialistas em informática ao contexto das organizações, nomeadamente no que às denominadas soft skills diz respeito. Assim, pretende-se que os alunos desenvolvam conhecimentos ao nível das ferramentas básicas de empregabilidade (ex. Currículo, redes sociais e networking, marketing pessoal), gestão das emoções, gestão de tempo (ex. trabalho remoto), trabalho em equipa e liderança, comunicação e desenvolvimento de competências comportamentais e autoconhecimento. Por outro lado, é objetivo desta UC o desenvolvimento de um plano individual de desenvolvimento pessoal, bem como de aptidões que permitam aos alunos destingir entre factos e opiniões, conhecimento científico e senso comum. Sendo uma UC de índole prática, pretende-se que os conhecimentos sejam operacionalizáveis e tendentes ao desenvolvimento de competências transferíveis do plano académico para a domínio profissional.

      Programa

      Marketing Pessoal:

      1. CV;
      2. Portefólio;
      3. Apresentação pessoal e contextos de entrevista;
      4. Apresentação em público e ferramentas de suporte;
      5. Redes sociais e Networking;
      6. Factos Vs Opiniões;
      7. Gestão de tempo:
        1. Trabalho remoto e comunicação mediada;
        2. Work-life balance.
      8. As tecnologias no trabalho: oportunidades e ameaças:
      9. Trabalho em equipa;
      10. Comunicação;
      11. Personal and Social Skills development;
      12. Percursos de carreira;
      13. Critical thinking and problem solving.

      Projetos

      • IT in competences development

        Descrição
        • Desenvolvimento de competências via projetos tecnológicos (apps, jogos, websites), incluindo análise de mercado e estratégias de monetização.
        • Apresentação de 10 minutos para captação de investimento, seguida de avaliação pelos pares.

        Conceitos aplicados da Unidade Curricular
        • Critical Thinking, apresentações públicas, personal marketing e desenvolvimento de competências.
        Tecnologias usadas
        • Diversas. Ficou ao critério dos alunos a definição dos pressupostos técnicos, não havendo limitações

      Objectivos

      Pretende-se que os alunos desenvolvam conhecimentos ao nível das ferramentas básicas de empregabilidade (ex. Currículo, redes sociais e networking, marketing pessoal), gestão das emoções, gestão de tempo (ex. trabalho remoto), trabalho em equipa e liderança, comunicação e desenvolvimento de competências comportamentais e autoconhecimento. Por outro lado, é objetivo desta UC o desenvolvimento de um plano individual de desenvolvimento pessoal, bem como de aptidões que permitam aos alunos destingir entre factos e opiniões, conhecimento científico e senso comum. Sendo uma UC de índole prática, pretende-se que os conhecimentos sejam operacionalizáveis e tendentes ao desenvolvimento de competências transferíveis do plano académico para a domínio profissional.

      Metodologia

      Por descrever

    • Cálculo Financeiro
      1º ano, 2º semestre. Cursos: LIG.

    • Instrumentos de Gestão
      2º ano, 1º semestre. Cursos: LIG.

      Docentes

       Rui Cardoso

      Apresentação

      A UC Instrumentos de Gestão insere-se no plano geral de formação na Licenciatura em Informática de Gestão, procurando estabelecer a ligação entre o ambiente informático e o ecossistema de negócios e dotar os alunos da necessária compreensão dos conceitos e princípios universais da Ciência Gestão de Empresas.

      Programa

      Tabela de Matérias:

      1. A Empresa
        1. Conceitos;
        2. O Gestor
          1. Competências;
          2. Funções;
          3. Evolução do Foco das Teorias da Gestão
            1. Tarefas;
            2. Organização;
            3. Pessoas;
            4. Ambiente;
            5. Tecnologia;
          4. Dimensões da Gestão
            1. Conceção;
            2. Planeamento;
            3. Organização;
            4. Direção;
            5. Coordenação;
            6. Controlo e Desenvolvimento;
          5. Estruturas Organizacionais
            1. Princípios;
            2. Arquitetura;
            3. Tipos de Estrutura;
            4. Departamentalização;
            5. Organogramas;
            6. Funções Fundamentais da Gestão
              1. Estratégia;
              2. Finanças;
              3. Marketing;
              4. Recursos Humanos;
              5. Operações;
            7. Tendências da Gestão:
              1. Ética;
              2. Responsabilidade Social;
              3. Sustentabilidade;
              4. Governance.

      Objectivos

      1. Apreender o Conceito de Empresa;
      2. Saber Elencar as Competências e as Tarefas do Gestor;
      3. Conhecer a Evolução das Teorias da Gestão;
      4. Identificar as Dimensões da Gestão;
      5. Descrever os Princípios da Gestão das Organizações;
      6. Entender as Funções Fundamentais da Gestão;
      7. Descobrir as Tendências da Gestão.

      Metodologia

      .

    • Gestão Financeira
      2º ano, 2º semestre. Cursos: LIG.

    • Auditoria de Sistemas de Informação
      3º ano, 2º semestre. Cursos: LIG.

    • Controlo de Gestão
      3º ano, 2º semestre. Cursos: LIG.

    • Motivação e Liderança
      3º ano, 2º semestre. Cursos: LIG.

    • Marketing em Tecnologias de Informação
      1º ano, 1º semestre. Cursos: MEISI.

    • Empreendedorismo Tecnológico – opcional
      1º ano, 2º semestre. Cursos: MEISI.

    • Media Interativos
      º ano, º semestre. Cursos:

  • Dados e Inteligência Artificial
    • Fund. Ciência de Dados
      1º ano, 1º semestre. Cursos: LCiD, LiCMA.

    • Análise Exploratória de Dados
      1º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Ciencia de Dados
      2º ano, 1º semestre. Cursos: LCiD.

      Docentes

       Manuel M. Pita

      Apresentação

      Muitos projetos na área da programação envolvem a resolução de problemas computacionais complexos, para os quais soluções rápidas e simplistas podem não ser suficientemente eficientes. Esta UC foca-se na problemática da conceção de bons algoritmos e de como analisar a sua correção e a sua eficiência. Estas são questões particularmente importantes, numa altura a qualidade do software se vem tornado, progressivamente, numa questão central. Trata-se portanto de uma UC particularmente relevante para o ciclo de estudos.

      Programa

      CP1: Complexidade, classes, funções típicas e análise de algoritmos;

      CP2: Complexidade e recursividade (conjunto de problemas recursivos);

      CP3: Algoritmos de pesquisa e seleção;

      CP4: Algoritmos de ordenação: Insertion Sort, Heap Sort, Merge Sort e Quicksort;

      CP5: Comparação dos algoritmos de ordenação quanto à sua complexidade (programação do Quicksort);

      CP6: Tipos abstratos de dados: Pilha e Fila;

      CP7: array circular, listas simples e duplamente ligadas;

      CP8: Implementação de Pilha e Fila (programação em array e / ou listas);

      CP9: Funções de dispersão: aberta e fechada;

      CP10: Tabelas de hash (prática de utilização de Dicionários e Conjuntos);

      CP11: Árvore binária, árvores AVL e árvore preta e vermelha;

      CP12: Árvore binária (programação de árvore binária);

      CP13: Noções básicas de grafos: grafo orientado, não orientado e etiquetado, caminho e comprimento;

      CP14: Caminho mais curto entre dois vértices – Algoritmo de Dijkstra;

      CP15: Algoritmo de Dijkstra (programação).

      Projetos

      • Dados Complicados – Universidade do País Das Maravilhas

        Descrição
        • Projeto realizado com elevada interacção com o docente, tentando simular um ambiente real
        • Processar conteúdo para varias fontes de dados (bases de dados, ficheiros de texto)Identificar dados estranhos ou inválidosDescobrir quais os dados para considerar com ajuda do "data scientist"
        • Produzir data frames utilizando técnicas de data science

        Conceitos aplicados da Unidade Curricular
        • Bases de Dados
        • Programação
        • Comunicação
        Tecnologias usadas
        • SQL / MySQL
        • Python, Pandas
        • GitHub

      Objectivos

      OA1: Analisar e comparar a complexidade de algoritmos;

      OA2: Aplicar a recursividade na resolução de problemas;

      OA3: Explicar e usar alguns dos principais algoritmos de pesquisa, seleção e ordenação;

      OA4: programar algoritmos de ordenação [aplicar o conhecimento (AC)];

      OA5: Explicar e usar os tipos abstratos de dados: Pilha e Fila;

      OA6: Programar uma Pilha e / ou Fila utilizando arrays ou listas (AC);

      OA7: Explicar as funções de dispersão;

      OA8: Usar as estruturas de dados Dicionários e Conjuntos na resolução de problemas (AC);

      OA9: Explicar e usar as estruturas de dados: árvore binária, AVL e preta e vermelha;

      OA10: Programar uma árvore binária (AC);

      OA11: Explicar e dar exemplos da utilização de grafos na resolução de problemas;

      OA12: Programar o algoritmo de Dijkstra (AC).

      Metodologia

      M1: Ensino expositivo: A apresentação de conceitos teóricos é feita de forma expositiva através de slides. Disponibilizam-se num canal Educast da FCCN video-tutoriais curtos desenvolvidos sobre os conceitos chave da disciplina.

      M2: Ensino ativo: os conceitos teóricos são demonstrados recorrendo a "live coding" pelo docente.

      M3: Aprendizagem experimental: São usadas fichas em Jupyter Notebook que permitem a experimentação imediata dos conceitos lecionados.

      M4: Aprendizagem participativa: Durante as aulas é estimulada a discussão em grupo dos exercícios e projetos semanais.

      M5: Auto-avaliação: foi desenvolvida uma plataforma que permite realizar quizzes para avaliação de todos os conhecimentos, cuja solução submetida é validada de forma automática.

      M6: Aprendizagem orientada a projeto: são realizados de forma autónoma exercícios e projetos semanais com desafios exploratórios de aspectos complementares.

      M7: Avaliação contínua: fichas semanais, quizzes, projetos, minitestes e frequencias.

    • Fundamentos de Engenharia de Dados
      2º ano, 1º semestre. Cursos: LCiD, LiCMA.

      Docentes

       Gabriela Soares

      Apresentação

      Esta cadeira aborda uma variedade de tópicos relacionados à engenharia de dados numa perspectiva do Cientista de Dados, desde as diversas fontes de dados até a estrutura e disponibilização dos dados processados para modelos e visualização. Os alunos aprendem os fundamentos conceituais da engenharia de dados que permitem disponibilizar dados com qualidade para utilização em aplicações de ciência de dados.

      Programa

      A UC está organizada nos seguintes conteúdos programáticos:

      • CP1 – Introdução
        • O que é um Engenheiro de Dados?
        • O que um cientista de dados necessita saber de engenharia de dados?
        • Pipelines de engenharia de dados
      • CP2 – Bases de Dados relacionais
        • Revisão de SQL
        • Conceitos utilizdos em modelos de dados
      • CP3 – Modelagem de dados
        • Fontes de dados
        • Data Lake
        • Data Warehouse
        • Data Lakehouse
        • Modelos de dados
      • CP4 – Fundamentos de Big-data
        • Hadoop
        • MapReduce
      • CP5 – Transformação de dados
        • Transformações necessárias para armazenar os dados para projetos de Data Science
      • CP6 – Ferramentas de visualização de dados
      • CP7 – Bases de dados NoSQL
      • CP8 – Projetos de engenharia de dados

      Objectivos

      OA1. Compreender os conceitos fundamentais de engenharia de dados.

      OA2. Compreender o ciclo de vida da engenharia de dados.

      OA3. Aprender a utilizar SQL para transformar e consultar dados.

      OA4. Compreender técnicas de modelação de dados para organização e gestão de dados.

      OA5. Construir pipelines para coletar, transformar, analisar e visualizar dados de fontes operacionais de dados.

      OA6. Ser capaz de aplicar os princípios utilizados nas aulas para construir um pipeline completo da coleta à visualização de dados.

      Metodologia

      As aulas são expositivas e presenciais. Incentiva-se a participação ativa dos alunos/as no processo de ensino através de perguntas que estimulam o interesse pelos conteúdos da disciplina. Quando apropriado, a apresentação dos conteúdos é precedida pelo estudo de problemas específicos que os alunos conhecem. Alguns tópicos surgem na sequência da análise de problemas cuja resolução leva naturalmente à seu questionamento e/ou formulação. Sempre que possível, os conteúdos são ilustrados com exemplos e contraexemplos. Na maioria das sessões de aula, são apresentados problemas para que os alunos trabalhem independentemente, a fim de garantir a compreensão dos conceitos e técnicas abordados.

    • Introdução à Inteligência Artificial
      2º ano, 1º semestre. Cursos: LCiD.

      Docentes

       João P. Carvalho

      Apresentação

      Esta UC tem como objetivo conferir competências introdutórias no campo da Inteligência Artificial, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de IIA.

      Programa

      • Noções básicas de IA vários domínios.
      • Procura de caminhos, orientação e navegação: grafos, algoritmos de Dijkstra e A*, grelhas e malhas de navegação, funções de custo.
      • Decisões: árvores de decisão, máquinas de estados, árvores de comportamento, outras abordagens.
      • Aprendizagem: noções básicas, previsão de ações, classificadores de Bayes, outras abordagens.
      • Jogos de tabuleiro: noções básicas, família de algoritmos minimax, MCTS, outras abordagens. 

      Objectivos

      1. Domínio das noções básicas de Inteligência Artificial.
      2. Domínio de conceitos básicos e intermédios de movimento inteligente e procura de caminhos.
      3. Domínio de conceitos intermédios e avançados na tomada de decisões através de máquinas de estado, árvores de comportamento, entre outros.
      4. Domínio de tópicos de Inteligência Artificial em jogos de tabuleiro.
      5. Capacidade de resolver problemas envolvendo os conceitos adquiridos, tanto a nível abstrato como ao nível prático (programação).

      Metodologia

      • A lecionação é constituída por aulas teórico-práticas.
      • A componente teórica é essencialmente expositiva, sendo a teoria apresentada em conjunto com exemplos concretos.
      • Na componente prática são desenvolvidos e resolvidos problemas práticos ao nível da programação relacionados com a teoria lecionada.
      • Nesta unidade curricular a avaliação inclui os seguintes elementos:
        • Avaliação teórica, sob a forma de teste escrito, exercícios, com peso de 30% na nota final (nota mínima: 9.5 valores).
        • Avaliação prática (projetos/problemas de programação/apresentações), com peso de 70% na nota final (nota mínima: 9.5 valores).
    • Aprendizagem Automatizada I
      2º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Intro. Teoria dos Grafos e Networks
      2º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Processamento de Imagem
      2º ano, 2º semestre. Cursos: LEI.

      Docentes

       João P. Carvalho Houda Harkat

      Apresentação

      Esta unidade curricular e¿ dedicada ao processamento de imagem, como fonte sensorial de maior alto ni¿vel. Aqui sera¿o apresentadas as va¿rias tecnologias de sensores de imagem, a captac¿a¿o de imagem e em seguida sa¿o estudados os va¿rios me¿todos de tratamento de imagem e de extrac¿a¿o de informac¿a¿o. Na componente pra¿tica sera¿ desenvolvida uma aplicac¿a¿o de processamento de imagem, que ira¿ usar os alguns dos me¿todos aprendidos durante o semestre para resolver um problema pra¿tico que sera¿ proposto, usando a biblioteca OpenCV e linguagem c#. Ira¿ tambe¿m ser dado umas noções de introduc¿a¿o a¿ Intelige¿ncia Artifical aplicadas nas imagens.

      Programa

      1. Processamento de Imagens: dos pixeis a¿s caracteri¿sticas;
      2. Operac¿o¿es sobre imagens;
      3. Segmentac¿a¿o;
      4. Detecc¿a¿o de objectos;
      5. Extracc¿a¿o de caracteri¿sticas;
      6. Medidas;
      7. Ana¿lise de aplicac¿o¿es.

      Conteu¿dos de ensino a¿ dista¿ncia: Tutoriais e apoio em video-confere¿ncia e/ou em comunicac¿a¿o assi¿ncrona.

      Objectivos

      Pretende-se que no final do semestre os estudantes possuam:

      • Capacidades de analisar imagens 2D e aplicar os filtros necessa¿rios (como a rotac¿a¿o, translac¿a¿o, etc) para um determinado objectivo;
      • Conhecimentos mais aprofundados na linguagem c#;
      • Noc¿o¿es ba¿sicas de intelige¿ncia artifical em imagens.

      Metodologia

      Por descrever

    • Sistemas de Suporte à Decisão
      2º ano, 2º semestre. Cursos: LEI, LIG.

      Docentes

       Rui Ribeiro João Caldeira João Licínio

      Apresentação

      A UC de Sistemas de Suporte à Decisão / Business Intelligence tem por objetivo garantir que há a introdução à temática de processos de análise de dados para apoio às áreas de gestão das empresas. Neste sentido, a UC tem um papel fundamental no ciclo de estudo na compreensão dos processos de gestão e decisão de organizações, para além de como colocar infraestruturas de dados ao serviço do negócio empresarial.

      Programa

      • Desafios de Negócio de DW
      • Arquitecturas DW
      • Melhores Práticas de Modelação de DW
      • Implementação de ETL
      • Bases de Dados específicas para BI
      • Ferramentas de Relatórios

      Projetos

      • Modelação, ETL e Reporting

        Descrição
        • Modelação de uma base de dados relacional transformando-a em um modelo dimensional (estrela) usando o Oracle Data Modeler
        • Implementação de processos ETL para transferência e transformação de dados para um Datawarehouse com o Pentaho Data Integration
        • Criação de relatórios e dashboards analíticos com visualizações interativas utilizando o Power BI Desktop, para facilitar a tomada de decisão baseada em dados

        Conceitos aplicados da Unidade Curricular
        • Modelação Dimensional – o modelo em Estrela
        • Extração, transformação e carregamento de dados para um Datawarehouse
        • Análise de dados – Ferramentas de Reporting
        Tecnologias usadas
        • Oracle Data Modeler
        • Pentaho Data Integration
        • Power BI Desktop

      Objectivos

      • Entender por que as empresas precisam de um ambiente de BI
      • Quais componentes da arquitetura existem para BI
      • Esquemas de modelação para DW
      • Conhecer os vários processos de manipulação de dados em ambientes DW
      • O que um colaborador/utilizador pode obter em interfaces de relatórios

      Metodologia

      Por descrever

    • Visualização para Ciência de Dados
      2º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Data Mining
      3º ano, 1º semestre. Cursos: LIG.

    • Data Science
      3º ano, 1º semestre. Cursos: LEI, LEIRT.

      Docentes

       Manuel M. Pita Zuil Pirola

      Apresentação

      Esta disciplina oferece uma visão aprofundada do campo da Ciência de Dados, ensinando princípios e métodos fundamentais de análise e aprendizado a partir de dados. O curso é direcionado a analistas de dados sem conhecimentos prévios em estatística, e enfatiza a importância da ética na construção e uso de modelos obtidos a partir de dados. Os métodos de ensino incluem aulas tradicionais, debates em sala de aula e atividades de auto-avaliação, ajudando os alunos a desenvolver habilidades críticas e analíticas essenciais para o sucesso na ciência de dados. Ao final do curso, os alunos terão uma compreensão abrangente do campo, bem como as habilidades e conhecimentos necessários para se tornarem cientistas de dados de sucesso.

      Programa

      1. Introdução à Ciência de Dados
      2. O que significa aprender com dados?
      3. Como garantir a precisão dos modelos?
      4. Regressão linear simples
      5. Regressão linear múltipla
      6. Como trabalhar com modelos de regressão?
      7. Classificação logística
      8. Modelos de classificação generativa
      9. Métodos de reamostragem
      10. Métodos baseados em árvores para regressão e classificação
      11. Aspetos éticos e regulamentos âmbito da Ciência de dados

      Objectivos

      1. Familiarizar os estudantes com o campo multidisciplinar da Ciência de Dados
      2. Adquirir conhecimentos aprofundados sobre o que significa aprender estatisticamente a partir de dados
      3. Compreender o que são os modelos de regressão e classificação
      4. Compreender como validar e utilizar modelos construídos a partir de dados
      5. Adquirir uma diversidade de métodos para criar modelos de regressão e classificação
      6. Comparar criticamente diferentes métodos para produzir modelos de regressão ou classificação
      7. Compreender a importância e usos de métodos de reamostragem na Ciência de Dados
      8. Compreender os princípios éticos básicos e regulamentações no contexto de modelos baseados em dados

      Metodologia

      Incluir também as metodologias inovadoras de suporte ao processo de ensino-aprendizagem utilizadas

    • Inteligência Artificial
      3º ano, 2º semestre. Cursos: LEI, LIG.

      Docentes

       Manuel M. Pita Zuil Pirola

      Apresentação

      Esta cadeira é uma introdução aos conceitos e técnicas básicas da Inteligência Artificial, com três áreas principais de atuação. Primeiro, a formalização do que é uma máquina, tanto na óptica de manipulação de símbolos da máquina de Turing, como nas máquinas de McCulloch and Pitts que funcionam com padrões de interligação entre nós em redes de neurónios. Segundo, o conceito de agente racional em IA, que emerge da interseção com as ciências cognitivas, e as diversas implementações de algoritmos de busca exaustiva estruturada (informados e não informados). Ainda dentro desta área de foco são ainda introduzidos os conceito de busca estocástica e algoritmos para satisfação de restrições (CSPs). Finalmente, na terceira área de foco, os estudantes aprendem noções e usos de alguns dos algoritmos de inteligência artificial avançados que são utilizados hoje em dia.

      Programa

      1. Conceitos Básicos
        1. Definições de IA
        2. Máquina de Turing
        3. Redes neuronais de McCulloch e Pitts
        4. Cómo analisar máquinas? diagramas de transição de estados
      2. Busca
        1. O conceito de agente de busca em IA
        2. Espaços e Grafos de busca
        3. Busca não informada: British Museum, DFS, BFS
        4. Busca Informada: Dijkstra e A*
        5. Busca adversária
      3. Problemas de satisfação de restrições
      4. Nocões básicas de sistemas de recomendação
      5. O futuro de IA
        1. Analise critica de artigos recentes em IA

      Objectivos

      Os objectivos de aprendizagem desta cadeira incluem (1) Entendimento profundo dos aspectos conceituais que dão origem à IA, nomeadamente a formalização do conceito de computação universal via manipulação de símbolos, e a computação baseada em redes de neurónios; (2) os métodos e representações usados para estudar o funcionamento de qualquer máquina; (3) Desenho e implementação de agentes racionais e o conceito de "processamento de informação"; (4) Algoritmos clássicos de busca não informada: British Museum, DFS e BFS; (5) Busca informada: Dijkstra e A*; (6) Formalização e resolução de problemas de satisfação de restrições (CSP); (7) conhecimentos básicos de técnicas avançadas de inteligência artificial nos domínios de machine learning e data science; e (8) Conhecimentos sobre os usos da inteligência artificial na sociedade incluindo aspectos relacionados com ética e o futuro de IA.

      Metodologia

      Por descrever

    • Introdução à Ciências de Dados
      1º ano, 1º semestre. Cursos: MCiD.

      Docentes

       João Caldeira

      Apresentação

      A disciplina de Introdução à Ciência de Dados tem como objectivo dar ao estudante competências essenciais na análise de dados, numa perspetiva multidisciplinar, como se trata a  Ciência de Dados. Através da apresentação de metodologias e técnicas fundamentais para tratar, transformar, construir e analisar os dados, é objectivo desta disciplina dar ao estudante capacidade para traduzir essa análise em conhecimento e valor, de modo sustentado para a tomada de decisão.

      A componente prática é um dos aspetos fundamentais da disciplina, pelo que a capacidade de traduzir conhecimento em ações práticas e decisões de análise é particularmente valorizada. A ligação estreita ao mundo empresarial para resposta a perguntas de negócios será retratada nesta disciplina.

      Programa

      1. Introdução à Ciência de Dados:

      • Importância e aplicações da Ciência de Dados
      • Worflow de Projectos: Exemplos Práticos
      • Tipos de dados: Estruturados, Semi-estruturados e não estruturados
      • Principais desafios na Ciência de Dados

       

      2. Python para Ciência de Dados

      • Setup: Jupyter notebook
      • NumPy 
      • Pandas
      • ydata-profiling

       

      3. Pré-processamento de dados

      • Limpeza e preparação de dados estruturados (data wrangling: slicing, grouby, pivoting, missing values, imputation, duplicates, outliers, etc)
      • Tratamento de dados não estruturado – Texto (lemmatisation, stemming, etc.)

       

      4. Introdução ao Machine Learning, modelos superviosionados e não superviosionados

      • Conceitos base
      • Regressão Linear
      • Regressão Logística
      • Redução de Dimensionalidade (PCA)

       

      5. Micro-Serviços e fundamentos de APIs

      • Definição de API
      • Desenho de APIs
      • Implementação de APIs em Python
      • Operação de APIs num contexto de processo de previsão

      Objectivos

       A disciplina tem como objetivos dar ao aluno as competências para:

      • OA1. Compreender a importância da Ciência de Dados no mundo real
      • OA2. Compreender a natureza dos dados
      • OA3. Entender as principais técnicas e métodos, em programação Python, usados por cientistas de dados, através da sua prática
      • OA4. Ser capaz de proceder a tarefas básicas de preparação e pré-processamento de dados
      • OA5. Fazer análise exploratórias de dados com implementação em Python
      • OA6. Entender o fluxo de trabalho de um cientista de dados e ser capaz de pensar sobre a solução de problemas com dados
      • OA7. Entender e implementar métodos de aprendizagem automática, supervisionados e não supervisionados
      • OA8. Conhecer as métricas de avaliação do desempenho de um modelo
      • OA9. Entender o conceito de API e desenhar micro serviços num contexto de análise de dados
      • OA10. Ser capaz de implementar APIs que suportem métodos de aprendizagem automática em Python

      Metodologia

      Nas aulas, introduzem-se os conceitos teóricos que são complementados com exemplos práticos reais. Os alunos são incentivados a resolver exercícios assim como a apresentar quaisquer dúvidas. Para cada tópico é apresentado um conjunto de exercícios de aplicação dos conceitos teóricos, procedendo-se ao acompanhamento da resolução dos mesmos e apresentando-se a resolução final.

       

      Materiais de apoio e exercícios com sugestões de resolução serão disponibilizados no Moodle.

      Acredita-se que a avaliação contínua, adaptada de acordo com a evolução dos alunos, seja uma boa prática. O acompanhamento individual e a disponibilidade para esclarecer dúvidas, sempre que necessário, é essencial para o aluno e para o seu desempenho.

    • Privacidade, Segurança e Ética em Ciência de Dados
      1º ano, 1º semestre. Cursos: MCiD.

      Docentes

       Carlos Fernandes Sofia Fernandes

      Apresentação

      Esta Unidade Curricular pretende dotar o discente de conhecimentos e competências em ética, segurança e privacidade no âmbito da ciência de dados, bem como de sentido e avaliação de impacto na introdução e utilização de tecnologias avançadas no tratamento de grandes volumes de dados.

      Programa

      CP1. Introdução à Ética.  Utilitarismo e deontologia.

      CP2. Ética e ciência de dados. Considerações éticas envolvidas no processamento algorítmico de dados sensíveis e no desenvolvimento responsável de Inteligência Artificial.

      CP3. Gestão de dados e linhagem de dados. Informação sensível e informação pessoal: como identificar.

      CP4. Tecnologias de privacidade. Técnicas básicas de privacidade em ciência de dados. Anonimização e pseudo-anonimização. Privacidade diferencial.

      CP5. Estruturas legais e regulatórias relacionadas com a privacidade e segurança de dados.

      CP6. Introdução de conceitos gerais de segurança e a sua importância em sistemas de aprendizagem automática

      CP7. Tipos de ataques em sistemas de  aprendizagem automática

      CP8. Abordagens de mitigação, regulamentos e orientações de segurança em sistemas de aprendizagem automática

      Objectivos

      OA1. Compreender os fundamentos da Ética como filosofia moral e pensar numa deontologia para a ciência de dados.

      OA2. Conhecer os protocolos fundamentais na gestão de dados e compreender o conceito de linhagem de dados. 

      OA3. Identificar informação sensível e informação de identificação pessoal.

      OA4. Conhecer técnicas concretas que podem ajudar a proteger a privacidade individual ao trabalhar com conjuntos de dados grandes.

      OA5. Conhecer os requisitos legais e regulatórios relacionados à privacidade e segurança de dados.

      OA6. Compreender a importância de estabelecer estruturas robustas de gestão de dados dentro das organizações para garantir a conformidade com as regulamentações de privacidade.

      OA7. Compreender a necessidade de medidas de segurança específicas para sistemas de aprendizagem automática.

      OA8. Compreender os principais tipos de ataques a sistemas de aprendizagem automática e as medidas de prevenção e mitigação dos mesmos.

      Metodologia

      As aulas são expositivas e presenciais. Os conteúdos são ilustrados com exemplos e estudos detalhados de casos. Aos alunos será pedido que participem activamente através da apresentação de casos ou conceitos, tanto técnicos como teóricos. Os alunos serão encorajados a intervir continuamente nas aulas, nomeadamente após as intervenções formais dos colegas.

    • Aplicações de BI – obrigatoria
      1º ano, 2º semestre. Cursos: MEISI.

    • Ciências de Dados Avançada
      1º ano, 2º semestre. Cursos: MCiD.

    • Introdução às Redes Sociais
      1º ano, 2º semestre. Cursos: MCiD.

    • Tópicos em Engenharia de Dados para Ciências de Dados
      1º ano, 2º semestre. Cursos: MCiD.

    • Visualização de Informação
      1º ano, 2º semestre. Cursos: MCiD.

    • Inteligência Artificial Integrada
      1º ano, 1º semestre. Cursos: DI.

    • Análise de Big Data
      º ano, º semestre. Cursos:

    • Aprendizagem Automatizada
      º ano, º semestre. Cursos:

    • Ciencia de Dados Avançada
      º ano, º semestre. Cursos:

    • Fundamentos Sistemas Recomendação – Opção 1
      º ano, º semestre. Cursos:

    • Inteligencia Artificial Aplicada às Telecomunicações
      º ano, º semestre. Cursos:

    • Tópicos Avançados de Engenharia de Dados (Opc 2)
      º ano, º semestre. Cursos:

    • Tópicos Avançados em Ciência de Dados
      º ano, º semestre. Cursos:

    • Visualização Avançada de Informação (Opc 3)
      º ano, º semestre. Cursos:

    • Visão Computacional com Deep Learning
      º ano, º semestre. Cursos:

  • Interação Humano-Máquina
    • Interacção Humano Máquina
      3º ano, 1º semestre. Cursos: LEI, LIG.

      Docentes

       Conceição Costa Miguel Tavares

      Apresentação

       

       

       A disciplina Interação Humano-Máquina tem por principal objetivo dotar os estudantes de competências metodológicas, de design, de comunicação e de fatores humanos, que lhes permitam desenhar produtos e serviços com as pessoas e para as pessoas. Num mundo cada vez mais digital, a inclusão de todas as pessoas/cidadãos é cada vez mais necessária. A Humanização da Tecnologia é mais do que uma boa experiência do Utilizador. Na prática e, aplicando os conhecimentos teóricos a projetos, os estudantes deverão ser capazes de criar artefactos (em tecnologias de informação) que melhorem a forma como as pessoas trabalham, comunicam e interagem numa sociedade inclusiva.

      Programa

      O que é o Desenho de Interação? Compreender e conceptualizar a interação. O impacto da Teoria da Actividade. Desenhar com a acessibilidade em mente. Princípios para  inclusão. Os contributos da psicologia cognitiva no estudo da interação humano-máquina. Perceção humana e funções cognitivas que influenciam o desempenho do utilizador e a satisfação. Desenvolvimento e Avaliação de Protótipos iniciais. Tipos de estudos em user experience, ao longo do ciclo de vida do projeto. Análise crítica aos resultados do estudo para melhorias no protótipo.

      Objectivos

      • Adquirir competências em Desenho de Interação e Desenho Inclusivo.

      • Compreender como a perceção humana e funções cognitivas influenciam a interação entre o humano e o computador. Compreender que a diferentes interações correspondem diferentes interfaces utilizador.

      • Compreender o impacto dos públicos heterogéneos e dos fatores culturais no desenho de aplicações

      • Aprender metodologias de projeto que facilitem o desenho de experiências satisfatórias para o utilizador;

      • Criar protótipos de alta fidelidade e recolher feed-back junto do Público-Alvo;

      • Aprender a planear, desenhar e realizar estudos de avaliação da usabilidade ao longo do ciclo de desenvolvimento de software. Saber tratar e analisar dados, bem como apresentar resultados de forma sucinta.

      • Aplicar as competências adquiridas ao desenvolvimento de sistemas de informação e ao projeto transversal de IHM e Computação Móvel.

      Metodologia

      As metodologias utilizadas podem ser consideradas de aprendizagem baseada em projetos, e/ou aprendizagem experiencial em que várias competências são adquiridas através de pesquisa/exploração, implementação e análise crítica do que foi alcançado.

  • Matemática e Física
    • Fundamentos de Física
      1º ano, 1º semestre. Cursos: LEI, LEIRT.

      Docentes

       Cristiane Ferreira Alexander Mikovic Cristina Guerra

      Apresentação

      Mecânica clássica, eletrostátíca e corrente contínua.

      Programa

      1. Grandezas físicas, dimensões e sistemas de unidades.
      2. Referencial, posição e trajetória. Movimento unidimensional.
      3. Movimento no espaço. Projéteis e movimento circular.
      4. Leis de Newton. Tipos de forças, força gravitacional.
      5. Aplicações de Leis de Newton: plano inclinado, rodelas, mola oscilatória, pendulo.
      6. Trabalho. Forças conservativas e energia potencial.
      7. Conservação da energia mecânica.
      8. Centro de massa, impulso e momento linear. Colisões.
      9. Momento de uma força, momento de inércia e momento angular.
      10. Lei de Coulomb, campo elétrico.
      11. Potencial elétrico e capacitores.
      12. Corrente elétrica e resistência elétrica.
      13. Circuitos elétricos. Leis de Kirchhoff.

      Projetos

      • Lançamento do Projétil

        Descrição
        • O programa pede a altura, a velocidade inicial e o ângulo.
        • Temos o output de um gráfico do trajeto do projétil consoante os inputs inseridos
        • Podemos repetir o programa o quanto desejarmos.

        Conceitos aplicados da Unidade Curricular
        • Referencial, posição e trajetória.
        • Movimento no espaço. Projéteis
        • Programação em Kotlin: leitura do teclado, escrita no ecrã.
        Tecnologias usadas
        • Kotlin

      Objectivos

      Compreensão do movimento dos corpos, ou seja, cinemática. Compreender as forças que atuam sobre os corpos e resolver as equações do movimento, ou seja, a dinâmica. Compreender o trabalho e a energia. Entendendo o campo elétrico e o potencial elétrico, ou seja, eletrostática. Compreender as correntes elétricas e resolver circuitos com correntes elétricas contínuas.

      Metodologia

      Projetos para alunos de fazer um programa de computador para resolver um problema de física.
    • Matemática Discreta
      1º ano, 1º semestre. Cursos: LEI, LCiD, LiCMA.

      Docentes

      Apresentação

      Na UC de Matemática Discreta pretende-se contribuir para a aquisição de um conjunto de competências nos alunos: capacidade de assimilar informação e de a comunicar; capacidade de expressão escrita; capacidade de expressão oral e capacidade de raciocínio matemático. Para tal, serão estudados conceitos de lógica matemática, teoria de conjuntos e teoria de números.

      Programa

      CP1. Cálculo proposicional e quantificadores

      CP2. Provas

      CP3. Teoria de conjuntos

      CP4. Funções

      CP5. Teoria de números

      Objectivos

      Os objetivos principais desta disciplina são:

      OA1. Aplicar propriedades elementares das operações lógicas e de quantificação;

      OA2. Construir argumentos matemáticos usando métodos de prova comum;

      OA3. Explicar os conceitos básicos sobre conjuntos e funções e realizar operações elementares sobre estes objetos matemáticos;

      OA4. Distinguir entre conjuntos numeráveis e conjuntos não numeráveis;

      OA5. Entender a teoria dos números;

      OA6. Contribuir para a aquisição de um conjunto de competências: capacidade de assimilar informação e de a comunicar; capacidade de expressão escrita; capacidade de expressão oral.

      Metodologia

      A metodologia de ensino inclui o método expositivo (ME1) para apresentar os conteúdos necessários, o demonstrativo (ME2) para ilustrar a sua aplicação a casos práticos e o ativo (ME3) para resolução de exercícios em sala de aula.

      A avaliação de conhecimentos é feita por avaliação contínua ou por prova escrita de exame final.

      A avaliação contínua inclui a realização de 3 testes durante as aulas práticas em datas a definir no início do semestre. A aprovação por avaliação contínua obriga à realização de todos os testes. Em caso de não aprovação à disciplina pela avaliação contínua, os alunos poderão ser avaliados através de uma frequência final. Não existe nota mínima em nenhum dos casos.

      A nota final do aluno poderá ser bonificada entre 0.5 e 1 valor com a presença e resposta correta a perguntas realizadas durante as aulas teóricas.

      Alunos com nota final entre 8 e 9.4, caso pretendam, poderão ser sujeitos a uma prova extra, em condições a definir, para obtenção de aprovação.

    • Matemática I
      1º ano, 1º semestre. Cursos: LEI, LIG, LEIRT, LCiD, LiCMA.

      Docentes

       André Fonseca Sofia Fernandes Sofia Naique

      Apresentação

      Esta disciplina abrange os métodos fundamentais de Cálculo associados a funções reais de variável real. É uma área transversal a todas as engenharias e demais cursos de cariz científico. Abrange os métodos clássicos de cálculo diferencial e Integral a uma dimensão.

      Programa

      1. Lógica Matemática

      • Designação e proposição. Valor lógico de uma proposição. Conjunção e disjunção de proposições. Conjunto, interseção e união de conjuntos.

      2. Os números reais

      • Números racionais e irracionais. Ordem e valor absoluto.

      3. Funções reais de variável real:

      • Generalidades sobre funções. Funções polinomiais e racionais. Funções trigonométricas. Função exponencial e logarítmica.

      3. Limite:

      • Definição e propriedades de limites de uma função. Continuidade de funções.

      4. Derivada:

      • Interpretação geométrica. Regras de derivação. Derivadas de ordem superior.

      5. Estudo global de uma função:

      • Monotonia e extremos relativos. Concavidade e pontos de inflexão. Assíntotas. Gráficos.

      6. Integração:

      • Primitiva imediata. Primitivação por substituição e por partes. Integral definido, teorema fundamental do cálculo. Aplicações da integração (áreas de figuras planas).

      Objectivos

      Esta disciplina confere a(o) aluna(o) conhecimentos que lhe permitam utilizar, de forma criativa, autónoma, e em contextos diversificados:

      OA1: a linguagem simbólica matemática e o raciocínio matemático;

      OA2: os conceitos e resultados fundamentais do cálculo diferencial, de modo a que possa proceder ao estudo de uma função real de variável real; OA3: os métodos de primitivação:

      OA4: as noções fundamentais do cálculo integral, de modo a que possa calcular integrais simples e determinar áreas de domínios planos.

      Metodologia

      • A exposição da matéria é precedida da discussão de uma aplicação ou da interpretação/análise geométrica do tópico.
      • O(a) aluno(a) é convidado(a)  a participar ativamente na aula e é envolvido(a) na discussão dos conceitos apresentados. 
      • Nas aulas teórico-práticas, os alunos são convidados a analisar e a resolver problemas envolvendo os conceitos apresentados nas aulas teóricas.

       

      • A avaliação contínua é composta por:
        • 3 testes intercalares      (A = média dos 3 testes intercalares)  e
        • um teste final cobrindo toda a matéria (B = nota do teste final). 
      • Os testes serão realizados nas aulas práticas, terão a duração de 20 minutos. 
      • Os (As) alunos(as) não podem realizar teste intercalar fora da semana definida.
      • A nota final (NF)  na UC   é  igual a:
        • NF= 0,3*A+ 0,7*B     se  A>B e B>6
        • NF = B                      se  A<B ou B<6

       

      • Época de recurso e a época especial: a aprovação é obtida com a nota mínima de 9,5 valores na prova escrita. 
    • Probabilidades e Estatística
      1º ano, 1º semestre. Cursos: LCiD, LiCMA.

    • Algebra Linear
      1º ano, 2º semestre. Cursos: LEI, LIG, LCiD, LiCMA.

      Docentes

       Maria Silva Luís Maia Sofia Fernandes

      Apresentação

      Na sequência  da Matemática Discreta, a Álgebra Linear é uma disciplina do 2ºsemestre do curso e estuda os espaços vectoriais finitamente gerados.sobre um corpo com comparticular incidência nos corpos primos Z p e o corpo dos reais

      O estudo dos espaços vectoriais confere aos estudantes competência para analisar problemas, equacioná-los e definir estratégias diversificadas de resolução.

      As aplicações lineares conduzem ao conceito de matriz que aparece como ferramenta de cálculo no estudo dos espaços vectoriais.

      O aluno adquire algumas técnicas de cálculo matricial e confere ao conjunto das matrizes finitas a estrutura de espaço vectorial.

      O aluno tem a oportunidade de estabelecer um isomorfismo entre espaços vectoriais de matrizes e o espaço vectorial de aplicações lineares o que lhe permitirá selecionar, na resolução de problemas, o espaço onde trabalhar tendo em atenção a especificidade do problema em causa.

       

       

      Programa

      1. Estruturas algébricas: grupos comutativos, aneis e corpos. Os corpos Z p, p primo.

      2.  Espaços vectoriais  finitamente gerador. Subespaços vectoriais .

      3. Sistemas de vectores equivalentes e dependência linear.

      4. Teorema de Steinitz e suas consequências.

      5.  Aplicações lineares. Isomorfismos

      6.  Matrizes sobre um corpo. Espaços vectoriais de matrizes .Produto de Matrizes

      7.  Sistemas de Equações lineares: Estudo   e resolução de equações vectoriais lineares. Representação de subespaços vectoriais através de sistemas de equações lineares

      8.  Determinantes:     principais     propriedades dos determinantes . Teorema de La Place

      9.  Valores e vectores próprios.

       

      Objectivos

      Conhecer a estrutura de espaço vectorial. Conhecer o conceito de aplicação linear e as suas propriedades. Saber operar em espaços de matrizes. Conhecer a teoria dos determinantes e aplicá-la na resolução de problemas.. Esta unidade curricular confere competências que permitem usar os conhecimentos adquiridos para definir a melhor estratégia na resolução de problemas. O estudante desenvolve competências de raciocínio analógico e dedutivo. Adquire capacidade para lidar com várias caracterizações de um conceito assim como competência para seleccionar a informação mais adequada em  cada situação

       

       

      Metodologia

      Por descrever

    • Análise Numérica
      1º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Matemática II
      1º ano, 2º semestre. Cursos: LEI, LIG, LEIRT, LCiD, LiCMA.

      Docentes

       André Fonseca Guilherme Antunes Sofia Naique

      Apresentação

      Geométria analítica e calculo diferencial e integral para funções reais de várias variáveis reais.

      Programa

      1. Vectores e geometria do espaço

      1.1 Coordenadas cartesianas tridimensionais.

      1.2 Vectores, produto escalar.

      1.3 Rectas e planos.

      1.4 Superfícies cilíndricas e quádricas.

      1.5 Noções topologicas

      2. Funções vectoriais de variável real

      2.1 Funções vectoriais e curvas no espaço.

      2.2 Limites e continuidade. Diferenciabilidade, vector tangente a uma curva.

      2.3 Integração, comprimento de uma curva.

      3. Funções de várias variáveis

      3.1 Dominios e  curvas de nível.

      3.2 Limites e continuidade.

      3.3 Derivadas parciais, derivadas de ordem superior.

      3.4 Diferenciabilidade, planos tangentes e aproximações polinómiais.

      3.5 Derivada direccional, vector gradiente e sua interpretação geométrica.

      3.6 Matriz Hessiana, extremos locais e pontos de sela.

      4. Integrais múltiplos

      4.1 Integrais duplos.

      4.2 Coordenadas polares e mudança de variáveis em integrais duplos.

      4.3 Integrais triplos.

      4.4 Coordenadas cilíndricas e esféricas. Mudança de variáveis em integrais triplos.

      Objectivos

      Conferir competências nas técnicas e aplicações do cálculo diferencial e integral com funções de várias variáveis. Dominar os conceitos de limite, continuidade e diferenciabilidade de funções. Dominar o cálculo de integrais múltiplos.

      Ter capacidade de resolver problemas em contextos diversificados usando os métodos do cálculo diferencial e integral. Conhecer as aplicações a problemas de otimização, de caracterização geométrica de curvas e superfícies e de cálculo de volumes e áreas.

      Metodologia

      por descrever

    • Métricas Empresariais
      1º ano, 2º semestre. Cursos: LIG.

    • Investigação Operacional
      2º ano, 1º semestre. Cursos: LIG, LiCMA.

    • Intro. aos Processos Estocásticos
      2º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Fund. de Estatística para Ciências de Dados
      1º ano, 1º semestre. Cursos: MCiD.

      Docentes

       Sofia Naique

      Apresentação

      Esta unidade curricular dedica-se aos conceitos fundamentais da teoria da probabilidade, estatística e inferência estatística.

      Programa

      1. Estatística Descritiva

      Tipos de dados: inteiros, contínuos, categóricos, array, matriz

      Tabelas de frequências

      Medidas de centralidade e de variabilidade

      Visualização (Gráficos de barras, Histogramas, Caixas de Bigodes … )

       

      2. Regressão Linear

      Variável independente vs. dependente.

      Gráficos de dispersão

      Covariância e coeficiente de Pearson

      Reta de regressão, resíduo, método dos mínimos quadrados

      Cálculo da estimativa para a resposta, dado certo valor para a variável independente

       

      3. Probabilidade

      Experiência aleatória. Espaço de resultados. Evento. Operações entre eventos.

      Propriedades da função probabilidade. Probabilidade da união de eventos

      Lei da probabilidade total

      Teorema de Bayes

      Probabilidade condicionada. Eventos independentes

       

      4. Inferência Estatística

      Amostra e amostra aleatória

      Estimador e estimativa para uma proporção

      Teste de hipótese para uma proporção

      Objectivos

      Esta disciplina permite que o(a) aluno(a) seja

      OA1: seja exposto à probabilidade como uma função de medida essencial à ciência.

      OA2: entenda a estatística como uma área da ciência que permite à engenharia recolher dados, analisar dados, formular hipóteses relativas a esses dados e testar essas hipóteses. Nessa medida, a estatística e a probabilidade são essenciais ao conhecimento e à engenharia.

      Metodologia

      Nas aulas discutem-se as ideias que fundamentam o programa desta Unidade Curricular (UC), e são analisados múltiplos exemplos e exercícios de aplicação.

       

      Para cada tópico desta UC é apresentado um conjunto de exercícios de aplicação. A(O)s alunas(os) são incentivados a resolver estes exercícios assim como a apresentar quaisquer dúvidas.

       

      Esta UC partilhará conteúdos e material de apoio com outra UC (Introdução à Ciência de Dados)

       

      Todo o material de apoio e informação relevante será partilhada com as(os) alunas(os) através do Moodle.

       

      A avaliação conta com uma componente contínua, que consiste na realização de 3 mini-testes de 20 minutos (cuja média corresponde a 30% da nota final) e um exame (cuja nota corresponde a 70% da nota final). São considerados aprovados os alunos que obtenham nota final não inferior a 10 valores.

    • Fundamentos de Física (2º sem)
      º ano, º semestre. Cursos:

    • Modelação e Tratamento de Dados para a Investigação 2º sem
      º ano, º semestre. Cursos:

    • Métodos Matemáticos para Sistemas Complexos
      º ano, º semestre. Cursos:

    • Pensamento Matematico
      º ano, º semestre. Cursos:

  • Programação e Engenharia de SW
    • Fundamentos de Programação
      1º ano, 1º semestre. Cursos: LEI, LIG, LEIRT, LCiD, LiCMA.

      Docentes

       Pedro Alves Brena Lima Bruno Saraiva Lucio Studer Rodrigo Correia Wellington Oliveira

      Apresentação

      Esta é uma disciplina fundamental na formação de qualquer profissional da área de Informática pois introduz os conceitos básicos da programação, sobre os quais assentarão muitas disciplinas subsequentes como Linguagens de Programação I e II, Algoritmia e Estruturas de Dados, Programação Web, Computação Móvel, etc. Mais do que aprender uma linguagem de programação, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Kotlin, uma linguagem promissora que combina as melhores características das linguagens modernas mais populares (Java, Python, etc.)

      Dado ser o primeiro contacto de muitos alunos com o tópico da Programação, reveste-se de uma importância especial na aquisição de conhecimentos primordiais mas também na sua motivação. Mais do que aprender a programar, os alunos aprendem a gostar de programar.

      Programa

      • Introdução à programação
      • Algoritmos, fluxogramas, pseudo-código
      • Sintaxe e semântica das linguagens
      • Elementos da sintaxe, estrutura de um programa
      • Declarações e atribuições
      • Tipos primitivos
      • Expressões aritméticas, expressões lógicas
      • Entradas e saídas de dados
      • Selecção
      • Repetição
      • Funções
      • Arrays uni-dimensionais e bi-dimensionais
      • Tratamento de erros
      • Leitura e escrita de ficheiros
      • Boas práticas de programação imperativa

      Projetos

      • Jogo das Tendas

        Descrição
        • Desenvolver uma grelha 2D que simule o terreno do jogo, com árvores distribuídas aleatoriamente. Permitir que o jogador coloque tendas junto às árvores, assegurando que cada tenda esteja ligada apenas a uma árvore.
        • Implementar regras para assegurar que as tendas não se toquem, nem mesmo na diagonal, e criar uma interface de linha de comando para a interação do jogador com o jogo.

        Conceitos aplicados da Unidade Curricular
        • Programação em Kotlin: ciclos, funções, arrays, arrays2D, leitura do teclado, escrita no ecrã.
        Tecnologias usadas
        • Kotlin
        • IntelliJ
      • Batalha Naval

        Descrição
        • Desenvolver uma grelha 2D que simule a arena do jogo, com navios e marcadores de jogadas anteriores.
        • Criar uma interface de linha de comando para a interação do jogador com o jogo.

        Conceitos aplicados da Unidade Curricular
        • Programação em Kotlin: ciclos, funções, arrays, arrays2D, leitura do teclado, escrita no ecrã.
        Tecnologias usadas
        • Kotlin
        • IntelliJ

      Objectivos

      O objectivo desta unidade curricular é fornecer aos futuros profissionais na área da informática as bases para que possam iniciar (de um modo disciplinado) a actividade de programação.
      O aluno começa por desenvolver a capacidade de raciocínio algorítmico recorrendo a fluxogramas.
      O aluno deverá ser capaz de traduzir esses fluxogramas numa linguagem de programação imperativa. Concretamente, o aluno deverá conhecer a sintaxe básica de Kotlin que lhe permitam criar programas simples de linha de comando.
      Finalmente, o aluno deve conseguir analisar e avaliar programas feitos por outras pessoas (colegas, professores, etc.).

      Metodologia

      • As aulas teóricas são parcialmente leccionadas no modelo "flipped learning": são disponibilizados vídeos antes da aula teórica que os alunos devem visualizar; a aula teórica é maioritariamente ocupada com exercícios sobre essa matéria e respetiva correção, intercalada com alguma matéria adicional.
      • Alguns trabalhos de casa são avaliados no modelo "peer assessment": os alunos avaliam anonimamente os trabalhos uns dos outros.
      • A validação do código produzido nas fichas práticas e no projeto é feita através de uma ferramenta de validação automática do código, que permite aos alunos grande autonomia.
      • Alguns exercícios de programação são realizados obrigatoriamente com o apoio de um LLM (ChatGPT, Bard, etc..). Estes exercícios terão enunciados adaptados, para evitar que seja simplesmente feito o copy/paste para o LLM – serão apresentados de forma visual, seja por diagramas seja por vídeos demonstrando o que se pretende. O objetivo é que os alunos treinem a construção de "prompts" eficazes.
    • Algoritmia e Estruturas de Dados
      1º ano, 2º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       Pedro Alves Bruno Cipriano Duarte Neves Rodrigo Correia Wellington Oliveira

      Apresentação

      Esta UC surge no 2º semestre do 1º ano, na continuação do trabalho iniciado em Fundamentos de Programação (FP). Em FP, os alunos deram os primeiros passos na programação e preocuparam-se principalmente em produzir programas correctos. Agora, em Algoritmia e Estruturas de Dados, irão continuar a produzir programas correctos mas com preocupações de desempenho, a nível de tempo de execução e consumo de memória.

      Esta é uma UC fundamental no currículo de um Engenheiro Informático, que na sua vida profissional encontrará inúmeras situações em que terá que resolver problemas causados por fraco desempenho das aplicações e que exigem um conhecimento sólido dos princípios subjacentes aos principais algoritmos e estruturas de dados.

      Não obstante a aprendizagem de conceitos e técnicas de algoritmia e estruturas de dados, os alunos trabalham outras competências fundamentais. Nomeadamente, o espírito crítico e a capacidade de avaliar várias alternativas para resolver os problemas.  

      Programa

      • funções recursivas, algoritmos recursivos
      • tipos de dados complexos
      • eficiência e optimização (algorítmica e não-algorítmica)
      • complexidade de algoritmos
      • algoritmos de pesquisa
      • algoritmos de ordenação – bubble sort, selection sort, merge sort, quick sort
      • tipos de dados abstractos – pilhas e filas
      • listas ligadas
      • árvores binárias, árvores ordenadas, árvores AVL
      • hashtables

      Projetos

      • Rock in DEISI

        Descrição
        • Desenvolver uma aplicação de linhas de comando em Java que permite realizar queries relativamente sofisticadas sobre uma base de dados real contendo informações sobre músicas e artistas dos últimos 100 anos, obtidas de repositórios públicos.
        • A base de dados é representada em ficheiros CSV e os alunos devem implementar estruturas de dados em memória para responder às queries eficientemente.

        Conceitos aplicados da Unidade Curricular
        • Algoritmos de ordenação e pesquisa
        • Estruturas de dados otimizadas para pesquisa como árvores e hashtables
        • Deteção de bottlenecks
        • Utilização de otimizações não-algorítmicas como buffering
        Tecnologias usadas
        • Java
        • ntelliJ
        • JUnit
        • ChatGPT

      Objectivos

      O objectivo desta unidade curricular é introduzir os conceitos fundamentais de algoritmos e das estruturas de dados básicas, numa perspetiva de resolver problemas complexos de uma forma eficiente. O aluno deverá ser capaz de analisar e avaliar a eficiência de um algoritmo sem necessidade de o implementar ou testar. Deverá ser igualmente capaz de aplicar a estrutura de dados mais eficaz e eficiente para resolver um determinado problema.

      Concretamente, o aluno deverá conseguir criar programas em Java cuja eficiência seja um critério significativo de sucesso (ex: pesquisa, ordenação).

      Metodologia

      Por descrever

    • Ling. de Programação
      1º ano, 2º semestre. Cursos: LCiD, LiCMA.

    • Ling. de Programação I
      1º ano, 2º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       Pedro Serra Daniel M. Silveira Thiago Gustavo Wellington Oliveira

      Apresentação

      Esta unidade curricular oferece uma extensa exploração da programação procedural usando a linguagem de programação C, abrangendo tópicos fundamentais e avançados. Os alunos obterão uma compreensão abrangente da história da programação C e dos seus benefícios, bem como aprenderão a criar e executar programas simples em C. O currículo concentra-se em conceitos essenciais, incluindo tipos de dados, variáveis, estruturas de controlo, funções e ponteiros, com oportunidades de experiência prática para reforçar o conhecimento. A unidade curricular também aborda tópicos avançados, como manipulação de ficheiros, alocação dinâmica de memória e estruturas de dados como listas e filas. Através de projetos de programação, os alunos desenvolverão experiência prática, com ênfase particular em obter uma compreensão completa da organização e operação da memória do computador como um recurso. No final do curso, os alunos serão capazes de criar programas eficientes que fazem uso eficaz da memória.

      Programa

      M0: Introdução: Visão geral, programação C, história, benefícios, configuração do ambiente, programa simples
      M1: Sintaxe Básica: Definições, tipos de dados, operadores, entrada/saída, estruturas de controlo
      M2: Estruturas de controle avançadas: Switch, break/continue, goto
      M3: Funções: definição/invocação, argumentos/valores de retorno, recursão
      M4: Matrizes e Strings: Definições, vectores de caracteres, strings, funções, matrizes 2D
      M5: Ponteiros: Definições, aritmética, pilha/heap, alocação dinâmica de memória
      M6: Ponteiros Avançados: Ponteiros para ponteiros/funções
      M7: Estruturas e Uniões: Definições, estruturas aninhadas, uniões
      M8: Entrada/saída de arquivo: visão geral, abertura/leitura/gravação de ficheiros, entrada/saída binária
      M9: Diretivas e Macros do Pré-processador: Definições, #define, #ifdef, #undef, macros com parâmetros
      M10: Operadores bit a bit: Definições, operadores bit a bit AND/OR/XOR/NOT/shift
      M11: Listas Ligadas: Definições, criação/manipulação, exemplos, pilhas/filas

      Objectivos

      No final desta Unidade Curricular, os alunos deverão ser capazes de criar programas C eficientes e rápidos, tendo em consideração o uso correto da memória. Deverão adquirir uma compreensão sólida da abstração procedural e ser capazes de analisar e criar algoritmos simples usando essa abordagem. Além disso, os alunos devem entender os princípios por trás dos sistemas "coletores de lixo" em linguagens de alto nível, e da operação de bibliotecas de estruturas de dados. O curso visa fornecer aos alunos conhecimentos necessários para criar programas em C bem projetados, eficientes e robustos e para entender os princípios fundamentais que sustentam a operação das linguagens de programação modernas.

      Metodologia

      Pandora

       

    • Algoritmia e Estruturas de Dados (LCD)
      2º ano, 1º semestre. Cursos: LCiD, LiCMA.

    • Ling. de Programação II
      2º ano, 1º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       Pedro Alves Bruno Cipriano Duarte Neves

      Apresentação

      Esta UC é o culminar de um caminho iniciado em Fundamentos de Programação e aprofundado em Algoritmia e Estruturas de Dados, solidificando os conhecimentos de programação. Com um foco no desenvolvimento e manutenção de programas de elevada complexidade, o paradigma imperativo deixa de ser suficiente e são abordados os paradigmas orientado a objectos e funcional. São igualmente abordados conceitos adjacentes à fase de implementação, como o controlo de versões, os testes unitários e funcionais, a cobertura de código e outras métricas de qualidade. Esta é uma UC fundamental na formação de qualquer profissional da área de Informática, pois fornece um conjunto de conhecimentos e ferramentas que serão essenciais nos projectos empresariais em que estes alunos virão a estar inseridos.

      Programa

      • Paradigmas de programação
        • Imperativo, funcional, orientado a objetos
      • Conceitos de programação por objectos
        • Entidades, Atributos, Acções
        • Classe vs Objecto, Principio do encapsulamento
        • Herança, polimorfismo, parametrização por herança, composição
        • UML
          • Diagramas de classes
      • Java orientado a objectos
        • Classes, objectos, variáveis
        • Construtores, métodos
        • Visibilidade, Exceptions
        • Estruturas de dados: Arrays, Lists, Maps
        • Herança, classes abstractas
        • Input/Output
      • Testes unitários
        • JUnit
      • Controlo de versões
        • Git, Github
      • Padrões de desenho
        • Factory, Singleton, Observer/Observable, Composite
      • Conceitos de programação funcional em Kotlin
        • Funções puras, lambdas, funções de primeira ordem, iteração interna, operações com listas
      • Boas práticas de programação multi-paradigma

      Projetos

      • DEISI Chess

        Descrição
        • Criação um jogo de Xadrez!
        • Na primeira parte deste projeto os alunos são desafiados a criar a lógica por trás deste jogo, sendo que vão começar apenas a jogar com Reis.
        • Na segunda parte vão ser incorporadas as outras peças de maneira a completar este jogo.

        Conceitos aplicados da Unidade Curricular
        • diagramas UML
        • programação orientada a objetos de acordo com o teorema do encapsulamento
        Tecnologias usadas
        • linguagens de programação Java e de Kotlin
        • testes em JUnit 5
        • criação de um repositório Git no GitHub
      • DEISI Jungle

        Descrição
        • Desenvolver em Java uma aplicação gráfica (desktop) para um jogo de tabuleiro com animais, que envolve estratégia e movimentação baseada em características animais e alimentares
        • O jogo suporta até 4 jogadores, cada um iniciando com um animal diferente, e inclui elementos como alimentação e energia, influenciando a dinâmica do jogo.

        Conceitos aplicados da Unidade Curricular
        • Utilização correta de conceitos de programação orientada a objetos como encapsulamento, herança e polimorfismo.
        • Boas práticas de código e design de software, com expectativa de mais de 3000 linhas de código.
        • Planeamento com UML antes da codificação e uso intensivo de testes unitários em JUnit para garantir qualidade.
        Tecnologias usadas
        • Java e Kotlin (os alunos misturaram as duas linguagens no projeto)
        • IntelliJ
        • Git/GitHub
        • JUnit

      Objectivos

      Esta UC tem como objetivo apresentar uma visão multi-paradigma da programação. São analisados e comparados os 3 paradigmas mais populares: imperativo, orientado a objectos e funcional. Os alunos revêm conceitos da programação imperativa e adquirem conceitos fundamentais da programação orientada a objetos (herança, encapsulamento, polimorfismo, etc.) e da programação funcional (lambdas, funções de 1a ordem, etc.) de forma a que consigam aplicá-los em projetos de desenvolvimento de software complexo usando linguagens de programação modernas multi-paradigma (Java, C#, Python, Kotlin, JavaScript).
      Ao longo do semestre, os alunos são consciencializados para a necessidade de redução de custos de manutenção através de melhorias na qualidade do software produzido e aplicação de boas práticas tirando partido das vantagens específicas de cada paradigma. São igualmente expostos a ferramentas essenciais no desenvolvimento moderno de software, como controlo de versões e testes unitários.

      Todos estes conceitos são aplicados num projeto de elevada complexidade, multi-paradigma e multi-linguagem que atinge em média as 2500 LOC. O projeto tem que ser desenvolvido em Git e ter uma cobertura elevada de testes unitários. Mais do que as capacidades técnicas, os alunos trabalham a gestão de tempo, o rigor e a resiliência, a capacidade analítica e espírito crítico, a criatividade e o trabalho em equipa.

      Metodologia

      • As aulas teóricas são parcialmente leccionadas no modelo "flipped learning": são disponibilizados vídeos antes da aula teórica que os alunos devem visualizar; a aula teórica é maioritariamente ocupada com exercícios sobre essa matéria e respetiva correção, intercalada com alguma matéria adicional.
      • Os trabalhos de casa são avaliados no modelo "peer assessment": os alunos avaliam anonimamente os trabalhos uns dos outros.
      • A validação do código produzido nas fichas práticas e no projeto é feita através de uma ferramenta de validação automática do código, que permite aos alunos grande autonomia.
      • Alguns exercícios de programação são realizados obrigatoriamente com o apoio de um LLM (ChatGPT, Bard, etc..). Estes exercícios terão enunciados adaptados, para evitar que seja simplesmente feito o copy/paste para o LLM – serão apresentados de forma visual, seja por diagramas seja por vídeos demonstrando o que se pretende. O objetivo é que os alunos treinem a construção de "prompts" eficazes.
    • Programação Web
      2º ano, 2º semestre. Cursos: LEI, LIG.

      Docentes

       Lucio Studer Pedro Perdigão Rui Santos

      Apresentação

      Esta Unidade Curricular pretende dar formação na área da programação Web em geral, e em particular no desenvolvimento de aplicações Web back-end e front-end, providenciando uma visão global do desenvolvimento moderno para a Web. No front-end, são introduzidos conceitos de estruturação, estilização e interação de conteúdos através das linguagens HTML, CSS e JavaScript, in. No back-end, é ensinado o desenvolvimento de aplicações empresariais seguindo o padrão de desenho model-view-control, recorrendo à linguagem Python e a Web framework django. Pretende-se estimular a criatividade e imaginação no desenvolvimento de aplicações inovadoras que sejam eficientes, escaláveis e fáceis de modificar por um lado, e que ofereçam uma boa experiência para o utilizador. Esta é uma UC fundamental para qualquer profissional da área da informática, pois fornece um conjunto de conhecimentos e ferramentas que serão essenciais em projetos empresariais em que virão a estar inseridos.

      Programa

      A Web e seus paradigmas
      – Funcionamento da Internet e da Web: arquitetura e protocolos IP e HTTP
      – Tecnologias, paradigmas e padrões de desenho da Web

       

      HTML e CSS para desenho de páginas Web
      – HTML e seus elementos 
      – Formulários para envio de dados
      – HTML5 e elementos semânticos
      – CSS e seus seletores, para estilização de conteúdos
      – Propriedades CSS
      – Design responsivo e layouts dinâmicos
      – Efeitos e animações CSS
      – Bootstrap

       

      JavaScript para programação Front-end
      – Programação Orientada a Eventos 
      – Manipulação do DOM 
      – JSON e APIs
      – Single Page Applications

       

      Python para desenvolvimento Web
      – Sintaxe, operadores, controlo de fluxos e tipos de dados
      – Funções e módulos 
      – Gestão de ficheiros e pastas   
      – Classes 

       

      Django web framework para Back-end
      – Web frameworks
      – Arquitetura MVT 
      – Urls, views e templates
      – Linguagem template
      – Modelação de base de dados, ORM
      – Formulários
      – Autenticação
      – Implantação na cloud 

      Objectivos

      • Entender o funcionamento da Internet e da Web.
      • Compreender os princípios da programação Web e seus principais padrões de desenho.
      • Aplicar estes conceitos, usando várias tecnologias (HTML, CSS, JavaScript, Python and Django¿).
      • Arquitetar aplicações eficientes, de fácil manutenção, que corram na Web.
      • Avaliar as diferentes estratégias de desenho, sabendo escolher a abordagem que mais se adequa ao contexto.
      • Ser capaz de construir e implantar na cloud aplicações Web complexas e criativas, totalmente funcionais (full stack).

      Metodologia

      Por descrever

    • Engenharia de Software
      3º ano, 1º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       José Cascais Brás Pedro Perdigão Rui Santos

      Apresentação

      A Engenharia de Software ensina o desenho, escrita de código e testes, e manutenção de programas que têm um propósito de resolver problemas complexos com soluções eficientes e seguras. Todas as unidades curriculares anteriores tem um maior foco na sintaxe e técnicas de programação enquanto nesta unidade curricular os alunos aprendem as técnicas de de desenhar e desenvolver software de uma forma eficiente, legível, modular e escalável.

      Esta unidade curricular é essencial para desenvolver as capacidades de desenho e programação que os alunos vão enfrentar no mercado de trabalho.

      Programa

      • CP1. Introdução à Engenharia de Software;
      • CP2. Modelos e processos desenvolvimento de software;
        • Modelos Clássicos: Cascata (contexto histórico)
        • Modelos Ágeis: Agile (framework de Scrum)
      • CP3. Modelação de sistemas;
        • Análise de requisitos
        • Diagrama de domínio
        • Diagrama de conceitos
        • Casos de uso
      • CP4. Desenho da arquitectura;
        • Análise
        • Desenho
        • Avaliação
        • Evolução
      • CP5. Desenho e implementação;
        • Padrões UML
        • Princípios de desenvolvimento orientado a objectos: S.O.L.I.D, KISS, entre outros.
      • CP6. Verificação e validação;
        • Conhecer os diferentes tipos de testes
        • Aplicação de testes unitários
      • CP7. Segurança e Confiabilidade
      • CP8. Integração Contínua
        • Vantagens
        • Ferramentas e tecnologias

      Objectivos

      OA1. Compreender os métodos, técnicas e ferramentas para o completo desenvolvimento de um sistema de software, desde a sua conceção até à sua entrega e manutenção.

      OA2. Saber planear, gerir, avaliar e garantir a qualidade do desenvolvimento de projetos de software utilizando os princípios da Engenharia de Software.

      Metodologia

      A metodologia de ensino inclui o método expositivo (ME1) para apresentar os conteúdos necessários, o demonstrativo (ME2) para ilustrar a sua aplicação a casos práticos e o ativo (ME3) para resolução de exercícios em sala de aula, com e sem recurso ao computador.
      A avaliação de conhecimentos é feita por avaliação contínua ou por prova escrita de exame final. A avaliação contínua inclui a realização de dois testes escritos com uma ponderação de 21,25% cada e um de grupo (42,5%) e a participação ativa nas aulas (10%). A assiduidade será um elemento adicional
      de avaliação com uma ponderação de 5%.
      Ao longo do semestre são disponibilizados Quizes após as aulas (acerca do tópico dado) ou com grupo de perguntas referentes a tópicos da matéria dada como forma dos alunos irem aferindo o seu conhecimento das matérias já lecionadas.

    • Sistemas Móveis Empresariais
      3º ano, 1º semestre. Cursos: LIG.

    • Computação Móvel
      3º ano, 2º semestre. Cursos: LEI, LEIRT.

      Docentes

       Pedro Alves Miguel Tavares

      Apresentação

      Esta UC é cada vez mais fundamental numa sociedade onde o número de smartphones já ultrapassa largamente o número de computadores e onde se prevê que, num futuro próximo, cada indivíduo se faça acompanhar de um conjunto de dispositivos móveis (smartwatches, smart glasses, sensores, etc.) programáveis, criando a oportunidade para que os engenheiros informáticos possam resolver um vasto conjunto de problemas cuja resolução era até agora impossível ou excessivamente dispendiosa.

      A dificuldade está em passar conhecimento que não se esgote no dia em que terminam a UC, dada a velocidade vertiginosa a que evoluem as tecnologias associadas à computação móvel. Nesse sentido, esta UC não pretende apenas ensinar a programar Android mas sim abordar temas intemporais desta área como os vários Modelos de Desenvolvmento, Autonomia, Geo-localização, Conectividade ou Usabilidade.

      Programa

      • Computação Móvel / Sistemas Ubíquos / IoT
      • Arquitetura e desenvolvimento de aplicações móveis (Web, Híbridas, Nativas) – Usabilidade e Interação
      • Conectividade
      • Geo-localização
      • Autonomia
      • Sensores
      • Integração com serviços externos
      • Modelos de negócio
      • Dispositivos emergentes: smartwatches, dispositivos activados por voz

      Projetos

      • Cine Cartaz

        Descrição
        • Desenvolver uma aplicação móvel para Android, usando Kotlin, que permite aos utilizadores registar e avaliar filmes vistos no cinema, obter informações em tempo real através da API OMDb
        • Inclui funcionalidades como validação geográfica, fotografia de cenas, e consulta de histórico de filmes assistidos em diferentes formatos
        • A aplicação suporta funcionalidades offline e pesquisa de filmes por voz

        Conceitos aplicados da Unidade Curricular
        • Desenvolvimento em Android Nativo
        • Design e navegação de telas, formulários
        • Persistência de dados e integração com webservices
        • Adaptação a diferentes configurações de dispositivos e orientações de tela
        Tecnologias usadas
        • Kotlin
        • Android Studio
        • GitHub

      Objectivos

      O objectivo desta unidade curricular é introduzir os conceitos fundamentais da computação móvel. O aluno deverá ser capaz de perceber como tirar o máximo partido das vantagens da computação móvel (localização, sensores, contextual), quando aplicados à resolução de problema concretos. O aluno deverá estar sensibilizado para os constrangimentos típicos de uma aplicação móvel (autonomia, conectividade, usabilidade) e conhecer os mecanismos que permitem ultrapassar esses constrangimentos.

      Concretamente, o aluno deverá conhecer os 4 modelos de desenvolvimento de aplicações móveis (Web, Híbrido-Web, Híbrido-Nativo e Nativo) e saber aplicar os conceitos utilizando pelo menos 2 destes modelos – nomeadamente Híbrido-Nativo (Flutter) e Nativo (Android Kotlin).

      Metodologia

      Por descrever

    • Sist. Info. Nuvem & Comp. Nuvem
      3º ano, 2º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       Rui Ribeiro Luis A. Gomes Rui Santos

      Apresentação

      Esta Unidade Curricular tem como objetivo uma introdução à computação em nuvem, numa perspectiva de um iniciante que não possui nenhuma experiência anterior com o tópico.

      A ideia é ajudar a criar Junior Cloud Architects, o que significa crias as competências para implementar ou adotar a tecnologia Cloud, entender o que é exatamente e quais opções existem quando se pensa em implantações em nuvem.

      Esta UC abrange uma ampla variedade de áreas de tópicos de computação em nuvem, fornecendo uma base sólida de entendimento. Esta unidade curricular cria também um ambiente de entendimento da teoria e das formas práticas dos diferentes modelos de serviços de Cloud Computing: Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS), fornecendo exemplos e diferenças entre cada .

      Programa

      Aulas teóricas:

      • Visão geral: história, mercado, tendências
      • Revisão de arquiteturas distribuídas: SOA, orientado a eventos Componentes e Serviços
      • O que é uma nuvem? Privado, público, híbrido
      • Tecnologias, modelos de negócios, principais fornecedores de serviços nacionais e internacionais
        • IaaS
        • BaaS
        • PaaS
        • SaaS
        • outras

      Agenda Prática:

      • 1º Trabalho – IaaS e PaaS
        • AWS EC2 – Implante e execute o servidor ubuntu
        • Docker PaaS – AWS Beanstalk
        • Heroku – implantação de 2 aplicativos, cada um por serviço
      • 2º Trabalho – SaaS e BaaS
        • Trello Board
        • AWS BaaS
        • Firebase (armazenar dados e média)

      Cada trabalho tem um planeamento prático de 6 aulas

      Objectivos

      • Entenda por que as empresas estão migrando para serviços em nuvem para apoiar seus negócios
      • Quais são os modelos de negócios
      • Quais são os principais provedores de serviços
      • Principais conceitos da arquitetura em nuvem
      • Recursos práticos para criar e implantar um serviço em nuvem

      Metodologia

      Por descrever

    • Complementos de Eng. de Software
      1º ano, 1º semestre. Cursos: MEISI, CIBER.

      Docentes

       João Caldeira

      Apresentação

      A UC pretende complementar os conhecimentos dos alunos na componente de engenharia de software com um foco especial nos processos e na gestão ágil de projetos de engenharia de software.

      Programa

      ·     Introdução aos complementos de Engenharia de Software: Problemas e aplicações

      ·     Tipologia dos projetos de IT

      ·     Planeamento do âmbito e cronograma dum projeto de engenharia de SW

      ·     Organização dum projeto de engenharia de SW. Papeis, responsabilidades e plano de comunicação e análise de risco.

      ·     Modelos de processo de desenvolvimento de software ágil

      ·     Caso de negócio – projeto de engenharia de SW

      ·     Identificação de estratégias para manutenção de software

      ·     Gestão de portfolio e da procura de projetos de software

      ·     Melhoria do processo de desenvolvimento de software

      ·     Tendências na Engenharia de Software

       

      Objectivos

      Utilizar processos de desenvolvimento de software tendo por base o seu modelo de ciclo de vida.
      Utilizar métodos, técnicas e ferramentas, já conhecidos e os mais contemporâneos, dentro de um contexto de Engenharia de Software.
      Utilizar modelos que permitem especificar, configurar, implementar e manter sistemas de software
      Avaliar e garantir a qualidade de um sistema de software
      Motivar para o desenvolvimento de programas com uma Engenharia, que integra os aspetos tecnológicos da computação com os fatores sociais e humanos da construção de produtos

      Metodologia

      A UC utiliza o método expositivo, combinado com a inclusão de casos práticos, e ainda o contacto com entidades da indústria do software por via de apresentações presenciais sobre melhores práticas no desenvolvimento de projetos de software modernos.

    • Desenv. e operacionalização de aplicações
      1º ano, 1º semestre. Cursos: MEISI.

    • Programação Aplicada para Ciências de Dados
      1º ano, 1º semestre. Cursos: MCiD.

      Docentes

       Lucio Studer

      Apresentação

      Nesta Unidade Curricular (UC), mergulhamos nas bases essenciais da programação aplicada à Ciência de Dados. Aprimoramos habilidades na criação de algoritmos e na construção de estruturas de dados em Python, capacitando para a manipulação (extração, transformação, armazenamento) e análise de dados, o cerne da Ciência de Dados. Estrategicamente situada no primeiro semestre do mestrado, esta UC fomenta habilidades cruciais. Desenvolve a capacidade de abstração, o pensamento lógico e estruturado, além de aprimorar a mestria algorítmica. Mais do que isso, estimula o pensamento criativo e a habilidade de resolver problemas – competências fundamentais na formação de um cientista de dados. Estas bases sólidas constituem alicerces essenciais, preparando os estudantes para módulos mais avançados do mestrado

      Programa

      Os Conteúdos Programáticos (CP) desta unidade curricular são os seguintes:

      CP1. Introdução à programação

      CP2. Introdução à linguagem Python e sua sintaxe

      CP3. Intordução aos ambientes de trabalho Jupyter Notebook, Google Collab e Moodle CodeRunner.

      CP4. Sintaxe do Python. Variáveis e operadores. Tipos de dados simples: numéricos; strings e seus métodos.

      CP5: Controlo de fluxo, com decisores e ciclos.

      CP6. Funções. Módulos e packages.

      CP7: Tipos de dados compostos: listas, tuplos, sets e dicionários

      CP8: Manipulação e gestão de ficheiros (texto, JSON, CSV).

      CP9: Visualização de dados com matplotlib.

      CP10: Programação funcional. Compreensões, lambda, map, filter, reduce.

      CP11: Programação orientada a objetos. Classes.

      Objectivos

      Esta Unidade Curricular tem os seguintes Objetivos de Aprendizagem (OA):

      OA1. Conhecimentos Fundamentais em Programação:

      • Compreensão sólida dos princípios da programação.
      • Familiaridade proficiente com a linguagem Python.

      OA2. Aptidões para Resolução de Problemas:

      • Habilidade de analisar e decompor problemas complexos em partes menores, permitindo uma compreensão mais clara e uma abordagem mais controlada.
      • Abstração eficaz para isolar elementos cruciais e identificar estruturas de dados adequadas.
      • Raciocínio lógico, identificando padrões e tomando decisões fundamentadas.

      OA3. Competências em Manipulação de Dados:

      • Coleta, limpeza e transformação (ETL) de dados para análise.
      • Criação de algoritmos eficientes para resolver desafios reais.

      OA4. Preparação para Módulos Avançados:

      • Base sólida para explorar tópicos mais complexos em análise de dados.
      • Desenvolvimento do pensamento crítico e criativo

      Metodologia

      M1: Ensino expositivo: A apresentação de conceitos teóricos é feita de forma expositiva através de slides. Disponibilizam-se num canal Educast da FCCN video-tutoriais curtos desenvolvidos sobre os conceitos chave da disciplina.

      M2: Ensino ativo: os conceitos teóricos são demonstrados recorrendo a "live coding" pelo docente.

      M3: Aprendizagem experimental: São usadas fichas em Jupyter Notebook que permitem a experimentação imediata dos conceitos lecionados.

      M4: Aprendizagem participativa: Durante as aulas é estimulada a discussão em grupo dos exercícios e projetos semanais.

      M5: Auto-avaliação: foi desenvolvida uma plataforma que permite realizar quizzes para avaliação de todos os conhecimentos, cuja solução submetida é validada de forma automática.

      M6: Aprendizagem orientada a projeto: são realizados de forma autónoma exercícios e projetos semanais com desafios exploratórios de aspectos complementares.

      M7: Avaliação contínua: fichas semanais, quizzes, projetos, minitestes e frequencias.

    • Desenv. de Aplicações na Nuvem -opcional
      1º ano, 2º semestre. Cursos: MEISI.

    • Sistemas de Gestão de Identidade – obrigatória
      1º ano, 2º semestre. Cursos: MEISI.

    • Técnicas de Programação Segura
      2º ano, 1º semestre. Cursos: MEISI.

    • Engenharia de Software e Ciência de Dados
      1º ano, 1º semestre. Cursos: DI.

    • Software de Investigação
      1º ano, 1º semestre. Cursos: DI.

    • Fund Programação 2º Sem
      º ano, º semestre. Cursos:

    • Introdução à Computação
      º ano, º semestre. Cursos:

  • Redes e Telecomunicações
    • Fund. de Telecomunicações
      2º ano, 1º semestre. Cursos: LEIRT.

      Docentes

       João Canto Daniel Fernandes

      Apresentação

      É uma disciplina obrigatoria para alunos do ramo de telecomunicações do curso. È a disciplina onde os alunos se cruzam pela primeira vez com os conceitos fundamentais de comunicação analogica and digital.

      Programa

      1.Introdução.Modelo de um sistema de Telecomunicações.2. Sinais (revisão).Introdução aos processos estocásticos.Caracterização.Modelos de ruído.3.Modulação analógica de portadoras sinusoidais.AM e FM. Sinais e ruído passa-banda.Desempenho face ao ruído.4.Digitalização de fontes analógicas – sistemas PCM.Amostragem e Quantização.Erro e ruído de quantização.5.Modelo de uma fonte digital. Medida de informação e entropia. Introdução ao problema da codificação de fonte. Codificação de Huffman.

      Objectivos

      O principal objectivo da disciplina é o de transmitir aos alunos os conceitos base de telecomunicações bem como introduzir as principais ferramentas matemáticas e computacionais para o seu tratamento. Pretende-se:
      – Introduzir os fundamentos de modulações analógicas, modulação por pulsos e codificação de fonte. Desta forma, o aluno ficará capacitado a compreender, desenvolver e projectar sistemas analógicos de telecomunicações.
      – Desenvolver uma compreensão abrangente dos conceitos de telecomunicações, que permitam, ao aluno, a intervenção em sistemas de áreas distintas, mas regidos pelos mesmos princípios matemáticos fundamentais.
      – Adquirir a capacidade de analisar e manipular sinais e sistemas lineares e invariantes no tempo através das suas representações no domínio do tempo, frequência, e da transformada de Fourier. Estas competências são fundamentais, para o projecto e desenvolvimento de algoritmos de compressão e codificação de dados (e.g., áudio, vídeo, texto, etc.).

      Metodologia

      Fornecimento de diverso material de estudo em suporte digital, como slides e exercícios. Recurso a software de simulação.

    • Sinais e Sistemas
      2º ano, 1º semestre. Cursos: LEI, LEIRT.

      Docentes

      Apresentação

      É uma disciplina obrigatoria, de base da engenharia. As noções de sinais e de sistemas são comuns a
      uma grande variedade de áreas científicas. Os métodos e as técnicas que lhes estão associados
      desempenham um papel importante em áreas tão diversas da ciência e da tecnologia tais como Redes
      de Comunicações, Projecto de Circuitos, Controlo, Sistemas de Geração e de Distribuição de Energia,
      Controlo de Processos Químicos, Acústica, Sismologia, etc. Embora provenientes de disciplinas de
      índole tão diversa, e correspondendo a fenómenos físicos de natureza completamente diferente, ao
      estudo dos sinais e dos sistemas está associado o desenvolvimento de um formalismo básico comum.

      Programa

      1. Sinais e sistemas;
      2. Sistemas Lineares e Invariantes no Tempo (SLITs);
      3. ransformada de Z;
      4. Transformada de Fourier Discreta;
      5. Resposta no Tempo de SLITs Causais;
      6. Equações às diferenças;

      Objectivos

      Pretende-se:
      – Introduzir os fundamentos da Teoria dos Sinais e dos Sistemas Lineares e Invariantes no Tempo.
      Desta forma, o aluno ficará capacitado a compreender, desenvolver e projectar sistemas de controlo,
      que podem ser aplicados a diversas áreas da engenharia.
      – Desenvolver uma compreensão abrangente dos conceitos de sinais e sistemas, que permitam, ao
      aluno, a intervenção em sistemas de áreas distintas, mas regidos pelos mesmos princípios matemáticos
      fundamentais.
      – Adquirir a capacidade de analisar e manipular sinais e sistemas lineares e invariantes no tempo através
      das suas representações no domínio do tempo, frequência, e das transformadas de Z e de Fourier
      Discretas. Estas competências são fundamentais, para o projecto e desenvolvimento de algoritmos de
      compressão e codificação de dados (e.g., áudio, vídeo, texto, etc.)

      Metodologia

      Ensino teórico (T) – Apresentação dos conceitos definidos nos conteúdos programáticos.
      Ensino prático (P) – Apresentação e discussão dos conceitos definidos nos conteúdos programáticos e
      acompanhados da resolução de exemplos de aplicação.
      Orientação tutorial (OT) Acompanhamento dos alunos na resolução de exercícios e supervisão de outras
      actividades relevantes à unidade curricular. Apoio ao estudo de pequenos grupos de alunos.
      Avaliação contínua:
      – Duas provas escritas (PE1,PE2) individuais: PE = 0.5 * PE1+ 0.5 * PE2 , PE >= 10
      – Trabalho prático (TP), TP >= 10
      NOTA FINAL = 0.7 * PE + 0.3 * TP >= 10
      Avaliação por exame de recurso:
      – Prova escrita individual (PE), PE >= 10
      – Trabalho laboratorial (TP), TP >= 10
      NOTA FINAL = 0.7 * PE + 0.3 * TP >= 10

    • Redes de Computadores
      2º ano, 2º semestre. Cursos: LEI, LIG, LEIRT.

      Docentes

       João Craveiro Brena Lima Houda Harkat

      Apresentação

      Esta UC em Redes de Computadores faz um curso introdutório à rede de computadores Internet. Tem como objectivo apresentar todas as camadas de que é constituida a Internet (Inter-Networks), i.e. Camada de Aplicação, Camada de Transporte, Camada de Rede e Camada de Ligação/Fisica.

      A abordagem ao Conteudos Programáticos é feita de uma forma Top-Down, i.e. começando com uma introdução de todas a camadas seguida por cada uma em detalhe começando pela camada de Aplicação.

      Existe uma componente prática nesta UC, do qual são demostrados e treinados os conceitos introduzidos na componente teórica.

      Esta Unidade Curricular complementa e integra-se assim, ao presente ciclo de estudos oferecendo uma componente disciplinar de Redes de Computadores e sua evoluc¿a¿o.

      Programa

      CP1: Introdução

      • O que é a Internet?
      • Elementos
      • Convenções
      • Serviços
      • Protocolos
      • The Network Edge (Periferia da Network)
      • The Network Core (Malha interna)
      • Circuit Switching (Comutação de Circuitos)
      • Packet Switching (Comutação de Pacotes)
      • Topologias e Redes de Acesso
      • Niveis de Protocolos e Modelos de Serviço

      CP2: Camada de Aplicação

      • Evolução de Aplicações de Internet
      • DNS (Domain Name System)
      • HTTP (HyperText Transfer Protocol)
      • Web proxies and caching
      • Sistemas Distribuidos
      • Peer-to-peer (BitTorrent)
      • Aplicações Real-time (VoIP)

      CP3: Camada de Transporte

      • Service models
      • User Datagram Protocol (UDP)
      • Connections (TCP)
      • Sliding Window (TCP)
      • Flow control (TCP)
      • Retransmission timers (TCP)
      • Congestion control (TCP)

      CP4: Camada de Rede

      • Network service models
      • IP (Internet Protocol)
      • NAT, a ¿middlebox¿
      • Routing algorithms

      CP5: Camada Data Link

      • Framing
      • Error detection and correction
      • Retransmissions
      • Multiple Access
      • Switching

      Objectivos

      OA1: Saber que o que é uma rede a nível geral. E que a Internet é uma rede de redes ou inter-network. Gerir uma rede de redes que partilha dados sem gestão centralizada envolve em termos de gestão e de operação vários desafios.

      OA2: Adquirir conhecimentos teóricos e práticos dos diversos protocolos envolvidos em cada camada (layer) de operação. Na Camada de Aplicação, tais como HTTP 1.0 e 1.1, DNS, etc. Na camada de Transporte, protocolos como o UDP e TCP e suas variantes. Na camada de Rede o protocolo IP, etc. E na camada de data link, saber o que é uma comutação por circuitos e por pacotes.

      OA3: Ganhar a aptidão teórica e prática de uma comunicação Cliente-Servidor.

      Metodologia

      Por descrever

    • Sistemas de Telecomunicações
      2º ano, 2º semestre. Cursos: LEIRT.

    • Complementos de Redes
      3º ano, 1º semestre. Cursos: LEIRT.

      Docentes

       Houda Harkat

      Apresentação

      Esta Unidade Curricular (UC) apresenta-se como um complemento à UC Redes de Computadores.

      Enquanto na última são abordadas as camadas de rede, transporte e aplicação, na presente UC de Complementos de Redes discutem-se os fundamentos das redes de comunicação, e as camadas física e de ligação.

      São abordados aspetos fundamentais associados ao desenho e dimensionamento de redes de comunicações, nos mais variados meios de transmissão e tipos de ligação.

      São estudadas também várias métricas de avaliação de desempenho, com o intuito de ganhar sensibilidade quantitativa e qualitativa.

      Programa

      CP.1. Tutorial Python

      CP.2.Tutorial Django

      CP.3.Redes de comunicações

      CP.4.Camada física

      CP.5.Camada de ligação

      Objectivos

      Pretende-se com esta UC que o aluno compreenda os conceitos fundamentais das redes de comunicação e seja capaz de identificar os problemas que resolvem. Para um conjunto de requisitos e um cenário específico, deverá saber identificar e avaliar comparativamente as diferentes estratégias de desenho e dimensionamento das componentes física e de ligação de uma rede, aplicando métricas adequadas para avaliação de desempenho destas, que levem à escolha da solução ótima que mais se adequa ao contexto.

      Metodologia

      A UC é teórico-prática.

      As aulas teóricas seguem o programa definido, apresentando os conceitos teóricos suportados por exemplos práticos.

      Nas aulas práticas procede-se à resolução de exercícios sobre a matéria lecionada. De forma complementar, nas primeiras aulas práticas é ministrada uma tutoria de Python e Django, cada aluno construindo uma aplicação Web base.

      Ao longo do semestre, serão dadas fichas de exercícios semanais sobre a matéria lecionada será igualmente desenvolvido ao longo do semestre um projeto, aplicação web em django.

    • Projecto de Telecomunicações
      3º ano, 1º semestre. Cursos: LEIRT.

      Docentes

       João Canto

      Apresentação

      O âmbito desta unidade prende-se com o estudo e projecto de infra-estruturas de telecomunicações em
      edifícios, devidamente enquadradas no contexto normativo a ser respeitado em Portugal, a norma ITED
      3, que espelha a legislação europeia actualmente em vigor. A componente de gestão de projectos,
      fundamental em qualquer área de aplicação da engenharia, é introduzida com base na metodologia do
      PMI, sendo abordadas as ferramentas fundamentais, necessárias à gestão de projecto e tomada de
      decisão. A pertinência da unidade no ciclo de estudos, é clara: (i) O projecto e instalação de redes de
      telecomunicações em edifícios, implica o cumprimento de normas específicas, de qualidade e fiabilidade,
      constituindo uma mais valia fundamental para o mercado de trabalho na área das telecomunicações; (ii)
      Os conceitos fundamentais de gestão de projectos, e tomada de decisão, são hoje uma ferramenta
      essencial, aplicada de forma transversal, em todas as áreas da engenharia.

      Programa

      Programa das Aulas Teóricas

      1. Infra-estruturas de Telecomunicações em Edifícios (30%)
        1. Requisitos Técnicos Gerais
        2. Classificações Ambientais
        3. Regras Genéricas de Projecto
        4. Adaptação a Fibra Óptica
        5. Regras Genéricas de Instalação
        6. Caracterização de Infraestruturas por Tipo de Edifício
        7. Ensaios
        8. Protecções e Ligações de Terra
        9. Domótica, Videoporteiro e Sistemas de Segurança
      2. Princípios de Gestão de Projectos (30%)
        1. Introdução à Gestão de Projecto
        2. Planificação de Projectos
        3. Implementação de Projectos
        4. Técnicas Fundamentais de Gestão de Projecto
      3. Acompanhamento dos Projectos (40%)

      Programa das Aulas Práticas

      1. Resolução de exercícios de aplicação
      2. Familiarização com as ferramentas de CAD
      3. Acompanhamento da evolução do projecto final
      4. Esclarecimento de dúvidas

      Objectivos

      Pretende-se que o aluno adquira a capacidade técnica para, de forma autónoma, projectar uma
      infraestrutura de telecomunicações num edifício, recorrendo às normas em vigor (ITED3). No âmbito
      desta unidade curricular exigir-se-á ainda ao aluno que seja capaz de planificar e gerir o seu trabalho
      utilizando técnicas básicas de gestão de projectos. Em suma, pretende-se que o aluno adquira fortes
      capacidades de responder aos desafios colocados pelo mercado de trabalho, nas áreas da informática
      aplicada às telecomunicações, nomeadamente no âmbito de projecto e instalação de infraestruturas de
      telecomunicações e redes informáticas. As competências fundamentais a desenvolver ao longo da
      unidade são:

      1. Familiarização com os materiais e componentes utilizados nas redes ITED;
      2. Familiarização com as regras de projecto, dimensionamento e instalação das redes ITED;
      3. Familiarização com a utilização ferramentas CAD;
      3. Familiarização com os conceitos fundamentais de gestão de projectos;

      Metodologia

      Fornecimento de diverso material de estudo em suporte digital, como slides e exercícios. Recurso a software de simulação.

    • Comunicações Via Rádio
      3º ano, 2º semestre. Cursos: LEIRT.

    • Projecto de Redes Informáticas
      3º ano, 2º semestre. Cursos: LEIRT.

    • Redes de Comunicações sem Fios
      3º ano, 2º semestre. Cursos: LEIRT.

    • Segurança Informática
      3º ano, 2º semestre. Cursos: LEI, LEIRT.

      Docentes

       Sérgio Nunes

      Apresentação

      A presente unidade curricular tem por objectivo formar estudantes com perfis profissionais especializados, capazes de lidar eficazmente com a complexidade crescente das ameaças à segurança das aplicações em rede e na nuvem, utilizando as mais avançadas tecnologias da segurança informática, para implementar elevados padrões de segurança em redes informáticas

      Programa

      ¿Introdução à Segurança Informática ¿Conceitos fundamentais de Segurança Informática ¿Paradigmas de Segurança ¿Criptografia ¿Algoritmos de segurança ¿Autenticação e autorização ¿Gestão de chaves ¿Segurança de Redes ¿Firewalls ¿IDS/IPS ¿Redes sem fios ¿Arquitecturas de Segurança ¿Protocolos de comunicação segura ¿Tipificação de vulnerabilidades e ataques ¿Segurança de Software ¿Políticas e gestão de segurança

      Objectivos

      No final da cadeira, os estudantes deverão: Identificar os diferentes domínios e aplicações da segurança informática. Perceber e utilizar os principais algoritmos de encriptação, assim como quantificar os níveis de segurança que permitem assegurar. Conhecer e perceber as actuais ameaças à segurança em redes de dados e as boas práticas necessárias para as evitar. Conceber e implementar aplicações em rede obedecendo a elevados requisitos de segurança mesmo utilizando canais de comunicação inseguros Utilizar os conceitos adquiridos em cenários reais, no contexto do projecto / estágio profissional a realizar no ano lectivo.

      Metodologia

      Por descrever

    • Administração de Redes e Infraestrutura de IT
      2º ano, 1º semestre. Cursos: MEISI.

    • Tecnologias e Planeamento de Segurança
      2º ano, 1º semestre. Cursos: MEISI.

    • Cibersegurança
      1º ano, 1º semestre. Cursos: DI.

    • Sistemas Baseados em Posicionamento
      1º ano, 1º semestre. Cursos: DI.

    • Sistemas Cooperativos sem Fios
      1º ano, 1º semestre. Cursos: DI.

    • Comunicações sem fios 5G
      º ano, º semestre. Cursos:

    • Introdução a Ciência das Redes
      º ano, º semestre. Cursos:

    • Tópicos Avançados em Internet das Coisas
      º ano, º semestre. Cursos:

  • Sistemas de Informação
    • Fund. Sistemas de Informação
      1º ano, 1º semestre. Cursos: LIG.

    • Bases de Dados
      2º ano, 1º semestre. Cursos: LEI, LIG, LEIRT, LCiD, LiCMA.

      Docentes

       Rui Ribeiro João Caldeira Luis A. Gomes

      Apresentação

      Esta unidade curricular tem por objetivo apresentar a importância da Gestão de Dados no seio de uma empresa, de forma a garantir quer a operação diária de negócio, bem como o apoio à decisão estratégica.

      Nesta unidade reforçar-se-á o enquadramento de estruturação e metodologias de criação das bases de dados.

      Programa

      O programa da unidade curricular é:
      A) Componente Teórico

      • Introdução
      • Modelo de relacionamento entre entidades
      • O modelo relacional
      • Refinamento de esquema: Conceito de normalização e transações
      • Arquitetura de SGBD e algum SQL Avançado

      B) Componente Prática

      • Introdução à linguagem SQL;
      • Instruções: DDL, DML (DQL) e DCL
      • Operações: WHERE, ORDER BY, GROUP BY;
      • Conceito avançados em SQL: Controlo de erros
      • Operadores Relacionais: União, intersecção e Subtracção
      • Produto Cartesiano (externo)
      • Queries complexos (filtro com valores agregados) e sub-queries
      • Set DDL; Instrução CREATE; Tipos de dados; Nulidade; Instruções ALTER e DROP
      • INDICES e VIEWS
      • Controlo de erros: estrutura TRY¿CATCH
      • Procedimentos (SP) e Triggers
      • Operações com tabelas: Cursores

      Objectivos

      São objetivos dotar os estudantes dos conhecimentos teóricos e práticos necessários à concepção, construção e análise de bases de dados relacionais: nomeadamente obter as seguintes aptidões e
      competências:
      1. Compreender as razões de implementação de bases de dados relacionais no mundo empresarial
      2. Transpor de uma análise de requisitos para um modelo entidade-associação para desenhar bases de dados;
      3. Aplicar os conceitos do modelo relacional de bases de dados, transformando o modelo entidade-associação, em modelo físico de dados;
      4. Aplicar as técnicas de normalização de tabelas;
      5. Compreender arquitetura e principais componentes de Sistemas de Gestão de Bases de Dados;
      6. Utilizar a linguagem SQL base e avançado para a criação, consulta e modificação de bases de dados;

      Metodologia

      Uso de dinâmicas interativas de jogos em aulas, através de plataformas como o Kahoot.

    • Eng. de Requisitos e Testes
      2º ano, 2º semestre. Cursos: LEI, LIG.

      Docentes

       Rui Ribeiro José Cascais Brás Luis A. Gomes

      Apresentação

      A UC de Análise e Conceção de Sistemas tem por objetivo garantir um enquadramento de gestão de Sistemas de Informação e o seu impacto na componente aplicacional, onde a componente de metodologia e engenharia de requisitos, tal como a metodologia e estruturação de testes de software, sejam unitários ou agregados, são essenciais para o sucesso de negócio das empresas.

      Programa

      Estrutura de Capítulos principais de conteúdos

      1. Visão de Gerenciamento de Sistemas de Informação

      2. Engenharia de Requisitos (Gestão de backlog, BPMN e UML – Modelação)

      3. Testes de software

      4. Gestão de Projetos

      Objectivos

      • Entender o que é Gestão de Sistemas de Informação
      • Por que é fundamental definir requisitos
      • Saber desenvolver e gerenciar uma metodologia de definição e estrutura de requisitos
      • Como alinhar os testes com os requisitos
      • Compreender a importância de modelar os requisitos e testes
      • Fundamentos de Gestão de Projetos

      Metodologia

      Por descrever

    • Técnicas de Data Warehouse
      1º ano, 1º semestre. Cursos: MEISI, CIBER.

      Docentes

       Nuno Matias

      Apresentação

      Esta unidade curricular pretende dar uma introdução em Tópicos de Data Warehouse e sua evolução até ao presente.

      Esta UC tem como âmbito introduzir as motivações da necessidade do Data Warehouse na sua perspectiva originária e funcional e com o advento do big-data quais os desafios que o Data Warehouse tem enfrentado para sua evolução e propósito.

      Esta disciplina vem dar não só uma introdução a tópicos de Data Warehouse mas também a introdução de novos paradimas e soluções que complementam dos dias actuais (big-data) a função e objectivos de uma data warehouse. Introduzindo-se assim outros temas tais como o Data Vaults, Data Lakes e tecnologias tais como Hadoop com Map Reduce (storage and recall) e outros tais como Spark (memory based).

      Esta Unidade Curricular complementa e integra-se assim, ao presente ciclo de estudos oferecendo uma componente disciplinar de data warehouse e sua evolução.

      Programa

      CP1: Sistemas Operacionais, dados operacionais e OLTP (OnLine Transactional Processing) e a necessidade de Informação estratégica.

      CP2: Informação Estratégica e a necessidade de um novo sistema, data warehouse. Requisitos a ter uma data warehouse e suas componentes. O porquê e a incapacidade dos sistemas operacionais OLTP para manipular Informação Estratégica.

      CP3: Data Warehouses como solução para armazenamento, gestão e manipulação de informação estratégica e principais diferenças com sistemas operacionais.

      CP4: Introdução aos vários estágios da data warehouse: Data (e.g. OLTP) – Extract Transform Load – Data storage – Data Analytics (BI, Data Science e Hadoc Reporting) e Gestão da data warehouse.

      CP5: Arquitectura da Data Warehouse. Os vários tipos de arquitecturas para uma data warehouse (Top-down e Botton-up e outras).

      CP6: Sistemas OLAP, hyper-Cubos e operações em Cubos.

      CP7: Para além das Data Warehouses: Big data, Data Vaults, Data Lakes sistemas Hadoop/Map Reduce e Spark.

      Objectivos

      OA1: Sistemas Operacionais, dados operacionais e OLTP (OnLine Transactional Processing) e a necessidade de Informação estratégica.

      OA2: Informação Estratégica e a necessidade de um novo sistema, data warehouse. Requisitos a ter uma data warehouse e suas componentes. O porquê e a incapacidade dos sistemas operacionais OLTP para manipular Informação Estratégica.

      OA3: Data Warehouses como solução para armazenamento, gestão e manipulação de informação estratégica e principais diferenças com sistemas operacionais.

      OA4: Introdução aos vários estágios da data warehouse: Data (e.g. OLTP) – Extract Transform Load – Data storage – Data Analytics (BI, Data Science e Hadoc Reporting) e Gestão da data warehouse.

      OA5: Arquitectura da Data Warehouse. Os vários tipos de arquitecturas para uma data warehouse (Top-down e Botton-up e outras).

      OA6: Sistemas OLAP, hyper-Cubos e operações em Cubos.

      OA7: Para além das Data Warehouses: Big data, Data Vaults, Data Lakes sistemas Hadoop/Map Reduce e Spark.

      Metodologia

      A disciplina tem uma forte componente prática onde os estudantes têm que aplicar os conhecimentos e obter resultados visíveis.

    • Gestão de Sistemas e Tecnologias de Informação
      2º ano, 1º semestre. Cursos: MEISI, CIBER.

      Docentes

       Paulo Guedes

      Apresentação

      Disciplina de gestão de uma organização informática, focando numa perspetiva prática os aspetos mais importantes da gestão de equipas e organizações informáticas.

      Programa

      1. Introdução – Âmbito da Gestão de Sistemas e Tecnologias de Informação
      2. Caracterização das Tecnologias e Sistemas de Informação Empresariais
      – Estrutura organizativa de uma organização informática
      – Aplicações e tecnologias
      – Infraestruturas
      3. Gestão Operacional
      – Organização e responsabilidades das equipas
      – Gestão financeira de projectos, portfólios e equipas
      – KPIs de gestão operacional
      – Produtividade e function points
      – Gestão Lean de equipas
      4. Gestão Transversal

      – Gestão da Procura e da Relação
      – Gestão do Portfólio
      – Arquitectura
      – Risco
      – Gestão de compras e fornecedores
      – Processos e Qualidade
      – Recursos humanos
      5. Gestão Global
      – Plano estratégico
      – Orçamento anual e controlo orçamental
      – KPIs e alinhamento organizacional

      Objectivos

      Aprendizagem das matérias e das práticas relevantes na gestão de uma organização informática. Os alunos devem ficar capacitados a entender as responsabilidades, desafios, práticas e competências de uma organização informática, desde as equipas, à gestão intermédia e até ao Director de Informática. Este conhecimento permite aos alunos uma compreensão global da organização informática onde trabalham ou podem vir a trabalhar, ou das empresas suas clientes, melhorando a sua capacidade de integração no mercado de trabalho e de progressão na carreira informática

      Metodologia

      Semanalmente os alunos são confrontados com problemas que têm que investigar e apresentar um trabalho que é discutido na aula seguinte.

    • Sistemas de Informação nas Organizações
      2º ano, 1º semestre. Cursos: MEISI.

    • Competências Digitais
      º ano, º semestre. Cursos:

    • Sist. de Informação p Gestão
      º ano, º semestre. Cursos:

  • Início
  • Áreas Científicas e suas disciplinas

Universidade Lusófona


ECATI Escola de Comunicação, Arquitetura, Artes e Tecnologias da Informação

Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)


Lisboa
Avenida do Campo Grande,
376 1749-024 Lisboa, Portugal
Tel.: 217 515 500 | email: info.cul@ulusofona.pt
Porto
Rua Augusto Rosa,
Nº 24, 4000-098 Porto - Portugal
Tel.: 222 073 230 | email: info.cup@ulusofona.pt

Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.