Saltar para:
Logótipo
Você está em: Início > L.EIC018

Laboratório de Computadores

Código: L.EIC018     Sigla: LC

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia Informática e Computação

Ocorrência: 2023/2024 - 2S Ícone do Moodle

Ativa? Sim
Página Web: http://web.fe.up.pt/~pfs/aulas/lcom2223/
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Licenciatura em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
L.EIC 476 Plano Oficial 2 - 6 52 162

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

1- Enquadramento

 Os dispositivos periféricos são uma parte fundamental dum computador, sem a qual a utilidade ou a facilidade de uso dos computadores seriam significativamente inferiores. A importância destes dispositivos em sistemas baseados em computadores tem crescido desde os primórdios dos computadores (cerca de 1950) e continua com a difusão cada vez maior de sistemas embebidos. Contudo, a programação dos dispositivos periféricos usando a sua interface programática, i.e. a interface de "hardware", requer conhecimentos e técnicas específicas.

2- Objetivos Específicos

Os objetivos da unidade curricular são dotar os estudantes com conhecimentos essenciais para serem capazes de:

    • usar a interface de "hardware" de periféricos comuns;
    • desenvolver "software" de baixo nível, p.ex. "device drivers", e de "software" embebido;
    • usar a linguagem de programação C de modo estruturado;
    • desenvolver programas codificados em C e em “assembly”
    •  fazer “debugging” de forma sistemática (com base no método experimental científico)
    • utilizarem várias ferramentas de desenvolvimento de software (compiladores e compiladores cruzados, “assemblers”, “linkers”, "build automation tools", sistemas de controlo de versões)

3- Distribuição Percentual

Científica: 30%
Tecnológica: 70%

Resultados de aprendizagem e competências

Todos os estudantes que terminarem a unidade curricular com sucesso deverão compreender os principais modelos de acesso a dispositivos periféricos e ser capazes de os aplicar em programas de alto nível relativamente complexos.

 

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Considera-se como essencial para alcançar os objetivos acima enunciados, a aprovação a unidades curriculares (UC) cujo conteúdo é o das UCs:

    • Programação
    • Arquiteturas de Computadores
    • Sistemas Operativos

Programa

Periféricos de entrada/saída e seus modos de funcionamento. Mapeamento direto no espaço de endereçamento de memória.  Acesso a periféricos no modo "polled" e por interrupção. Interrupções nos processadores IA-32 e ARM e respetivos controladores de interrupções do PC, escrita de rotinas de interrupção. 

Periféricos típicos de um PC e de plataformas embebidas.

Programação na linguagem C: principais diferenças em relação à linguagem C++, métodos para estruturação do código. Organização da memória dum processo. Funções: mecanismo de chamada, passagem de parâmetros, armazenamento local e retorno de valores. Programação baseada em eventos. Máquinas de estados.

Criação e utilização de bibliotecas. Ligação estática de código objecto.  Programação combinada em C e "assembly". Técnicas sistemáticas para “debugging” baseadas no método científico experimental.

Criação e utilização de bibliotecas. Ligação estática de código objeto.

Utilização de ferramentas de desenvolvimento de software: cc, make, ar, diff, patch, Git, doxygen.

Bibliografia Obrigatória

Elecia White; Making Embedded Systems: Design Patterns for Great Software, O'Reilly Media, Inc., 2011. ISBN: 9781449302146

Bibliografia Complementar

Derek Molloy; Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux, Wiley, 2016. ISBN: 9781119188687

Observações Bibliográficas

 


Em situações excecionais (por exemplo, alunos Erasmus inscritos na unidade curricular), as aulas poderão ser lecionadas em Inglês.

Métodos de ensino e atividades de aprendizagem

"Aprender fazendo". Nas primeiras 10 das aulas laboratoriais os estudantes realizam em grupos de 2 estudantes  pequenos trabalhos práticos sobre periféricos comuns do PC ou em plataformas computacionais para sistemas embebidos e aplicando técnicas de programação específicas. Nas restantes aulas laboratoriais será realizado um projeto proposto pelos estudantes que deverá integrar a maioria dos periféricos e técnicas estudadas.

Nas aulas teóricas faz-se a exposição dos conceitos, tendo sempre em vista a sua aplicação prática, e discute-se os pormenores necessários à realização dos trabalhos práticos e do projeto.

Software

Doxygen
Minix 3
VirtualBox
CLANG compiler and assembler
Git sistema de controlo de versões

Palavras Chave

Ciências Físicas > Ciência de computadores > Arquitectura de computadores
Ciências Físicas > Ciência de computadores > Programação

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Teste 50,00
Trabalho laboratorial 50,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 30,00
Frequência das aulas 52,00
Trabalho laboratorial 80,00
Total: 162,00

Obtenção de frequência

Para a obtenção de frequência os estudantes deverão:
1) Ter uma nota mínima de 8 valores em pelo menos um dos testes de programação;
2) Ter uma classificação mínima de 10 valores no projeto;
3) Elaborar e demonstrar o projeto final de integração;
4) Preencher o formulário de auto-avaliação do projeto final de integração;
5) Não exceder o limite de faltas (25% das aulas previstas).


Fórmula de cálculo da classificação final

0,5 PP + 0,5 * min(Proj, PP+4)

onde:

PP = (PP1+PP2)/2

PP1, PP2 - classificação da primeira e da segunda provas de programação, respetivamente

Proj - classificação do projeto

Embora o projeto seja realizado em grupos de 4 estudantes, excecionalmente de 3 estudantes, membros do mesmo grupo podem ter classificações diferentes dependendo da sua contribuição.

Para aprovação na unidade curricular, os estudantes têm que:

  1. ter frequência;
  2. ter uma classificação mínima de 8 valores em cada teste de programação (PP1 >= 8 e PP2>=8)
  3. ter uma classificação mínima de 10 valores na média das provas de programação (PP >= 10).

Provas e trabalhos especiais

Não há.

Avaliação especial (TE, DA, ...)

A avaliação dos estudantes inscritos em regimes especiais, TE, DA, ..., é idêntica à dos estudantes inscritos em regime normal.

Melhoria de classificação

A classificação das  provas de programação pode ser melhorada (para cumprir requisitos de aprovação ou melhorar a nota) por realização duma prova única semelhante durante o período de recurso dos exames. Para aceder a esta prova é necessário ter frequência.

A classificação do projeto só pode ser melhorada na ocorrência seguinte da unidade curricular.

Observações

Em situações excecionais (por exemplo, alunos Erasmus inscritos na unidade curricular), as aulas poderão ser lecionadas em Inglês.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-08-04 às 23:19:58 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias