Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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ção1. 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ção4. 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çã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� 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çã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� 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
CompiladorPrograma
objetoPrograma 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
InterpretadorPrograma
fonteSaída
� Esquema híbrido Entradas
InterpretadorPrograma
fonteSaída
Entradas
CompiladorPrograma
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