Engenharia Informática, Redes e Telecomunicações

A Licenciatura em Engenharia Informática, Redes e Telecomunicações da Universidade Lusófona de Lisboa pretende:

1. Formar licenciados com fortes capacidades de responder aos desafios colocados pelo mercado de trabalho nas áreas da informática aplicada às telecomunicações e redes, do desenvolvimento de aplicações ao projeto, gestão e instalação de serviços e infraestruturas.
2. Completar essas competências com disciplinas mais avançadas, refletindo os avanços recentes na área das Ciências e Tecnologias de Informação.
3. Desenvolver perfis com fortes competência tecnológicas e humanas, de modo a que os candidatos possam obter um alto grau de empregabilidade no final do 1º ciclo, ou prosseguir os estudos de 2º ciclo com excelentes perspetivas de sucesso.
4. Oferecer um ensino de qualidade assente num corpo docente integrando especialistas e académicos com elevado potencial pedagógico e atividade comprovada em investigação.
5. Proporcionar aos licenciados um amplo leque de escolhas profissionais.

Plano de Estudos

Explore os conteúdos e projetos das unidades curriculares

  • 1.º Ano

    1.º Semestre
    • Fundamentos de Física

      Apresentação

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

      DocentesCristiane FerreiraAlexander MikovicCristina Guerra

      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

      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.
    • Fundamentos de Programação

      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.

      DocentesPedro AlvesBrena LimaBruno SaraivaLucio StuderRodrigo CorreiaWellington Oliveira

      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

      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
    • Matemática Discreta

      Apresentação

      A Matemática Discreta como curso destinado a alunos do primeiro ano, contém um capítulo preliminar onde, de forma informal são abordados alguns aspectos da Lógica Matemática.

      O capítulo preliminar permitirá aos alunos detectarem erros de raciocínio que surgem, com alguma frequência no dia-a-dia. Este capítulo tem ainda o mérito de fazer a ligação entre a Matemática e a língua portuguesa. O aluno terá a oportunidade de ser confrontado com alguns aspectos da sintaxe da língua portuguesa.

      A Matemática Discreta familiarizará o estudante com a linguagem da teoria intuitiva dos conjuntos.

      O estudante terá a oportunidade de adquirir capacidade para operar com linguagens formais e para identificar linguagens regulares, além de adquirir competências que permitem utilizar gramáticas formais e autómatos finitos como mecanismos geradores de linguagens.

      DocentesTeresa AlmadaSlavisa Tomic

      Programa

      1. Algumas questões de linguagens: Alguns conceitos básicos de Lógica. Operações lógicas. Linguagem simbólica da Matemática.
      2. Elementos da Teoria Intuitiva de Conjuntos:  Representação de conjuntos. Operações com conjuntos. Generalidades sobre relações binárias. O conceito de função. Conjuntos equipotentes. Conjuntos finitos. Operações com relações binárias. Relações de equivalência. Conjunto quociente. Partição de um conjunto. 
      3. Linguagens Formais. Generalidades. Operações com linguagens. Monoide livre das palavras sobre um alfabeto finto. Propriedade universal. Fecho e fecho positivo de uma linguagem. Linguagens regulares. Gramáticas formais. Generalidades. Derivação.  Linguagem gerada por uma gramática. Gramáticas regulares.
      4. Autómatos Finitos: Generalidades. Autómato determinístico e não determinístico. Linguagem reconhecida por um autómato. Linguagem reconhecível.
    • Matemática I

      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.

      DocentesAndré FonsecaSofia FernandesSofia Naique

      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).
    • Sistemas Digitais

      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.

      DocentesJoão P. CarvalhoCarlos FernandesDaniel FernandesSérgio Ferreira

      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%)

    2.º Semestre
    • Algoritmia e Estruturas de Dados

      Apresentação

      DocentesPedro AlvesBruno CiprianoDuarte NevesMiguel TavaresRodrigo Correia

      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

      Programa

    • Fundamentos de Eletrónica

      Apresentação

      DocentesCarlos Fernandes

      Projetos

      • Transmissão AM e FM

        Descrição
        • Estudo e implementação de esquemas de transmissão AM e FM
        • Aplicação dos conceitos de análise de componentes e de teoria de circuitos.

        Conceitos aplicados da Unidade Curricular
        • Tópicos de análise de teoria de circuitos.
        Tecnologias usadas
        • Multisim, software de simulação de circuitos eletrónicos e análise SPICE (Simulation Program with Integrated Circuit Emphasis)

      Programa

  • 2.º Ano

    1.º Semestre
    • Bases de Dados

      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.

      DocentesRui RibeiroJoão CaldeiraLuis A. Gomes

      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
    • Fundamentos de Telecomunicações

      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.

      DocentesJoão CantoDaniel Fernandes

      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.

    • Linguagens de Programação II

      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.

      DocentesPedro AlvesBruno CiprianoDuarte Neves

      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

      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
    • Sinais e Sistemas

      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.

      Docentes

      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;

    • Sistemas Operativos

      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.

      DocentesJoão CraveiroDaniel M. SilveiraJoão Madeira

      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
    2.º Semestre
    • Computação Móvel

      Apresentação

      DocentesPedro AlvesMiguel TavaresWellington Oliveira

      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

      Programa

  • 3.º Ano

    1.º Semestre
    • Complementos de Rede

      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.

      DocentesHouda Harkat

      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

    • Computação Distribuída

      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.

      DocentesPaulo GuedesSérgio Nunes

      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)

      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

    • Data Science

      Apresentação

      Esta cadeira tem como objetivo apresentar as técnicas e metodologias fundamentais para a análise de dados na perspectiva interdisciplinar de um Cientista de Dados. Na primeira parte da cadeira, os alunos aprendem sobre a natureza diversa dos dados e o poder simbólico das diferentes estruturas de dados para representar informação. Tal compreensão fundamental leva naturalmente a um segundo momento da cadeira no qual os alunos aprendem como interrogar e extrair informações dos dados e justificar suas escolhas. Durante esta segunda parte, os alunos aprendem sobre inferência estatística, testes de hipóteses, abordagens freqüentistas versus Bayesianas para pensar em dados, correlação e causalidade. Finalmente, na terceira parte do módulo, os alunos aprendem os fundamentos da aprendizagem de máquina por meio da teoria e prática dos métodos de regressão, classificação e redução de dimensionalidade.

      DocentesManuel M. PitaZuil Pirola

      Programa

      Descrição dos conteúdos

      1. Programação Python para Ciência de Dados
      2. Introdução à visualização da informação
      3. Álgebra Linear
      4. Noções básicas da teoria da probabilidade
      5. Inferência estatística e teste de hipóteses
      6. Introdução à aprendizagem de máquina
      7. Regressão logística
      8. Redução da dimensionalidade: MDS e PCA
      9. Redução da dimensionalidade: Fatoração de matriz não negativa
      10. Tópicos atuais em ciência de dados
    • Engenharia de Software

      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.

      DocentesJosé Cascais BrásPedro PerdigãoRui Santos

      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
    • Projeto de Telecomunicações

      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.

      DocentesJoão Canto

      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
    2.º Semestre

Áreas Científicas

  • Outra forma de olhar para o curso e suas disciplinas

    • Matemáticas e Físicas

      • Fundamentos de Física

        Apresentação

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

        DocentesCristiane FerreiraAlexander MikovicCristina Guerra

        Projetos

        • Lançamento do Projétil

          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.

        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.

        Objetivos

        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.

      • Matemática Discreta

        Apresentação

        A Matemática Discreta como curso destinado a alunos do primeiro ano, contém um capítulo preliminar onde, de forma informal são abordados alguns aspectos da Lógica Matemática.

        O capítulo preliminar permitirá aos alunos detectarem erros de raciocínio que surgem, com alguma frequência no dia-a-dia. Este capítulo tem ainda o mérito de fazer a ligação entre a Matemática e a língua portuguesa. O aluno terá a oportunidade de ser confrontado com alguns aspectos da sintaxe da língua portuguesa.

        A Matemática Discreta familiarizará o estudante com a linguagem da teoria intuitiva dos conjuntos.

        O estudante terá a oportunidade de adquirir capacidade para operar com linguagens formais e para identificar linguagens regulares, além de adquirir competências que permitem utilizar gramáticas formais e autómatos finitos como mecanismos geradores de linguagens.

        DocentesTeresa AlmadaSlavisa Tomic

        Programa

        1. Algumas questões de linguagens: Alguns conceitos básicos de Lógica. Operações lógicas. Linguagem simbólica da Matemática.
        2. Elementos da Teoria Intuitiva de Conjuntos:  Representação de conjuntos. Operações com conjuntos. Generalidades sobre relações binárias. O conceito de função. Conjuntos equipotentes. Conjuntos finitos. Operações com relações binárias. Relações de equivalência. Conjunto quociente. Partição de um conjunto. 
        3. Linguagens Formais. Generalidades. Operações com linguagens. Monoide livre das palavras sobre um alfabeto finto. Propriedade universal. Fecho e fecho positivo de uma linguagem. Linguagens regulares. Gramáticas formais. Generalidades. Derivação.  Linguagem gerada por uma gramática. Gramáticas regulares.
        4. Autómatos Finitos: Generalidades. Autómato determinístico e não determinístico. Linguagem reconhecida por um autómato. Linguagem reconhecível.

        Objetivos

        Fornecer elementos básicos de lógica com vista à eliminação de erros de raciocínio. Familiarizar o aluno com a linguagem da teoria intuitiva de conjuntos. Identificar conjuntos finitos e conjuntos infinitos. Saber calcular o cardinal de alguns conjuntos finitos. Dar formação que permita operar com linguagens formais e identificar linguagens regulares. Adquirir competências que permitam utilizar gramáticas e autómatos finitos como mecanismos geradores de linguagens.

      • Matemática I

        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.

        DocentesAndré FonsecaSofia FernandesSofia Naique

        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).

        Objetivos

        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.

    • Arquiteturas e Sistemas Operativos

      • Computação Distribuída

        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.

        DocentesPaulo GuedesSérgio Nunes

        Projetos

        • OceanView Seats

          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.

        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

        Objetivos

        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.

      • Sistemas Digitais

        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.

        DocentesJoão P. CarvalhoCarlos FernandesDaniel FernandesSérgio Ferreira

        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%)

        Objetivos

        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.

      • Sistemas Operativos

        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.

        DocentesJoão CraveiroDaniel M. SilveiraJoão Madeira

        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

        Objetivos

        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.
    • Redes e Telecomunicações

      • Complementos de Rede

        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.

        DocentesHouda Harkat

        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

        Objetivos

        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.

      • Fundamentos de Telecomunicações

        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.

        DocentesJoão CantoDaniel Fernandes

        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.

        Objetivos

        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.).

      • Projeto de Telecomunicações

        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.

        DocentesJoão Canto

        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

        Objetivos

        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;

      • Sinais e Sistemas

        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.

        Docentes

        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;

        Objetivos

        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.)

    • Programação e Engenharia de SW

      • Computação Móvel

        Apresentação

        DocentesPedro AlvesMiguel TavaresWellington Oliveira

        Projetos

        • Cine Cartaz

          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

        Programa

        Objetivos

      • Engenharia de Software

        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.

        DocentesJosé Cascais BrásPedro PerdigãoRui Santos

        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

        Objetivos

        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.

      • Fundamentos de Programação

        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.

        DocentesPedro AlvesBrena LimaBruno SaraivaLucio StuderRodrigo CorreiaWellington Oliveira

        Projetos

        • Jogo das Tendas

          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.

        • Batalha Naval

          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.

        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

        Objetivos

        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.).

      • Linguagens de Programação II

        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.

        DocentesPedro AlvesBruno CiprianoDuarte Neves

        Projetos

        • DEISI Chess

          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.

        • DEISI Jungle

          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.

        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

        Objetivos

        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.

    • Sistemas de Informação

      • Bases de Dados

        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.

        DocentesRui RibeiroJoão CaldeiraLuis A. Gomes

        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

        Objetivos

        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;

    • Interação Humano-Máquina

    • Dados e Inteligência Artificial

      • Data Science

        Apresentação

        Esta cadeira tem como objetivo apresentar as técnicas e metodologias fundamentais para a análise de dados na perspectiva interdisciplinar de um Cientista de Dados. Na primeira parte da cadeira, os alunos aprendem sobre a natureza diversa dos dados e o poder simbólico das diferentes estruturas de dados para representar informação. Tal compreensão fundamental leva naturalmente a um segundo momento da cadeira no qual os alunos aprendem como interrogar e extrair informações dos dados e justificar suas escolhas. Durante esta segunda parte, os alunos aprendem sobre inferência estatística, testes de hipóteses, abordagens freqüentistas versus Bayesianas para pensar em dados, correlação e causalidade. Finalmente, na terceira parte do módulo, os alunos aprendem os fundamentos da aprendizagem de máquina por meio da teoria e prática dos métodos de regressão, classificação e redução de dimensionalidade.

        DocentesManuel M. PitaZuil Pirola

        Programa

        Descrição dos conteúdos

        1. Programação Python para Ciência de Dados
        2. Introdução à visualização da informação
        3. Álgebra Linear
        4. Noções básicas da teoria da probabilidade
        5. Inferência estatística e teste de hipóteses
        6. Introdução à aprendizagem de máquina
        7. Regressão logística
        8. Redução da dimensionalidade: MDS e PCA
        9. Redução da dimensionalidade: Fatoração de matriz não negativa
        10. Tópicos atuais em ciência de dados

        Objetivos

        1. Entender as principais técnicas e métodos de programação Python usados por cientistas de dados através da sua prática
        2. Introdução à teoria de visualização de informação, abordagens e técnicas de implementação
        3. Compreender a natureza dos dados desde a perspectiva da Ciência de Dados
        4. Fazer análises exploratórias de dados com implementação em Python
        5. Realizar inferência estatística por meio de testes de hipóteses
        6. Aprender os erros e falácias mais comuns em estatística, e como evitá-los
        7. Entender como um estatístico ou cientista de decisão pensa sobre a solução de problemas com dados
        8. Entender o que é aprendizagem automática: métodos supervisionados e não supervisionados
        9. Compreender e implementar métodos de regressão e classificação
        10. Aprender os fundamentos das métricas de para avaliar o desempenho de um classificador
        11. Compreender e implementar vários métodos de redução de dimensionalidade com várias aplicações
    • Gestão e Softskills

    • Genérica

Detalhes

  • Objetivos do curso

    O objetivo essencial da Licenciatura em Engenharia Informática, Redes e Telecomunicações da Universidade Lusófona consiste em formar licenciados capazes de assumir posições de destaque em projetos de engenharia informática, redes e telecomunicações, assumindo pela sua formação e atitude papéis relevantes na geração de inovação e riqueza.
    Para atingir esses objetivos, os estudantes deverão adquirir os seguintes conhecimentos considerados como fundamentais neste domínio:
    – Ciências básicas da matemática e física.
    – Conceitos fundamentais de informática, incluindo hardware e organização de computadores, linguagens e paradigmas da programação, algoritmos e estruturas de dados, sistemas operativos e sistemas de informação, das telecomunicações e das redes de computadores.
    – Compreender e utilizar os modelos de programação na nuvem.

    Finalmente, deverão desenvolver atividades de iniciação à investigação na área das Ciências e Tecnologias de Informação, que lhes possibilitem o prosseguimento dos estudos e/ou de enveredar por percursos académicos.

  • Competências adquiridas

    O curso de Licenciatura em Engenharia Informática, Redes e Telecomunicações (LEIRT) é uma nova licenciatura da ULHT, motivada pelas necessidades crescentes de profissionais nas áreas de convergência entre a informática, as redes de computadores e as telecomunicações fixas e móveis.

    A LEIRT fornece conhecimentos e competências que permitirão o desenvolvimento de projetos nas áreas dos sistemas computacionais em nuvem, aplicações online, redes celulares, redes de dados, Internet das Coisas, entre outras.

    A convergência entre a informática, as redes de computadores e as telecomunicações fixas e móveis, traduzida, por exemplo, nas plataformas computacionais em nuvem, abriu novas necessidades do mercado, não satisfeitas por cursos clássicos de informática ou de telecomunicações.

    A LEIRT pretende formar profissionais de engenharia capazes de responder aos desafios colocados pelo mercado de trabalho nas áreas da informática aplicada às redes e telecomunicações, do desenvolvimento de aplicações ao projeto, instalação e gestão de infraestruturas e serviços.

    Licenciatura em Engenharia Informática, Redes e Telecomunicações da Universidade Lusófona está alinhado com os ciclos de estudo europeus análogos e estrutura-se da seguinte forma:
    Durante os quatro primeiros semestres do ciclo de estudo proposto são introduzidos os conceitos base das principais áreas (Matemática, Telecomunicações, Redes e Informática).
    Na área da Matemática desenvolvem-se as competências básicas em Análise, Álgebra Linear e Probabilidades e Estatística que permitirão, mais tarde, a compreensão de conceitos avançados de modelação de sistema, análise de dados e estatística.
    Na área das Telecomunicações os alunos adquirem os conhecimentos fundamentais de Propagação e Radiação, Comunicações Analógicas e Comunicações Digitais, base para o entendimento dos problemas em estudo nas Telecomunicações.
    Na área das Redes os alunos adquirem os conhecimentos fundamentais de Redes de Computadores, base para o entendimento dos problemas em estudo nas Redes.
    Na área da Informática os alunos adquirem autonomia na utilização dos conceitos de Programação, Sistemas Operativos, Bases de Dados e Computação Móvel que irá permitir uma aplicação prática do conhecimento a adquirir nas fases subsequentes do ciclo de estudos.
    Durante o quinto e o sexto semestre aprofundam-se os conhecimentos em Telecomunicações, Redes e Informática. Em paralelo com a exposição teórica de conhecimentos de cada unidade, é esperado que os alunos desenvolvam trabalhos práticos de aplicação dos conhecimentos adquiridos em unidades anteriores (e.g. redes, telecomunicações, programação,bases de dados, etc…).Deste modo os alunos consolidam os conhecimentos adquiridos,desenvolvem as capacidades de integração e aplicação prática de conhecimentos e os hábitos de trabalho.

  • Destinatários

  • Ligação com o meio empresarial

  • Oportunidades de carreira

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.