Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Multimédia, Visão e Computação Gráfica
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Para frequentar esta unidade curricular, os estudantes precisam de ter competências básicas em: 1. Programação em C, C++, C#, Java ou Python; 2. Álgebra linear e geometria analítica; 3. Probabilidades e estatística.
Objetivos Gerais / Objectives
Com esta UC, pretende-se que os estudantes fiquem aptos a programar e gerar mundos virtuais interativos, com recurso a pacotes de software contemporâneos dedicados à geração de gráficos tridimensionais e à programação de jogos. Com estes conhecimentos, os estudantes ficam capazes de desenvolver os mundos virtuais subjacentes a jogos por computador, simuladores para treino e educação, visualização de dados, entre outros. A par destes objetivos práticos, pretende-se que os estudantes desenvolvam conhecimentos teórico-práticos nas técnicas subjacentes à operação dos referidos pacotes de software, incluindo fundamentos da geração de imagem sintética fotorealista e da interação com o utilizador. Finalmente, os estudantes também abordarão tópicos relacionados, tais como a realidade virtual (para aumentar a imersão do utilizador no mundo virtual), a realidade aumentada (para sobrepor conteúdo virtual ao mundo real) e a geração procedimental (automática) de conteúdo virtual.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
Nesta UC os estudantes aprendem a desenhar, programar e gerar mundos virtuais interativos. A UC parte do pressuposto que os estudantes já têm conhecimentos prévios de álgebra linear, geometria, probabilidades, estatística, desenho de algoritmos e programação em C, C++, C#, Java ou Python. Concretamente, no final da UC, cada estudante deverá ter adquirido as competências necessárias para: OA1 - Desenhar, programar e aplicar algoritmos de computação gráfica essenciais à geração de mundos virtuais interativos; OA2 - Desenhar, programar e aplicar algoritmos de interação humano-computador no contexto dos mundos virtuais; OA3 - Desenhar e programar mundos virtuais com base em pacotes de software contemporâneos para geração de gráficos e programação de jogos; OA4 - Desenhar, programar e aplicar algoritmos para geração procedimental de conteúdo e integrar soluções de realidade virtual e aumentada.
Conteúdos Programáticos / Syllabus
Os principais Conteúdos Programáticos (CP) a abordar nesta UC são: CP1 - Tópicos de álgebra linear e geometria analítica: estruturas de dados, transformações, polígonos, sistemas de coordenadas, raios e interseções; CP2 - Tópicos de síntese de imagem fotorealista: iluminação local, iluminação global, mapeamento de texturas, câmaras e projeções, rasterização, ray tracing; CP3 - Tópicos de programação de mundos virtuais: programação de shaders para GPU, programação de mundos virtuais com motores gráficos e de jogos (e.g., Unity3D); CP4 - Tópicos de interação com mundos virtuais: experiência de utilização em mundos virtuais, metáforas de visualização, manipulação de objetos virtuais e navegação em mundos virtuais (controlo direto e com base em IA); CP5 - Tópicos que visam expandir a abrangência dos mundos virtuais, tais como a realidade virtual, a realidade mista e a geração de mundos abertos de larga escala recorrendo à geração procedimental (automática) de conteúdo com base em IA.
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
Os conteúdos programáticos CP1 visam recordar conceitos essenciais de matemática para computação gráfica (OA1). Os conteúdos programáticos CP1 visam ensinar as bases dos algoritmos para computação gráfica essenciais aos mundos virtuais (OA1). Os conteúdos programáticos CP4 visam ensinar os fundamentos da interação entre humanos e mundos virtuais (OA2). Os conteúdos programáticos CP3 visam ensinar os fundamentos da programação dos algoritmos que permitem gerar mundos virtuais através de pacotes de software existentes (OA3). Os conteúdos programáticos CP5 visam ensinar os algoritmos que permitem a geração automática de conteúdo para mundos virtuais, assim como ensinar como integrar elementos de realidade virtual e aumentada nesses mundos (OA4).
Avaliação / Assessment
Avaliação ao longo do semestre: - Nota final: Projeto Prático em Grupo (PPG) (60% da nota final) + Avaliação Escrita Individual (AEI) (40% da nota final). - Projeto Prático em Grupo (PPG): desenvolvido em grupo ao longo do semestre, com demonstração de progresso semanal, entregas e discussões orais intermédias e finais; discussões orais poderão incluir uma componente de avaliação escrita individual relativa ao projeto caso o docente assim o determine; a entrega final do PPG terá de ser realizada até à data limite indicada no seu enunciado, data essa que ocorrerá exclusivamente durante a 1ª Época de Avaliação; o PPG não poderá ser entregue na 2ª Época de Avaliação; as discussões orais finais do PPG realizam-se em grupo após a entrega final, na(s) data(s) indicada(s) no seu enunciado; apesar do PPG ser desenvolvido em grupo, a nota a atribuir a cada estudante do grupo é individualizada em função da contribuição do estudante para o PPG e a prestação do estudante na discussão oral. - Avaliação Escrita Individual (AEI): 2 Mini-Testes escritos individuais realizados ao longo do semestre (50%+50% da AEI) ou 1 Teste escrito individual realizado na 2ª Época de Avaliação (100% da AEI); nota na AEI inferior a 7.5 valores (de um máximo de 20 valores) resulta em reprovação na UC. - Com excepção dos momentos de avaliação, que requerem presença obrigatória para a sua realização, não existem critérios mínimos de assiduidade. Avaliação por Exame: - Dado o caráter iminentemente prático desta UC, não existe a possibilidade de Avaliação por Exame (aprovado pela Comissão Pedagógica da ISTA a 01/03/2021, em conformidade com o Ponto 3 do Art. 7.º do RGACC). Melhoria de nota: - Dado o caráter iminentemente prático desta UC, não existe a possibilidade de melhoria de nota no Projeto Prático em Grupo (PPG), podendo apenas ser realizada melhoria de nota na Avaliação Escrita Individual (AEI), em conformidade com o Ponto 4 do Art. 18.º do RGACC. Época Especial: - Nota final: Projeto Prático Especial (PPE) (60% da nota final) + Teste Escrito Individual (TEI) (40% da nota final). - Projeto Prático Especial (PPE): projeto desenvolvido em grupo ou individualmente, de acordo com decisão do docente; características, entregáveis, critérios de avaliação e esforço de desenvolvimento do PPE equiparáveis ao PPG da 1ª Época de Avaliação; o enunciado do PPE poderá ser diferente do enunciado do PPG da 1ª Época de Avaliação; caso o estudante tenha obtido nota no PPG na 1ª Época de Avaliação, essa nota pode ser diretamente atribuída ao PPE; para poder realizar PPE e requerer o respetivo enunciado, o estudante terá de informar o docente dessa sua intenção, por e-mail, até 2 meses antes da data de início da Época Especial de Avaliação. - Teste Escrito Individual (TEI): teste realizado na Época Especial de Avaliação; nota no TEI inferior a 7.5 valores (de um máximo de 20 valores) resulta em reprovação na UC.
Metodologias de Ensino / Teaching methodologies
Os objetivos de aprendizagem cobrem aspetos de modelação e implementação, sendo, portanto, essencial a transferência de conhecimento teórico aliado ao desenvolvimento de competências de carácter prático. Por esta razão, as metodologias de aprendizagem precisam de incluir componentes expositivas, participativas e ativas. Sendo as matérias lecionadas objeto de frequente inovação, torna-se essencial dotar o estudante de competências de pesquisa e análise de literatura técnica e científica. Para se promover o desenvolvimento dessas competências nos estudantes, é necessário que a UC inclua uma forte componente de trabalho autónomo. A realização de um projeto prático em grupo promove esse trabalho autónomo e permite o desenvolvimento de capacidades de trabalho em equipa e de gestão de projeto. A UC está organizada em dois grandes módulos descritos de seguida: módulo 1 e módulo 2. Cada semana do primeiro módulo, que decorre na primeira metade do semestre, engloba uma aula teórica expositiva, com duração de 1:30 h, seguida de uma aula teórico-prática, com duração de 1:30 h. Nas aulas teórico-práticas, os estudantes colocam em prática os conceitos teóricos aprendidos na aula teórica anterior através da resolução de exercícios de programação em laboratório de informática. Esses exercícios são realizados sobre o pacote de software Unity3D, que é posteriormente utilizado pelos estudantes no desenvolvimento de um projeto prático em grupo, a realizar no segundo módulo. Estes exercícios procuram cobrir elementos com baixo nível de abstração (e.g., codificando diretamente as matrizes de transformação recorrendo à API do Unity3D), assim como elementos com alto nível de abstração facilmente acessíveis através da interface gráfica do Unity3D. Ao serem expostos aos vários níveis de abstração, os alunos reforçam os conhecimentos teóricos e preparam-se para o desenvolvimento do projeto prático. Cada semana do segundo módulo, que ocupa aproximadamente a segunda metade do semestre, também engloba uma aula teórica expositiva, com duração de 1:30 h, seguida de uma aula teórico-prática, com duração de 1:30 h. Contudo, nas aulas teórico-práticas do segundo módulo, os estudantes desenvolvem o seu projeto prático e analisar com o docente os desafios que têm encontrado. O projeto prático é realizado em grupo sob a forma de trabalho autónomo, maioritariamente fora das aulas, para o qual os estudantes terão de pesquisar e analisar documentação relevante para realizar a sua implementação. Sendo o projeto prático baseado no Unity3D, os estudantes podem usufruir da vasta comunidade de suporte existente. Dessa forma, aumenta-se a sua autonomia durante o desenvolvimento do projeto, assim como se facilita a transição para o mercado de trabalho e se aumenta a transferência de conhecimento para outras UC.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
Esta UC exige a aprendizagem de vários conceitos teóricos, que são de suma importância para a compreensão e compreensão da diversificada gama de conteúdos programáticos. Consequentemente, as aulas teóricas são meticulosamente concebidas de forma a abranger e cobrir integralmente todos os objetivos de aprendizagem especificados. As aulas teórico-práticas proporcionam aos alunos um espaço para a experimentação prática e a aplicação dos conhecimentos transmitidos durante as aulas teóricas. Por exemplo, nas aulas teóricas, os alunos são apresentados e ensinados detalhadamente sobre algoritmos para mundos virtuais. Posteriormente, nas aulas teórico-práticas, os alunos têm a oportunidade de implementar estes algoritmos através de exercícios práticos e projetos, reforçando e solidificando assim a sua experiência de aprendizagem. Estes conhecimentos adquiridos são avaliados diretamente através de dois testes que os alunos têm de realizar ao longo do semestre. Estas provas têm como objetivo avaliar com rigor a compreensão e o domínio dos alunos sobre os conceitos teóricos lecionados nas aulas. Adicionalmente, estes conhecimentos são avaliados indiretamente através do projeto prático de grupo, onde se espera que os alunos apliquem os conceitos teóricos aprendidos num ambiente colaborativo e prático. Esta abordagem dupla de avaliação garante uma avaliação abrangente das habilidades e compreensão dos alunos. Na segunda metade do semestre, as aulas teórico-práticas centram-se predominantemente no acompanhamento e apoio aos projetos práticos de grupo. Este período é crucial porque garante que estes projetos são desenvolvidos de acordo com as boas práticas estabelecidas no domínio científico. Dado que os temas abordados nesta UC são frequentemente alvo de atualizações e inovações frequentes, é fundamental dotar os alunos de competências de raciocínio crítico, bem como de capacidade de pesquisa e análise de literatura técnica e científica. Este processo de aquisição de conhecimento é facilitado pela experiência prática que os alunos adquirem ao trabalhar nos seus projetos práticos. Os projetos fornecem um contexto real para os alunos aplicarem o que aprenderam, incentivando uma compreensão mais profunda e a retenção do conhecimento. Além disso, o apoio e a orientação dos professores durante o desenvolvimento desses projetos desempenham um papel significativo na melhoria da experiência de aprendizagem dos alunos. Os professores não só ajudam a resolver quaisquer dificuldades que os alunos possam encontrar, mas também fornecem ideias e conselhos sobre como abordar problemas e desafios de forma eficaz.
Observações / Observations
Bibliografia Principal / Main Bibliography
[B1] P. Shirley et al., “Fundamentals of computer graphics”, 2005, from AK Peters Ltd, ISBN 1-56881-269-8. [B2] P. Santana, “Diapositivos de Programação e Geração de Mundos Virtuais”, disponibilizados na plataforma e-learning do ISCTE-IUL. [B3] P. Santana, “Vídeos tutoriais e de Programação e Geração de Mundos Virtuais”, disponibilizados através da plataforma e-learning do ISCTE-IUL. [B4] Unity3D, “Unity Learn”, URL: https://learn.unity.com/, Acedido: 23/04/2023.
Bibliografia Secundária / Secondary Bibliography
[B5] T. Akenine-Möller et al., “Real-Time Rendering”, 2008, A.K. Peters Ltd., 3rd edition, ISBN 987-1-56881-424-7. [B6] D. Bowman et al., “3D User Interfaces: Theory and Practice”, 2005, Addison-Wesley, ISBN 0-201-75867-9. [B7] D. Hearn et al., “Computer graphics with openGL”, 2011, Prentice Hall, ISBN 0132484579.
Data da última atualização / Last Update Date
2024-07-18