Você está na página 1de 33

Apresentação da

disciplina. INF01202
Algoritmos e programação.

Prof. Santiago Valdés Ravelo


santiago.ravelo@inf.ufrgs.br
1 Introdução

2 Algoritmos

3 Programação

4 A disciplina
Introdução

O que é Ciência da Computação?

Ciência da Computação está tão relacionada aos computadores


quanto Astronomia aos telescópios, Biologia aos microscópios, ou
Química aos tubos de ensaio. A Ciência não estuda ferramentas.
Ela estuda como nós as utilizamos e o que descobrimos com elas.

Atribuída a Edsger Wybe Dijkstra


Introdução

Áreas de aplicação da computação


Introdução

O que faz um computador?

I Executa programas?

I O que são programas?

I Como os programas são criados?


Algoritmos

O que é um algoritmo?

Um ALGORITMO é descrito, geralmente, como uma


SEQUÊNCIA LÓGICA, FINITA E DEFINIDA DE AÇÕES
capazes de resolver um problema.

O conceito de algoritmo vai além da programação.


Algoritmos

Algoritmos em tarefas comuns

I Mascar chiclete.
I Fritar um ovo.
I Trocar pneu furado.
I Trocar uma lâmpada queimada.
I Calcular a média de duas notas.
Algoritmos

Algoritmos em tarefas comuns. Sugestões

Mascar chiclete:
1. Pegar o chiclete.
2. Retirar o papel.
3. Jogar o papel no lixo.
4. Colocar o chiclete na boca.
5. Enquanto o chiclete tiver sabor:
Mastigar o chiclete.
6. Jogar o chiclete no lixo.
Algoritmos

Algoritmos em tarefas comuns. Sugestões

Calcular a média de duas notas:


1. Ler a primeira nota.
2. Ler a segunda nota.
3. Somar as duas notas.
4. Dividir a soma por 2.
5. Imprimir o resultado da divisão.
Algoritmos

O que é imprescindível na proposta de um algoritmo?

I Compreender os requisitos do problema.


I Identificar as entradas.
I Identificar as saídas.
I Definir uma sequência lógica e finita de ações para solucionar
o problema.
I Garantir clareza e precisão dessas ações.
I Garantir a corretude das saídas.

O que acontece quando não verificamos esses itens?


Programação

O que é uma linguagem de programação?

I Meio de comunicação:

Indivíduo que deseja Computador


solucionar um problema

I Deve LIGAR o PENSAMENTO HUMANO com a


PRECISÃO requerida para o PROCESSAMENTO DA
MÁQUINA.
Programação

Execução de programas

Código-fonte Compilador Código-objeto

Código escrito em uma LP Código de máquina


(Programa) (Executável)
Programação

Como classificar LPs?

I Em relação ao NÍVEL:
I Baixo, Médio ou Alto.

I Em relação ao PARADIGMA:
I Imperativo, funcional, lógico, orientado a objetos etc.
Programação

O que é o nível?

O NÍVEL de uma LP é um indicativo da CAPACIDADE DE


ABSTRAÇÃO em relação ao hardware e o código da máquina que
a linguagem oferece ao programador.

A classificação por nível pode ser considerada como um espectro:


Código da máquina C Java Ruby

BAIXO MÉDIO ALTO

Assembly C++ Javascript


Programação

O que é o paradigma?

MODELO INTERPRETATIVO ou conceitualização de uma


REALIDADE.

Um PONTO DE VISTA que determina como uma REALIDADE


é entendida.
Programação

Paradigma imperativo
Programação

Paradigma imperativo

I LPs orientadas a AÇÕES, cada computação é uma


SEQUÊNCIA DE INSTRUÇÕES que manipulam variáveis.

I Baseados no conceito de ESTADO do programa e AÇÕES


que manipulam esses estados.

I Inclui subrotinas ou procedimentos como mecanismo de


estruturação (também conhecido como PROCEDURAL).
Programação

Paradigma imperativo

Pode ser estruturado ou não. LPs ESTRUTURADAS:

I Apresentam BLOCOS DE INSTRUÇÕES que que podem


ser considerados unidades do programa.
I Permitem a criação de PROCEDIMENTOS (funções).
I Garantem maior nível de ABSTRAÇÃO e
MODULARIDADE.
Programação

Fases para elaborar um programa

ENGENHARIA DE SOFTWARE
Levantar
requisitos
I Coleta, análise e
especificação de requisitos.
Projetar
I Algoritmo. Evoluir Ciclo de vida
algoritmos
do desenvolvimento
I Implementação. de softwares/sistemas

I Teste.
I Manutenção.
Testar Programar
A disciplina

Objetivos

Introduzir o uso do computador na resolução de problemas através


de desenvolvimento de programas em linguagens estruturadas. Para
isto faremos:

I Análise do problema.
I Escolha de uma solução.
I Projeção de um algoritmo para a solução escolhida.
I Implementação do algoritmo na linguagem de programação
imperativa estruturada C .
I Teste e execução da solução implementada.
A disciplina

Linguagem de programação C

Um programa em C é como uma dança rápida sobre chão encerado,


executada por pessoas segurando navalhas.
Waldi Ravens

C é excêntrico, defeituoso e um enorme sucesso.


Dennis M. Ritchie

Popularidade? TIOBE (clique aqui!)


A disciplina

Carga horária

6 horas semanais divididas em três encontros de 2 horas cada:


I 1 encontro com aulas teóricas nas terças.
I 1 encontro com aulas teóricas nas quintas.
I 1 encontro com aulas práticas nas sextas.

Somando um total 90 horas aulas em 45 encontros!

IMPORTANTE: Aprovação depende de 75% de presença!!! (12


faltas implica em reprovação)
A disciplina

Avaliação. Cálculo da média final

Itens que serão avaliados:

(P1 ) Primeira prova na metade do semestre.


(P2 ) Segunda prova no final do semestre.
(AP) Trabalhos das aulas práticas.
(TF ) Trabalho final.

Cálculo da média final:

MF = 0, 30P1 + 0, 45P2 + 0, 15AP + 0, 1TF .


A disciplina

Avaliação. Conceitos

Notas MF Conceito

[8.5, 10] A

[7.5, 8.4] B

[6, 7.4] C

[0, 5.9] D

IMPORTANTE: Sem importar a nota, quando a frequência é


menor que 75% o conceito é FF.
A disciplina

Avaliação. Recuperação

Alunos com conceito D (MF < 6 e frequência≥ 75%), se fizeram o


TRABALHO FINAL (TF > 0), podem fazer a Prova de
Recuperação (PR ).

MF +PR
2 Conceito

[6, 10] C

[0, 5.9] D
A disciplina

Avaliação. Sugestão de algoritmo

CALCULAR CONCEITO:
1. Se frequência < 75%, então FF.
2. Senão:
3. Se MF ≥ 8.5, então A.
4. Senão:
5. Se MF ≥ 7.5, então B.
6. Senão:
7. Se MF ≥ 6, então C.
8. Senão:
MF +PR
9. Se TF > 0 e 2 ≥ 6, então C.
10. Senão: D.
A disciplina

Ferramentas EAD

I Moodle INF

I URI Online Judge


A disciplina

Acesso à disciplina no Moodle

Passo 1 Abra a seguinte URL no seu navegador:


https://moodle.inf.ufrgs.br/

Passo 2 Acesse com suas credenciais na rede do INF: usuário e senha


cadastrados no dia da matrícula.

Passo 3 Em GRADUAÇÃO procure a disciplina:


INF01202 - Algoritmos e Programação (Turmas E e F) -
2019/2

Passo 4 Para se cadastrar na disciplina inserir a senha:


SENHA: INF01202-2019/2
A disciplina

Acesso à disciplina no URI

Passo 1 Abra a seguinte URL no seu navegador:

https://www.urionlinejudge.com.br/judge/en/disciplines/join/5231

Passo 2 Insira a seguinte chave privada para entrar na disciplina:

CHAVE PRIVADA: tYVmwWp


A disciplina

Bibliografia essencial

Edelweiss, N.; Livi, M. A. C. Al- Damas, L. Linguagem C. Rio de Salvetti, D. D.; Barbosa, L. M.
goritmos e Programação: com Janeiro: LTC, 2007. Algoritmos. São Paulo: Ma-
exemplos em Pascal e C. Série kron Books, 1998.
de Livros Didáticos Informática
UFRGS. Porto Alegre: Book-
man, 2014.
A disciplina

Bibliografia

Deitel, H.; Dietel, P. C How Goodrich, M. T.; Tamassia, R. Kernighan, B. W.; Ritchie, D.
to Program. Estados Unidos: Projeto de algoritmos :funda- M.. The C programming lan-
Prentice-Hall, 2007. mentos, análise e exemplos da guage. Englewood Cliffs: Pren-
internet. Porto Alegre: Book- tice Hall, 1988.
man, 2004
A disciplina

Bibliografia

I Harbison, S. P., III. Steele, Guy L., Jr.. C: manual de


referência. Rio de Janeiro: Ciência Moderna, 2002.

I Orth, A. I.. Algoritmos e programação :com resumo das


linguagens pascal e C. Porto Alegre: AIO, c2001.

I Senne, E. L. F. Curso de programação em C. São Paulo:


Visual Books, 2009.

I Ziviani, N. Projeto de Algoritmos Com Implementações em


Pascal e C. THOMSON PIONEIRA, 2004.
Apresentação da
disciplina. INF01202
Algoritmos e programação.

Prof. Santiago Valdés Ravelo


santiago.ravelo@inf.ufrgs.br

Você também pode gostar