computação e programação · dicionário priberam da língua portuguesa. 9/17/2015 12...

20
9/17/2015 1 D.E.M. – Área Científica de Controlo Automação e Informática Industrial Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 1 Apresentação da disciplina A Computação e a Programação Aplicações à Engenharia Mecânica Alinhamento da AT 1 Apresentação da disciplina A Computação e a Programação Aplicações à Engenharia Computação e Programação 2015 / 2016

Upload: vuongnhu

Post on 29-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

1

D.E.M. – Área Científica de Controlo Automação e Informática Industrial

Computação e ProgramaçãoMEMec, LEAN - 1º Semestre 2015-2016

Aula Teórica 1

• Apresentação da disciplina • A Computação e a Programação• Aplicações à Engenharia Mecânica

Alinhamento da AT 1

• Apresentação da disciplina

• A Computação e a Programação

• Aplicações à Engenharia

Computação e Programação 2015 / 2016

Page 2: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

2

Computação e Programação 2015 / 2016

Corpo docente* Somar a 218 416 000 se ligar de fora do IST

Prof. João Reis (responsável)

[email protected], Ext: 2190*

Prof. Duarte Valério

[email protected], Ext: 1545*

Prof. Mário Ramalho

[email protected], Ext: 3517*

Prof. Carlos Cardeira

[email protected], Ext: 1193*

3

Computação e Programação 2015 / 2016 4

Organização das aulas

• Aulas Teóricas (AT) 3 h semanais

• Aulas de Problemas (AP) 1,5 h semanais

(no laboratório LTI/LEMAC no

Pav. de Mecânica II)

• Horário de Dúvidas (HD) ≈ 10 h semanais

(no Pavilhão de Mecânica III,

em local a definir pelo docente)

Page 3: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

3

Computação e Programação 2015 / 2016

1 crédito ECTS = 28 h de trabalho (inclui actividades presenciais, avaliações e trabalho autónomo).

Créditos

Implica aprox. 105h de trabalho autónomo

5

Computação e Programação 2015 / 2016 6

Objectivos genéricos

• Desenvolver nos alunos competências que lhes permitam planear, desenvolver e manter programas de computador.

Ensinando:

• Uma abordagem sistemática para a criação de programas

• Como estruturar programas e dados de formas que são comuns a várias linguagens de programação

• A linguagem específica e ferramentas de programação do MATLAB.

Page 4: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

4

Computação e Programação 2015 / 2016

Programa da disciplina

Conceitos Básicos de Programação

Trabalhar com Dados Estruturados

Tópicos Complementares

semanas 1 a 5

semanas 6 a 9

semanas 9 a 13

(semana 14 revisões)

7

Co

nce

ito

s B

ásic

os

de

Pro

gram

ação Introdução à computação e ao ambiente MATLAB

Tipos de dados

Operações e expressões

Instruções básicas de entrada e saída de dados

Instruções de controloSelecção

Repetição

Abstracção procedimental e funções definidas pelo programador

Metodologia de desenvolvimento

Abordagem top-down

Algoritmos e documentação

Tipos de erros e testes

Computação e Programação 2015 / 2016 8

Programa da disciplina

Page 5: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

5

Trab

alh

ar c

om

Dad

os

Estr

utu

rad

os

Cadeias de caracteres (strings)

Conversão entre tipos de dados

Abstracção de dados e tipos de dados estruturados

Vectores e matrizes (arrays)

Estruturas (structs)

Células (cell arrays)

Leitura e escrita de ficheiros de texto

Algoritmos de manipulação de dados estruturados

Ordenação

Pesquisa

Computação e Programação 2015 / 2016 9

Programa da disciplinaTó

pic

os

Co

mp

lem

en

tare

s

Recursão

Definição e tipos de recursão

Métodos recursivos vs. métodos iterativos

Funções…

… com número variável de argumentos de entrada e de saída

… anónimas

… como argumentos para outras funções

Regressões, polinómios e números complexos em MATLAB

Introdução à linguagem C

Compilação de programas

Os Conceitos Básicos de Programação

e os Dados Estruturados em C

Introdução às interfaces gráficas (GUI) em MATLAB

Computação e Programação 2015 / 2016 10

Programa da disciplina

Page 6: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

6

Computação e Programação 2015 / 2016 11

Objectivos concretos

• Conhecer os recursos necessários a uma tarefa de computação, as limitações de um computador e os tipos de dados básicos utilizados nessas tarefas

• Ser capaz de traduzir problemas de programção em sequências de tarefas simples, controladas pelas estruturas de selecção e de repetição

• Ser capaz de utilizar o conceito de abstracção procedimental para solucionar problemas mais complexos

• Conhecer os passos básicos da metodologia de desenvolvimento de programas, e ser capaz de produzir documentação adequadaC

on

ceit

os

Bás

ico

s d

e P

rogr

amaç

ãoTr

abal

har

co

m D

ado

s Es

tru

tura

do

s

Computação e Programação 2015 / 2016 12

Objectivos concretos

• Conhecer as funções básicas de manipulação de cadeias de caracteres

• Saber tirar partido das conversões de tipo explícitas e estar consciente das conversões de tipo implícitas que ocorrem nalgumas operações

• Saber tirar partido do conceito de abstracção de dados para criar programas com capacidade de processar grandes quantidades de informação

• Saber criar programas que interagem com ficheiros de texto (ASCII) para leitura ou armazenamento de dados

• Conhecer os algoritmos básicos de ordenação e pesquisa de dados

Page 7: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

7

Computação e Programação 2015 / 2016 13

Objectivos concretos

• Conhecer a diferença entre métodos recursivos e métodos iterativos, e saber quais as vantagens e desvantagens do uso da recursão

• Aprofundar a aplicação da abstracção procedimental tirando partido de algumas ferramentas avançadas associadas às funções no MATLAB

• Saber transportar os conceitos de programação adquiridos para outras linguagens de programação de paradigma imperativo (por exemplo a linguagem C)

• Conhecer os principais objectivos das interfaces gráficas e as ferramentas do MATLAB para a sua criação

Tóp

ico

s C

om

ple

me

nta

res

• Bibliografia recomendada:

• MATLAB: A Practical Introduction to Programming and

Problem Solving, 1st, 2nd or 3rd Edition, Stormy Attaway, Elsevier

• The C Programming Language, Second Edition, Brian Kernighan

and Dennis Ritchie, Prentice Hall

• Outros meios:

• Apresentações das ATs

• Fichas de trabalho das APs

(disponibilizadas na página da disciplina)

Bibliografia

Computação e Programação 2015 / 2016 14

Page 8: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

8

Computação e Programação 2015 / 2016 15

Avaliação de conhecimentos

• Projecto (Proj) (grupos de 2 alunos)

• Entregue em duas etapas (Parte 1 e Parte 2)

• Prova escrita (PE)

• Exame em qualquer da épocas (conta o melhor)

• Componente de avaliação contínua (AC)

• Atingir os objectivos em 3 actividades propostas, a realizar nas Aulas de Problemas das semanas:

19 – 23 de outubro

9 – 13 de novembro

7 – 11 de dezembro

Computação e Programação 2015 / 2016 16

Requisitos da avaliação

• Notas mínimas

• Nota Final

• NF = 50% Proj + 50% PA• PA = (PE + AC) ≤ 20 valores• AC Є [0, 1] val. consoante forem atingidos os

objectivos das 3 actividades (0.4 + 0.4 + 0.2)

• Proj = (35% Parte 1 + 65% Parte 2) ≥ 9.5 valores

• PE ≥ 9.5 valores

• NF ≥ 9.5 valores

Page 9: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

9

Computação e Programação 2015 / 2016 17

• Os alunos com NF > 17 valores, bem como os alunos cuja notaNF > PA + 2 valores, poderão ter que realizar uma prova oral paraconfirmação da classificação.

• O corpo docente reserva-se o direito de convocar para uma provaoral de confirmação da classificação qualquer grupo com nota deprojecto Proj > 9,4 valores. Apenas os elementos do grupopresentes na prova terão direito à nota confirmada.

• Em caso de dúvida sobre a avaliação de qualquer aluno(pressupondo que foi realizada) o corpo docente reserva-se odireito de o convocar para uma prova oral.

• Outros pormenores devem ser consultados na página da disciplina.

Confirmação de nota

Computação e Programação 2015 / 2016 18

Datas importantes

• Inscrições para o projecto: 28.09 a 9.10.2015

• Publicação do Enunciado do Projecto: 2.10.2015

• 1ª Entrega do Projecto (Parte 1): 30.10.2015

• 2ª Entrega do Projecto (Parte 2): 4.12.2015

• Provas de avaliação escrita:

• Época Normal: 6.01.2016

• Época de Recurso: 27.01.2016

Page 10: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

10

Computação e Programação 2015 / 2016 19

Horário de Dúvidas

NOTA IMPORTANTE: Pede-se aos alunos um aviso por e-mail ao docente com 24 horas de antecedência.

DV

Computação e Programação 2015 / 2016 20

Software essencial

• MATLAB

• MATLAB Student (aprox. €35)(https://www.mathworks.com/academia/student_version/)

• Utilização dos PCs do LEMAC – LTI

• Em alternativa:

• GNU Octave 4.0.0 (http://www.gnu.org/software/octave/)

ou

• FreeMat 4.2 (http://freemat.sourceforge.net/)

Page 11: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

11

Alinhamento da AT 1

• Apresentação da disciplina

• A Computação e a Programação

• Aplicações à Engenharia

Computação e Programação 2015 / 2016

Computação e Programação 2015 / 2016 22

Computação

nome feminino

1. ato ou efeito de computar; cálculo, contagem

2. cálculo orçamental

3. INFORMÁTICA tratamento de dados, de informação, através de um computador

Infopédia (Porto Editora)

(latim computatio, -onis)substantivo feminino

1. Acto ou efeito de computar. = CÁLCULO, CÔMPUTO

2. [Informática] Conjunto de conhecimentos e técnicas referentes ao uso de computadores.

3. [Informática] Processamento automático de dados através de computadores.

Dicionário Priberam da Língua Portuguesa

Page 12: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

12

Computação e Programação 2015 / 2016 23

Computação

Genericamente pode dizer-se que é uma sequência de açõesdeliberadas que visam a procura de soluções para um dadoproblema com base nos seus dados de entrada e utilizando umalgoritmo.

SaídaInformação

(dados)

Entrada

Processador

Armazenamento

Informação(solução)

Computação e Programação 2015 / 2016 24

Computação

Até meados do século XX o processo de computação baseava-sena utilização de suportes físicos, tipo caneta e papel, recorrendopor vezes a tabelas e ferramentas manuais ou mecânicas.

Entretanto com o advento dos computadores digitais, o termo computação tem sido associado sobretudo à criação e utilização de programas de computador.

Page 13: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

13

Computação e Programação 2015 / 2016 25

Programa

substantivo feminino

(…)

9. Conjunto de instruções, de dados ou de expressões registadas num suporte e necessárias para a execução de uma série de determinadas operações, pedidas a um computador.

Dicionário Priberam da Língua Portuguesa

• Um PROGRAMA DE COMPUTADOR é uma sequência de instruções que o computador deve executar para resolver um dado problema.

• O termo programa é usado normalmente para referir o código fonte ou oarquivo que contém a sua forma executável.

• O código fonte é um texto codificado que descreve numa dada linguagemde programação o algoritmo da tarefa de computação que o programapretende realizar.

Computação e Programação 2015 / 2016 26

Programa

• Ponto de vista do utilizador • Ponto de vista do programador

Código fonte

Page 14: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

14

Computação e Programação 2015 / 2016 27

Programação

nome feminino

(…)

5. INFORMÁTICA elaboração de um programa para computador

Infopédia (Porto Editora)

• Programação é um processo que inclui as fases de:

• Projecto• Escrita• Teste• Depuração de erros• Manutenção

do código fonte.

Computação e Programação 2015 / 2016 28

O que se pode aprender em CP

• Estruturar o raciocínio: como ir do problema ao algoritmo que o resolve

• Uma linguagem para codificar o algoritmo

• Técnicas para codificar eficazmente de forma a minimizar o trabalho de depuração de erros, a realização de testes, e facilitar a manutenção do programa

• Criar código reutilizável noutros problemas

• Entender o computador como uma ferramenta de cálculo, processamento de dados e de controlo de dispositivos

Page 15: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

15

Alinhamento da AT 1

• Apresentação da disciplina

• Conceito de Computação e de Programação

• Aplicações à Engenharia

Computação e Programação 2015 / 2016

• Simulação

O algoritmo utiliza modelos matemáticos para simular e prever o comportamento de sistemas reais

• Projecto estrutural

• Cálculo de interacções físicas

• Estudo dos fluxos de entidades em linhas de produção ou de serviços

• Etc.

Computação e Programação 2015 / 2016 30

Aplicações à Engenharia

Page 16: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

16

Computação e Programação 2015 / 2016 31

Aplicações à Engenharia

• Controlo

O algoritmo determina (eventualmente com base em modelos matemáticos) as acções a exercer sobre, ou por, sistemas reais tendo em vista um dado objectivo

• Controlo de máquinas

• Controlo de processos de produção

• Controlo de robôs

• Etc.

Computação e Programação 2015 / 2016 32

Aplicações à Engenharia

• Optimização

O algoritmo utiliza modelos matemáticos para garantir a escolha da melhor solução para um determinado problema dado um conjunto de critérios

• Optimização de projecto mecânico

• Optimização do desempenho de linhas de produção ou de serviços

• Etc.

Page 17: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

17

Computação e Programação 2015 / 2016 33

Aplicações à Engenharia

• Monitorização / Registo / Análise de dados

O algoritmo faz a gestão da aquisição de dados,

e apresenta, analisa e/ou salvaguarda esses dados

• Etc, etc, etc…

Computação e Programação 2015 / 2016 34

Exemplos de Aplicações

• Trabalhos na Área Cientifica de Controlo Automação e Informática Industrial:

• Robôs móveis “Rasteirinhos”

• Robôs Humanóides

• Robótica aérea

• Controlo de Robôs Flexíveis

• Reconstrução da superfície do fémur

• Cirurgia robótica

• Sistemas de cuidados de saúde

• Etc.

Page 18: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

18

Computação e Programação 2015 / 2016 35

Robôs móveis Rasteirinho

• Área: Robótica móvel

• Objectivo: Controlo de trajectória

• Ambiente de programação: MATLAB, Simulink, C++

≈ 30 ciclos/seg

Computação e Programação 2015 / 2016 36

Robótica Aérea

• Área: Robótica aérea

• Objectivo: Controlo de voo (estabilização, trajetória) de veículos aéreos.

•Ambiente de programação: MATLAB, Simulink, C++

Page 19: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

19

Computação e Programação 2015 / 2016 37

Controlo de Robôs Flexíveis

• Área: Robótica de manipulação

• Objectivo: Controlo de vibrações

• Ambiente de programação: MATLAB, Simulink

Computação e Programação 2015 / 2016 38

Reconstrução da superfície do fémur

• Área: Sistemas de apoio à cirurgia

• Objectivo: Criar um modelo da superfície de um órgão ou osso com base em imagens médicas

• Ambiente de programação: MATLAB

Page 20: Computação e Programação · Dicionário Priberam da Língua Portuguesa. 9/17/2015 12 Computação e Programação 2015 / 2016 23 Computação Genericamente pode dizer-se que é

9/17/2015

20

Computação e Programação 2015 / 2016 39

Cirurgia robótica

• Área: Robótica cirúrgica

• Objectivo: Melhorar a precisão em tarefas de cirurgia

• Ambiente de programação: MATLAB, Simulink

Computação e Programação 2015 / 2016 40

Referências

As aulas teóricas contêm contribuições dos profs. José Borges e Miguel Silva