reestruturação do ensino da informática no ist v7...
Embed Size (px)
TRANSCRIPT

Reestruturação LEIC v5 Page 1
Proposta de Reestruturação da Licenciatura em Engenharia Informática e Computadores
1 Contexto A LEIC, como todas as grandes licenciaturas do IST, necessita de ser revista periodicamente para garantir que se mantêm os bons resultados que têm sido atingidos ao longo de 23 anos, quer em captação de alunos, quer nas saídas profissionais dos engenheiros e mestres. Este esforço de avaliação e melhoria são portanto habituais numa escola com a qualidade do IST e numa área lectiva que envolve cerca de 1250 alunos na Licenciatura e 560 alunos no Mestrado. Acresce que a LEIC é das poucas licenciaturas do IST a ter adoptado claramente o modelo organizativo predominante na Europa, sendo importante avaliar os resultados e eventualmente melhorar a estrutura proposta há 6 anos.
Apesar do elevado sucesso de empregabilidade, há dois indicadores que merecem particular atenção ao Departamento, a taxa de licenciados/ingressos e a duração média para conclusão da Licenciatura.
A taxa de licenciados/ingressos é baixa e, apesar de em muitos casos corresponder a alunos que começam a trabalhar nos últimos anos da Licenciatura, é necessário procurar reunir condições para que os alunos realizem a Licenciatura e não a abandonem prematuramente, mesmo que tal se deva a encetarem uma atividade profissional na Informática, sem deterem um grau académico.
A duração para concluir a Licenciatura, próxima de 5 anos, é muito elevada. Apesar de a duração dever ser considerada em conjunto com o Mestrado, dado que no 2º ciclo a duração é estritamente de 2 anos ou inferior, uma vez que os alunos só transitam oficialmente para o Mestrado quando concluem todas as UC da Licenciatura, o valor agregado de cerca de 7 anos para a conclusão do 1º e 2º ciclos não é satisfatório.
1.1 Objectivo Repensar o ensino da Engenharia Informática no IST, com particular foco na melhoraria da produtividade letiva nos primeiros anos do curso, considerada abaixo das expectativas do Departamento e abaixo dos padrões das licenciaturas comparáveis do IST.
Numa segunda fase (2012/2013) definir as linhas de evolução do 2º ciclo, avaliando os mestrados em execução em ambos os campos na sua relação com o 1º ciclo, orientação ao mercado de trabalho e relação com as orientações internacionais que definem especializações da Informática e Engenharia Informática.

Reestruturação LEIC v5 Page 2
2 Metodologia Manter o espírito da anterior reestruturação em que se considerou como documento de referência os curricula propostos pela ACM, em particular o de Computer Science de 2008 [ACM08] (em seguida designado CS/ACM). Está em preparação uma revisão cuja versão inicial está disponível [ACM12] mas, devido ao estado ainda inicial da mesma, apenas se tomaram em consideração algumas tendências e efectuou-‐se no final uma verificação da evolução proposta da LEIC em relação às recomendações CS/ACM 12.
As razões pelas quais adotámos as recomendações apresentadas pela ACM prendem-‐se com o facto de a ACM ser uma instituição de qualidade científica inquestionável, tendo publicado recomendações semelhantes ao longo de vários anos, e de as respectivas recomendações terem uma abrangência que considera todas as áreas da informática, ao contrário de outras recomendações que se focam em subáreas da informática.
Dada a vastidão da informática em termos de aplicação, existem numerosas especializações e saídas profissionais na Engenharia Informática que poderão ir desde o suporte à infraestrutura e redes, até à relação com a gestão e os processos de negócio. Para as principais vertentes a ACM desenvolveu perfis que essencialmente correspondem a:
• Computer Science – formação de espectro abrangente em todas as áreas da Informática com uma enfâse particular na teoria, tecnologias e metodologias e menor nos aspectos aplicacionais
• Software Engineering – formação que dá particular enfâse ao processo produtivo de sistemas, aplicações e produtos de software.
• Information Technology Engineering – vocacionado para a concepção, gestão e administração de infraestruturas de IT, nomeadamente redes, servidores, software, funcionamento na nuvem.
• Information System Engineering – vocacionado para a adaptação da informática às necessidades empresariais em termos de processos de negócio, informação, aplicações e arquitetura.
• Computer Engineering – vocacionado para a concepção e desenvolvimento de sistemas de hardware e software para sistemas computacionais e sistemas embebidos.
A cobertura deste vasto espectro de conhecimento não pode obviamente ser efetuada totalmente na licenciatura de 3 anos, pelo que o Departamento optou, já na formulação em 2005 da atual LEIC, por centrar a licenciatura nos aspetos nucleares de Computer Science, procurando cobrir no Mestrado todas as outras vertentes a partir deste corpo coerente e básico de conhecimento que possibilita adquirir posteriormente as outras especializações.
Metodologia seguida:
1. Efetuar uma análise exaustiva do currículo da LEIC atual com o CS/ACM. Esta análise tem como objetivo mapear os tópicos do CS/ACM de todas as UC da LEIC de responsabilidade do DEI ou as leccionadas por outros Departamentos mas pertencentes ao núcleo do currículo (ex.: Sistemas Digitais, Redes de Computadores,

Reestruturação LEIC v5 Page 3
Matemática Discreta) e, em seguida, efetuar um cálculo do alinhamento das UC com as recomendações em termos de esforço letivo..
2. Em paralelo analisar os curricula de diversas Universidades de referência na Europa e nos EUA, procurando verificar a duração dos cursos, alinhamento com o CS/ACM, e estrutura de UC fixas e opcionais.
3. Partindo da auscultação dos alunos e da discussão já havida com os docentes sobre a evolução da LEIC estabelecer um conjunto de pontos prioritários que deveriam orientar a análise das alternativas.
3 Análise do alinhamento da LEIC com o CS/ACM
3.1 Análise da LEIC As recomendações da ACM apresentam uma definição do corpo de conhecimento associado à informática e o número mínimo de horas letivas que deve ser dedicado a cada um dos seus tópicos e subtópicos (Tabela 1). Estes tópicos são classificados como essenciais (“core”) ou como facultativos (“elective”).
Segundo o ACM, “uma hora” corresponde a uma hora letiva necessária para expor a matéria correspondente. Adotámos este conceito, estabelecendo que “uma hora” corresponde a uma hora de aula teórica.
Para avaliar os tópicos lecionados na LEIC e o seu período de lecionação, foi feita uma análise dos sumários lançados no sistema Fénix para as várias UC da LEIC. Foi considerado o ano civil de 2011 e os sumários lançados nas unidades curriculares em funcionamento na Alameda. Consequentemente foram utilizados os sumários das aulas teóricas das UC do 1º semestre do ano letivo 2011/2012 e os sumários das UC do 2º semestre do ano letivo de 2010/2011.

Reestruturação LEIC v5 Page 4
Tabela 1 – Body of Knowledge
Foi feito o cruzamento com a matéria lecionada em cada aula teórica com os tópicos do corpo do conhecimento do CS/ACM, seguindo-‐se os princípios de cada aula teórica ser associada no máximo com um tópico e cada aula teórica corresponder a 1,5 horas de ensino.

Reestruturação LEIC v5 Page 5
Tópico Horas mínimas
(ACM)
Horas lectivas (core) cobertas pela LEIC
Horas lectivas (elective) cobertas pela LEIC
Variação (core)
DS-‐Discrete Structures 43 46.5 0 +8%
PF-‐Programming Fundamentals
47 36 0 -‐23%
AL-‐Algorithms and Complexity 31 48 30 +55%
AR-‐Architecture and Organization
36 36 1.5 0%
OS-‐Operating Systems 18 33 9 +83%
NC-‐Net-‐Centric Computing 15 51 15 +240%
PL-‐Programming Languages 21 33 28.5 +57%
HC-‐Human-‐Computer Interaction
8 16.5 12 +106%
GV-‐Graphics and Visual Computing
3 18 12 +500%
IS-‐Intelligent Systems 10 18 15 +80%
IM-‐Information Management 11 6 25.5 -‐45%
SP-‐Social and Professional Issues
16 0 0 -‐100%
SE-‐Software Engineering 31 66.5 3 +115%
CN-‐Computational Science 0 0 3
Total 290 383.5 150
Error! Reference source not found. apresenta o resultado da análise realizada em relação às unidades curriculares da LEIC.
Como se pode verificar pela Error! Reference source not found. a LEIC cobre em 3 anos uma grande percentagem dos tópicos do CS/ACM. Na Tabela 2 apresentam-‐se os tópicos do CS/ACM e respectivas horas lectivas que não são cobertos na estrutura atual da LEIC.
Tópico Horas mínimas

Reestruturação LEIC v5 Page 6
AL / Distributed Algorithms 3
OS / Security And Protection 2
PF / Event Driven Programming 4
PF / Foundations Information Security 4
PF / Secure Programming 2
PL / Virtual Machines 1
SE / Software Evolution 3
SP / Analytical Tools 2
SP / History Of Computing 1
SP / Intellectual Property 3
SP / Privacy And Civil Liberties 2
SP / Professional Ethics 3
SP / Risks 2
SP / Social Context 3 Tabela 2 Áreas do CS/ACM não cobertas na LEIC
Destaca-‐se a fraca cobertura atual da LEIC em relação tópicos enquadrados em Social and Professional Issues.
3.2 Rentabilidade das Unidades curriculares Considerando que um semestre tem 14 semanas letivas e que cada unidade curricular leciona 3 horas de aulas teóricas por semana, conclui-‐se que cada unidade curricular oferece 42 horas por semestre. Considerando as horas do curriculum CS/ACM que são cobertas pela unidade curricular e dividindo-‐as por 42, pode-‐se chegar a uma medida da rentabilidade da UC, ou seja, qual a percentagem da unidade curricular que contribui para as áreas nucleares do CS/ACM.
Na
Unidade Curricular Horas lectivas (core)
Horas lectivas (elective)
Rentabilidade (core)
Rentabilidade (elective)
Arquitectura de Computadores (AC) 31.5 75%
ACED 0% 0%
AL 0% 0%
Análise e Síntese de Algoritmos (ASA) 27 7.5 64% 18%
Bases de Dados (BD) 7.5 24 18% 57%
CDI 1 7.5 18% 0%
CDI 2 0% 0%
Computação Gráfica (CG) 18 12 43% 29%
Compiladores (CO) 12 25.5 29% 61%

Reestruturação LEIC v5 Page 7
Electromagnetismo e Óptica (EO) 0% 0%
Engenharia de Software (ES) 31.5 3 75% 7%
Fundamentos da Programação (FP) 19.5 0 46% 7%
Gestão (G) 0 0%
Inteligência Artificial (IA) 18 15 43% 36%
Introdução aos Algoritmos e Estruturas de Dados (IAED) 28.5 0 68% 0%
Interfaces Pessoa Máquina (IPM) 16.5 13.5 39% 32%
Lógica para Programação (LP) 22.5 3 54% 7%
Mecânica e Ondas (MO) 0% 0%
Modelação (MOD) 18.5 0 44% 0%
Matemática Discreta (MD) 3 32% 27%
Probabilidades e Estatística (PE) 9 0 21% 0%
Programação com Objectos (PO) 33 0 79% 0%
PPI 0% 0%
PPII 0% 0%
Redes de Computadores (RC) 37.5 0 89% 0%
Sistemas Digitais (SD) 7.5 0 18% 0%
Sistemas Distribuídos (SDI) 13.5 21 32% 50%
Sistemas Operativos (SO) 28.5 7.5 68% 18%
Sistemas e Sinais (SS) 0% 0%
Teoria da Computação (TC) 12 18 29% 43%
Tabela 3 é mostrado o resumo do estudo detalhado apresentado no anexo Avaliação da LEIC [JPMartins12], mostrando a rentabilidade de cada unidade curricular da LEIC em relação às recomendações do CS/ACM.
• A azul indicam-se as UC básicas de engenharia, as quais pouco contribuem para as
áreas científicas da ACM, mas contribuem para a formação em engenharia da LEIC.
• A verde as UC com uma rentabilidade superior ou igual a 50%.
• A amarelo as UC com rentabilidade entre 20 e 49%.
• A vermelho as UC com rentabilidade inferior a 20%.
Unidade Curricular Horas lectivas (core)
Horas lectivas (elective)
Rentabilidade (core)
Rentabilidade (elective)

Reestruturação LEIC v5 Page 8
Arquitectura de Computadores (AC) 31.5 75%
ACED 0% 0%
AL 0% 0%
Análise e Síntese de Algoritmos (ASA) 27 7.5 64% 18%
Bases de Dados (BD) 7.5 24 18% 57%
CDI 1 7.5 18% 0%
CDI 2 0% 0%
Computação Gráfica (CG) 18 12 43% 29%
Compiladores (CO) 12 25.5 29% 61%
Electromagnetismo e Óptica (EO) 0% 0%
Engenharia de Software (ES) 31.5 3 75% 7%
Fundamentos da Programação (FP) 19.5 0 46% 7%
Gestão (G) 0 0%
Inteligência Artificial (IA) 18 15 43% 36%
Introdução aos Algoritmos e Estruturas de Dados (IAED) 28.5 0 68% 0%
Interfaces Pessoa Máquina (IPM) 16.5 13.5 39% 32%
Lógica para Programação (LP) 22.5 3 54% 7%
Mecânica e Ondas (MO) 0% 0%
Modelação (MOD) 18.5 0 44% 0%
Matemática Discreta (MD) 3 32% 27%
Probabilidades e Estatística (PE) 9 0 21% 0%
Programação com Objectos (PO) 33 0 79% 0%
PPI 0% 0%
PPII 0% 0%
Redes de Computadores (RC) 37.5 0 89% 0%
Sistemas Digitais (SD) 7.5 0 18% 0%
Sistemas Distribuídos (SDI) 13.5 21 32% 50%
Sistemas Operativos (SO) 28.5 7.5 68% 18%
Sistemas e Sinais (SS) 0% 0%
Teoria da Computação (TC) 12 18 29% 43%
Tabela 3 -‐ Rentabilidade das UC de LEIC versus CS/ACM

Reestruturação LEIC v5 Page 9
As UC de Bases de Dados, Computação Gráfica, Compiladores, Inteligência Artificial, Interfaces Pessoa Máquina, Sistemas Distribuídos e Teoria da Computação embora tenham uma contribuição baixa quando consideradas apenas as áreas nucleares na maioria dos casos pelo valor de horas proposto para o tema, apresentam uma contribuição considerável nas áreas optativas. A UC de Modelação, da área científica de Sistemas de Informação, apenas contribui para o tópico Software Engineering e não para Information Management, um tópico que está subrepresentado no curriculum da ACM.
4 Análise de outras Universidades Com o intuito de enquadrar a reestruturação da LEIC, o grupo de trabalho decidiu analisar programas de Licenciatura em Eng. Informática (Computer Science) em universidades europeias e americanas.
Assim, o grupo de universidades selecionadas foi o seguinte: Carnegie-‐Mellon University (CMU, PA, EUA), University of California Berkeley (UCB, CA, EUA), University of Michigan (UofM, MI, EUA), Imperial College London (IC, UK, UE), University of Southampton (UofS , UK, UE), University of Edinburgh (UofE, UK, UE), Universitat Politècnica de Catalunya (UPC, Espanha, UE), Università degli Studi di Roma "La Sapienza" (Roma, Itália, UE), Université d'Artois (Artois, França, UE), University of Helsinki (UH, Finlândia, UE), Technische Universität Wien (TU Wien, Austria, UE), e University College Dublin (UCD, Irlanda, UE).
A razão para a escolha destas universidades tem a justificação seguinte:
• Renome internacional (e.g. CMU, UCB, UofM, IC, UofE); ou • Distribuição geográfica (e.g. TU Wien, UCD) ; ou • Existência de contactos informais (as restantes).
A informação disponível para cada universidade apresenta diferenças significativas. Em alguns casos a informação obtida é a que consta das páginas institucionais das universidades, e noutros casos a informação resultou de contato direto com elementos do corpo docente. Assim, revelou-‐se necessário selecionar um conjunto de indicadores relevantes para a análise a realizar.
Face à informação a que o grupo de trabalho teve acesso, a análise realizada focou os indicadores seguintes:
• Número de anos para a obtenção da licenciatura. • Estrutura do curso em termos de percentagem de unidades curriculares (UC)
obrigatórias. • Cobertura das recomendações ACM para Computer Science. • Inclui-‐se também uma coluna com informação adicional. Por exemplo, nas
universidades americanas a acreditação ABET (Accreditation Board for Engineering and Technology, http://www.abet.org/) é normalmente procurada e publicitada. O CSAB (http://www.csab.org/) e o IEEE (http://www.ieee.org) incluem a lista das associações membros da ABET. O CSAB é a associação dentro da ABET responsável pela

Reestruturação LEIC v5 Page 10
acreditação de cursos em Computer Science, Information Systems, Software Engineering, e Information Technology. Os membros do CSAB são a ACM e o IEEE.
Os dados obtidos são resumidos na tabela seguinte:
Universidade # Anos Estrutura Curso (%
UCs Obrigatórias) Cobertura ACM (% vs UCs Obrigatórias)
Cobertura ACM (% vs UCs Típicas)
Dados Adicionais
CMU 4 <40% ~25% >90% Univ. Michigan 4 ~50% ~25% >90% ABET UCB 4 <40% ~25% >90% ABET Imperial College 3+2 ~60% < 50% >80% Univ. Edinburgh 3+2 ~60% < 50% >80% Univ. Southampton 3+2 ~70% < 50% >80% Univ. Polit. Catalunya 4 ~75% < 50% >80% Univ. Roma La Sapienza 3+2 ~75% < 50% >80% Univ. Artois 3+2 100% < 75% <75% Univ. Helsinki 3+2 ~88% ~90% >90% Wien Univ. of Tech. 3+2 ~88% > 75% >80% Univ. College Dublin 4 <50% < 75% >90%
Tabela 4 – Análise Universidades Internacionais
Os dados numéricos devem ser considerados uma estimativa, resultando em alguns casos da consulta das páginas institucionais das universidades em causa.
Outro indicador considerado relevante é o número médio de horas de contacto com alunos nas diferentes universidades. Esta informação é resumida na tabela seguinte:
Universidade Anos Horas Contacto /
Semana CMU 4 ~12+4 Univ. Michigan 4 ~12+4 UCB 4 ~12+4 Imperial College 3+2 ~10+5 Univ. Edinburgh 3+2 ~10+5 Univ. Southampton 3+2 ~10+5 Univ. Polit. Catalunya 4 N/A Univ. Roma La Sapienza 3+2 N/A Univ. Artois 3+2 N/A Univ. Helsinki 3+2 N/A Wien Univ. of Tech. 3+2 N/A Univ. College Dublin 4 ~12+4
Tabela 5 – Horas de Contactos com os alunos
Face aos dados obtidos, é possível estabelecer as conclusões seguintes:

Reestruturação LEIC v5 Page 11
• Nos EUA a duração do curso é 4 anos. Na Europa, encontram-‐se exemplos com 4 anos, mas a maior parte dos casos estudados tem uma licenciatura com 3 anos, seguidos por mais 2 anos para o mestrado.
• Nos EUA existe grande flexibilidade na escolha de UC que os alunos podem escolher. Nos casos estudados, o número de UC optativas é sempre não inferior a 50%. Relativamente à Europa registam-‐se grandes diferenças. Por exemplo, nas universidades do Reino Unido analisadas o número de UC optativas é não inferior a 30%. Nos restantes casos analisados, o número de UC optativas varia entre 25% e 0%.
• A coluna relativa à cobertura das recomendações da ACM considera apenas as UC obrigatórias. As universidades americanas, tendo em consideração a baixa percentagem de UC obrigatórias, asseguram percentagens reduzidas de cobertura. Por outro lado, vários exemplos europeus conseguem assegurar com estruturas curriculares mais rígidas taxas de cobertura superiores.
• Tendo em consideração exemplos de programas tipo, i.e. fixando as UC opcionais, a cobertura face às recomendações da ACM afigura-‐se mais significativa. No entanto, esta análise apresenta menos rigor do que a análise baseada em UC obrigatórias.
Face à análise realizada, importa incluir alguns comentários adicionais.
1. As universidades com maior nível de financiamento, tanto de investigação como de propinas, apresentam maior flexibilidade curricular. Não é claro como reproduzir esta flexibilidade no contexto nacional.
2. Existem várias universidades que direta (via ACM) ou indiretamente (via ABET) referem explicitamente as recomendações da ACM.
5 Linhas fundamentais da reestruturação Da auscultação dos alunos apresentada e discutida em Conselho do Departamento e da discussão inicial da Comissão, considerou-‐se que as áreas a melhorar e onde as propostas deveriam incidir são:
• Motivação e eficiência do 1º ciclo • Funcionamento do 1º ano • Cargas de trabalho • Ambientes de desenvolvimento para as componentes práticas de desenvolvimento de
código
5.1 Motivação e eficiência do 1º ciclo A produtividade da licenciatura é baixa. No último relatório de autoavaliação do IST relativo à licenciatura verifica-‐se que o tempo médio para terminar a licenciatura é de 5 anos [R3A11] . Este valor tem oscilado mas não diminui (este resultado poderá ser menos dramático porque pode dever-‐se à possibilidade dos alunos transitarem de ciclo com disciplinas da Licenciatura em atraso, que só concluem durante a frequência do mestrado, que apresenta tempos de duração mínimos).

Reestruturação LEIC v5 Page 12
A produção, medida em termos de saídas do 1º ciclo versus entradas, é relativamente baixa. Na LEIC/AL é de 107/180 = 59%, como se pode calcular dividindo as saídas indicadas na Figura 1 pelos 180 alunos na entrada.
LEIC -‐ ALAMEDA
Figura 1 LEIC AL no relatório de autoavaliação do IST [R3A12]
Tabela 6 -‐ Análise Global LEIC – AL [R3A11]
Tabela 7 Análise global LEIC -‐ AL [R3A12]

Reestruturação LEIC v5 Page 13
LEIC -‐ TAGUS
Figura 2 -‐ LEIC TP no relatório de autoavaliação do IST [R3A12]
Tabela 8 -‐ Análise Global LEIC-‐TP [R3A11]
Tabela 9-‐ Análise Global LEIC-‐TP [R3A12]

Reestruturação LEIC v5 Page 14
Um dos principais motivos apresentados para a baixa produtividade é a desmotivação dos alunos nos primeiros anos da Licenciatura. Alguns dos fatores apontados prendem-‐se com:
• Falta de percepção da atividade real do engenheiro informático por parte dos alunos, em particular do 1º ano
• Dificuldade em compreender os desafios técnicos, organizacionais e sociais da engenharia informática e a sua relação com a estrutura curricular
• Excessiva carga nos primeiros anos, conduzindo à criação de uma cultura de insucesso tida como normal.
Iniciativas • Criar uma UC introdutória, fundamentalmente de motivação, respondendo às
principais questões colocadas acima. Colocar esta UC no 1º ano • Reformular as UC do 1º e 2º ano para diminuir a carga letiva procurando criar
condições para maior sucesso escolar • Redução das cargas horárias norteada pela avaliação do CS/ACM
5.2 Funcionamento do 1º ano O primeiro ano é aquele onde os problemas anteriormente referidos mais incidência têm, na opinião de delegados de curso e alunos ouvidos no final de 2011. Aos aspetos motivacionais juntam-‐se os seguintes aspetos curriculares:
• Primeiro ano com muita matéria de formação básica “com reduzido interesse profissional” na percepção dos alunos.
• 1º Semestre do 1º ano, em que todas as UC têm caráter abstrato (TC, FP, CDI1, AL), ou de tecnologia não diretamente perceptível como de aplicação futura (SDigitais).
• Sequência do ensino da programação no 1º ano. FP é importante para a compreensão de conceitos fundamentais de programação em particular não imperativa, mas ortogonal às necessidades de criar conhecimento em programação imperativa que suportem IAED, SO, PO.
• AC é percepcionada como uma cadeira da sequência de programação que ensina assembly depois de FP e em paralelo com o ensino da linguagem C em IAED.
• IAED, considerada fundamental, só aparece no 2º semestre. Os alunos esperavam que fosse a cadeira do 1º semestre e consideram que para conseguir fazer os trabalhos em SO e PO esta cadeira deverá ser efetuada com um bom aproveitamento.
Iniciativas • Melhora a sequência de ensino da programação, alterando o conteúdo da cadeira de
FP para programação imperativa em estrita articulação com IAED • Redução da carga horária no 1º ano • Reformulação da UC de Arquitetura de Computadores • Redução no número de UC por semestre para 4 em vez das atuais 5.

Reestruturação LEIC v5 Page 15
5.3 Ambientes de Desenvolvimento implícitos nas componentes práticas
Um aspeto aparentemente secundário, mas que os alunos apontam como indutor de perdas de eficácia, é a não-‐existência de um ambiente de desenvolvimento padronizado que permita evitar tempos de aprendizagem de ferramentas em sucessivas UC, aumentando o tempo de ambientação e reduzindo a eficiência dos alunos no início das aulas práticas das UC.
Iniciativas • Escolher para a Licenciatura um ambiente de desenvolvimento base para todas as UC
com importante trabalho prático e de desenvolvimento de código que deveria ser suportado pelo Departamento.
6 Propostas
6.1 Redução da Carga Horária Reduzir a carga horária do 1º ano e da Licenciatura em geral, identificando UC que podem transitar para o Mestrado ou ser alvo de uma compactação das matérias ao nível do 1º ciclo.
É evidente, no estudo apresentado acima, que a LEIC quase ministra em 3 anos o currículo recomendado no ACM/CS, para além do significativo conjunto de UC de base de engenharia (Matemática e Física) que no IST são mais inflexíveis que nos cursos de Computer Science internacionais. A título de exemplo, o peso das UC de Matemática e Física é bastante menor em cursos nas universidades do Reino Unido. Relativamente aos EUA, o peso das UC de Matemática e Física é menor do que em Portugal, existindo também exigência de que os alunos frequentem UC doutras áreas, e.g. Ciências Sociais e Humanas.
Dos resultados da análise do CS/ACM podemos identificar as UC que deveriam poder contribuir para a redução das cargas horárias.
6.1.1 UCs não enquadradas em CS
Unidade Curricular Horas lectivas (core)
Horas lectivas (elective)
Rentabilidade (core)
Rentabilidade (elective)
Gestão (G) 0 0%
PPI 0% 0%
PPII 0% 0%
Sistemas e Sinais (SS) 0% 0%
Tabela 10 UCs cujos temas não são relevantes no CS/ACM
6.1.1.1 Gestão Gestão não faz parte do currículo de CS, com exceção de temas de âmbito reduzido, enquadrados dentro de Social and Professional issues, como Economics of Computing.

Reestruturação LEIC v5 Page 16
A cadeira de Gestão é um curso geral de gestão, de que existem queixas de docentes e discentes sobre a sua razoabilidade no 2º ano de um curso de Engenharia, onde, nesta fase, os alunos raramente se defrontaram com problemas de modelo de negócio ou de avaliação de projetos.
Esta formação teria mais sentido no Mestrado, onde existem mais UC de gestão relacionadas com empreendedorismo, avaliação de planos de negócio e análise de investimento de projetos, que poderiam despretar mais interesse nos alunos alunos. Contudo, o IST tem considerado que a matéria de Gestão faz parte do tronco comum das Licenciaturas, pelo que a solução proposta é deslocar a cadeira para o final da licenciatura. Será pedido ao DEG que adeqúe os conteúdos de modo a que pelo menos os temas do CS/ACM sejam cobertos.
6.1.1.2 Sistemas e Sinais A UC não tem enquadramento no tronco comum de CS, apesar de poder ter interesse em áreas adjacentes como Sistemas Embebidos ou Desenvolvimento de Interfaces. A recomendação é passar a fazer parte do 2º ciclo. Alguma da matéria básica já é ensinada em Matemática Discreta, que tem no seu programa "Transformada de Fourier Discreta e Aplicações", este tema poderia ser aqui um pouco mais aprofundado e relacionado com o Processamento de Sinais Discretos.
A interface do mundo analógico para o mundo digital, a segunda componente interessante de Sistemas e Sinais para a Engenharia Informática, poderia passar a ser coberta pela UC no Mestrado.
6.1.1.3 Portfolio Os portfolios tiveram o objetivo de criar um espaço para soft skills inexistente na LEIC. Cumpriram parcialmente a sua função, mas o modelo, depois destes anos, necessita de uma profunda revisão.
A proposta é eliminar os portfolios na Licenciatura, os portfolios do Mestrado serão em princípio mantidos depois de convenientemente ajustados. As UC de Introdução à Engenharia Informática e de Aspetos Sociais e Profissionais de Engenharia Informática poderão também contribuir, para além dos seus objetivos específicos, em alguns aspetos de soft skills, nas suas componentes de avaliação.
6.1.2 UCs sobre representadas no CS/ACM
Unidade Curricular Horas lectivas (core)
Horas lectivas (elective)
Rentabilidade (core)
Rentabilidade (elective)
Sistemas Digitais (SD) 7.5 0 18% 0%
Tabela 11 -‐ UCs sobre representadas na LEIC em relação ao CS/ACM
6.1.2.1 Sistemas Digitais Esta UC tem razões históricas na sua colocação no currículo atual. A cobertura dos temas de CS/ACM é muito baixa uma vez que o ACM só considera 7,5 core hours. A cadeira tem tido taxas de aprovação baixas e não cumpre uma função motivadora no atual currículo, sendo

Reestruturação LEIC v5 Page 17
considerada pelos alunos como uma cadeira de formação teórica geral, com relativamente pouco interesse para as UC subsequentes.
A solução mais interessante em termos curriculares e pedagógicos é fundir a matéria de Sistemas Digitais com Arquitetura, permitindo criar uma cadeira homogénea, que se poderia designar por Organização dos Computadores. Esta cadeira no 1º ano deveria ser motivadora da compreensão global da organização dos computadores
Os tópicos mais avançados de Arquitetura de Computadores deveriam fazer parte de uma cadeira, a colocar necessariamente depois de Sistemas Operativos, cobrindo todos os aspetos mais avançados que na atual configuração não teriam sentido no 2º semestre do 1º ano.
6.1.2.2 Computação Gráfica e Interfaces Pessoa Máquina
Tópico Horas mínimas
Horas letivas (core)
Horas letivas (elective)
Variação (core)
HC. Human-‐Computer Interaction 8 16.5 12 +106%
GV. Graphics and Visual Computing 3 12 16.5 +300%
Tabela 12 -‐ UCs cujo conjunto esta sobre representado na LEIC em relaçãoao CS/ACM
Os tópicos cobertos nestas duas áreas têm um número de horas reduzido no core de CS/ACM (11h) pelo que a sua cobertura no conjunto das duas UC é muito superior ao previsto no CS/ACM.
A oportunidade poderia ser o compactar das duas UC de CG e IPM para fazer uma UC de 1º ciclo e criar uma UC de Mestrado ou manter as duas UC, mas com carga letiva mais reduzida. Depois de várias discussões e de a área científica e pedagógica considerar que a junção dos dois temas seria contraproducente foi adotada a redução da carga horária de Computação Gráfica para 4,5 ECTS.
Ambas as UC devem procurar adaptar o seu currículo de forma a garantirem maior aderência e eficiência ao currículo CS/ACM.
Unidade Curricular Horas lectivas (core)
Horas lectivas (elective)
Rentabilidade (core)
Rentabilidade (elective)
Modelação (MOD) 18.5 0 44% 0%
Compiladores (CO) 12 25.5 29% 61%
Tabela 13-‐ UCs do Departamento com baixa rentabilidade
6.1.2.3 Compiladores Esta UC que tem um número de horas letivas elevado quando comparado com as preconizadas nas core hours das recomendações CS/ACM, apesar de ser reconhecido o seu interesse no âmbito da Licenciatura. Foi encarada a hipótese de a tornar optativa, juntamente com Modelação, ou a sua deslocação para o Mestrado. A proposta que pareceu mais equilibrada é reduzir a sua carga letiva para um padrão semelhante ao proposto para a UC de Computação Gráfica, 2h teóricas e 1,5 aulas práticas correspondente a 4,5 ECTS.

Reestruturação LEIC v5 Page 18
6.1.2.4 Modelação A cadeira tem sido alvo de várias evoluções ao longo do tempo e a sua formulação ainda levanta problemas junto dos alunos. O conteúdo continua a ser pouco representativo do núcleo de CS, em particular em Information Management, situando-‐se em Software Engineering e existe a preocupação de sobreposição com Engenharia de Software. Esta preocupação foi reforçada pelos sumários que serviram de base à avaliação.
A temática da análise e concepção de sistemas de informação é relevante para o curso e para os perfis de saída da LEIC. A UC tem de ser alvo de uma profunda revisão que elimine as preocupações anteriores e contribua fortemente para a formação associada ao CS/ACM.
6.2 Criação de uma UC que permita motivar os alunos para os desafios da Engenharia Informática (Engenharia Informática)
Para procurar dar resposta ao problema da motivação e percepção dos objetivos do curso sentido pelos alunos, propõe-‐se criar uma UC (Engenharia Informática) de carga horária limitada, por exemplo 1,5 horas teóricas semanais (3 ECTS), para procurar criar uma visão da atividade do engenheiro informático, dos desafios da Engenharia Informática e simultaneamente cobrir tópicos considerados como “core” pelo CS/ACM e que não são abordados no currículo atual da LEIC (Tabela 2).
A cadeira poderia funcionar com um regime de seminários, obrigando os alunos a, semanalmente, entregarem um relatório/trabalho sobre o tema, e recorrer a diversos convidados: ex-‐alunos com atividade profissional relevante, especialistas e professores de outros departamentos ou universidades.
A análise de uma cadeira desta índole precisa, obviamente, de uma cuidada preparação; apenas como exemplo apresentam-‐se alguns dos tópicos que poderia abordar dando contribuições para os temas de Social and Professional issues abordados no CS/ACM:
• A função informática • Gestão informática em grandes Empresas • O projeto de informática • Desenvolvimento de um produto informático • Qualidade de Software • Software open source e software aberto
6.3 Criação de uma UC que cubra os tópicos de Social and Professional Issues do CS/ACM (Aspectos Profissionais e Sociais da Engenharia Informática)
Propõe-‐se a criação de uma UC com uma estrutura semelhante à UC anterior, mas que cubra aspeto relevantes da atividade profissional e dos impactos sociais da Engenharia Informática. A UC teria de ser pensada para o enquadramento nacional em termos de legislação e regulamento da profissão apesar de muitos dos tópicos do CS/ACM serem universais.
A título de exemplo alguns dos temas poderiam ser:
• As redes sociais

Reestruturação LEIC v5 Page 19
• Segurança e crime informático • Propriedade intelectual de software • Normas e certificações • Ética profissional
A cadeira poderia recorrer a diversos convidados: ex-‐alunos com atividade profissional relevante, especialistas e professores de outros departamentos ou universidades.
No currículo deveria situar-‐se no final do curso, mas tal é difícil pelo equilíbrio de ECTS nas UC do 1º ano. Não sendo curricularmente a melhor solução decidiu-‐se colocar no 2º ano como cadeira também motivadora e que contribua para a redução do esforço dos alunos nesse ano. A UC deverá também reforçar a capacidade expositiva e de apresentação dos alunos.
6.4 Proposta de Currículo Para equilibrar os ECTS aumentou-‐se as UC com projeto para 7,5 ECTS, reconhecendo o esforço real dos alunos mas ressalvando que tal não pode corresponder a nenhum incremento das atuais cargas de trabalho em termos de trabalhos ou avaliações.
1º ano
Introdução à Arquitectura de computadores
Álgebra Linear Cálculo Diferencial Integral I
Fundamentos de Programação
Engenharia Informática
Totais
7,5 6 6 7,5 3 30
Lógica para Programação
Teoria da Computação
Cálculo Diferencial Integral II
Int Algoritmos e Estruturas de Dados
7,5 7,5 7,5 7,5
30
2ºano
Sistemas Operativos
Análise Complexa e Equações Diferenciais
Programação com Objectos
Mecânica e Ondas
Aspectos Profissionais e Sociais da Engenharia Informática
7,5 7,5 6 6 3 30 Análise e Síntese de Algoritmos
Probabilidades e Estatística
Interface Pessoa Máquina
Eletromagnetismo e Ótica
Matemática Discreta
6 6 7,5 6 4,5 30
3º Ano
Redes de Computadores
Organização de Computadores
Base de Dados
Inteligência Artificial
Computação gráfica
6 6 6 7,5 4,5
Sistemas Distribuídos
Engenharia de Software
Análise e Modelação de Sistemas
Compiladores Gestão
7,5 7,5 6 4,5 4,5 30

Reestruturação LEIC v5 Page 20
Nova Altera a localização Altera carga horária Altera conteúdo
1º Ano
• 4 UC nucleares por semestre
• 1 UC de motivação e soft skills com 3 ECTS
• Alteração de Fundamentos de Programação para Programação Imperativa, de acordo com o programa em anexo
• Incorporação da matéria relevante de Sistemas Digitais e de Arquitetura de Computadores numa única UC
• Passagem das Físicas para 2º ano depois de CDI I e II
• Antecipação de Lógica para Programação que não apresenta restrições fortes de sequência
2º Ano
• 4 UC nucleares no 1º semestre
• 1 UC de professional and social issues e soft skills com 3 ECTS
• Matemática Discreta passa para 2º ano 2º semestre, colocando-‐a mais próxima das UC com temas que se relacionam com esta disciplina
• Antecipação de Análise e Síntese de Algoritmos e Interfaces Pessoa Máquina
3º Ano
• 5 UC por semestre mas 3 com 4,5 ECTS
• Mantêm-‐se a cobertura de todos os tópicos relevantes do CS/ACM em particular Compiladores, Análise e Modelação e Computação Gráfica
• Projeto de Sistemas Distribuídos e Engenharia de Software no final da Licenciatura
• Gestão passa para o 3º ano 2º semestre
Distribuição dos Créditos ECTS Anterior Proposta Ciências da Engenharia 55.5 57 Ciências da Engenharia Informática 117.0 112,5 Competências Transversais 7.5 10,5
180 180

Reestruturação LEIC v5 Page 21
CIÊNCIAS DA ENGENHARIA Área Científica Unidades Curriculares Nº de créditos Matemática ÁLGEBRA LINEAR 6
CÁLCULO DIFERENCIAL E INTEGRAL I 6 CÁLCULO DIFERENCIAL E INTEGRAL II 7,5 ANÁLISE COMPLEXA E EQUAÇÕES DIFERENCIAIS 7,5 MATEMÁTICA DISCRETA 4,5 TEORIA DA COMPUTAÇÃO 7,5 PROBABILIDADES E ESTATÍSTICA 6 45
Física MECÂNICA E ONDAS 6 ELECTROMAGNETISMO E ÓPTICA 6 12
CIÊNCIAS DA ENGENHARIA INFORMÁTICA Área Científica Unidades Curriculares Nº de créditos ARQUITECTURA E SISTEMAS OPERATIVOS
INTRODUÇÃO Á ARQUITECTURA DE COMPUTADORES
7,5
ORGANIZAÇÃO DE COMPUTADORES 6 SISTEMAS OPERATIVOS 7,5 SISTEMAS DISTRIBUÍDOS 7,5 28,5
Computação Gráfica e Multimédia
COMPUTAÇÃO GRÁFICA 4,5 INTERFACES PESSOA-‐MÁQUINA 7,5 12
Inteligência Artificial
LÓGICA PARA PROGRAMAÇÃO 7,5 INTELIGÊNCIA ARTIFICIAL 7,5 15
Metodologia e Tecnologia da Programação
FUNDAMENTOS DE PROGRAMAÇÃO 7,5 ALGORITMOS E ESTRUTURAS DE DADOS 7,5 PROGRAMAÇÃO COM OBJECTOS 6 ANÁLISE E SÍNTESE DE ALGORITMOS 6 COMPILADORES 4,5 ENGENHARIA DE SOFTWARE 31,5
Redes REDES DE COMPUTADORES 6 6.0
Sistemas de Informação
BASES DE DADOS 6 MODELAÇÃO 6 12
COMPETÊNCIAS TRANSVERSAIS Área Científica Unidades Curriculares Nº de créditos

Reestruturação LEIC v5 Page 22
Gestão e Economia
GESTÃO 4.5
Outras competências: sociais e profissionais
ENGENHARIA INFORMÁTICA 3 ASPECTOS PROFISSIONAIS E SOCIAIS DA ENGENHARIA INFORMÁTICA
3
10,5
6.5 Avaliação
6.5.1 UC com 3 ECTS Para garantir a redução efetiva da carga letiva e das épocas de avaliação as UC com 3 ECTS devem ser avaliadas por trabalhos a realizar nas oito primeiras semanas do semestre e não ter avaliação por exame.
6.5.2 UC com 4,5 ECTS As UC com 4,5 ECTS deverão ter a avaliação por testes e projeto durante o semestre até à 12ª semana e apenas exame para os casos de exceção.
6.6 Reformulação de UC Em anexo apresentam-‐se as reformulações de UC que foram alvo de mudanças mais significativas. Outras UC vão ser adaptadas ou já o foram em 2011/12 de modo a melhorem a sua cobertura e eficiência em termos do CS/ACM.
7 As recomendações da ACM para 2013 Depois de este trabalho ter sido iniciado, surgiu uma primeira versão das novas recomendações da ACM a publicar em 2013 [ACM12]. Foi decidido não adaptar o trabalho já desenvolvido às novas recomendações, dado que estas ainda se encontram numa fase de estudo, mas analisá-‐las para potenciar a evolução do currículo da LEIC. Esta secção apresenta uma análise destas recomendações com um carácter não exaustivo. No final de 2013, após a publicação final das novas recomendações, deveria ser criado um grupo de trabalho que analisasse de forma exaustiva o novo currículo da LEIC face às novas recomendações.
O relatório preliminar sobre o currículo da ACM 2013 [ACM12] apresenta as seguintes alterações em relação às recomendações anteriores:
• São individualizadas três novas áreas no corpo de conhecimento, “arrumando” tópicos que anteriormente estavam classificados noutras áreas:
• IAS — Security and Information Assurance. Esta área reconhece a dependência
mundial das tecnologias de informação e o seu papel no ensino da informática.
Aborda o conjunto de tecnologias e processos que protegem e defendem a
informação e os sistemas de informação);
• PBD — Platform-based Development. Esta área reconhece o aumento
significativo na utilização de ambientes de programação para plataformas

Reestruturação LEIC v5 Page 23
específicas. Aborda o estudo de ambientes associados a plataformas específicas
(como a web ou plataformas móveis), APIs e serviços;
• PD — Parallel and Distributed Computing. Esta área reconhece a importância da
computação paralela e distribuída. Aborda o estudo de modelos de programação,
algoritmos, desempenho, arquitecturas computacionais e sistemas distribuídos.
• Com a evolução da informática e o aparecimento de novos tópicos dentro das diversas
áreas de conhecimento, a ACM reconhece que existe o risco de aumentar os números
de horas necessárias num currículo. O número de horas nucleares tinha aumentado de
280 para 290 na última revisão (Tabela 14), aumentando para 305 na versão de 2013.
Assim, no currículo de 2013 surge a noção de “fileira” (tier) que divide os tópicos
nucleares em dois níveis. Os tópicos da fileira 1 (tier 1) são obrigatórios em qualquer
currículo de informática; tópicos da fileira 2 (tier 2) não são obrigatórios individualmente
mas é obrigatório que pelo menos 80% destes sejam cobertos num currículo de
informática. Introduz-se assim uma certa flexibilidade no curriculum, permitindo uma
variação entre 277 e 305 horas nucleares. Para além dos tópicos nucleares, a ACM
recomenda que um currículo de informática não se limite às horas nucleares e que cubra
um número significativo de tópicos optativos.
• A ACM desencoraja que áreas de conhecimento sejam diretamente associadas a
unidades curriculares, preferindo que unidades curriculares cubram várias áreas de
conhecimento, fornecendo aos alunos uma visão mais geral da informática que se vai
progressivamente aprofundando.
• É recomendado que exista num curriculum de informática um projeto substancial de
desenvolvimento de software que transcenda aquilo que se espera que um aluno realize
numa única unidade curricular.
• As recomendações do futuro currículo de 2013 continuam a dar ênfase a aspectos não cobertos pela LEIC, nomeadamente, “soft skills” (trabalho em equipa e comunicação), identificação de oportunidades e riscos, empreendedorismo, aspectos sociais e profissionais.
Na Tabela 14 apresentam-‐se as horas lectivas associadas a cada uma das áreas de conhecimento no currículo de 2013, bem como a evolução das horas nucleares entre os currículos de 2001, 2008 e 2013. A verde indica-‐se aumentos de horas nucleares e a amarelo diminuições de horas nucleares em cada uma das áreas.
Knowledge Area Tier1 Tier2 CS2013 (Tier1+Tier2)
CS2008 (core)
CC2001 (core)
AL-‐Algorithms and Complexity 19 9 28 31 31
AR-‐Architecture and Organization 0 16 16 36 36
CN-‐Computational Science 1 0 1 0 0
DS-‐Discrete Structures 37 4 41 43 43
GV-‐Graphics and Visual Computing 2 1 3 3 3

Reestruturação LEIC v5 Page 24
Knowledge Area Tier1 Tier2 CS2013 (Tier1+Tier2)
CS2008 (core)
CC2001 (core)
HC-‐Human-‐Computer Interaction 4 4 8 8 8
IAS-‐Security and Information Assurance 2 6 8
IM-‐Information Management 1 9 10 11 10
IS-‐Intelligent Systems 0 10 10 10 10
NC-‐Networking and Communication (no ACM 2008 conhecida por Net-‐Centric Computing)
3 7 10 15 15
OS-‐Operating Systems 4 11 15 18 18
PBD-‐Platform-‐based Development 0 0 0
PD-‐Parallel and Distributed Computing 5 10 15
PL-‐Programming Languages 8 20 28 21 21
SDF-‐Software Development Fundamentals 42 0 42 47 38
SE-‐Software Engineering 6 21 27 31 31
SF-‐Systems Fundamentals 18 9 27
SP-‐Social and Professional Issues 11 5 16 16 16
Total 163 142 305 290 280 Tabela 14: Comparação das recomendações da ACM 2001-‐2013.
7.1 Nova estrutura curricular Uma primeira análise do currículo da ACM 2013 face ao novo currículo da LEIC é apresentada na tabela Tabela 15. Esta análise preliminar deve ser atualizada com a nova versão do documento do currículo da ACM 2013.
Horas (Tier-‐1)
Horas (Tier-‐2)
Disciplinas associadas e horas letivas (Tier-‐1)
Disciplinas associadas e horas letivas
(Tier-‐2)
Horas letivas (Tier-‐1)
Horas letivas (Tier-‐2)
AL/Basic Analysis 2 2 ASA(1.5) + IAED(1.5) ASA(1.5) 3 1.5
AL/Algoritmic Strategies 5 1 IAED(3) + ASA (3) + LP(1.5) ASA (3) 10.5 3
AL/Fundamentals of Data Structures and Algorithms
9 3 FP(3) + ASA(4.5) + IAED(7.5) ASA(12) 15 12
AL/Basic Automata, Computability and Complexity
3 3 TC(6) TC (3) + ASA(4.5) 6 7.5
AR/Digital logic and digital systems 3 OC(3) 3
AR/Machine level representation of data 3 OC(3) 3
AR/Assembly level machine organization 6 AC (7.5) +
OC(22.5) 30

Reestruturação LEIC v5 Page 25
Horas (Tier-‐1)
Horas (Tier-‐2)
Disciplinas associadas e horas letivas (Tier-‐1)
Disciplinas associadas e horas letivas
(Tier-‐2)
Horas letivas (Tier-‐1)
Horas letivas (Tier-‐2)
AR/Memory system organization and architecture
3 OC (6) 6
AR/Interfacing and communication 1 OC(4.5) 4.5
CN/Fundamentals 1 Modelos, simulação, validação 1
DS/Sets, Relations, and Functions 4 CDI1(6) 6
DS/Basic Logic 9 LP(12) 12
DS/Proof Techniques 10 1 CDI1(1.5) + LP(7.5) LP(3) 9 3
DS/Basics of Counting 5 MD(12) 12
DS/Graphs and Trees 3 1 IAED(3) 3
DS/Discrete Probability 6 2 PE(6) + MD(1.5) PE(6) + MD(1.5) 7.5 7.5
GV/Fundamental Concepts 2 1 CG(3) CG(1.5) 3 1.5
HC/Foundations 4 IMP(10.5) 10.5
HC/Designing Interaction 4 IPM(7.5) 7.7
IAS/Fundamental Concepts 1 2
IAS/Network Security 1 4 SD(1.5) SD(4.5) 1.5 4.5
OS/ Overview of Operating Systems 1 SO(1.5) + SD(4.5) 6
OS/Operating System Principles 1 SO(3) 3
OS/Concurrency 3 SO(10.5) 10.5
OS/Scheduling and Dispatch 3 SO (3) 3
OS/Memory Management 1 SO(3) 3
OS/Security and Protection 2 SD(9) + BD(1.5) 10.5
NC/Introduction 1.5 RC(1.5) 1.5
NC/Networked Applications 1.5 RC(7.5) + BD(1.5) 9

Reestruturação LEIC v5 Page 26
Horas (Tier-‐1)
Horas (Tier-‐2)
Disciplinas associadas e horas letivas (Tier-‐1)
Disciplinas associadas e horas letivas
(Tier-‐2)
Horas letivas (Tier-‐1)
Horas letivas (Tier-‐2)
NC/Reliable Data Delivery 2 RC(7.5) 7.5
NC/Routing and Forwarding 1.5 RC(6) 6
NC/Local Area Networks 1.5 RC(3) 3
NC/Resource Allocation 1 RC(1.5) 1.5
NC/Mobility 1 RC(1.5) 1.5
IM/Information Management Concepts 1 2 BD(1.5) AMS (1.5) 1.5 1.5
IM/Database Systems 3 BD(1.5) 1.5
IM/Data Modeling 4 BD(3) 3
IS/Fundamental Issues 1 IA(1.5) 1.5
IS/Basic Search Strategies 4 IA(10.5) 10.5
IS/Basic Knowledge Representation and Reasoning
3 IA(6) 6
IS/Basic Machine Learning 2
Tópico a introduzir
em Inteligênc
ia Artificial
PD/Parallelism Fundamentals 2 SD(3) 3
PD/Parallel Decomposition 1 3
PD/Communication and Coordination 1 3 AV(1.5) AC(4.5) 1.5 4.5
PD/Parallel Algorithms, Analysis, and Programming
3
PD/Parallel Architecture 1 1
PL/Object-‐Oriented Programming 4 6 FP (3) + PO(10.5) PO(7.5) + CO(3) 13.5 10.7
PL/Functional Programming 3 4 FP(3) FP(3) 3 3
PL/Event-‐Driven and Reactive Programming 2 PO(3) 3

Reestruturação LEIC v5 Page 27
Horas (Tier-‐1)
Horas (Tier-‐2)
Disciplinas associadas e horas letivas (Tier-‐1)
Disciplinas associadas e horas letivas
(Tier-‐2)
Horas letivas (Tier-‐1)
Horas letivas (Tier-‐2)
PL/Basic Type Systems 1 4 FP(1.5) 1.5
PL/Program Representation 1 CO(várias aulas)
PL/Language Translation and Execution 3 CO(1.5) 1.5
SDF/Algorithms and Design 11 FP + IAED + ASA
(várias aulas) 11
SDF/Fundamental Programming Concepts 10 FP(9) + IAED(6) 15
SDF/Fundamental Data Structures 12 FP(9) + IAED(13.5) 22.5
SDF/Development Methods 9 FP + ES + AMS (várias
aulas) 9
SE/Software Processes 1 2 FP(1.5) + ES(1.5) ES(3) 3 3
SE/Software Project Management 3 ES(3) 3
SE/Tools and Environments 2 ES(1.5) 1,5
SE/Requirements Engineering 1 3 ES(1.5) + AMS(1.5) AMS(3) 3 3
SE/Software Design 4 4 ES(1.5) PO (10.5) + ES(9) 1.5 19.5
SE/Software Construction 3 ES(várias aulas) 3
SE/Software Verification Validation 3 SE(9) 9
SE/Software Evolution 1
SE/Software Reliability 1
SF/Computational Paradigms 3 SO + SD (várias aulas) 3
SF/Cross-‐Layer Communications 3 SD (várias aulas) 3
SF/State-‐State Transition-‐State Machines
6 AC + OC (várias aulas) 6
SF/System Support for Parallelism 3
SF/Performance 3 AC (7.5) 7.5

Reestruturação LEIC v5 Page 28
Horas (Tier-‐1)
Horas (Tier-‐2)
Disciplinas associadas e horas letivas (Tier-‐1)
Disciplinas associadas e horas letivas
(Tier-‐2)
Horas letivas (Tier-‐1)
Horas letivas (Tier-‐2)
SF/Resource Allocation and Scheduling 2 SO (várias aulas) 2
SF/Proximity 3 AV (várias aulas) 2
SF/Virtualization and Isolation 2 SO (várias aulas) 2
SF/Reliability through Redundancy 2 SD (várias aulas) 2
SP/Social Context 1 2
SP/Analytical Tools 2 A ser coberto em APSEI 2
SP/Professional Ethics 2 2 A ser coberto em APSEI
A ser coberto em APSEI 2 2
SP/Intellectual Property 2 A ser coberto em APSEI 2
SP/Privacy and Civil Liberties 2 A ser coberto em
APSEI 2
SP/Professional Communication 1 A ser coberto em
APSEI 1
SP/Sustainability 1 1 A ser coberto em APSEI
A ser coberto em APSEI 1 1
Tabela 15 -‐ LEIC 2013 comparação com CS/ACM 12
8 Referências [ACM08] ACM, “Computer Science Curriculum 2008: An Interim Revision of CS 2001
(Report from the Interim Review Task Force)”, Association for Computing Machinery and IEEE Computer Society, 2008 (www.acm.org/ education/ curricula/ ComputerScience2008.pdf).
[ACM12] ACM, “Computer Science Curricula 2013 (Strawman Draft)”, Association for Computing Machinery and IEEE Computer Society, 2012 (http://ai.stanford.edu/ users/sahami/CS2013/).
[R3A11] Relatório Anual de Auto-‐Avaliação, Licenciatura Bolonha em Engenharia, Informática e de Computadores – Alameda e TagusPark (http://nep.ist.utl.pt/files/RAAA_LEIC-‐A_08-‐09.pdf)
[R3A12] Relatório Anual de Auto-‐Avaliação, Licenciatura Bolonha em Engenharia, Informática e de Computadores – Alameda e TagusPark
[JPMartins12] Avaliação da LEIC versão 7.0, DEI 2012

Reestruturação LEIC v5 Page 29

Reestruturação LEIC v5 Page 30
UC do 1º Ano
Proposta para Fundamentos da Programação FUNDAMENTOS DA PROGRAMAÇÃO Área Científica: Metodologia e Tecnologia da Programação – Linguagens de Programação Créditos ECTS: 7.5 ECTS Objectivos Fornecer conhecimentos sobre conceitos fundamentais relativos à actividade de programação, nomeadamente, algoritmo, abstracção procedimental e abstracção de dados, a programação como construção de abstracções, paradigmas de programação. Após a frequência da cadeira, os alunos deverão dominar os conceitos apresentados e serem capazes de desenvolver programas numa linguagem de programação de alto nível, o Python. Programa Computadores, algoritmos e programas Características de um computador
Algoritmos Programas e algoritmos Linguagens de programação Sintaxe e semântica
Elementos básicos de programação Expressões
Tipos elementares de informação Nomes e atribuição Comunicação com o exterior Programas, instruções e sequenciação Selecção Repetição Funções Definição de funções em Python Aplicação de funções em Python Abstracção procedimental Estruturação de funções Módulos Tuplos e ciclos contados Tuplos Ciclos contados Cadeias de caracteres revisitadas Listas
Listas em Python Métodos de passagem de parâmetros Algoritmos de procura Algoritmos de ordenação Considerações sobre eficiência
Funções revisitadas Funções recursivas Funções de ordem superior Programação funcional Recursão e iteração Recursão linear Iteração linear Recursão em processos e em função Recursão em árvore Ficheiros O tipo ficheiro Leitura de ficheiros Escrita em ficheiros Dicionários O tipo dicionário

Reestruturação LEIC v5 Page 31
Dicionários de dicionários Caminhos mais curtos em grafos Abstracção de dados Abstracção em programação Tipos abstractos de informação Barreiras de abstracção Objectos Programação com objectos Classes subclasses e herança Objectos em Python Polimorfismo O desenvolvimento de programas Análise do problema Desenvolvimento da solução Programação da solução A fase de testes A manutenção Estruturas lineares Pilhas Aplicações de pilhas Filas Simulação de um supermercado Árvores O tipo árvore Ordenação por árvore Bibliografia
João P. Martins, Introdução à programação com múltiplos paradigmas, a submeter à IST Press, 2012 (400 páginas) Downey A.B., Python for Software Design, Cambridge University Press, 2009. Zelle J.M., Python Programming: An Introduction to Computer Science, Franklin, Beedle & Associates, Inc., 2010.
Método de Avaliação A avaliação de conhecimentos da cadeira não tem exame final, sendo apenas realizada avaliação do tipo contínuo com os seguintes componentes:
• Avaliação dos alunos durante as aulas práticas recorrendo à resolução de exercícios no quadro (estas avaliações são classificadas com uma das notas 0; 5; 10; 15; 20). Cada aluno das aulas práticas terá no mínimo duas avaliações em aulas diferentes. Os trabalhadores estudantes devem comparecer pelo menos a duas aulas práticas.
• Dois testes realizados em comum por todos os alunos. Durante época de exames, existirá uma data para a repescagem de um dos testes. No entanto, se um aluno se apresentar à repescagem, a nota obtida no respectivo teste será a nota da repescagem, independentemente de esta ser superior ou inferior à do teste.
• Projecto de programação em grupos de dois ou três alunos, com duas entregas. Para obter aprovação na cadeira, as seguintes condições têm que ser cumulativamente verificadas: 1. A média aritmética dos dois testes realizados em comum é superior ou igual a 9.5 valores; 2. A nota do projecto é superior ou igual a 9.5 valores. Nestas condições, a nota da cadeira é calculada por uma média ponderada da classificação obtida nas provas realizadas, com os seguintes pesos: 1. Projecto 35 % 2. Média aritmética dos exercícios das aulas prática 20 % 3. Média aritmética dos dois testes 45% Todas as componentes da avaliação têm que ser realizadas no mesmo semestre lectivo. Todas as notas serão colocadas na página da cadeira, podendo ser contestadas nas duas semanas seguintes à sua colocação. Após esse período de duas semanas as notas são consideradas definitivas e não se aceitam reclamações seja qual for o pretexto. Todo o aluno que for apanhado a copiar ou a deixar copiar numa dada prova será imediatamente reprovado na disciplina, podendo, para além da reprovação, ser levantado um

Reestruturação LEIC v5 Page 32
processo disciplinar. O corpo docente da cadeira será o único juiz do que se considera ou não copiar numa dada prova. A inscrição para a realização dos testes é obrigatória e deverá ser efectuada através da página da cadeira, com uma antecedência mínima de dois dias úteis. Não se garante aos alunos não inscritos a possibilidade de realizarem a sua avaliação, ficando isso dependente da disponibilidade de recursos na altura da prova. A avaliação nos testes incide sobre toda a matéria leccionada nas aulas teóricas até ao final da semana anterior à realização do teste e sobre toda a matéria leccionada nas aulas práticas até à semana da realização do teste (inclusivé). Durante época de exames, existirá uma data para a repescagem de um dos testes. No entanto, se um aluno se apresentar à repescagem, a nota obtida no respectivo teste será a nota da repescagem, independentemente de esta ser superior ou inferior à do teste.
FOUNDATIONS OF PROGRAMMING Scientific Area: Metodologia e Tecnologia da Programação – Programming Languages ECTS: 7,5 ECTS Goals To provide understanding of fundamental concepts related to programming, namely, algorithm, procedural abstraction and data abstraction, programming and construction of abstractions, programming paradigms. After completing this course, students should master the concepts presented and be able to develop programs in a high-level programming language, Python. Syllabus Computer programs and algorithms Characteristics of a computer Algorithms Programs and algorithms Programming Languages Syntax and Semantics Basic elements of programming Expressions Basic data types Names and assignment Communication with outside environment Programs, instructions and sequencing Selection Repetition Functions Defining functions in Python Using functions in Python Procedural Abstraction Structuring functions Modules Tuples and counted looks Tuples Counted loops Strings revisited Lists Lists in Python Parameter-passing methods Search algorithms Sorting algorithms Considerations efficiency Functions revisited Recursive functions Higher-order functions Functional Programming Recursion and iteration Linear recursion Linear iteration Recursion in functions and in processes

Reestruturação LEIC v5 Page 33
Tree Recursion Files The file type Reading from Files Writing into files Dictionaries The type dictionary Dictionaries of dictionaries Shortest paths in graphs Data Abstraction Abstraction in programming Abstract data types of Abstraction barriers Objects Programming with Objects Classes and inheritance subclasses Objects in Python Polymorphism The development of programs Analysis of the problem Development of the Solution Programming the Solution The test phase Maintenance Linear structures Stacks Stack Applications Queues Simulation of a supermarket Trees The type tree Tree sorting Bibliography
João P. Martins, Introdução à programação com múltiplos paradigmas, a submeter à IST Press, 2012 (400 páginas) Downey A.B., Python for Software Design, Cambridge University Press, 2009. Zelle J.M., Python Programming: An Introduction to Computer Science, Franklin, Beedle & Associates, Inc., 2010.
Assessment The assessment of the course has no final examination, being composed of evaluation with the following components:
• Assessment of students during recitations by solving problems. Each student in a recitation will have at least two evaluations in a semester. • Two common tests for all students. During exam season, there is a date for a recap one of the tests. However, if a student is present to recap, the grade obtained in the test is the note from the recap, whether it be higher or lower than the test. • Programming project in groups of two or three students, with two deliveries.
To pass the course, the following conditions must be cumulatively met: The arithmetic average of the two tests in common is greater than or equal to 9.5; The note of the project is greater than or equal to 9.5. The final grade is calculated by a weighted average of the grades obtained with the following weights: Project 35% Arithmetic average of the grades of recitations 20% Arithmetic average of the two tests 45% All components of the evaluation must be performed in the same semester.

Reestruturação LEIC v5 Page 34
All grades will be publicly available though Fenix system and may be challenged in the two weeks following its placement. After this two-week period the grades are considered final.. Any student who is caught copying or let another student to copy will immediately fail in course.

Reestruturação LEIC v5 Page 35
Proposta para Introdução à Arquitectura de Computadores INTRODUÇÃO À ARQUITETURA DE COMPUTADORES Área Científica: Arquitectura e Sistemas Operativos - Arquitectura de Computadores e Sistemas Embebidos
Créditos ECTS: 7,5 ECTS
Objectivos
Os alunos deverão dominar os conceitos básicos e o funcionamento geral de um computador, a estrutura material que permite a execução de programas. Deverão conseguir descrever o funcionamento dos elementos básicos, processador, sistema de memória e sistema de entradas e saídas, e sua interação. Em particular, devem ser capazes de compreender a estrutura interna de um processador e o processo de execução das instruções.
Programa
Introdução e visão global • Organização interna de um computador: processador, memória, periféricos, barramentos; ciclo
básico das instruções; noção de contador de programa e de endereço • Interação com o exterior; componentes de um computador • Estrutura interna de um processador • Perspetiva histórica
Representação digital da informação • Bases de numeração • Operações aritméticas em bases 2, 8 e 16 • Códigos numéricos e alfanuméricos
Funções lógicas • Álgebra de Boole • Manipulação de expressões lógicas • Portas lógicas básicas e sua realização física • Codificadores e descodificadores; multiplexadores
Circuitos aritméticos • Somadores e Subtratores • Multiplicadores e divisores • Unidade lógica e aritmética
Circuitos sequenciais • Registos e bancos de registos • Memórias • Separação entre circuito de dados e circuito de control
Conjunto de Instruções (ISA) • Instruções típicas; Modos de endereçamento • Pilha e rotinas • Interrupções
Arquitetura de um processador • Estrutura interna de um processador: codificação de instruções, bits de estado, registos especiais • Unidade de processamento: banco de registos e ULA • Unidade de controlo: micro-‐programação • Análise da execução de instruções
• Sistema de memória • Endereçamento da memória: protocolo e descodificação de endereços • Caches: princípios de funcionamento e racional de desempenho • Memória virtual: princípios de funcionamento, tradução de endereços

Reestruturação LEIC v5 Page 36
Sistema de entradas e saídas • Periféricos e barramentos • Comunicação com o exterior (paralela e série, protocolos) • Temporizadores e interrupções
Bibliografia Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores G. Arroz, J. Monteiro, A. Oliveira IST Press, ISBN 978-‐972-‐8469-‐54-‐2 Arquitectura de Computadores J. Delgado, C. Ribeiro FCA, ISBN 972-‐722-‐245-‐5 Secundária: Logic and Computer Design Fundamentals Mano & Kime Prentice-‐Hall International,ISBN 013140539X
Método de Avaliação
• Teórica (70%). Nota mínima: 8 (2 testes). • Projecto (30%). Nota mínima: 8
INTRODUCTION TO COMPUTER ARCHITECTURE Scientific Area: Architecture and Operating Systems – Computer Architecture and Operating Systems
ECTS: 7,5 ECTS
Objectives
Students should master the basic concepts and general operation of a computer, the hardware structure supporting the execution of programs. They should be able to describe the operation of the basic elements of a computer, the processor, the memory system and the input/output system, and their interaction. In particular, they should be able to understand the internal structure of a processor and the process of instruction execution.
Program
Introduction and overview • Internal organization of a computer: CPU, memory, peripherals, buses, basic cycle of instructions;
notion of program counter and address • Interaction with the real world; components of a computer • Internal structure of a processor • Historical perspective
Representation of digital information • Number representation • Arithmetic in radices 2, 8 and 16 • Numeric and alphanumeric codes
Logical functions • Boolean algebra • Manipulation of logical expressions • Logic gates and their basic physical realization • Encoders and decoders, multiplexers

Reestruturação LEIC v5 Page 37
Arithmetic circuits • Adders and subtractors • Multipliers and dividers • Arithmetic Logic Unit
Sequential circuits • Registers and register-‐files • Memories • Datapaths and controllers
Instruction Set Architecture (ISA) • Typical instructions; Addressing modes • Stack and routines • Interruptions
Architecture of a processor • Internal structure of a processor: instruction encoding, flags, special registers • Datapath: register-‐file and ALU • Control unit: micro-‐programming • Analysis of instruction execution
Memory system • Memory addressing: protocols and address decoding • Caches: operation and performance analysis • Virtual memory: basic operation and address translation
Input/Output system • Peripherals and buses • Communication (parallel and serial protocols) • Timers and interrupts
Bibliography Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores G. Arroz, J. Monteiro, A. Oliveira IST Press, ISBN 978-‐972-‐8469-‐54-‐2 Arquitectura de Computadores J. Delgado, C. Ribeiro FCA, ISBN 972-‐722-‐245-‐5 Secondary: Logic and Computer Design Fundamentals Mano & Kime Prentice-‐Hall International,ISBN 013140539X
Assessment
• Written Tests (70%). Minimum grade: 8 (2 tests). • Project (30%). Minimum grade: 8

Reestruturação LEIC v5 Page 38
Proposta para Teoria da Computação TEORIA DA COMPUTAÇÃO (LEIC) Área Científica: Matemática – Lógica e Computação
Créditos ECTS: 7,5 ECTS
Objectivos
Aprender a trabalhar com modelos computacionais comuns: autómatos finitos, autómatos de pilha e máquinas de Turing. Entender e saber utilizar os conceitos de maquinismo, linguagem formal, gramática, recursos computacionais. Compreender e aprofundar os conceitos de ''tarefa'' algorítmica e de ''tarefa'' não algorítmica. Conhecer os limites para ''tarefas'' algorítmicas. Entender a computação como conceito físico-matemático e não como conceito puramente matemático. Experimentar conceitos e técnicas em ambientes computacionais interativos.
Programa
Autómatos: Autómatos finitos determinísticos e não determinísticos. Autómatos de pilha. Linguagens regulares e linguagens livres de contexto. Gramáticas regulares e gramáticas livres de contexto. Forma normal de Chomsky. Expressões regulares. Teoremas de bombagem.
Computabilidade: Máquinas de Turing determinísticas, não determinísticas e enumeradoras. Funções computáveis. Conjuntos recursivamente enumeráveis. Oráculos. Reduções. O problema da terminação (introdução à técnica da diagonalização). Teorema de Kleene. Vírus. O teorema de Rice e suas aplicações. Postulado de Church-‐Turing.
Complexidade: Recursos computacionais. Funções construtíveis. Teoremas de hierarquia (emprego da diagonalização). Teorema de Savitch.
Classes computacionais: P, PSPACE, NP, EXPTIME, PP, BPP. Relações estruturais.
Conjuntos completos. Bibliografia
Michael Sipser. Introduction to the Theory of Computation, Thomson, Course Technology, Second Edition, International Edition, 2006. Third edition in print.
Método de Avaliação
Avaliação contínua: Média dos três melhores testes entre quatro. Cotação de cada teste: 0-20.

Reestruturação LEIC v5 Page 39
THEORY OF COMPUTATION (LEIC) Scientific Area: Mathematics – Logic and Computation
ECTS: 7,5 ECTS
Goals
To learn how to work with common computational paradigms: finite automata, pushdown automata and Turing machines. To understand the concepts of machine, formal language, grammar, computational resources. To understand the meaning of algorithmic and non-‐algorithmic ''task''. To know the limits to algorithmic ''tasks''. To understand computation as a physical-‐mathematical concept and not as a purely mathematical concept. To experiment concepts and techniques in interactive computational environments.
Program
Automata: • Deterministic and non-‐deterministic finite automata. Pushdown automata. • Regular and context-‐free languages. • Regular and context-‐free grammars. • Chomsky normal form. • Regular expressions. • Pumping lemmas.
Computability: • Deterministic, non-‐deterministic Turing machines and enumerators. • Computable functions. Recursively enumerable sets. • Oracles. Reductions. • The halting problem (introduction to the technique of diagonalization). • Kleene's theorem. Viruses. • Rice's theorem and its applications. • Church-‐Turing thesis.
Complexity: • Computational resources. Constructible functions. • Hierarchy theorems (uses of diagonalization). • Savitch theorem. • Computational classes: P, PSPACE, NP, EXPTIME, PP, BPP. Structural relations. • Complete sets.
Bibliography
Michael Sipser. Introduction to the Theory of Computation, Thomson, Course Technology, Second Edition, International Edition, 2006. Third edition in print.
Assessment
Written Tests: Average of the best three within 4 written tests. Grade of each test: 0-20.

Reestruturação LEIC v5 Page 40
Proposta para Engenharia Informática
Introdução à Engenharia Informática Área Científica: Competências Transversais
Créditos ECTS: 3 ECTS
Objectivos
Dar aos alunos uma visão da engenharia informática na sociedade, nas empresas, na inovação e na investigação.
Programa
SEMANA Topico 1 A função da informática na sociedade. O papel do Engenheiro Informático. 2 As bases científicas da Engenharia Informatica
Ciências da Computação e da Informação Bioinformática, Computação Quântica, I.A., Voz, Visão....
3 Engenharia de Computadores e das Infraestruturas Informáticas Computadores, S.O.s, S.D.s,Computação em Nuvém, Data Centers, Segurança, ... 4 Engenharia de Software e Sistemas Aplicacionais Especializados
Conceção, desenvolvimento, produção e teste de produtos de Software. Principais domínios aplicacionais em Engenharia de Software
5 Engenharia dos Sistemas de Informação
A Informática nas Organização: Arquitetura, Governação e Engenharia Empresarial A descoberta, mineração, exploração e preservação da Informação
6 A investigação em Engenharia Informática: Os grandes desafios da Sociedade Biónica
7 Inovação e Empreendedorismo em Engenharia Informática
Bibliografia
Livro Base sobre o que é a Engenharia: Introdução à Engenharia: Conceitos, Ferramentas e Comportamentos, Walter António Bazzo e Luis Teixeira do Vale Pereira, editora da U. F: de Santa Catarina, Brasil (pdf disponível publicamente Web) Wikipédia Outro material disponível na web sobre os diversos domínios e problemáticas da Engenharia Informática.
Método de Avaliação • Avaliação contínua semanal a realizar semanalmente do semestre, com base na elaboração de 6
trabalhos individuais envolvendo pesquisa na web, com 3 páginas cada valendo 10% cada, e um trabalho final temático, com 6 páginas valendo 40%. Ênfase na organização das ideias, na qualidade da escrita e de síntese apresentada.

Reestruturação LEIC v5 Page 41
Introduction to Information Systems and Computer Engineering
Scientific Area:
ECTS: 3 ECTS
Goals To provide the students with views of the role, the purpose and the professional practices of Information Systems and Computer Engineering in Society, in the Enterprises, in Innovation and in Research.
Syllabus Week Topic
1 The function of Information Systems and Computer Engineering in Society. The role of Information Systems and Computers Engineers
2 The scientific basis of Information Systems and Computer Engineering
Computing and Information Sciences, Bioinformatics, Quantic Computing, A.I., Speech and Vision,
3 Computer Engineering and IT Infrastructures
Computers, Operating Systems, Distributed Systems ,Cloud Computing, Data Centers, Cyber Security, ...
4 Software Engineering and Systems
Design, development, production, testing of software products Main application domains in Software Engineering
5 Information Systems Engineering
The Organizational IT/IS function : Enterprise Architecture, Governance, and Engineering Discovery, mining and preservation of Information
6 Information Systems and Computer Engineering research: The great challenges of the Bionic Society
7 Innovation and Enterpreneurship in Information Systems and Computer Engineering
Bibliography • Introdução à Engenharia: Conceitos, Ferramentas e Comportamentos, Walter António Bazzo e
Luis Teixeira do Vale Pereira, editora da U. F: de Santa Catarina, Brasil (freely available on the Web)
• Wikipédia • Other material available in the web on the multiple domains and problems addressed by the
Information Systems and Computer Engineering
Assessment • Weekly written (3 pages) individual homework during the half semester, requiring focused web
search on the week topic, worth 10% each, and a final systemic essay, with 6 pages worth 40%. Emphasis on the organization of the ideas, the quality of the prose and the degree of synthesis.

Reestruturação LEIC v5 Page 42
UC do 2º Ano
Proposta para Matemática Discreta MATEMÁTICA DISCRETA
Área Científica: Matemática – Lógica e Computação
Créditos ECTS: 4.5 ECTS
Objectivos
Desenvolver o raciocínio matemático rigoroso. Dominar os instrumentos matemáticos necessários para a análise de procedimentos e algoritmos, quer quanto à sua correcção, quer quanto à sua eficiência (no tempo e no espaço).
Programa
Algoritmia: • Introdução à linguagem de programação Mathematica. Procedimento versus algoritmo. • Análise da eficiência de programas imperativos no pior caso e no caso médio. Notação assintótica. • Somatórios, produtórios e recorrências. Princípio de inclusão-‐exclusão. Demonstração por indução finita
de formas fechadas. Fórmula da soma de Euler. • Exemplos motivadores: análise de algoritmos sobre matrizes, pesquisa e ordenação, reconhecimento de
padrões. Teoria de números elementar:
• Aritmética modular. Factorização e primalidade, teorema de Euler. Teorema chinês dos restos. • Relações de equivalência e de congruência. Corpos finitos. • Polinómios sobre corpos finitos. Bases de Gröbner e aplicações. • Transformada de Fourier discreta, algoritmo de cálculo eficiente e sua correcção. • Exemplos motivadores: criptografia (RSA), teoria algorítmica de números, compressão de dados,
verificação de circuitos lógicos, problema da satisfação (SAT). Funções geradoras:
• Função geradora de uma sucessão. Propriedades. Coeficientes binomiais. • Função geradora de uma variável aleatória discreta, momentos. • Análise de recorrências. Resolução de equações lineares às diferenças. • Teorema da expansão racional e aplicações. • Exemplos motivadores: problemas de contagem, análise de algoritmos recursivos, tabelas de dispersão
(hashing). Correcção de programas:
• Correcção parcial de programas, condições invariantes. Terminação de programas, expressões variantes. • Pré-‐condição e pós-‐condição. Cálculo de Hoare para correcção parcial de programas imperativos. • Ordens parciais, bem fundadas e indução. Cálculo de Hoare para correcção total de programas
imperativos. • Síntese de programas pelo método de Dijkstra. • Exemplos motivadores: correcção total de algoritmos de pesquisa e ordenação.
Bibliografia
P. Mateus e C. Sernadas. Matemática Discreta, DMIST, 2005. K.H. Rosen. Discrete Mathematics, McGraw-‐Hill, 1999. Complementar: E. Bach e J. Shallit. Algorithmic Number Theory -‐ Volume I: Efficient Algorithms, MIT Press, 1996. D. Bressoud e S. Wagon. Computational Number Theory, Key Curriculum Press, 2000. R. Graham, D. Knuth e O. Patashnik. Concrete Mathematics: A Foundation for Computer Science, Addison-‐Wesley, 2nd edition, 1994.

Reestruturação LEIC v5 Page 43
D. Knuth. The Art of Computer Programming, Volumes 1-‐3, Addison-‐Wesley, 1998. A. Sernadas, C. Sernadas e J. Ramos. Programação em Mathematica, DMIST, 2003. N. Koblitz . Algebraic Aspects of Cryptography, Springer-‐Verlag, 1999.
Método de Avaliação • Avaliação contínua. Média dos 3 melhores de entre 4 testes.
DISCRETE MATHEMATICS
Scientific Area: Mathematics – Logic and Computation
ECTS: 4.5 ECTS
Goals
Develop rigorous mathematical reasoning. Master the mathematical tools for algorithm and procedure analysis, focusing both on correctness and (space and time) complexity.
Program
Algorithmics: • Introduction to the Mathematica programming language. Procedure versus algorithm. • Worst-‐case and average-‐case analysis of imperative programs. Asymptotic notation. • Sums, products and recurrences. Inclusion-‐exclusion principle. Finite induction proof of closed forms.
Euler's summation fórmula. • Motivating examples: analysis of algorithms over matrices, searching and sorting, pattern recognition.
Elementary number theory: • Modular arithmetic. Primality and factoring, Euler's theorem. Chinese remainder theorem. • Equivalence and congruence relations. Finite fields. • Polynomials over finite fields. Gröbner bases and aplications. • Discrete Fourier transform, FFT algorithm and its correctness. • Motivating examples: cryptography (RSA), algorithmic number theory, data compression, Boolean circuit
verification, satisfiability problem (SAT). Generating functions:
• Generating function of a sequence. Properties. Binomial coefficients. • Generating function of a discrete random variable, moments. • Analisys of recurrences. Resolution of linear difference equations. • Rational expansion theorem and aplications. • Motivating examples: counting problems, analisys of recursive algorithms, hash tables.
Program correctness: • Partial correctness of programs, invariant conditions. Program termination, variant expressions. • Pre-‐condition and post-‐condition. Hoare calculus for partial correctness of imperative programs. • Partial orders, well-‐foundedness and induction. Hoare calculus for total correctness of imperative
programs. • Synthesis of programs by Dijkstra's method. • Motivating examples: total correction of searching and sorting algorithms.
Bibliography
P. Mateus e C. Sernadas. Matemática Discreta, DMIST, 2005. K.H. Rosen. Discrete Mathematics, McGraw-‐Hill, 1999. For further reading: E. Bach e J. Shallit. Algorithmic Number Theory -‐ Volume I: Efficient Algorithms, MIT Press, 1996. D. Bressoud e S. Wagon. Computational Number Theory, Key Curriculum Press, 2000. R. Graham, D. Knuth e O. Patashnik. Concrete Mathematics: A Foundation for Computer Science, Addison-‐Wesley, 2nd edition, 1994.

Reestruturação LEIC v5 Page 44
D. Knuth. The Art of Computer Programming, Volumes 1-‐3, Addison-‐Wesley, 1998. A. Sernadas, C. Sernadas e J. Ramos. Programação em Mathematica, DMIST, 2003. N. Koblitz . Algebraic Aspects of Cryptography, Springer-‐Verlag, 1999.
Assessment • Average of the best 3 out of 4 tests.

Reestruturação LEIC v5 Page 45
Proposta para ASPECTOS SOCIAIS E PROFISSIONAIS DA ENGENHARIA INFORMÁTICA ASPECTOS SOCIAIS E PROFISSIONAIS DA ENGENHARIA INFORMÁTICA Área Científica: Créditos ECTS: 3.0 ECTS Objectivos Transmitir aos futuros engenheiros informáticos a noção do enorme impacto social que os aspectos éticos têm no desenvolvimento e utilização de produtos e serviços baseados em tecnologias de informação. Ensinar os fundamentos necessários para que possam fazer as escolhas acertadas quando confrontados com situações concretas envolvendo o desenvolvimento, operação e utilização de sistemas de informação. Programa Ética
Ética e integridade. Moralidade e ética, legalidade e legitimidade Ética no sector das tecnologias de informação
Ética e responsabilidade profissional dos engenheiros informáticos
Organizações profissionais Programas de certificação Uso aceitável dos sistemas de informação
Segurança e crime informático
Estabelecimento de políticas de segurança Educação dos intervenientes. Prevenção, detecção e resposta a incidentes. Legislação.
Privacidade
Leis de proteção da privacidade Gestão da privacidade e anonimidade
Liberdade de expressão Controlo do acesso à informação Anonimidade na Internet. Difamação
Propriedade intelectual
Direito de cópia Patentes Software livre. Acesso aberto Plágio. Engenharia inversa Ciber-ocupação
Impactos das tecnologias de informação na sociedade • Tecnologias de informação, investimento e produtividade • Exclusão Digital • Tecnologias de informação na saúde •
As redes sociais Uso comercial das redes sociais Cyberbullying e cyberstalking Partilha de conteúdos inapropriados Mundos virtuais. Uso educativo e comercial. Crime nos mundos virtuais.
Ética das organizações
Gestão de colaboradores e fornecedores externos Computação verde.

Reestruturação LEIC v5 Page 46
Bibliografia Livro principal:
George W. Reynolds, Ethics in Information Technology, Third Edition, 2010. Course Technology, Cengage Learning. ISBN-13: 978-0-538-74622-9
Livro complementar: Sara Baase, A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology (4th Edition). 2013. ISBN-13: 978-0132492676
Método de Avaliação A nota da unidade curricular é calculada por uma média ponderada da classificação obtida pela apresentação de relatórios de estudo de casos a serem apresentados ao longo do semestre (60%) e de uma apresentação oral (40%).
SOCIAL AND PROFESSIONAL ASPECTS OF COMPUTER SCIENCE & ENGINEERING
Scientific Area:
ECTS: 3.0 ECTS
Goals Convey to future computer science & engineering students a perspective on the enormous social impacts that ethical aspects have in the development and use of products and services based in information technology. Learn the basic foundations for making the right choices when confronted with real situations involving the development, operation and use of information systems.
Syllabus Ethics Ethics and integrity. The difference between morals, ethics and laws. Ethics in the Information Technology sector Ethics and social responsibility of information technology professionals Professional organisations Certification programmes Acceptable use policies of information systems Information security and computer crime Establishing a security policy Educating the stakeholders Incident prevention, detection, and response to incidents. Laws. Privacy Privacy protection laws Privacy and anonymity management Freedom of expression Controlling access to information Internet anonymity. Defamation Intellectual property Copyright law. Patents

Reestruturação LEIC v5 Page 47
Free software. Open access Plagiarism. Reverse engineering Cybersquatting Societal impacts of information technology Information technology investment and productivity Digital divide. Information technology in healthcare Social networks Commercial use of social networks Cyberbullying e cyberstalking Sharing of inappropriate content Virtual worlds. Educational and business use of virtual worlds. Crime in virtual worlds. Ethics in organisations The ethical use of outsourcing and contingent workers Green computing. 8.1.1 Bibliography Main reference:
George W. Reynolds, Ethics in Information Technology, Third Edition, 2010. Course Technology, Cengage Learning. ISBN-13: 978-0-538-74622-9
Complementary reference:
Sara Baase, A Gift of Fire: Social, Legal, and Ethical Issues for Computing Technology (4th Edition). 2013. ISBN-13: 978-0132492676
8.1.2 Assessment The final grade is the weighted average of the grade obtained on case study reports to be discussed along the semester (60%) and an oral presentation on a topic selected and presented by the students (40%).

Reestruturação LEIC v5 Page 48
UC do 3º ano
Proposta para Organizaçãode Computadores ORGANIZAÇÃO DE COMPUTADORES Área Científica: Arquitectura e Sistemas Operativos - Arquitectura de Computadores e Sistemas Embebidos
Créditos ECTS: 6 ECTS
Objectivos
Os alunos deverão adquirir uma visão abrangente e atual das arquiteturas de computadores ao nível dos seus diversos componentes: processadores, sistema de memória e de entradas e saídas. Os alunos deverão ainda ser capazes de compreender as condicionantes para a evolução dos sistemas computacionais e de avaliar estratégias para optimização de programas tendo em atenção a arquitetura computacional subjacente, baseadas em métricas de desempenho.
Programa
Introdução e revisão dos conceitos básicos • Revisão da organização interna e funcionamento de um computador • Perspetiva da evolução recente e futura
Organização do computador • Arquitetura lógica dos processadores, CISC vs RISC; condicionantes da evolução tecnológica dos
computadores • Geração de código, papel dos compiladores • Organização dos dados em memória • Representação de números: formato IEEE 754 • Métricas de desempenho, Lei de Amdahl
Funcionamento de um processador RISC • Organização de um processador: unidades de processamento e controlo • Processamento em pipeline • Conflitos no pipeline: dados, controlo e estruturais • Otimização do código
Sistema de memória • Hierarquia de memória. Memória primária. • Arquitetura das memórias cache; Políticas de gestão das caches e sua implementação;
Optimização de programas • Gestão de memória, ligação ao sistema operativo; mecanismos eficientes de tradução de
endereços • Funcionamento integrado do sistema de memória
Sistema de entradas e saídas • Interface analógico-‐digital • Análise do desempenho na comunicação com periféricos • Caraterísticas de barramentos padrão. Pontes de ligação à memória e periféricos • Interface de periféricos com a memória, processador e sistema operativo; Interrupções,
Excepções e Traps; DMA • Compressão de dados; fiabilidade de dados: paridade, ECC, RAID
Arquiteturas avançadas • Processadores multiple-‐issue: superescalares e VLIWs • Arquiteturas paralelas: taxonomia de Flynn • Multiprocessadores: SMP e NUMA; coerência de memória; sincronismo

Reestruturação LEIC v5 Page 49
• Clusters
Bibliografia Computer Organization and Design: The Hardware/Software Interface David A. Patterson, John L. Hennessy Morgan Kaufmann, ISBN 1558606041 Secundária: Structured Computer Organization Andrew S. Tanenbaum Prentice-‐Hall, ISBN 978-‐0131485211 Computer Architecture: A Quantitative Approach John L. Hennessy, David A. Patterson Morgan Kaufmann, ISBN 012383872X
Método de Avaliação
• Teórica (70%). Nota mínima: 8 • Projecto (30%). Nota mínima: 8
COMPUTER ORGANIZATION Scientific Area: Architecture and Operating Systems – Computer Architecture and Operating Systems
ECTS: 6 ECTS
Objectives
Students should acquire a comprehensive view of current computer architectures and its various components: processors, memory and input/output systems. Students should also be able to understand the constraints to the development of computer systems and evaluate strategies for optimizing programs taking into account the underlying computer architecture, based on performance metrics.
Program
Introduction and review of basic concepts Review of the internal organization and functioning of a computer Perspective of recent and future developments
Computer organization Processor architectures, RISC vs CISC; conditionings affecting the technologic evolution of computers Code generation, role of compilers Organization of data in memory Representation of numbers: IEEE 754 format Performance Metrics, Amdahl's Law
Operation of a RISC processor Organization of a processor: processing and control units Pipelined operation Conflicts in the pipeline: data, control and structural Code Optimization
Memory system Memory hierarchy. Main memory. Architecture of cache memories; caches management policies and their implementation; program optimization

Reestruturação LEIC v5 Page 50
Memory management, relation to the operating system; efficient mechanisms for address translation Operation of the integrated memory system
Input/Output system Analog/digital interface Performance analysis of communication with peripherals Standard buses. Bridges between memory and peripherals Peripheral Interface with memory, processor and operating system; Interrupts, Exceptions and Traps; DMA Data compression, data reliability: parity, ECC, RAID
Advanced architectures Multiple-‐issue processors: superscalar and VLIWs Parallel architectures: Flynn taxonomy Multiprocessors: SMP and NUMA, memory coherence, timing Clusters
Bibliography Computer Organization and Design: The Hardware/Software Interface David A. Patterson, John L. Hennessy Morgan Kaufmann, ISBN 1558606041 Secondary: Structured Computer Organization Andrew S. Tanenbaum Prentice-‐Hall, ISBN 978-‐0131485211 Computer Architecture: A Quantitative Approach John L. Hennessy, David A. Patterson Morgan Kaufmann, ISBN 012383872X
Assessment
• Written Tests (70%). Minimum grade: 8 • Project (30%). Minimum grade: 8

Reestruturação LEIC v5 Page 51
Proposta para Análise e Modelação de Sistemas
Análise e Modelação de Sistemas Área Científica: Sistemas de Informação
Créditos ECTS: 6 ECTS
Objectivos
Dotar os alunos com as competências fundamentais para a análise de problemas de engenharia em que a solução se pode conceptualizar como um sistema, recorrendo a técnicas de engenharia de requisitos e desenvolvimento de modelos conceptuais (especialmente em UML, SysML e BPMN). Programa
Engenharia de Sistemas: conceitos, técnicas e processos • Conceitos fundamentais de modelação conceptual no contexto da engenharia de sistemas;
definições de "sistema" e de "sistema de sistemas"; conceitos de contexto e de arquitectura de sistema, "stakeholders", “concern”, “viewpoint”, “view” e modelos. As ontologias ISO 42010 e de Zackman.
• Técnicas de representação de contextos, com destaque para a técnica de mapas conceptuais. Conceitos, motivações para a MDA (Model Driven Architecture) e MDE (Model Driven Engineering).
• Apresentação das principais entidades de normalização de referência (ISO, ITU, IEEE, W3C, IETF, INCOSE, NISO, IPQ, OASIS, The Open Group, OMG).
Engenharia de Requisitos: conceitos, processos e técnicas fundamentais: • Requisitos como “concerns” e constrangimentos aos sistemas. Os processos de levantamento,
negociação, validação e documentação de requisitos. Ferramentas de gestão de requisitos. Técnicas para levantamento de requisitos. Regras para expressão de requisitos bem formados e SMART (Specific, Measurable, Achievable, Realisable, Traceable). Técnicas de rastreabilidade.
• Requisitos funcionais. Conceitos de vistas de sistemas “black box” e “white box”. Casos de uso e cenários de casos de uso como técnicas de engenharia de requisitos (UML e SysML).
• Requisitos não funcionais. Contexto de sistema e questões éticas, sociais e políticas. Dimensões éticas e morais de análise de sistemas. Códigos de ética em engenharia. (IEEE, ACM e OE).
Análise e Modelação Orientada a Objectos -‐ Modelos de Estrutura: • Modelação orientada a objectos: conceitos; vistas de estrutura e de comportamento. Sistemas
físicos e sistemas lógicos. Sistemas de informação como sistemas lógicos. • Análise de universos de discurso e desenvolvimento de modelos de domínio em UML.
Associações em modelos UML (generalização e especialização; associações genéricas; composição e agregação; classes de associação). Diagramas de componentes e de instalação em UML. Modelação de interfaces. Diagramas de objectos. Modelos em SysML.
Análise e Modelação Orientada a Objectos -‐ Modelos de Comportamento: • Vistas de comportamento “black box” (casos de uso) e “white box” (eventos, fluxos e
mensagens). Técnicas UML para desenvolvimento de vistas de comportamento: diagramas de mensagens (sequência, comunicação, temporais; interacção geral), de actividade, e de máquinas de estado.
Sistemas de Informação -‐ Análise e Modelação de Processos de Negócio • O processo como transformação de inputs em outputs com ênfase no produto final e produção
de valor. A relevância da vista de processos de uma organização (qualidade e responsabilidade na norma ISO 9001). A cadeia de valor de Porter. A arquitectura de processos na arquitectura empresarial. Processos de “risk assessment” (identificação, análise e avaliação de risco).
• Elementos básicos da linguagem BPMN (eventos, actividades, gateways, sequências, mensagens, associações, objectos de dados). Diagramas genéricos em BPMN. Processos públicos, processos privados e colaborações. Orquestração de processos versus coreografia. Boas práticas e más práticas.

Reestruturação LEIC v5 Page 52
Bibliografia Systems Engineering with SysML/UML -‐ Modeling, Analysis, Design. Tim Weilkiens. The Morgan Kaufmann/OMG Press (2008)
Método de Avaliação
Teórica (55%). Nota mínima: 9.0 (4 testes com nota mínima de 7 por teste). Projecto (45%). Nota mínima: 9.0 (4 entregas, com nota mínima de 8.0 na entrega final)
Systems Analysis and Modeling Scientific Area: Information Systems
ECTS: 6 ECTS
Goals
To provide the fundamental competencies for the analysis of engineering problems where the solution can be conceptualized as a system, using techniques of requirements engineering and conceptual modeling (especially UML, SysML and BPMN).
Syllabus
Systems Engineering: concepts, technics and processes • Main concepts of conceptual modeling in the scope of systems engineering; definition of system,
system of system; system’s context; system’s architecture; stakeholders, concern, viewpoint, “view” and models. The ISO 42010 and Zackman frameworks.
• Techniques to model contexts (concept maps). Motivation for the MDA (Model Driven Architecture) and MDE (Model Driven Engineering).
• Main references in standardization (ISO, ITU, IEEE, W3C, IETF, INCOSE, NISO, IPQ, OASIS, The Open Group, OMG).
Requirements Engineering: concepts, processes and main techniques: • Requirements as concerns and constraints to systems. The processes of requirements gathering,
elicitation, validation and documenting of requirements. Techniques for requirements gathering. Rules to express SMART (Specific, Measurable, Achievable, Realizable, Traceable) requirements. Techniques for traceability.
• Functional requirements. Concepts of “black box” e “white box” as system’s views. Use cases and use case scenarios as requirements engineering techniques (UML e SysML).
• Nonfunctional requirements. System context and ethical, social and political issues. Technical and moral dimensions of systems analysis. Ethical codes (IEEE, ACM e OE).
Object-‐Oriented Analysis and Modeling – Models of Structure: • Object oriented modeling: concepts; views of structure and behavior. Physical and logical
systems. Information systems as logical systems. • Analysis of a universe of discourse and domain model in UML. Associations in UML models
(generalization and specialization; generic associations; composition and aggregation; association classes). Components and deployment diagrams. Modeling of interfaces. Object diagrams. SysML models.
Object-‐Oriented Analysis and Modeling – Models of Behavior: • Views of behavior as “black box” (use cases) and “white box” (events, flux and messages). UML
techniques for the development of views of behavior: message diagrams (sequence, communication, time; general interaction), activity, and state machine.
Information Systems – Analysis and Modeling of Business Processes • The process as transformation of inputs in outputs, with emphasis in the added value. The
relevance of the process’ view of an organization (quality and accountability; ISO 9001). The

Reestruturação LEIC v5 Page 53
Porter’s added value chain. The architecture of processes in enterprise architecture. The f risk assessment processes (risk identification, analysis and assessment).
• Fundamentals of the BPMN language (events, activities, gateways, sequences, messages, associations, data objects). BPMN diagrams. Public processes, private processes, collaborations. Orchestrations versus choreography. Best practices and anti-‐patterns..
Bibliography Systems Engineering with SysML/UML -‐ Modeling, Analysis, Design. Tim Weilkiens. The Morgan Kaufmann/OMG Press (2008)
Assessment
• Theory (55%). Minimum score: 9.0 (4 tests with a minimum of 7.0 by test). • Project (45%). Minimum score: 9.0 (4 deliveries, with a minimum score of 8.0 in the final one)

Reestruturação LEIC v5 Page 54
Proposta para Bases de Dados BASES DE DADOS
Área Científica: Sistemas de Informação – Tecnologias de Sistemas de Informação Créditos ECTS:6 ECTS Objectivos A disciplina faz uma introdução à concepção e análise de bases de dados. O curso foca no modelo relacional, cobrindo o desenho lógico das bases de dados (desenho do esquema) e sua implementação, bem como os sistemas de gestão de transações. Alguns apectos dos sistemas de bases de dados paralelas e distribuídas, gestão de informação não estruturada e semiestruturada serão também abordados. A disciplina tem como objetivo expor os alunos aos conceitos básicos necessários no desenho e concepção de um sistema de gestão de base de dados, assim como questões práticas da sua realização no âmbito de um projeto em equipa. Programa Introdução aos sistemas de informação e bases de dados.
Principais características dos sistemas de bases de dados. Vantagens. Quando usar e não usar SGBD. Modelos de dados dos SGBD: Modelo Relacional; Arquitetura de SGBD; Mercado dos SGBD. O processo de concepção dos sistemas de base de dados.
Modelação de dados
O Modelo Entidade-Associação: conjuntos de entidades e associações. Entidades Fracas, Generalizações e Agregações. Concepção de bases de dados segundo o modelo E-A. Introdução ao Modelo Relacional. Conversão de modelos E-A em relacionais.
Linguagens para interrogação de bases de dados.
Álgebra Relacional. Cálculo Relacional (pode ser omitido). SQL. Linguagem de manipulação de dados. Views em SQL.
Restrições de Integridade. Integridade de entidades. Integridade de domínio. Integridade referencial. Integridade em SQL Restrições de Integridade do utilizador. Especificação de restrições de Integridade declarativa e procedimental. Integridade em SQL: Triggers
Arquitetura de aplicações de bases de bases de dados e sua programação Stored procedures. Cursores. SQL embebido/SQLJ. SQL dinâmico/JDBC
Normalização de dados. Dependências Funcionais e restrições de integridade. Formas normais. 1FN, 2FN, 3FN, FNBC Teoria das Dependências. Axiomas de Armstrong. Geração de Fecho de um conjunto de atributos. Identificação de superchaves e chaves candidatas. Decomposição de esquemas relacionais. Decomposição sem perdas. Decomposição e normalização.

Reestruturação LEIC v5 Page 55
Armazenamento e Indexação. Estruturas de Indexação. Opções de armazenamento físico dos dados. Alternativas de coexistência com sistema operativo. Tipos de Ficheiros: tabelas e índices Estruturas de Indexação: Árvore B+. Índices Hash. Índices Bitmap. Criação de índices em SQL
Processamento de transações
Conceito de Transação. Propriedades. Ciclo de Vida das Transações. Execução Concorrente. Serializabilidade. Recuperabilidade; Realização do isolamento. Teste de serializabilidade; Transações em SQL Controlo de Concorrência em Transações. Protocolos de bloqueio; 2PL – bloqueio em duas fases. Tratamento de Deadlocks. Fechos granulares. Aquisição automática de fechos
Recuperação de Transações. Classificação de Falhas em Sistemas de Base de Dados. Recuperação e Atomicidade. Recuperação Baseada em Diário. O algoritmo ARIES.
Segurança e Controlo de Acesso em Bases de Dados. Controlo de Acesso em SQL.
Bases de Dados Paralelas e Distribuídas.
Conceitos. Armazenamento Distribuído. Interrogações Distribuídas. Transações Distribuídas Processamento paralelo de informação.
Sistemas de apoio à decisão.
O pipeline dos processos de descoberta de conhecimento. Data warehousing. Modelo de dados multidimensional. Métodos de prospecção de dados. Regras de Associação.
Gestão de dados não estruturados Metadados. Ontologias. Modelos de pesquisa. Indexação de dados não estruturados. Sistemas de recuperação de informação. Filtragem de informação. Avaliação de sistemas de recuperação de informação.
Gestão de Dados Semiestruturados.
Modelos de representação de informação semiestruturada. XML. Organização de bases de dados semiestruturados. Interrogação de dados semiestruturados. XQuery
Bibliotecas digitais:
Serviços básicos. Uso aceitável. Arquivo e preservação de informação.
Bibliografia Principal
• Database Management Systems, Fourth Edition , Raghu Ramakrishnan, Johannes

Reestruturação LEIC v5 Page 56
Gehrke,, 2002, McGraw-‐Hill -‐ ISBN-‐10: 0072968257, 2013 Secundária
• Database System Concepts, 6th Edition. , Abraham Silberschatz, Henry Korth, S. Sudarshan, 2010, McGraw-‐Hill -‐ ISBN-‐10: 0073523321
Método de Avaliação Exame (60%)
Incide sobre toda a matéria do curso. Projeto (40%)
Desenvolvido ao longo do semestre. Corresponde à concepção e realização de uma aplicação de base de dados sobre a web. Primeira entrega incide sobre modelo de dados e interrogação em álgebra relacional. Segunda parte incide sobre implementação do modelo em sistema SQL e desenvolvimento de aplicação.
DATABASES Scientific Area: Information Systems – Information Systems ECTS: 6 ECTS Goals The course introduces students to database design and analysis. The focus is on the relational model, covering the logical design of databases (schema design) and implementation, and transaction processing systems. Aspects of parallel and distributed database systems, unstructured and semi-structured data management, decision support and data mining systems will also be covered. The objective of this course is to expose the student to the basic concepts involved in designing and building a database management system, and to practical database information system design through a team based project. Syllabus Introduction to database management systems
Main characteristics of database management systems. The advantages of the database approach. When not to use a database management system. Database systems models. The relational model. Database management systems architecture. Database systems market. The database systems development process.
Data modeling
The entity-relationship model. Entity sets and association sets. Weak entities. Generalizations. Aggregations. Introduction to the Relational Model. Conversion of Entity-Relationship models into relational models.
Database query languages
Relational algebra. Relational calculus (may be omitted) Database manipulation language. SQL. Views in SQL.
Integrity constraints Entity integrity. Domain integrity. Referential integrity. Integrity in SQL. User constraints. Declarative and procedural integrity constraints specification. Integrity in SQL. Triggers.
Architecture and programming of database applications Stored procedures. Cursors. Embedded SQL/SQLJ.

Reestruturação LEIC v5 Page 57
Dynamic SQL/JDBC
Data normalization Functional dependencies and integrity constraints. Normal forms. 1NF. 2NF. 3NF. BCNF, Dependency theory. Armstrong’s axioms. Transitive closure of an attribute set generation Super-keys and candidate keys identification, Relational schema decomposition. Lossless decomposition. Decomposition and normalisation.
Storage and Indexing Indexing structures. Physical storage alternatives. Database and operating systems. Database files: tables and indexes. Indexing structures: B-trees. Hash indexes. Bitmap indexes. Indexes in SQL
Transaction processing
Transaction concept. Properties. Transaction life-cycle. Concurrent execution. Serializability. Recoverability. Isolation implementation. Serializability test. SQL transactions. Concurrency Control Locking protocols. 2PL – two-phase locking. Deadlock handling. Granular locks. Automatic lock acquisition
Transaction recovery Faults in database management systems Recovery and atomicity. Log-based recovery. The ARIES algorithm.
Security and Access control of databases Access control in SQL
Parallel and distributed databases
Concepts. Distributed storage. Distributed querying. Distributed transactions. Parallel data processing.
Decision Support Systems
The information discovery pipeline. Data warehousing. Multi-dimensional data model. Data mining methods. Association rules mining.
Information Management and Retrieval Matadata. Ontologies. Text search models. Text indexing. Information retrieval systems. Information filtering. Information retrieval systems evaluation.
Semi-strucutured data management

Reestruturação LEIC v5 Page 58
Semi-structured information representation models. XML. Semi-strcutured data management systems organisation. Semi-strcutured data querying. XQuery.
Digital Libraries
Basic services. Acceptable use. Information archiving and preservation.
Bibliography
Main Rereference • Database Management Systems, Fourth Edition , Raghu Ramakrishnan, Johannes
Gehrke,, 2002, McGraw-Hill - ISBN-10: 0072968257, 2013 Secondary • Database System Concepts, 6th Edition. , Abraham Silberschatz, Henry Korth, S.
Sudarshan, 2010, McGraw-Hill - ISBN-10: 0073523321
Assessment Exam (60%)
Covers the entire syllabus. Project (40%)
Developed during the semester. Involves the design and implementation of a web-‐based database application. First delivery reports on the data model and relational algebra queries. The second delivery reports on the SQL system implementation and developed application.

Reestruturação LEIC v5 Page 59
Proposta para Computação Gráfica COMPUTAÇÃO GRÁFICA Área Científica: Computação Gráfica e Multimédia
Créditos ECTS: 4.5 ECTS
Objectivos
Esta unidade curricular pretende fornecer conhecimentos básicos sobre computação gráfica interactiva. São leccionados os fundamentos da representação e criação de imagens sintéticas a partir de cenas tri-‐dimensionais. Neste âmbito os alunos verão dominar as transformações geométricas elementares e compreender o funcionamento do pipeline de visualização 3D e dos seus andares principais. No final, os alunos estarão preparados para desenhar e desenvolver aplicações gráficas interactivas.
Programa
Fundamentos: Enquadramento e conceitos fundamentais; Matemática para CG (inclui trigonometria e matrizes); Introdução ao OpenGL
Transformações Geométricas: Transformações geométricas planas elementares; Transformações em coordenadas homogéneas; Transformações em três dimensões; Composição de transformações geométricas; Matriz de transformação composta. Grafos de Cena; Manipulação de matrizes em OpenGL (ordem, modos, pilha, etc...); Programação baseada em eventos; Animação Interactiva.
Pipeline de Visualização 3D: Visualização clássica e por computador; Visualização 3D; Câmara Virtual Simples; Visualização e Projecção em OpenGL; Iluminação (modelo de Phong e Blinn-‐Phong); Sombreamento (Flat, Gouraud e Phong) Recorte (Cohen-‐Sutherland e Sutherland-‐Hodgman) Operações sobre fragmentos – buffers e mapeamento de texturas
Novas arquitecturas Hardware/Software em Computação Gráfica
Bibliografia
Interactive Computer Graphics: A Top-‐Down Approach with Shader-‐Based OpenGL (Sixth Edition), Edward Angel and Dave Shreiner, 2011, ISBN-‐10: 027375226X, ISBN-‐13: 978-‐0273752264, Pearson Education
Método de Avaliação
Teórica (50%). Nota mínima: 9.5 (2 testes) Projecto (50%). Nota mínima: 9.5

Reestruturação LEIC v5 Page 60
COMPUTER GRAPHICS Scientific Area: Computer Graphics and Multimedia
ECTS: 4.5 ECTS
Goals
The course aims at providing students with basic knowledge of interactive 3D computer graphics. They should learn the fundamentals of representation and creation of synthetic images from three-‐dimensional scenes. This includes mastering geometrical transformations and understanding the 3D visualization pipeline and its main stages. As an outcome, students should be able to design and develop interactive computer graphics applications.
Program
• Fundamentals: • Basic concepts of CG; • Math for CG (including trigonometry and matrices); • Introduction to OpenGL
• Geometrical Transformations: • Planar geometrical transformations; • Transformations in Homogeneous Coordinates; • 3D Transformations; • Concatenation of Transformations; • Current Transformation Matrices. • Scene Graphs; • Matrix manipulation in OpenGL (order, modes, stack, etc...); • Event-‐based programming; • Interactive animation.
• 3D Visualization Pipeline: • Classical and Computer viewing; • 3D visualization; • Virtual camera; • Visualization and projection in OpenGL; • Culling (Cohen-‐Sutherland e Sutherland-‐Hodgman) • Lightning (Phong and Blinn-‐Phong); • Shading (Flat, Gouraud e Phong) • From Vertices to Fragments – buffers and texture Mapping
• Emerging computer graphics software and hardware Bibliography
Interactive Computer Graphics: A Top-‐Down Approach with Shader-‐Based OpenGL (Sixth Edition), Edward Angel and Dave Shreiner, 2011, ISBN-‐10: 027375226X, ISBN-‐13: 978-‐0273752264, Pearson Education
Assessment
• Written Tests (50%). Minimum grade: 9.5 (2 written tests). • Project (50%). Minimum grade: 9.5.

Reestruturação LEIC v5 Page 61
Proposta para Compiladores COMPILADORES Área Científica: Metodologia e Tecnologia da Programação – Linguagens de Programação
Créditos ECTS: 4.5 ECTS
Objectivos
Familiarizar os alunos com a estrutura de compiladores modernos, com as técnicas usadas para análise lexical, sintáctica e semântica e com os algoritmos de geração e optimização de código final.
Programa
Análise lexical: Identificação e especificação de sequências de símbolos terminais através de expressões regulares. Construção de autómatos finitos não-‐deterministas a partir de expressões regulares: algoritmo de Thompson. Determinização de autómatos e reconhecimento de frases por autómatos deterministas. A ferramenta LEX: formato e semântica do ficheiro de especificação.
Análise sintáctica: Identificação e especificação de gramáticas. Derivação, recursividade e ambiguidade de gramáticas. Autómatos de pilha. Analisadores sintácticos descendentes. Factorização à esquerda. Identificação dos conjuntos FIRST e FOLLOW. Identificação de tabelas de análise descendente pelo método LL(1). Analisadores sintácticos ascendentes LR: arquitectura e reconhecimento de frases. Identificação de tabelas de análise pelo método LALR(1). Conflitos nas tabelas e sua possível resolução. Compactação de tabelas de análise ascendente. A ferramenta YACC: formato de ficheiros, transporte de valores pela pilha, ligação entre o LEX e YACC, recuperação de erros.
Análise semântica: Gramáticas atributivas. Atributos sintetizados e herdados. Definições do tipo S e do tipo L. Avaliação de definições por analisadores sintácticos ascendentes. Estruturas de dados para representação em memória de árvores de derivação. Manipulação de identificadores: tabelas de símbolos, visibilidade, alcance. Tipificação: sistemas de tipos, verificação de tipos, polimorfismo. Invocação de rotinas, registos de activação.
Geração de código: Interpretação. Geração no YACC de uma árvore sintáctica. Geração de código intermédio. Gestão de memória. Geração de código final. Máquinas baseadas em pilhas de dados. Blocos básicos. Alternativas de geração de código. Gestão de registos. Técnicas básicas de optimização: alto-‐nível, local, peephole e global.
Bibliografia
Compilers: Principles, Techniques, & Tools (2nd Edition) ("livro do dragão"), Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2006, ISBN-‐10: 0321486811, ISBN-‐13: 978-‐0321486813, Addison-‐Wesley Professional Processadores de Linguagens, da concepção à implementação, 2ª Edição Rui Gustavo Crespo IST Press. 2001.

Reestruturação LEIC v5 Page 62
Método de Avaliação
Teórica (50%). Nota mínima: 9.5 (2 testes). Projecto (40%). Nota mínima: 9.5. Avaliação contínua (10%). Sem nota mínima (semanal, nas aulas).
COMPILERS Scientific Area: Metodologia e Tecnologia da Programação – Programming Languages
ECTS: 4.5 ECTS
Goals
The course aims at familiarizing students with the structure of modern compilers, as well as with the techniques used for lexical, syntactic, and semantic analysis; and with the algorithms for code generation and final code optimization.
Program
Lexical analysis: Identification and specification of sequences of terminal symbols using regular expressions. Construction of non-‐deterministic finite-‐state automata from regular expressions: Thompson algorithm. Construction of deterministic finite-‐state automata from non-‐deterministic finite-‐state automata and phrase recognition using deterministic finite-‐state automata. The LEX lexical analyser generator: input file specification and auxiliary functions.
Syntactic analysis: Grammar ientification and specificiation. Derivation, recursion, and ambiguity in grammars. Stack automata. Top-‐down parsing. Left factoring. FIRST and FOLLOW sets. Parse table construction using the LL(1) method. LR parsers: architecture and phase processing. Parse table construction using the LALR(1) method. Conflicts and conflict resolution. Compacting parse tables for ascending parsers. The YACC parser generator: input file specification, using the stack, communication between LEX and YACC, error recovery.
Semantic analysis: Attributive grammars. Synthesized and inherited attributes: S-‐ and L-‐type grammars. Node evaluation in ascending parsers. Data structures for in-‐memory representation of syntax trees. Identifier management: symbol tables, visibility, scope. Type management: type system, type verification, polymorphism. Function calls, activation records.
Code generation: Interpretation. Creation in YACC of a syntax tree. Intermediate code generation. Memory management. Generation of final code. Stack machines. Basic blocks. Code generation alternatives. Register management. Optimization: basic techniques: high-‐level, local, peephole and global.
Bibliography
Compilers: Principles, Techniques, & Tools (2nd Edition) ("dragon book"), Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, 2006, ISBN-‐10: 0321486811, ISBN-‐13: 978-‐0321486813, Addison-‐Wesley Professional Processadores de Linguagens, da concepção à implementação, 2ª Edição Rui Gustavo Crespo

Reestruturação LEIC v5 Page 63
IST Press. 2001.
Assessment
Written Tests (50%). Minimum grade: 9.5 (2 written tests). Project (40%). Minimum grade: 9.5. Exercises (10%) (no minimum grade) (weekly, in class).

Reestruturação LEIC v5 Page 64
Proposta para Gestão GESTÃO Área Científica: Engenharia e Gestão das Organizações
Créditos ECTS: 4.5 ECTS
Objectivos
O objetivo principal é introduzir os alunos ao funcionamento das organizações e a um conjunto de conceitos e ferramentas que lhes irá permitir:
• Compreender a sua natureza sistémica e integrada • Avaliar a multidisciplinaridade e recursos necessários • Compreender o enquadramento social e profissional e ético da prática da Informática.
Pretende-‐se que os alunos fiquem habilitados com a introdução a competências profissionais fundamentais , tais como: Enquadramento Microeconómico, Gestão Estratégica, Marketing, Contabilidade, Avaliação de Projetos, e Ética e Responsabilidade Social. A aplicação dos conhecimentos adquiridos é válida tanto para empresas em atividade, como para projetos de empreendedorismo – p.ex. start-‐ups resultantes da Inovação & Desenvolvimento Tecnológico. Os alunos ficam familiarizados com o funcionamento das empresas em ambiente real, e treinam o trabalho em equipa ao participarem no ISTMC, em que grupos de alunos representam empresas que competem entre si simulando um mercado em ambiente real.
Programa Cap 1. Conceitos Fundamentais
• O que é a Gestão • O que é Economia • História do Pensamento sobre a Gestão.
Cap 2. O Ambiente Económico • O contexto da União económica e monetária • Mercados. Procura e seus determinantes. Bens substitutos e bens complementares • Elasticidade da procura. Oferta e seus determinantes. Equilíbrio do mercado. Custos e tecnologia. • Economias de escala, economias de gama, economias de experiência. Estruturas de mercado. Papel do
Estado. • Inovação e Empreendedorismo
Cap 3. Análise Estratégica • Conceitos Fundamentais • Funções da Gestão. Planeamento • Visão, Missão, Objetivos Estratégicos • Análise Externa. PESTL e Porter • Análise Ambiente Interno - Cadeia de Valor • Matriz SWOT • Formulação da Estratégia • Implementação da Estratégia
Cap 4. Marketing • Conceitos Fundamentais. Comportamento de compra. • STP (segmentação, targeting, posicionamento) • Marketing Mix: Produto - Preço - Distribuição – Comunicação
Cap 5. Informação Financeira- Elementos de Contabilidade • A organização da informação financeira: O papel da Contabilidade; Introdução aos principais mapas e
conceitos • O Balanço e a Demonstração de Resultados • Enquadramento dos Conceitos Contabilísticos • Análise Económico-Financeira através de Indicadores de Gestão • Análise gastos-volume-resultados
Cap 6. Análise Projetos de Investimento • A dimensão temporal e o cálculo financeiro. Capitalização, Taxa de juro nominal, efetiva e real,
Atualização • Critérios de análise da rendibilidade de projetos de investimento - VAL (Valor Atual Líquido); TIR
(Taxa Interna de Rendibilidade); PRI - Período de Recuperação do Investimento

Reestruturação LEIC v5 Page 65
Cap 7. Organização • Liderança • Motivação • Cultura Organizacional • Recursos Humanos • Sistemas de Informação e Controlo Balanced Scorecard
Cap. 8. Business Case for IT investment • Definição do problema • Análise Custo-benefício – Financeira e Não-financeira • Análise de risco • Análise de alternativas e otimização do risco • Implementação – Ciclo de vida
Bibliografia • The New Era of Management , Daft, Richard, 2008, Thomson/South-‐Western • Avaliação de Projetos de Investimento na Óptica Empresarial , Soares, J., Fernandes, A., Março, A.,
Marques, J., 2006, 2º Ed., Edições Sílabo • Sistema de Normalização Contabilística (SNC) , Ministério Finanças, 2010 • Princípios de Economia, Frank, R., Bernanke, B., 2003, McGraw-‐Hill • Marketing Management , Kotler, P., Keller, K., 2006, Pearson -‐Prentice Hall • Crafting and Executing Strategy: The Quest for Competitive Advantage: Concepts and Cases ,
Thompson, A. Arthur, Strickland III, A. J., Gamble, John, 2010, McGraw-‐Hill/Irwin • Gestão das Organizações, Sebastião Teixeira, 2011, Verlag -‐ Dashofer ISBN -‐ 978-‐989-‐642-‐082-‐6
Método de Avaliação
• 2 Testes. Nota mínima: 7.5 (2 testes). • Participação no ISTMC: 1 val. • Bónus Competitivo ISTMC: 1.50 – 0.25val. • Bónus Assiduidade das aulas práticas: Max: 0.5 val.

Reestruturação LEIC v5 Page 66
Management Scientific Area: Engineering and Management of Organisations
ECTS: 4.5 ECTS
Goals
The main goal is to introduce students to the operation of organisations and a set of concepts and tools that will allow them to:
• Understand the nature of organisations as integrated systems • Evaluate the multi-‐disciplinarily and resources needed • Understand the social, professional and ethical practice of informatics.
Students should become empowered with the introduction to fundamental skills, such as microeconomic framework, Strategic Management, Marketing, Accounting, Project Evaluation, and Ethics and Social Responsibility. This knowledge is valid for both companies in activity, and entrepreneurship projects -‐ e.g. start-‐ups resulting from Innovation & Technology Development. Students also become familiar with the operation of companies in the real environment, training team work by participating in ISTMC, in which groups of students representing companies that compete in a market environment simulating real...
Program Cap 1. Fundamental Concepts
• What is Management • What is Economics • History of Management Thinking.
Cap 2. The Economic Environment • The context of the Economic and Monetary Union • Markets. Demand and its determinants. Substitute goods and complementary goods • Elasticity of demand. Supply and its determinants. Market equilibrium. Costs and technology. • Economies of scale, economies of scope, economies of experience. Market structures. Role of the
State. • Innovation and Entrepreneurship
Cap 3. Strategic Analysis • Fundamental Concepts • Functions of Management. Planning • Vision, Mission and Strategic Objectives • External Analysis. PESTL and Porter • Internal Environment Analysis - Value Chain • SWOT Matrix • Strategy Formulation • Strategy Implementation
Cap 4. Marketing • Fundamental Concepts. Buying behaviour • STP (segmentation, targeting, positioning) • Marketing Mix: Product – Price - Distribution – Communication
Cap 5. Financial Information – Accounting Principles • The organization's financial information: The role of accounting, introduction to key concepts and
maps • The Balance Sheet and the Income Statement • Framework of Accounting Concepts • Economic and Financial Analysis by Management Indicators • Analysis expenses-volume- results
Cap 6. Analysis of Investment Projects • The temporal dimension and the financial calculation. Capitalization, nominal interest rate, effective
and real, actualizations • Criteria for analyzing the profitability of investment projects - NPV (Net Present Value), IRR (Internal
Rate of Return); PRI - Investment Recovery Period Cap 7. Organizztion
• Leadership • Motivation

Reestruturação LEIC v5 Page 67
• Organizational culture • Human Resources • Control and information systems: Balanced Scorecard
Cap. 8. Business Case for IT investment • Problem definition • Cost-Benefit Analysis – Financial and Non-financial • Risk Analysis • Alternatives Analysis and Risk mitigation • Implementation over the Life Cycle
Bibliography • The New Era of Management , Daft, Richard, 2008, Thomson/South-‐Western • Avaliação de Projetos de Investimento na Óptica Empresarial , Soares, J., Fernandes, A., Março, A.,
Marques, J., 2006, 2º Ed., Edições Sílabo • Sistema de Normalização Contabilística (SNC) , Ministério Finanças, 2010 • Princípios de Economia, Frank, R., Bernanke, B., 2003, McGraw-‐Hill • Marketing Management , Kotler, P., Keller, K., 2006, Pearson -‐Prentice Hall • Crafting and Executing Strategy: The Quest for Competitive Advantage: Concepts and Cases ,
Thompson, A. Arthur, Strickland III, A. J., Gamble, John, 2010, McGraw-‐Hill/Irwin • Gestão das Organizações, Sebastião Teixeira, 2011, Verlag -‐ Dashofer ISBN -‐ 978-‐989-‐642-‐082-‐6
Assessment
• 2 Tests. Minimum Grade: 7.5 val, (2 tests). • Participation in ISTMC: 1 val. • Competitive Bonus ISTMC: 1.50 – 0.25val. • Attendance Bonus (practical classes): Max: 0.5 val.