Sobre o PyCursos

Quem é Marcel Caraciolo?

Marcel Caraciolo

é Mestre em ciência da computação pelo CIN/UFPE, e engenheiro da computação pela UPE/PE. Diretor de Inteligência da startup pernambucana Orygens.com. Especialista em mineração de dados, computação móvel e computação inteligente. Evangelista da plataforma Python, o qual atua sobre contribuição de projetos open-source na área de mobilidade e data mining. Membro e Moderador do Grupo de Usuários Python de Pernambuco e membro do Muriçoca Labs responsável pelo projeto open-source Crab para construção de sistemas de recomendação em Scipy/Numpy e MatPlotlib. Ministrou cursos para introdução da linguagem Python e linguagem Python para mobile, mineração de dados na UFPE, UPE , FIR, UFRPE e outras empresas.

Quem é Gileno Filho?

Gileno Filho

é graduando de ciência da computação pelo CIN/UFPE. Diretor de Tecnologia do PyCursos e principal desenvolvedor desta plataforma de ensino que foi construida em Python/Django. Já desenvolveu sistemas web utilizando PHP, ASP.NET e Java, mas ao descobrir Python e Django ficou fascinado e se dedica sempre em aprofundar seus conhecimentos nesse framework e na Web em geral. Participante ativo do Grupo de Usuários Python de Pernambuco (PUG-PE) e da comunidade Django-Brasil.

O que é Python?

Python é uma linguagem de programação criada por Guido van Rossum em 1991. Os objetivos do projeto da linguagem eram: produtividade e legibilidade. Em outras palavras, Python é uma linguagem que foi criada para produzir código bom e fácil de manter de maneira rápida. Ela possui uma biblioteca padrão imensa, que contém classes, métodos e funções para realizar essencialmente qualquer tarefa, desde acesso a bancos de dados a interfaces gráficas com o usuário. E, logicamente, já que esse é o objetivo deste grupo, existem muitas ferramentas para lidar com dados científicos. Essa característica da linguagem é comumente chamado baterias inclusas, significando que tudo que você precisa para rodar um programa está — na maior parte das vezes — presente na instalação básica.

Por fim, e não menos importante, Python é uma linguagem livre e multiplataforma. Isso significa que os programas escritos em uma plataforma serão executados sem nenhum problema na maioria das plataformas existentes sem nenhuma modificação. E, caso a plataforma objetivo não tenha uma versão de Python, desenvolvedores têm a liberdade de estudar e modificar o código da linguagem para fazer com que ela rode onde quer que seja.

O que é Numpy?

O NumPy é o pacote básico da linguagem Python que permite trabalhar com arranjos, vetores e matrizes de N dimensões, de uma forma comparável e com uma sintaxe semelhante ao software proprietário Matlab, mas com muito mais eficiência, e com toda a expressividade da linguagem. Provê diversas funções e operações sofisticadas, incluindo (mas não se limitando a):

  • Objeto array para a implementação de arranjos multidimensionais
  • Objeto matrix para o cálculo com matrizes
  • Ferramentas para álgebra linear
  • Transformadas de Fourier básicas
  • Ferramentas sofisticadas para geração de números aleatórios

Além disso tudo, as classes criadas podem ser facilmente herdadas, permitindo a customização do comportamento (por exemplo, dos operadores típicos de adição, subtração, multiplicação, etc.). O módulo é implementado em linguagem C, o que dá uma grande velocidade às operações realizadas.

O que é Scipy?

O SciPy é o pacote básico da linguagem Python que implementa diversas técnicas úteis na computação científica. Utiliza como base o NumPy para lidar eficientemente com grandes quantidades de números, e implementa em linguagem C diversos algoritmos numéricos e simbólicos para o processamento matemático. Entre as capacidades do SciPy, temos:

  • Estatísticas
  • Otimização
  • Integração numérica
  • Processamento de sinais e imagens
  • Solução de equações diferenciais
  • Funções especiais (Bessel, etc.)
  • Polinômios

O que é Matplotlib?

O Matplotlib é um módulo da linguagem Python que permite gerar gráficos de duas dimensões de excelente qualidade, permitindo edição interativa, animações, inúmeros tipos de gráficos diferentes, anotações em sintaxe Latex e salvamento das imagens geradas em diversos formatos diferentes. A sintaxe de criação e manipulação das imagens será familiar para quem já trabalhou com o software comercial Matlab, mas provendo muito mais capacidades, além de uma interface baseada em objetos, para quem conhece a técnica.

O Matplotlib permite trabalhar com diversos tipos de gráficos diferentes, entre eles: gráficos de funções, múltiplos gráficos, histogramas, funções discretas, torta, barra, etc. Fornece funções para a customização dos gráficos, podendo trabalhar com diversas fontes diferentes, cores, tamanhos de página, e muito mais. Além disso, existem funções para a manipulação e análise de imagens e sinais. Veja abaixo uma imagem gerada pelo Matplotlib:

Exemplo Matplotlib 1

O que é Aprendizagem de Máquina ?

O objetivo do aprendizagem de máquina (ou "machine learning") é programar computadores para aprender um determinado comportamento ou padrão automaticamente a partir de exemplos ou observações. Hoje em dia muitas aplicações utilizam algoritmos de aprendizagem de máquina, incluindo sistemas para prever o comportamento de clientes a partir de dados de compras, reconhecer faces ou voz, ou extrair conhecimento de dados biológicos. Há várias técnicas nesta área como redes neurais, árvores de decisão, aprendizagem baseado em instâncias que podem ser usadas em vários problemas atualmente computacionais. Python é uma boa linguagem inicial ou de suporte ao cientista, desenvolvedor ou pesquisador interessado em construir seus algoritmos inteligente.

O que é Django ?

Django é um framework para desenvolvimento rápido para web, escrito em Python, que utiliza o padrão MTV (model - template - view). Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005. O nome Django foi inspirado no músico de jazz Django Reinhardt.

Django utiliza o princípio DRY (Don't Repeat Yourself), onde faz com que o desenvolvedor aproveite ao máximo o código já feito, evitando a repetição.

Ele surgiu a partir de uma necessidade prática: a World Online, uma operação de jornal online, responsável por construir aplicativos Web intensivamente sob prazos jornalísticos. Na truculenta sala de notícias, com frequência, a World Online precisa construir aplicativos web inteiros em apenas algumas horas, do conceito ao produto público final.

Ao mesmo tempo, os desenvolvedores da World Online têm se mantido perfeccionistas quanto a seguir as melhores práticas de desenvolvimento Web.

No outono de 2003, os desenvolvedores da World Online (Adrian Holovaty e Simon Willison) abandonaram o PHP e começaram a utilizar o Python para desenvolver seus Web Sites. Ao construir sites intensos e ricos em interatividade como o Lawrence.com, eles começaram a sintetizar um framework Web genérico que os permitiam executar o seu trabalho de uma forma melhor e mais rápida. Eles modificaram este framework constantemente, adicionando melhorias por mais de dois anos.

No verão de 2005, a World Online decidiu abrir o código do software resultante, o Django. O Django não seria possível sem todo o apoio de projetos open-source como o Apache, Python, PostgreSQL, e é excitante pra nós sermos capazes de dar um retorno para a comunidade open-source.

E ele é escalável ? Várias empresas grandes vem utilizando o Django por mais de três anos sem problemas como Youtube, Instagram, Dropbox, etc. Temos registros de sites construídos com o Django que já aguentaram picos de tráfico de mais de um milhão de acessos por hora e uma porção de efeitos slashdot. Então, sim, é bem estável.

E ele é estável ? Sim. Comparado com o tempo de desenvolvimento, hardware é um recurso barato, por isso, Django foi desenvolvido para se utilizar de tanto hardware quanto lhe estiver disponível.

O Django utiliza a arquitetura “shared-nothing”, o que significa que você pode adicionar hardware em qualquer nível da arquitetura – servidores de banco de dados, servidores de cache e servidores de aplicação.

O Framework separa claramente a camadas de banco de dados da camada de aplicação. E ainda disponibiliza um simples, porém poderoso, framework de cache.

Então ele é um CMS ?

Não, o Django não é um CMS, nem nenhum outro tipo de produto finalizado. É um framework web, uma ferramenta que permite que você construa websites.

Por exemplo, não faz muito sentido comparar o Django a produtos como o Drupal, porque o Django é algo que você usa para criar coisas como o Drupal.

É claro, a administração automática do Django economiza um bom tempo e é fantástica – mas o site administrativo é um módulo do framework Django. Além disso, mesmo que o Django tenha facilidades especiais para construir aplicações do tipo CMS, isso não significa que ele não seja apropriado para construir aplicações “não CMS” (o que quer que isso signifique!).

Para mais informações visite site oficial do projeto django em https://www.djangoproject.com/

Django Admin
2012 PyCursos - Python aplicado na teoria e prática