Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B...

23
Aula 1: Apresentac¸˜ ao,Motivac¸˜ ao e Conceitos B´ asicos Fernanda Passos Universidade Federal Fluminense Programac¸˜ ao de Computadores IV Fernanda Passos (UFF) Apresenta¸c˜ ao e Conceitos B´ asicos Programa¸ ao de Computadores IV 1 / 23

Transcript of Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B...

Page 1: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Aula 1: Apresentacao, Motivacao e Conceitos Basicos

Fernanda Passos

Universidade Federal Fluminense

Programacao de Computadores IV

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 1 / 23

Page 2: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Agenda

1 Estrutura da Disciplina

2 Motivacao

3 Alguns (Poucos) Conceitos Basicos

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 2 / 23

Page 3: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Agenda

1 Estrutura da Disciplina

2 Motivacao

3 Alguns (Poucos) Conceitos Basicos

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 3 / 23

Page 4: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Informacoes Gerais

Salas e HorariosTercas, 16:00 as 18:00, sala 302.Quintas, 16:00 as 18:00, sala 302.

[email protected]://www.ic.uff.br/˜fernanda

I Calendario.I Material didatico.I Informacoes.I Avisos.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 4 / 23

Page 5: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Foco e Objetivos

O Que Sera EstudadoNocoes Basicas de Programacao de Computadores.

I Solucao algorıtmica de problemas.I Estruturas basicas de algoritmos.I Estruturas basicas de dados.I Estudo da linguagem de programacao C.

Ao Final da Disciplina. . .Ser capaz de criar programas que resolvam problemas praticos.

I Pequeno e medio porte.Ser capaz de automatizar tarefas.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 5 / 23

Page 6: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Conteudo Programatico

Nocoes Basicas de Algoritmos.I Intuicao e Conceitos.I Formalizacao e Pseudo-Codigo.I Atribuicao e Expressoes.I Expressoes Logicas.I Entrada e Saıda de Dados.I Estruturas de Decisao.I Repeticao Definida.I Repeticao Indefinida.

Conceitos Basicos da Linguagem C.I Tipos de Variaveis e Constantes.I Operadores e Precedencia.I Estruturas de Decisao e Repeticao.I Entrada e Saıda de Dados.I Funcoes e Sub-rotinas.I Modularizacao.

Conceitos Avancados da Linguagem C.I Vetores e Matrizes.I Estruturas de Dados Derivadas.I Alocacao Dinamica.I Algoritmos Sobre Vetores.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 6 / 23

Page 7: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Bibliografia e Material de Apoio

Sobre AlgoritmosApostila de Construcao de Algoritmos.

I Prof. Leonardo Cruz da Costa.I DCC/UFF.

Sobre CProgramacao em C: um curso basico e abrangente.

I Prof. David Menoti.I DCC/UFMG.

Links e slides na pagina do curso.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 7 / 23

Page 8: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Avaliacao

ProvasDuas provas de pesos iguais:

Mp = P1 + P22

Reposicao: materia toda.

Avaliacao Contınuan exercıcios e m trabalhos.

I Valores de n e m a serem definidos.

Met =∑

ei +∑

tjn + m

Media Final

80% × Mp + 20% × Met

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 8 / 23

Page 9: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Calendario (Provisorio)

Abril26 Apresentacao, Motivacao, Conceitos28 Nao havera aula (Acolhimento Estudantil – En-

genharia)Maio

03 Algoritmos: Intuicao, Formalizacao: Pseudo-Codigo

05 Variaveis, Atribuicao e Expressoes10 Expressoes Logicas12 Entrada e Saıda de Dados17 Estruturas de Decisao, Repeticao Definida19 Repeticao Indefinida, Metodo Chines24 Linguagens, Introducao ao C26 Corpus Christi31 Nao havera aula (SBRC)

Junho02 Nao havera aula (SBRC)07 Variaveis, Constantes, Operadores e Expressoes

em C09 P114 Decisao/Repeticao em C, GOTO16 Leitura/Impressao, Funcoes Internas

21 Modularizacao, Sub-Rotinas e Funcoes23 Manipulacao de arquivos28 Estruturas de Dados, Vetores em C30 Vetores Multidimensionais e Matrizes

Julho05 Funcoes para Vetores/Matrizes07 Tipos Derivados e Alocacao Dinamica12 Algoritmos sobre vetores: ordenacao e busca14 P219 VR21 Vista da P2 e VR26 Nao havera aula28 VS

Agosto02 Vista da VS04 Nao havera aula

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 9 / 23

Page 10: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

O Quao Difıcil e a Disciplina?

Depende do Grau de InteresseSe o interesse e alto, a disciplina e facil.Caso contrario, se torna difıcil.

Sugestao: se interessem pela disciplina. . .I Programacao exige pratica.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 10 / 23

Page 11: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Agenda

1 Estrutura da Disciplina

2 Motivacao

3 Alguns (Poucos) Conceitos Basicos

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 11 / 23

Page 12: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Por Que Aprender a Programar?

Porque E UtilHabilidade de escrever programas e uma ferramenta.Permite:

I Automatizar tarefas repetitivas.I Concluir tarefas longas mais rapidamente.I Fazer analises de sistemas complexos.

Nao Apenas ProfissionalmentePode ajudar em tarefas domesticas, hobbies,. . .

I e.g., planilha de controle financeiro, web crawler para concursos, sistema que atualiza tabelado campeonato.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 12 / 23

Page 13: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Mais Exemplos: o LHC no CERN

Maior acelerador de partıculas do mundo.Infra-estrutura para diversas pesquisas importantesna area de fısica de partıculas.

I Parte integral de varias descobertas recentes.Em funcionamento desde 2008.Em 2012, dados de mais de 300 trilhoes de colisoesde partıculas haviam sido processados.Dados sao gerados a aproximadamente 300 GB/s.

I Tratamento manual e impossıvel.I Programas especıficos foram desenvolvidos.

(fonte: http://home.web.cern.ch/topics/large-hadron-collider)

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 13 / 23

Page 14: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Mais Exemplos: Projeto KeplerKepler: sonda espacial com o objetivo dedetectar exoplanetas.Metodologia (em termos simples):

I Capturar imagens periodicas de umconjunto de estrelas.

I Medir intensidade de luz de cada estrela.I Verificar se ha queda periodica.

(fonte: http://www.nasa.gov/)

(fonte: http://kepler.nasa.gov/)

Problema: campo de visao da Kepler eimenso.

I Permite a observacao de mais de 150000estrelas simultaneamente.

Tarefa precisa ser automatizada.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 14 / 23

Page 15: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

De Forma Mais Generica

Fısicos e engenheiros trabalham em problemas complexos.I Muitas variaveis, parametros. . .

Tarefas incluem calculos, simulacoes.Embora metodos sejam conhecidos, complexidade inviabiliza solucao manual.Algumas vezes, ha softwares prontos disponıveis

I Em outros casos, o programa precisa ser criado.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 15 / 23

Page 16: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Agenda

1 Estrutura da Disciplina

2 Motivacao

3 Alguns (Poucos) Conceitos Basicos

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 16 / 23

Page 17: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

O que e Programacao de Computadores?

Habilidade de desenvolver codigos de programas que irao executar em um computador.Computadores:

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 17 / 23

Page 18: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Programas de Computadores

Indica aquilo que o computador deve fazer.I Uso de codigo que o computador entenda.I Mas que o ser humano tambem possa entender.

Tentamos representar o conhecimento humano sobre um determinado problema em umprograma de computador.

O ser humano e quem programa:I deve-se converter o problema para uma linguagem

que o computador entenda.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 18 / 23

Page 19: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

O Que o Computador e Capaz de Fazer?

Calculos matematicos rapidamente.Processamento logico.Processamento de sinais (frequencias, audios, imagens, vıdeos).Inteligencia artificial:

I conhecimento limitado.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 19 / 23

Page 20: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

O Que o Computador e Capaz de Entender?

Exemplo de reconhecimento em imagens:

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 20 / 23

Page 21: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Abstracao de Dados

Computadores manipulam bits.I 0’s e 1’s.

Como representar elementos do mundoreal?

I Pessoas, musica, fotos. . .I Circuitos, construcoes, atomos. . .

Solucao: abstracao.I Capacidade de transformar um

conceito complexo em outro maissimples, mantendo as caracterısticasrelevantes.

Capturar propriedades basicas (intensidadede cada “ponto”).Associa-las a numeros (e.g., de 0 a 255).Usar conjuntos de bits para representa-las(8 bits por “ponto”).

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 21 / 23

Page 22: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Componentes de um Programa

AlgoritmoSequencia de passos para solucionar um determinado problema.Exemplo: como chegar ate a estacao das barcas?

I Saia do campus pela Rua Passo da Patria.I Vire a esquerda, em direcao a Praca da Cantareira.I Siga a Av. Visconde do Rio Branco ate a R. da Conceicao.I . . .

Estrutura de DadosComo organizar os dados a serem manipulados pelo algoritmo.Exemplo: manipulacao de uma imagem colorida.

I A imagem e dividida em pixels.I Cada pixel e representado por tres valores de 0 a 255.

F Intensidade de vermelho, verde e azul.

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 22 / 23

Page 23: Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B ´asicosfernanda/2016-1/progIV/aulas/aula01.pdf · 2016-04-26 · Maior acelerador de part´ıculas do mundo. Infra-estrutura

Linguagens

Simbologia para representar algoritmos.Definem quais “comandos” podem ser representados.

I Em outras palavras, restringem como podemos definir cada passo dos nossos algoritmos.F Siga pela Passo da Patria e vire na Visconde do Rio Branco. . .F Ande 213 metros, vire 90 graus. . .

Ao longo da disciplina, serao vistas algumas linguagens diferentes.I Pseudo-codigo, C, diagramas de fluxo. . .

Fernanda Passos (UFF) Apresentacao e Conceitos Basicos Programacao de Computadores IV 23 / 23