24
Programação Avançada Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012

Programação Avançada

  • Upload
    yardley

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Programação Avançada. Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012. Ementa do Curso. Conceitos básicos de programação Orientação a objetos Linguagem Python Simulação com o NS-3 Programação para redes definidas por software (?). Avaliação. - PowerPoint PPT Presentation

Citation preview

Page 1: Programação Avançada

Programação Avançada

Prof. Natalia Castro FernandesMestrado em Telecomunicações – UFF

2º semestre/2012

Page 2: Programação Avançada

Ementa do CursoConceitos básicos de programação

Orientação a objetosLinguagem PythonSimulação com o NS-3Programação para redes definidas por

software (?)

Page 3: Programação Avançada

Avaliação2 provas – 40% da notaTrabalhos em sala – 20 % da notaTrabalho final – 40 % da nota

Page 4: Programação Avançada

Por que programar?Dissertação de mestrado

Realizar testesFazer simulaçõesArmazenar dadosAnalisar dadosGerar gráficosDesenvolver novos módulosEtc.;

Page 5: Programação Avançada

ProgramaçãoAprendizado

Persistência

Dedicação

Page 6: Programação Avançada

Qual linguagem usar?A que melhor resolver o seu problema

E se eu não sei qual é a melhor linguagem para resolver o meu problema?Desempenho computacional?Programação simples?Algum sistema específico?

Page 7: Programação Avançada

10 regras básicas de programação1. Simplicidade

Busque sempre a solução mais simples Manutenção de código Compreensão do código

2. Comente o seu códigoUtilize variáveis com nomes intuitivos

Comente na instanciação a funcionalidade da variável, caso não seja absolutamente intuitivo

Explique com comentários o porquê de suas escolhas em pontos críticos do código

Page 8: Programação Avançada

10 regras básicas de programação

Page 9: Programação Avançada

3. Indente o seu código

Page 10: Programação Avançada

10 regras básicas de programação4. Use padrões de projeto

Não reinvente a rodaVantagens

Desenvolvimento de código mais rápido Utilização de código testado

5. Alta coesão e baixo acoplamentoAcoplamento = Quão fortemente um elemento está

conectado, tem conhecimento ou depende de outros elementos

Coesão = Quão estritamente um elemento está relacionado e focado com suas responsabilidades

Consequências Evite elementos que façam coisas demais Defina bem qual a funcionalidade de um elemento

Page 11: Programação Avançada

10 regras básicas de programação6. Não escreva códigos profundamente

aninhados (Muitos ifs dentro de ifs)Dificuldade de leitura

Tentar manter o código com até 3 níveis de indentação Divida o código em pequenas funções

7. Códigos repetitivos ou com função específica devem ser escritos como funções

Page 12: Programação Avançada

10 regras básicas de programação8. Não faça o código todo para depois testar

Teste suas funções antes de utilizá-las Comportamento normal Limites inferiores e superiores de entradas e saídas Entradas não esperadas

9. Faça um bom tratamento de erros

10.O Google é o seu melhor amigo

Page 13: Programação Avançada
Page 14: Programação Avançada

Algumas definiçõesAlgoritmo

Método para solucionar um problemaEstruturas de dados

Método para organizar informaçõesPrograma

(Algoritmos + estruturas de dados ) expressos com uma linguagem de programação

Programa

Entrada

Saída

Page 15: Programação Avançada

Linguagem de programaçãoLinguagem artificial com sintaxe e semântica

bem definidosLinguagem de Programação

Linguagem de máquina

Linguagem natural

Linguagem de

programação

SimplicidadeLinguagem de alto nível

Linguagem de baixo

nível

Page 16: Programação Avançada

Mais algumas definiçõesPrograma fonte

Código escrito na linguagem de programaçãoPrograma objeto

Código transformado linguagem de máquina sem ligação com códigos de bibliotecas e subprogramas

Programa executávelPrograma formado pela ligação dos objetos e

que pode ser executado pelo computador

Page 17: Programação Avançada

Mais algumas definições

Programa fonte

Link editor

Compilador

Programa objeto

Programa executáve

l

Programa objeto

Programa objeto

...

Bibliotecas

Page 18: Programação Avançada

Mais algumas definiçõesInterpretador

Programa fonte é lido, entendido e as instruções são executadas imediatamente

Exemplo Matlab Python

Page 19: Programação Avançada

Mais algumas definiçõesEsquema básico

Esquema híbrido

Interpretador

Programa fonte

Saída

Entradas

Interpretador

Programa fonte

Saída

Entradas

Compilador

Programa objeto

Page 20: Programação Avançada

PythonLinguagem interpretadaOrientação a objetoMultiplataformaGratuitoBiblioteca embutida extensaGrande variedade de aplicaçõesBoa documentaçãoGrande comunidade

Page 21: Programação Avançada

Ambiente de trabalhoLinux

Python nativoWindows

Implementação pronta para baixar

Editor de textoPreferencialmente, com suporte a Python

Page 22: Programação Avançada

Ambiente interativo Interação com o interpretador

Entendendo:Entre no terminalDigite pythonDigite

print ‘Hello World!’

help() quit

quit()

Page 23: Programação Avançada

Executando um programa em PythonAbra um editor de texto

Digite print “Hello World!”

Abra novamente o terminalDigite

python meu_programa.py

Page 24: Programação Avançada

ExercícioDescreva, em linguagem natural, um

algoritmo para:

1. Descobrir o valor máximo de uma lista

2. Calcular média de uma lista

3. Ordenar uma lista