Logotipo e link para a Universidade do Minho

Sistemas de Computação
Lic. Ciências da Computação, 1º ano
2007/2008
Docente responsável: A.J.Proença

Vista da Rua do Souto no Séc. XVI

 

Direitos de Autor & Copyright
Avisos
| Equipa docente | Objectivos  | Resultados da aprendizagem | Programa | Planificação | Bibliografia | Notas de apoio | Sumários | Avaliação | Autoavaliação | Projecto 

(2006/2007)

Ultima Modificação: 22 Abr 2008

 

 departamento de informática

Equipa docente

Alberto José Proença
email: aproenca<at>di.uminho.pt
Horário de atendimento:  Terça 16:00 - 18:00 ; Quinta 14:00 - 17:00

 

Topo...


Objectivos

Gerais

Os Sistemas de Computação, enquanto UC integrada na área científica de Engenharia de Computadores (e da Computação), podem ser vistos sob a perspectiva de um engenheiro de electrónica - como funciona e como se constrói um computador - ou sob a perspectiva de um cientista da computação - como funciona e como tirar partido de um computador.
Sendo esta UC leccionada a uma licenciatura em Ciências de Computação, nos objectivos gerais a ênfase será colocada nos aspectos relacionados com a compreensão da funcionalidade de um computador, a análise das suas limitações e o aproveitamento das suas potencialidades.

De formação

Os objectivos de formação definem as expectativas da equipa docente quanto ao funcionamento e resultados previstos para a UC. Nesta perspectiva, a equipa pretende com esta UC que os alunos adquiram:
(i) conhecimentos de base relativos ao funcionamento dum computador,
(ii)
capacidades de utilização consciente e eficiente das funcionalidades de um computador.
(iii)
aptidões técnicas na utilização de instrumentos/ferramentas de análise, na correcção e/ou melhoria de desempenho na execução de programas, e
(iv) aptidões transversais no contexto com ênfase no raciocínio crítico e criativo, no planeamento e organização das actividades, no trabalho de grupo, e na elaboração de relatórios escritos e respectiva apresentação oral.

No caso das competências específicas, os objectivo de formação são, mais concretamente:

 

Topo...


Resultados da aprendizagem

Gerais

Ao completar com sucesso a UC Sistemas de Computação, da Lic. Ciências de Computação, cada estudante deverá demonstrar que adquiriu um conjunto de conhecimentos, capacidades e aptidões que compreendem:

O grau de compreensão e de profundidade dos conhecimentos, capacidades e aptidões adquiridas poderá variar de estudante para estudante, havendo necessidade de detalhar os níveis de exigência requeridos para a obtenção de classificações distintas entre os estudantes aprovados, numa escala de 10 a 20.

Resultados esperados do processo de aprendizagem: detalhe

A lista detalhada dos resultados esperados do processo de aprendizagem da UC Sistemas de Computação é apresentada numa tabela, a qual estrutura o conjunto de conhecimentos e competências - que cada estudante deverá demonstrar ter conseguido alcançar - pelos principais temas/tópicos abordados na UC.
Essa tabela identifica os elementos (dessa lista detalhada dos resultados) que deverão ser obrigatoriamente cumpridos para cada um dos vários graus de exigência/qualidade.

Assim, ao completar com sucesso a UC Sistemas de Computação, da Lic. Ciências de Computação, cada estudante deverá demonstrar que adquiriu, de acordo com a tabela seguinte:
 - conhecimentos e capacidades mínimas indispensáveis para ficar Aprovado (especificados na coluna A); e
 - conhecimentos e capacidades complementares que correspondem a uma classificação final razoável, entre 11 e 14 (na coluna R); ou
 - conhecimentos e capacidades complementares que correspondem a uma boa classificação final, entre 15 e 18 (na coluna B); ou
 - conhecimentos e capacidades complementares que correspondem a uma classificação final excelente, 19 ou 20 (na coluna E).
 


Resultados esperados em LCC/SC (2007/08): demonstrar que consegue:
 


A

R

B

E

Conhecimentos e competências específicas de Arquitectura de Computadores

       

- Identificar formas de representação binária de informação num computador (textual, numérica, audiovisual ou de comandos de um processador), e
- descrever como a informação é efectivamente representada num computador

Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Analisar ficheiros de documentos (c/ texto) e distinguir entre formatos proprietários de formatos baseados em texto anotado

- Ö Ö Ö

- Reconhecer os sistemas de numeração (em especial o binário e o hexadecimal) e aplicar técnicas de conversão entre sistemas

Ö Ö Ö Ö

- Explicar a representação de números inteiros e reais (norma IEEE 754), visualizar a sua representação em binário, em ambiente laboratorial Linux/IA-32,
- ilustrar a representação de casos concretos através da resolução de problemas, e
- analisar as limitações de um sistema finito na representação de informação numérica

Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Descrever a estrutura interna de um computador tipo e caracterizar funcionalmente cada um dos seus principais módulos constituintes (CPU, memória, I/O e barramentos),
- caracterizar a melhoria de desempenho através da introdução de formas de paralelismo no hardware do CPU (SIMD, pipeline, superescalaridade) e da hierarquia de memória (níveis de cache e memória virtual)

Ö
-
Ö
-
Ö
Ö
Ö
Ö

- Identificar e caracterizar os principais níveis de abstracção presentes num computador (HLL, assembly, e linguagem máquina), ilustrar os mecanismos de conversão e análise entre níveis na sua utilização em laboratório (gcc, gdb, ...), ilustrar a execução, passo a passo, de uma instrução elementar em linguagem máquina, e
- explicar conceptualmente os mecanismos de conversão entre níveis

Ö

-
Ö

Ö
Ö

Ö
Ö

Ö

- Reconhecer as principais características de um instruction set (nomeadamente, analisar e avaliar as técnicas de especificação de operandos, caracterizar os registos necessários num CPU, identificar e relacionar formatos de instruções e identificar e caracterizar tipos de instruções),
- ilustrar a aplicação dessas características a diferentes arquitecturas de CPU (CISC ou RISC)

Ö

-
Ö

-
Ö

Ö
Ö

Ö

- Identificar e caracterizar a operação das instruções mais comuns no IA-32 ( transferência de informação, operações aritméticas/lógicas, controlo do fluxo de execução), aplicar técnicas de codificação - a variáveis escalares, arrays, estruturas de controlo e funções - de uma HLL imperativa, e analisar e interpretar código em assembly (no papel e no laboratório),
- compreender a estrutura do código e dos contextos gerados por um compilador para suporte à invocação de procedimentos e funções (em HLL) e analisá-la no laboratório,
- entender e aplicar técnicas de engenharia inversa a código binário (no papel e no laboratório),
- compreender a organização em memória e métodos de acesso e manipulação de dados estruturados em C, e respectiva análise da codificação para assembly, e
- analisar comparativamente a implementação de funções em modelos de arquitectura distintos (RISC versus IA-32)


Ö



-

-
-

-

Ö



Ö

-
-

-

Ö


Ö

Ö
Ö

-

Ö


Ö

Ö
Ö

Ö

- Identificar e descrever as métricas que caracterizam o desempenho da execução de programas, distinguir técnicas de optimização de desempenho dependentes e independentes da máquina, descrever, aplicar e avaliar as técnicas de desempenho independentes da máquina (as mais comuns),
- descrever, aplicar e avaliar técnicas de desempenho dependentes da máquina (processador e memória), aplicar técnicas de análise de desempenho baseadas no profiling de aplicações, e
- explicar as limitações na aplicação automática de técnicas de optimização pelos compiladores


-


-

-

Ö


-

-

Ö

Ö

-

Ö

Ö

Ö

- Distinguir escalas de tempo nos sistemas e técnicas de medição de desempenho,
- identificar e caracterizar técnicas de medição de tempos de execução de programas, e ilustrar a aplicação de contadores intervalares e de contadores de ciclos de clock

-
-
Ö
-
Ö
Ö
Ö
Ö

Competências genéricas

       

- Capacidade de utilizar adequada e correctamente os recursos electrónicos disponibilizados (Web, email), de aceder a toda a informação disponibilizada,
- de autonomamente aceder a fontes complementares de informação, e
- de selectivamente pesquisar, processar e arquivar informação complementar à UC

Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Capacidade de interpretar correctamente os guiões e listas de problemas disponibilizados,
- de interpretar os manuais e interactuar eficientemente com as ferramentas informáticas de análise e debugging, e
- de criativamente resolver os problemas mais complexos com base na informação disponibilizada

Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Capacidade de comunicação escrita (em Português) na resolução de problemas e nas provas escritas,
- de comunicação escrita na elaboração de textos sucintos (relatórios, questões de desenvolvimento,  ...), e eventual defesa oral, e
- de comunicação escrita (noutra língua) e/ou oral em exposições de temas/tópicos

Ö
-
-
Ö
Ö
-
Ö
Ö
-
Ö
Ö
Ö
         

 

Topo...


Programa

Organização e estrutura de um computador

Conceito de computador.
Representação da informação no computador: texto, números, informação multimédia e comandos codificados para o processador.
Sistemas de numeração e conversão de bases; representação binária de valores positivos e negativos.
Representação binária de valores reais em vírgula flutuante; a norma IEEE 754.

Análise da estrutura interna dum computador, com destaque para o processador e para a organização da memória.
Análise da execução de instruções num computador.
Níveis de abstracção num computador.
Mecanismos para execução de programas; introdução a um ambiente laboratorial (Intel IA-32 em Linux).

Análise da arquitectura do instruction set

Análise do funcionamento dum processador e respectivo instruction set: operações/operandos, acesso a dados, tipos e formatos de instruções, modelo de programação dum processador.

Análise do nível ISA do Intel IA-32 em Linux: operações aritméticas/lógicas e acesso a operandos, estruturas de controlo presentes em C, funcionamento das funções/procedimentos.

Análise comparativa do modelo de implementação numa arquitectura RISC versus IA-32.

Avaliação do desempenho de computadores

Metodologia de avaliação de desempenho de computadores.
Medição de tempos de execução de programas e respectiva análise prática e crítica.

Factores da arquitectura dum computador que influenciam o seu desempenho.
Breve introdução ao funcionamento dum processador em pipeline e respectivas limitações. 
Organização hierárquica da memória; noção e caracterização da cache.

 

Topo...


Bibliografia

Computer Organization and Architecture - Designing for PerformanceWilliam Stallings, Prentice Hall, 7th Ed., 2006

Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron,  Prentice Hall, 2002

Structured Computer Organization, Andrew S. Tanenbaum, 5th Ed., Prentice Hall, 2006

Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 3rd Ed., 2004
 

Informação diversa para apoio ao estudo desta UC será disponibilizada electronicamente, e devidamente referenciada nos sumários.

 

Topo...

 


Avaliação  


O funcionamento da UC de Sistemas de Computação está organizado em:

Nota1: existe controlo de presenças nas sessões teórico-práticas e com mais de 1/3 de faltas um estudante poderá não ser admitido a exame.
Nota2: embora a frequência às aulas teóricas seja obrigatória, não se irá excluir ninguém com base apenas no nº de faltas a estas aulas; contudo, recomenda-se a presença nestas sessões.
Nota3: a presença nas sessões TP é obrigatória, sendo recomendada a participação activa de cada estudante como elemento complementar de avaliação.
Nota4: as sessões tutoriais apenas funcionarão se houver recursos humanos disponíveis; a participação nestas é altamente recomendada, pois a experiência em UC's anteriores tem vindo a comprovar a sua importância no processo de aprendizagem e no sucesso alcançados pelos estudantes.

A avaliação nesta UC compreende 2 componentes principais:

Nota1: as  capacidades cognitivas e as aptidões intelectuais incluem a capacidade de aquisição, retenção, compreensão e aplicação dos conhecimentos adquiridos.
Nota2: as aptidões técnicas e transversais são essencialmente avaliadas em trabalhos práticos, que incluem a  pesquisa, análise e síntese de conceitos, e a construção e/ou modificação e execução controlada de programas desenvolvidos em C e assembly
Nota3: as provas escritas resumem-se essencialmente a 2 testes, contendo estes no seu todo um conjunto de 10 questões de resposta certa obrigatória, referente aos resultados mínimos de aprendizagem; esta é uma condição necessária (mas não suficiente) para se ter sucesso na disciplina; case o estudante falhe até 2 questões, ser-lhe-á dada uma segunda oportunidade para demonstrar que adquiriu essas competências em falta.
Nota4: a participação inclui a resolução dos TPC's, a leitura prévia dos guiões práticos e a participação activa nas sessões TP; esta componente é opcional.
Nota5
: o trabalho prático  será avaliado em datas definidas, através da entrega de relatórios de grupo e defesa em grupo e individual do trabalho realizado.
Nota6: a aprovação na UC exige a satisfação do conjunto mínimo de resultados de aprendizagem nas 2 componentes de avaliação: nas provas escritas e nos trabalhos práticos; a não aprovação nos trabalhos práticos conduz à Não Admissão a exame.
Nota7
: para obtenção de uma classificação Excelente (
>18) poderão ser necessários elementos complementares de avaliação.

A classificação final nesta UC, para os estudantes Aprovados, é uma média pesada de vários elementos:

Classif_final = Max [ (10%*Particip + 30%*TrabalhoP + 60%*Prova_escrita) , (33%*TrabalhoP + 67%*Prova_escrita) ]

 

Topo...


Direitos de Autor & Copyright

Esta publicação - incluindo a sua faculdade de impressão - e respectivos conteúdos - que poderão incluir reproduções parciais de obra(s) alheia(s) devidamente citadas, com a indicação do autor, título da obra, editor ou outra fonte - destinam-se exclusivamente aos alunos da UC de Sistemas de Computação, da Lic. Ciências da Computação, da Universidade do Minho, para uso pessoal e fins de aprendizagem electrónica (e-learning) e não revestem qualquer finalidade lucrativa ou comercial.
Qualquer outra reprodução, total ou parcial, desta obra, por qualquer suporte, modo ou processo, nomeadamente processo electrónico, mecânico ou fotográfico, incluindo fotocópia, a modificação da obra, a sua comunicação pública, a sua distribuição através de aluguer ou comodato, sem qualquer autorização escrita do autor, é ilícita e passível de procedimento judicial contra o infractor.

Topo...

 


Página mantida por aproenca@di.uminho.pt
Ultima Modificação: 22 Abr 2008