Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B...
Transcript of Aula 1: Apresentac¸˜ao, Motivac¸˜ao e Conceitos B...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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