Click here to load reader

Prof. Natalia Castro Fernandes Mestrado em ... natalia/prog_avan/slide1.pdf · PDF file 1. Simplicidade Busque sempre a soluç$ m s simples M utenç$ de código Compreens$ do código

  • View
    1

  • Download
    0

Embed Size (px)

Text of Prof. Natalia Castro Fernandes Mestrado em ... natalia/prog_avan/slide1.pdf · PDF file...

  • 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� Simulação com o NS-3

    � Programação para redes definidas por software (?)

  • Avaliação � 2 provas – 40% da nota

    � Trabalhos em sala – 20 % da nota

    � Trabalho final – 40 % da nota

  • Por que programar? � Dissertação de mestrado

    � Realizar testes

    � Fazer simulações

    � Armazenar dados� Armazenar dados

    � Analisar dados

    � Gerar gráficos

    � Desenvolver novos módulos

    � Etc.;

  • Programação � Aprendizado

    PersistênciaPersistência

    Dedicação

  • 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?o meu problema?

    � Desempenho computacional?

    � Programação simples?

    � Algum sistema específico?

  • 10 regras básicas de programação 1. Simplicidade

    � Busque sempre a solução mais simples

    � Manutenção de código

    � Compreensão do código� Compreensão do código

    2. Comente o seu código

    � Utilize 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

  • 10 regras básicas de programação

  • 3. Indente o seu código

  • 10 regras básicas de programação 4. Use padrões de projeto

    � Não reinvente a roda � Vantagens

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

    5. Alta coesão e baixo acoplamento � Acoplamento = 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

  • 10 regras básicas de programação 6. 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� 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

  • 10 regras básicas de programação 8. 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� 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

  • Algumas definições � Algoritmo

    � Método para solucionar um problema

    � Estruturas de dados

    Método para organizar informações� Método para organizar informações

    � Programa

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

    ProgramaEntrada Saída

  • Linguagem de programação � Linguagem artificial com sintaxe e semântica bem

    definidos

    � Linguagem de Programação

    Linguagem de máquina

    Linguagem natural

    Linguagem de programação

    Simplicidade

    Linguagem de alto nível

    Linguagem de baixo nível

  • Mais algumas definições � Programa fonte

    � Código escrito na linguagem de programação

    � Programa objeto

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

    � Programa executável

    � Programa formado pela ligação dos objetos e que pode ser executado pelo computador

  • Mais algumas definições

    Programa fonte

    Link editor

    Compilador Programa

    objeto Programa executável

    Programa objeto

    Programa objeto

    ...

    Bibliotecas

  • Mais algumas definições � Interpretador

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

    � Exemplo� Exemplo

    � Matlab

    � Python

  • Mais algumas definições � Esquema básico

    Interpretador Programa

    fonte Saída

    � Esquema híbrido Entradas

    Interpretador Programa

    fonte Saída

    Entradas

    Compilador Programa

    objeto

  • Python � Linguagem interpretada

    � Orientação a objeto

    � Multiplataforma

    Gratuito� Gratuito

    � Biblioteca embutida extensa

    � Grande variedade de aplicações

    � Boa documentação

    � Grande comunidade

  • Ambiente de trabalho � Linux

    � Python nativo

    � Windows

    Implementação pronta para baixar� Implementação pronta para baixar

    � Editor de texto

    � Preferencialmente, com suporte a Python

  • Ambiente interativo � Interação com o interpretador

    � Entendendo: � Entre no terminal� Entre no terminal

    � Digite python

    � Digite � print ‘Hello World!’

    � help()

    � quit

    � quit()

  • Executando um programa em

    Python � Abra um editor de texto

    � Digite

    � print “Hello World!”

    � Abra novamente o terminal

    � Digite

    � python meu_programa.py

  • Exercício � Descreva, 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