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
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)
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.
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
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
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
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
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
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
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/)
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
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.
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
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
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
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.
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.
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++
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
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
Top Related