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ência 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?
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
Programa
Entrada 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
EntradasInterpretador 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