1 / 24

Programação Avançada

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.

yardley
Download Presentation

Programação Avançada

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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 (?)

  3. Avaliação • 2 provas – 40% da nota • Trabalhos em sala – 20 % da nota • Trabalho final – 40 % da nota

  4. Por que programar? • Dissertação de mestrado • Realizar testes • Fazer simulações • Armazenar dados • Analisar dados • Gerar gráficos • Desenvolver novos módulos • Etc.;

  5. Programação • Aprendizado Persistência Dedicação

  6. 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?

  7. 10 regras básicas de programação • Simplicidade • Busque sempre a solução mais simples • Manutenção de código • Compreensão do código • 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

  8. 10 regras básicas de programação

  9. Indente o seu código

  10. 10 regras básicas de programação • Use padrões de projeto • Não reinvente a roda • Vantagens • 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

  11. 10 regras básicas de programação • 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 • Códigos repetitivos ou com função específica devem ser escritos como funções

  12. 10 regras básicas de programação • 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 • Faça um bom tratamento de erros • O Google é o seu melhor amigo

  13. 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 Programa Saída Entrada

  14. Linguagem de programação • Linguagem artificial com sintaxe e semântica bem definidos • Linguagem de Programação Linguagem de baixo nível Linguagem de alto nível Simplicidade Linguagem de máquina Linguagem de programação Linguagem natural

  15. 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

  16. Mais algumas definições Programa fonte Compilador Link editor Programa objeto Programa executável ... Programa objeto Programa objeto Bibliotecas

  17. Mais algumas definições • Interpretador • Programa fonte é lido, entendido e as instruções são executadas imediatamente • Exemplo • Matlab • Python

  18. Mais algumas definições • Esquema básico • Esquema híbrido Interpretador Programa fonte Saída Entradas Interpretador Compilador Programa objeto Programa fonte Saída Entradas

  19. Python • Linguagem interpretada • Orientação a objeto • Multiplataforma • Gratuito • Biblioteca embutida extensa • Grande variedade de aplicações • Boa documentação • Grande comunidade

  20. Ambiente de trabalho • Linux • Python nativo • Windows • Implementação pronta para baixar • Editor de texto • Preferencialmente, com suporte a Python

  21. Ambiente interativo • Interação com o interpretador • Entendendo: • Entre no terminal • Digite python • Digite • print ‘Hello World!’ • help() • quit • quit()

  22. Executando um programa em Python • Abra um editor de texto • Digite • print “Hello World!” • Abra novamente o terminal • Digite • python meu_programa.py

  23. Exercício • Descreva, em linguagem natural, um algoritmo para: • Descobrir o valor máximo de uma lista • Calcular média de uma lista • Ordenar uma lista

More Related