Programação Avançada

Propaganda
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
 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
 Analisar dados
 Gerar gráficos
 Desenvolver novos módulos
 Etc.;
Programação
 Aprendizado
Persistê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?
 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
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


5.
Desenvolvimento de código mais rápido
Utilização de código testado
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
 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
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
 Programa
 (Algoritmos + estruturas de dados ) expressos com uma
linguagem de programação
Entrada
Programa
Saída
Linguagem de programação
 Linguagem artificial com sintaxe e semântica bem
definidos
 Linguagem de Programação
Linguagem de
baixo nível
Linguagem
de máquina
Linguagem de
alto nível
Linguagem de
programação
Simplicidade
Linguagem
natural
Mais algumas definições
 Programa fonte
 Código escrito na linguagem de programação
 Programa objeto
 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
Compilador
Programa
objeto
...
Programa
objeto
Programa
objeto
Bibliotecas
Link
editor
Programa
executável
Mais algumas definições
 Interpretador
 Programa fonte é lido, entendido e as instruções são
executadas imediatamente
 Exemplo


Matlab
Python
Mais algumas definições
 Esquema básico
Programa
fonte
Interpretador
 Esquema híbrido
Programa
fonte
Compilador
Saída
Entradas
Programa
objeto
Interpretador
Entradas
Saída
Python
 Linguagem interpretada
 Orientação a objeto
 Multiplataforma
 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
 Editor de texto
 Preferencialmente, com suporte a Python
Ambiente interativo
 Interação com o interpretador
 Entendendo:
 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
Download