You are on page 1of 26

Universidade de Trás-os-Montes e Alto Douro

Algoritmia & Programação


2017/2018

Pedro Melo-Pinto
pmelo@utad.pt

Algoritmia & Programação


02 Introdução

1
ALGORITMIA & PROGRAMAÇÃO 3 3 utad
Pedro Melo-Pinto 2017

Objectivos

Obter competências para desenvolver programas para computador:


ob01
identificação e entendimento do papel dos algoritmos na resolução estruturada de problemas;
ob02
concepção e formalização de resolução de problemas através de uma linguagem algorítmica;
ob03
conhecimento das estruturas básicas componentes das linguagens de programação (imperativas);
ob04
conhecimento das metodologias básicas de resolução de problemas clássicos;
Ob05
contextualizar a programação de forma a que seja entendido o ciclo de desenvolvimento de software.

ob06 implementação destes conhecimentos através de uma linguagem de programação


abrangente e amplamente divulgada na área de Engenharia (linguagem C).

ALGORITMIA & PROGRAMAÇÃO 4 4 utad


Pedro Melo-Pinto 2017

Objectivos

O que fazemos aqui ?
Obter competências para desenvolver programas para computador:
ob01
identificação e entendimento do papel dos algoritmos na resolução estruturada de problemas;

ob02
concepção e formalização de resolução de problemas através de uma linguagem algorítmica;
ob03
conhecimento das estruturas básicas componentes das linguagens de programação (imperativas);
ob04
conhecimento das metodologias básicas de resolução de problemas clássicos;
Ob05
contextualizar a programação de forma a que seja entendido o ciclo de desenvolvimento de software.

ob06 implementação destes conhecimentos através de uma linguagem de programação


abrangente e amplamente divulgada na área de Engenharia (linguagem C).

2
ALGORITMIA & PROGRAMAÇÃO 5 5 utad
Pedro Melo-Pinto 2017

O que fazemos aqui ?

Aprender os fundamentos de programação


(mas não esquecer a Língua Portuguesa, falada e escrita)

Aprender a saber fazer (programas simples)


Saber fazer perguntas e criar um ritmo
próprio de aprendizagem

ALGORITMIA & PROGRAMAÇÃO 6 6 utad


Pedro Melo-Pinto 2017

O que fazemos aqui ?

Ou seja, desenvolver também as seguintes capacidades:


análise e pensamento crítico
saber que informação (ou dados) é relevante para um determinado problema e
onde a procurar
desenvolver capacidades de auto-aprendizagem e auto-regulação

3
ALGORITMIA & PROGRAMAÇÃO 7 7 utad
Pedro Melo-Pinto 2017

O que fazemos aqui ?
(que competências?)
Higher-Order Skills
Create
Reorganize elements into a new pattern, structure, or purpose (generate, plan, produce)
Evaluate
Come to a conclusion about something based on standards/criteria (checking, critiquing, judging)
Analyze
Subdivide content into meaningful parts and relate the parts (differentiating, organizing, attributing)
Apply
Use procedures to solve problems or complete tasks (execute, implement)
Understand
Construct new meaning by mixing new material with existing ideas (interpret, exemplify, classify, summarize,
infer, compare, explain)

Lower Order Skills


Remember
Retrieve pertinent facts from long-term memory (recognize, recall)

ALGORITMIA & PROGRAMAÇÃO 8 8 utad


Pedro Melo-Pinto 2017

O que fazemos aqui ?
(grande parte da aprendizagem faz-se fora da sala de aula)

helping the students in a lifelong learning process

to develop interest in further learning and


provide a base of concepts and skills that will facilitate further
learning, thinking, and appreciation

4
ALGORITMIA & PROGRAMAÇÃO 9 9 utad
Pedro Melo-Pinto 2017

INÍCIO

ALGORITMIA & PROGRAMAÇÃO 10 10 utad


Pedro Melo-Pinto 2017

VAMOS LIDAR COM


SISTEMAS DE COMPUTAÇÃO.

5
ALGORITMIA & PROGRAMAÇÃO 11 11 utad
Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?

ALGORITMIA & PROGRAMAÇÃO 12 12 utad


Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
1 Monitor
2 Motherboard
3 CPU (Microprocessor)
4 ATA sockets
5 Main memory (RAM)
6 Expansion cards
7 Power supply unit
8 Optical disc drive
9 Hard disk drive (HDD)
10 Keyboard
11 Mouse

6
ALGORITMIA & PROGRAMAÇÃO 13 13 utad
Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
INSIDE A(TYPICAL&OUTDATED) COMPUTER

ALGORITMIA & PROGRAMAÇÃO 14 14 utad


Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
INSIDE A(TYPICAL&OUTDATED) COMPUTER

7
ALGORITMIA & PROGRAMAÇÃO 15 15 utad
Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
INSIDE A(MAYBE OUTDATED) TABLET

ALGORITMIA & PROGRAMAÇÃO 16 16 utad


Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
INSIDE A(MAYBE OUTDATED) TABLET

8
ALGORITMIA & PROGRAMAÇÃO 17 17 utad
Pedro Melo-Pinto 2017

Como é um sistema 
de computação ?
INSIDE A(MAYBE OUTDATED) SMARTPHONE
Simplified view of a
smartphone board

ALGORITMIA & PROGRAMAÇÃO 18 18 utad


Pedro Melo-Pinto 2017

EXISTEM MAIS

9
ALGORITMIA & PROGRAMAÇÃO 19 19 utad
Pedro Melo-Pinto 2017

Para que serve ?

ALGORITMIA & PROGRAMAÇÃO 20 20 utad


Pedro Melo-Pinto 2017

O maior impacto do uso de


Para que serve ?
Porquê os sistemas de computação ?

sistemas de computação tem sido


na área da Engenharia
Electrotécnica

O desenho, análise e operação de Aplicações de programação (de sistemas 


sistemas eléctricos e electrónicos de computação) em Engenharia 
foi dominada pelos sistemas de Electrotécnica e de Computadores
computação, devido às naturais
facilidades de interface e aos
ganhos de velocidade e eficácia

10
ALGORITMIA & PROGRAMAÇÃO 21 21 utad
Pedro Melo-Pinto 2017

Para que serve ?

Aplicações de programação (de sistemas 
de computação) em Engenharia 
Electrotécnica e de Computadores
Algumas áreas de actuação

Arquitecturas e algoritmos de processamento de sinal


Comunicações
Robótica
Sistemas embebidos
Novos sistemas de computação e computação de alta eficácia
Redes internet, multimedia, wireless
Segurança
Tecnologias sustentáveis para sistemas de comunicação (informação) e computação

ALGORITMIA & PROGRAMAÇÃO 22 22 utad


Pedro Melo-Pinto 2017

Para que serve ?

A Engenharia Mecânica está ligada Aplicações de programação (de 


tradicionalmente com o desenho sistemas de computação) em 
análise e fabrico de dispositivos Engenharia Mecânica
mecânicos, que vão desde
automóveis e aviões até máquinas
O que é ?

de café ou impressoras, e inclui


Esta complexidade requere frequentemente a
campos como a cinemática, a
dinâmica e a termodinâmica (e utilização de sistemas de computação,
fluídos). podendo usar-se ferramentas como
Estes campos involvem Mathematica e Matlab na sua resolução.
habitualmente cálculo matemático
de alguma complexidade. Mas se utilizarmos linguagens mais próximas
da “linguagem” do sistema (C, Pascal, etc.)
mais rápido o processo se torna.

11
ALGORITMIA & PROGRAMAÇÃO 23 23 utad
Pedro Melo-Pinto 2017

Para que serve ?
NA PRÁTICA A Aplicações de programação (de 
MAIORIA DOS sistemas de computação) em 
Engenharia Mecânica

ENGENHEIROS MECÂNICOS SÓ NE-


CESSITA DE RECORRER A FERRAMEN-
TAS COMO O MATLAB (OU MATHEMATICA)
Então porquê estudar
linguagens como o C ?

ALGORITMIA & PROGRAMAÇÃO 24 24 utad


Pedro Melo-Pinto 2017

Para que serve ?

Então porquê estudar


linguagens como o C ?
Porque se entendermos como este tipo de linguagens funciona
(quais os seus mecanismos) ganharemos de um modo fácil um entendimento
intuitivo do funcionamento das ferramentas de mais alto nível.

E, mais importante, ganhamos agilidade e capacidade


de lidar com as máquinas de hoje que têm bastante
mais do que componentes mecânicos
(incluem frequentemente sistemas de computação)

12
ALGORITMIA & PROGRAMAÇÃO 25 25 utad
Pedro Melo-Pinto 2017

Para que serve ?

A Engenharia de Energias é uma área Aplicações de programação (de 


abrangente que inclui a eficiência sistemas de computação) em 
O que é ?

energética, os serviços de energia,


Engenharia de Energias
gestão industrial, tecnologias de
energias alternativas e entendimento
das normas ambientais.

ALGORITMIA & PROGRAMAÇÃO 26 26 utad


Pedro Melo-Pinto 2017

Para que serve ?

Aplicações de programação (de 
sistemas de computação) em 
Engenharia de Energias

Energy efficiency and energy management


Renewable, green and alternative energy
Que áreas de actuação inclui ?

Combined heat & power / cogeneration / distributed generation


Smart grid and electric metering innovations
Integrated building automation & energy management
Lighting efficiency
HVAC (heating, ventilation, and air conditioning) systems and controls
Thermal storage and load management
Boilers and combustion controls
Solar and fuel cell technologies
Applications specific to energy management programs
Energy services, energy procurement and project financing

13
ALGORITMIA & PROGRAMAÇÃO 27 27 utad
Pedro Melo-Pinto 2017

Para que serve ?

Aplicações de programação (de 
sistemas de computação) em 
Engenharia de Energias

Partilha com
estas engenharias
as incorporações Electrical Mechanical
Engineering Engineering
de sistemas
computação na
sua área
Grande parte das suas áreas são comuns com que engenharias ?

ALGORITMIA & PROGRAMAÇÃO 28 28 utad


Pedro Melo-Pinto 2017

Para que serve ?

A Engenharia de Gestão é uma forma Aplicações de programação (de 


especializada de gestão que é neces- sistemas de computação) em 
sária para liderar com sucesso
Engenharia e Gestão Industrial
projectos e pessoal técnico ou de
engenharia. O termo pode ser usado
O que é ?

para descrever quer a gestão funcional


como a de projetos.

Requer normalmente treino e


experiência em gestão geral e em
disciplinas específicas da área de
engenharia em análise.

14
ALGORITMIA & PROGRAMAÇÃO 29 29 utad
Pedro Melo-Pinto 2017

Para que serve ?

Aplicações de programação (de 
sistemas de computação) em 
Engenharia e Gestão Industrial
Algumas das áreas

Operations research and supply chain management


Information technologies
Decision engineering
Management of Technology

ALGORITMIA & PROGRAMAÇÃO 30 30 utad


Pedro Melo-Pinto 2017

Para que serve ?

Aplicações de programação (de 
sistemas de computação) em 
Engenharia e Gestão Industrial

Partilha com
Industrial
estas áreas as Management
Engineering

incorporações de
sistemas
Engineering
computação na (other)

sua área
Grande parte das suas áreas são comuns com que engenharias ?

15
ALGORITMIA & PROGRAMAÇÃO 31 31 utad
Pedro Melo-Pinto 2017

Engenharia
Gestão
} necessita / utiliza
sistemas de computação

complexidade | interface | velocidade | eficácia

ALGORITMIA & PROGRAMAÇÃO 32 32 utad


Pedro Melo-Pinto 2017

POR OUTRO LADO


UMA REALIDADE (AINDA +) RECENTE

16
ALGORITMIA & PROGRAMAÇÃO 33 33 utad
Pedro Melo-Pinto 2017

Os sistemas
(máquinas) de hoje
utilizam grandes
quantidades de dados

ALGORITMIA & PROGRAMAÇÃO 34 34 utad


Pedro Melo-Pinto 2017

IS THE NEW OIL

Clive Humby, 2006


Gerd Leonhard, 2009

17
ALGORITMIA & PROGRAMAÇÃO 35 35 utad
Pedro Melo-Pinto 2017

IS THE NEW OIL


it’s only useful when it’s refined!

Jess Greenwood, 2011

ALGORITMIA & PROGRAMAÇÃO 36 36 utad


Pedro Melo-Pinto 2017

IS THE NEW OIL


we need to find it, extract it,
distribute it and monetize it.

David Buckingham, 2013

18
ALGORITMIA & PROGRAMAÇÃO 37 37 utad
Pedro Melo-Pinto 2017

the amount of useful information isn´t

David Buckingham, 2013

ALGORITMIA & PROGRAMAÇÃO 38 38 utad


Pedro Melo-Pinto 2017

most of it is noise
the amount of useful information isn´t

David Buckingham, 2013

19
ALGORITMIA & PROGRAMAÇÃO 39 39 utad
Pedro Melo-Pinto 2017

Então
para que serve ?

a programação tornou-se fundamental


para quem lida com sistemas/máquinas
(que incorporam normalmente sistemas de computa-
ção e trabalham com grandes conjuntos de dados)

ALGORITMIA & PROGRAMAÇÃO 40 40 utad


Pedro Melo-Pinto 2017

É uma necessidade
(tal como o é a linguagem)

20
ALGORITMIA & PROGRAMAÇÃO 41 41 utad
Pedro Melo-Pinto 2017

exemplos

3
(do trabalho de investigação que faço)

ALGORITMIA & PROGRAMAÇÃO 42 42 utad


Pedro Melo-Pinto 2017

Tamanho uma imagem: 1Mb

21
ALGORITMIA & PROGRAMAÇÃO 43 43 utad
Pedro Melo-Pinto 2017

spectral data
from 1040 wavelenghts
[380-1023]nm
resolution: 0.6nm

ALGORITMIA & PROGRAMAÇÃO 44 44 utad


Pedro Melo-Pinto 2017

spectral data
from 1040 wavelenghts
[380-1023]nm
resolution: 0.6nm

22
ALGORITMIA & PROGRAMAÇÃO 45 45 utad

INTELIGÊNCIA
Pedro Melo-Pinto 2017

Tamanho uma imagem: < 1Mb


Cada amostra corresponde a
96 imagens.

ARTIFICIAL
ALGORITMIA & PROGRAMAÇÃO 46 46 utad
Pedro Melo-Pinto 2017

PARA ONDE OLHAMOS QUANDO VEMOS?

23
ALGORITMIA & PROGRAMAÇÃO 47 47 utad
Pedro Melo-Pinto 2017

ALGORITMIA & PROGRAMAÇÃO 48 48 utad


Pedro Melo-Pinto 2017

24
ALGORITMIA & PROGRAMAÇÃO 49 49 utad
Pedro Melo-Pinto 2017

Tamanho uma imagem: < 1Mb


Sequências de milhares de
imagens.

ALGORITMIA & PROGRAMAÇÃO 50 50 utad


Pedro Melo-Pinto 2017

conselhos

2
(da minha experiência de programador e de professor)

25
ALGORITMIA & PROGRAMAÇÃO 51 51 utad
Pedro Melo-Pinto 2017

OS DOCUMENTOS DE APOIO
ÀS AULAS DISPONIBILIZADOS
NÃO SÃO TUDO
(ESTUDEM PRINCIPALMENTE/TAMBÉM
PELOS LIVROS, UNS COM OS OUTROS,
CONSULTEM A INTERNET, PRATIQUEM)

ALGORITMIA & PROGRAMAÇÃO 52 52 utad


Pedro Melo-Pinto 2017

COMO COM OUTRAS LINGUAGENS, O


VERDADEIRO CONHECIMENTO
SURGE DA PRÁTICA CONTINUADA.

PRATIQUEM, PRATIQUEM, PRATIQUEM

26

You might also like