Laboratórios de Informática › 40338

código no paco
40338
área científica
Informática
créditos
8
escolaridade
ensino prático e laboratorial (PL) - 3 horas/semana
idioma(s) de lecionação
Português, Inglês
objectivos

O objetivo principal desta disciplina é promover a aprendizagem de um conjunto de conceitos, metodologias, tecnologias e ferramentas ubíquas no domínio da engenharia de computadores. Será dado um foco particular aos temas que tenham uma relevância transversal num curso superior de engenharia de computadores, que fomentem o desenvolvimento do raciocínio algorítmico, ou promovam a aplicação de práticas fundamentais aos profissionais da área.

Competências:

Conhecimentos sobre diversas ferramentas fundamentais para diversas Unidades Curriculares do curso (Linux, máquinas virtuais, gestão de versões, produção de relatórios, edição de documentos, produção de apresentações, sistemas orientados ao eventos, etc.). Raciocínio algorítmico mais evoluído e melhor adaptado a lidar com situações de exceção. Conhecimentos elementares de eletrónica digital.

competências

No final desta disciplina os alunos deverão ser capazes de:
conhecer e descrever o hardware usual que compõe um computador,
explicar para que serve um sistema operativo,
usar um sistema Linux para tarefas correntes e de desenvolvimento de software,
usar a linha de comandos e conhecer os comandos básicos de UNIX,
compreender o sistema de ficheiros e o sistema de permissões UNIX,
instalar um sistema Linux, instalar software extra e gerir utilizadores em Linux,
criar e usar máquinas virtuais,
escrever relatórios técnicos,
produzir apresentações com boa qualidade,
usar LaTeX (& friends),
editar documentos e código de forma colaborativa,
usar um sistema de gestão de versões na produção de código,
automatizar tarefas com scripts bash e make,
conhecer os conceitos fundamentais de redes de comunicações TCP/IP,
usar ferramentas básicas de diagnóstico de redes,
produzir páginas web usando HTML, CSS e Javascript,
programar pequenas aplicações utilizando linguagens de scripting (python e/ou bash),
usar testes unitários e funcionais para auxiliar a depuração de código,
conhecer as noções de cifra de síntese (digest), cifra simétrica e cifra assimétrica e suas utilizações,
conhecer as noções de cifra contínua e cifra por blocos,
identificar algumas cifras de síntese, cifras simétricas e cifras assimétricas,
conhecer e usar formatos de dados CSV, JSON, XML,
compreender noções de amostragem e quantização de sinais e imagens,
manipular representações de dados áudio e de imagem não comprimidos,
criar pequenas bases de dados relacionais,
usar comandos SQL para interrogar e modificar uma base de dados,
criar pequenas aplicações web,
criar pequenas aplicações móveis,
programar um pequeno sistema com microcontrolador e eletrónica digital simples.

Uma vez que os trabalhos práticos são realizados em grupo,
espera-se ainda que os alunos desenvolvam as suas
capacidades de cooperação e comunicação.

conteúdos

Arquiteturas de computadores e sistemas operativos: Sistemas computacionais, Sistema operativo, Linux, Máquinas virtuais.

Produção de um trabalho de engenharia: Pesquisa de informação, Citação vs. cópia e plágio, Relatórios e apresentações. Uso de LaTeX, bibTeX, etc.

Colaboração e concorrência: Repartição de tarefas, Trabalho cooperativo, Gestão de versões.

Tecnologias Web: Documentos HTML, CSS, Conteúdos dinãmicos (Javascript).

Redes de computadores: Internet, Protocolos, pilha TCP/IP, Serviços complementares da Internet (e.g. DNS).

Segurança: Cifras de síntese, Cifras simétricas e assimétricas, Cifras contínuas e por blocos.

Sistemas de informação: Representação de dados CSV, JSON, XML, Representação de multimédia (audio, imagem), Bases de dados relacionais, SQL.

Tecnologias de programação: Compilação vs. interpretação, Introdução à linguagem python, Compilação cruzada.

Sistemas embutidos: Microcontroladores, Sensores e atuadores, Lógica, Máquinas de estados, Montagem de um circuito simples.

avaliação
A avaliação é contínua, de caráter teórico e prático, e inclui vários elementos de avaliação:

· Quatro minitestes individuais (MT1 a MT4 ), dois em cada semestre, focando-se nos temas tratados nas aulas.
· Dois trabalhos de aprofundamento dos temas das aulas (AP1 e AP2 ), um por semestre, realizados em grupo, envolvendo pesquisa, síntese, produção de um relatório e, eventualmente, apresentação oral.
· Dois projetos (Proj1 e Proj2 ), um em cada semestre, a realizar em grupo alargado (pelo menos 4 alunos). Ao longo de cada semestre será apresentado um tópico de projeto. A escolha tem de ser feita até à 10a semana de cada semestre.

A nota final resultará da fórmula
NF = 0.1MT1 + 0.1MT2 + 0.1MT3 + 0.1MT4 + 0.1AP1 + 0.1AP2 + 0.2Proj1 + 0.2Proj2.


As regras de avaliação poderão ser modificadas ao longo do ano por proposta dos
docentes e sujeitas à aprovação de uma maioria de alunos.

requisitos

Não se requer conhecimentos específicos prévios.

Ao longo do ano, requer-se alguns conhecimentos de programação e de sistemas digitais, adquiridos em UCs leccionadas em paralelo.

metodologia

As aulas serão Teórico Práticas (TP).

Incluem exposição e discussão dos conteúdos programáticos com recurso frequente a exemplos práticos.  A aprendizagem é reforçada através de exercícios práticos desenvolvidos pelos alunos, durante e depois das aulas.

Todos os conteúdos formativos estarão disponíveis na página da disciplina, em elearning.ua.pt. Existe um fórum de discussão que deve ser utilizado para o esclarecimento de dúvidas.

A página da disciplina e as contas de email da universidade são os meios de comunicação oficiais da disciplina. Devem ser consultadas com frequência.

bibliografia recomendada

Dada a larga abrangência de tópicos, as principais fontes de informação serão os guiões e slides das aulas. Nos guiões e na página da disciplina são incluídas referências para recursos externos adicionais.

Este sítio web utiliza cookies sem recolher informação pessoal que permita a identificação dos utilizadores. Ao navegar neste sítio está a consentir a sua utilização.saber mais
Para que esta página funcione corretamente deve ativar a execução de Javascript. Se tal não for possível, algumas funcionalidades poderão estar limitadas.