Sei sulla pagina 1di 53

INF01202

Algoritmos e Programação
Turmas K/L
Prof. Marcelo Walter
marcelo.walter@inf.ufrgs.br

INF 01202 - Marcelo Walter - Aula 01 1


Cursos de Excelência

• Ciência da Computação
• Engenharia da
Computação

INF 01202 - Marcelo Walter - Aula 01 2


Algoritmos….e Programação…

O que exatamente
significa isso e o que
vamos ver/fazer/aprender
nesta disciplina???

INF 01202 - Marcelo Walter - Aula 01 3


Como os
computadores são
flexíveis?
Uma calculadora

Um computador
INF 01202 - Marcelo Walter - Aula 01 4
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas

Um computador
INF 01202 - Marcelo Walter - Aula 01 5
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas
Uma câmera fotográfica

Um computador
INF 01202 - Marcelo Walter - Aula 01 6
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas
Uma câmera fotográfica
Um editor de textos

Um computador
INF 01202 - Marcelo Walter - Aula 01 7
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas
Uma câmera fotográfica
Um editor de textos
Um localizador

Um computador
INF 01202 - Marcelo Walter - Aula 01 8
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas
Uma câmera fotográfica
Um editor de textos
Um localizador
Um telefone

Um computador
INF 01202 - Marcelo Walter - Aula 01 9
Como os
computadores são
flexíveis?
Uma calculadora
Um player de músicas
Uma câmera fotográfica
Um editor de textos
Um localizador
Um telefone
Um jogo, etc, etc, etc…
Um computador
INF 01202 - Marcelo Walter - Aula 01 10
Como os
computadores são
Uflexíveis?
m mesm
p o o h ardwa
de exe
Uma calculadora
re
taplayer cu t ar i
Um
r e de músicas
fa s difer nfinitas
Uma câmera fotográfica
Um editor de textos
e ntes!!!
Um localizador
Um telefone
Um jogo, etc, etc, etc…
Um computador
INF 01202 - Marcelo Walter - Aula 01 11
Áreas de Atuação?

INF 01202 - Marcelo Walter - Aula 01 12


Quem…argh…é….você??? Aluno de INF01202 da
UFRGS!!
FAQs
Frequently Asked Questions

INF 01202 - Marcelo Walter - Aula 01 14


Aulas
• 2 encontros aulas teóricas
• 1 encontro aula laboratório
• Presença controlada aula à aula! (75% obrigatório
– regimento UFRGS)
• 90 horas-aula = 45 encontros
• Máximo de 12 faltas
• Aulas práticas valem presença
• Entrega dos trabalhos na aula prática vale nota

INF 01202 - Marcelo Walter - Aula 01 15


Monitoria
• Gabriel Moro (aluno de
mestrado)

gabrielhmoro@gmail.com

INF 01202 - Marcelo Walter - Aula 01 16


Recursos
• Página da disciplina
– moodle.inf.ufrgs.br
– INF01202 – Algoritmos e Programação (2020/1
Turmas K e L)
– Senha: ALG_PROG_2020_1
• LEITURA OBRIGATÓRIA DAS NOTÍCIAS E
AVISOS POSTADOS NO AMBIENTE MOODLE!!

INF 01202 - Marcelo Walter - Aula 01 17


INF 01202 - Marcelo Walter - Aula 01 18
INF 01202 - Marcelo Walter - Aula 01 19
Tamo Junto
Objetivo
Auxílio ao
desenvolvimento
da capacidade
acadêmica dos
alunos para o
melhor exercício
de suas funções
sociais e
profissionais.

INF 01202 - Marcelo Walter - Aula 01 20


www.facebook.com/inf01202

INF 01202 - Marcelo Walter - Aula 01 21


Avaliação da Disciplina

Média Final = 0,3*P1 + 0,45*P2 + 0,15*AP + 0,1*TF

Trabalho
Prova 1 Prova 2 Aulas Final*
Práticas
* pré-requisito para
Alunos que não atingiram a média 6, podem fazer conceito final A e
recuperação sobre toda matéria. Se a média entre a para fazer a
prova de recuperação e a Média Final for maior do que recuperação
6.0, o aluno será aprovado com C
INF 01202 - Marcelo Walter - Aula 01 22
Avaliação da Disciplina
Notas Conceito
[8.5,10] A Datas das Provas
[7.5,8.4] B P1: 29/abr
[6,7.4] C P2: 22/jun
[0,5.9] D Rec: 06/jul
Sem frequência FF

INF 01202 - Marcelo Walter - Aula 01 23


Calendário

INF 01202 - Marcelo Walter - Aula 01 24


Calendário

INF 01202 - Marcelo Walter - Aula 01 25


Bibliografia

INF 01202 - Marcelo Walter - Aula 01 26


INF 01202 - Marcelo Walter - Aula 01 27
INF 01202 - Marcelo Walter - Aula 01 28
Não existe o gene de
programador
As diferenças em habilidades que
vemos em alunos aprendendo a
programar, são decorrentes da
experiência e aprendizado, não da
genética*

*https://cacm.acm.org/blogs/blog-cacm/189498-top-10-myths-about-teaching-computer-science/fulltext

INF 01202 - Marcelo Walter - Aula 01 29


A Necessidade da Prática

INF 01202 - Marcelo Walter - Aula 01 30


A Necessidade da Prática

INF 01202 - Marcelo Walter - Aula 01 31


A Necessidade da Prática

INF 01202 - Marcelo Walter - Aula 01 32


INF 01202 - Marcelo Walter - Aula 01 33
O que faz um computador?
• Diferentes tarefas serão
executadas por diferentes
programas
• Programa é uma “receita”
• Sequência correta de
instruções
– O que fazer
– Quando fazer
• Precisamos uma linguagem
para escrever as receitas

INF 01202 - Marcelo Walter - Aula 01 34


O que faz um computador?
• Computador como máquina UNIVERSAL (1936!)
• Evolução da idéia de máquina para manipular
conhecimento/informação

Alan Turing
INF 01202 - Marcelo Walter - Aula 01 35
O que faz um computador?
• Computador como máquina UNIVERSAL (1936!)
• Evolução da idéia de máquina para manipular
conhecimento/informação

Alan Turing
INF 01202 - Marcelo Walter - Aula 01 36
Dica de filme

INF 01202 - Marcelo Walter - Aula 01 37


Objetivos da Disciplina
• Introduzir o uso do computador na solução de
problemas, através da construção de
PROGRAMAS

INF 01202 - Marcelo Walter - Aula 01 38


Objetivos
• “Computational Thinking”
• Habilidades e Limites da computação
• Mapear problemas em “algo computacional”
• Pensar como cientistas da computação
• “Computational problem solving”

INF 01202 - Marcelo Walter - Aula 01 39


O que vamos fazer na disciplina
1. Análise do problema
2. Escolha de uma solução para resolver o
problema (às vezes temos mais de uma
possibilidade)
3. Construção do algoritmo que implementa a
solução do problema
4. Escrever o algoritmo numa linguagem de
programação
5. Teste/Execução do programa
INF 01202 - Marcelo Walter - Aula 01 40
Qual linguagem usar?

INF 01202 - Marcelo Walter - Aula 01 41


• Linguagem de alto-
nível
• Geral

INF 01202 - Marcelo Walter - Aula 01 42


Ranking 2018 - IEEE

https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019

INF 01202 - Marcelo Walter - Aula 01 43


Elaboração de um Programa
Decomposição
Estruturação
Problema Análise

Programa Algoritmo

INF 01202 - Marcelo Walter - Aula 01 44


Processo de geração de um Programa
• Análise e Definição do Problema
• Projeto do Algoritmo Sem Computador
• Validação do Algoritmo (teste de mesa)

• Tradução do Algoritmo para uma linguagem de


programação (codificação)
No Computador
• Compilação
• Teste e Depuração
• Execução
INF01202 - Marcelo Walter - Aula 02 45
Análise e Definição do Problema
üLer atentamente o enunciado do problema, até
entendê-lo bem.
üIdentificar os dados de entrada.
üIdentificar as saídas (resultados esperados).
üO que o programa deve fazer (objetivo), isto é,
como transformar as entradas em saídas?
üIdentificar se existem valores ou dados
intermediários, usados para transformar as
entradas nas saídas.
üPode ser dividido em subproblemas?

INF01202 - Marcelo Walter - Aula 02 46


Necessidade de desenvolver o pensamento
lógico!
Especificar a sequência correta, senão o
resultado é inesperado…

INF 01202 - Marcelo Walter - Aula 01 47


Necessidade de desenvolver o pensamento
lógico!
Especificar a sequência correta, senão o
resultado é inesperado…

INF 01202 - Marcelo Walter - Aula 01 48


Necessidade de desenvolver o pensamento
lógico!
Especificar a sequência correta, senão o
resultado é inesperado…

INF 01202 - Marcelo Walter - Aula 01 49


Definição de Algoritmo

“Algoritmo é uma sequência finita e lógica


de instruções ou passos básicos,
especificados de acordo com uma
determinada linguagem e que serve para
resolver um determinado problema.”

IMPORTANTE: Um bom algoritmo pode ser implementado em qualquer


linguagem! Por isso precisamos aprender a escrever bons algoritmos!!

INF01202 - Marcelo Walter - Aula 02 50


Algoritmo - Propriedades
• Possui um estado inicial
• Contém uma sequência lógica e finita de ações
(comandos) claras e precisas, com fluxo de execução
baseado em:
– Sequência
– Seleção condicional (se isto, então aquilo)
– Iteração (repetição, enquanto isto)
• Possui dados de entrada
• Produz dados de saída corretos
• Possui estado final previsível
• Deve ser eficaz (executa em tempo razoável)

INF01202 - Marcelo Walter - Aula 02 51


Normas importantes para algoritmos
• Identificar (dar um nome) ao algoritmo
• Incluir no início do algoritmo sua finalidade e entradas
e saídas
• Usar apenas um comando por linha
• Usar indentação (recuo das margens) para indicar a
hierarquia do comando
• Utilizar espaços e linhas em branco para maior
legibilidade

Programa = Algoritmo Traduzido!!


INF01202 - Marcelo Walter - Aula 02 52
(B) (E)
Qual a
sequência
correta para
um bom
chimarrão?
(A) (F)

(G)
(D)

(H)
(C)

INF 01202 - Marcelo Walter - Aula 01 53

Potrebbero piacerti anche