- Informação oficial sobre a unidade curricular
- Informações gerais para estudantes Erasmus+ (incoming)
Informações Gerais | |
---|---|
Área Científica | Informática e Computadores |
Créditos ECTS | 6 créditos |
Grau, Ano/Semestre | Licenciatura, 2º ano / 4º semestre |
Língua | Português ou Inglês |
Disponível em | Semestre Primavera/Verão (Fev. - Jul.) |
Horas de contacto em aula | 15 semanas x 4,5 horas/semana em aula |
Docente responsável | Miguel Gamboa |
Um volume considerável de software desenvolvido atualmente tem como alvo algum tipo de ambiente de execução mediado por software, usualmente designado como managed runtime environment ou ambiente virtual de execução. A Máquina Virtual Java - ou Java Virtual Machine (JVM), em inglês - originalmente desenhada para executar software escrito em Java, é um desses ambientes e serve atualmente de alvo para outras linguagens de programação relevantes, como Kotlin, Scala, Groovy ou Clojure. A Microsoft tem o seu próprio managed runtime, o .NET Runtime, que é a plataforma alvo natural para as linguagens .NET, apresentando várias características e funcionalidades semelhantes às da JVM.
Nesta unidade curricular, exploramos este tipo de ambientes de execução, as linguagens que os têm como alvo e técnicas de programação que tiram partido das capacidades que eles expõem. Ao longo do semestre, os alunos trabalham em grupos para resolver um conjunto de problemas práticos que permitem explorar estas capacidades e técnicas, tendo a JVM como ambiente de execução principal. Estes trabalhos dão a oportunidade de os alunos adquirirem experiência prática no desenvolvimento de frameworks semelhantes às usadas na indústria, tais como AutoRouter (inspirado pela Spring MVC), Jsonaif (inspirado pelo Jackson JSON), ou AutoMapper, entre outros.
São usadas as linguagens de programação Java e Kotlin, explorando também a sua interoperabilidade no âmbito do ecosistema da JVM. Durante este percurso, irão ainda familiarizar-se com ferramentas para avaliar e analisar o desempenho e o comportamento de software que se executa nestes ambientes.
- Conhecimento efetivo de Java ou Kotlin, com pelo menos dois semestres (mas idealmente três) de experiência prática de desenvolvimento de software com uma destas linguagens. Conhecimento sólido equivalente de Scala ou C# é também aceitável, mas pode exigir um esforço adicional de adaptação.
- Espera-se familiariedade com os elementos essenciais de arquitetura de computadores, redes IP e tecnologias web. Embora estes não sejam aspetos centrais desta unidade curricular, poderão aparecer em exemplos e a suportar a apresentação de outros tópicos, bem como fazer parte dos trabalhos práticos.
Aviso: as informações acima são fornecidas por conveniência e não substituem a informação institutional oficial.