python y la poo, en una clase, unne-corrientes

25
Python

Upload: alexis-ibarra

Post on 04-Jul-2015

239 views

Category:

Engineering


4 download

DESCRIPTION

Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase. A brief description of python and the OOP for engineering applications, it minimized a course of python from 4 months to just one class. From Corrientes to the world

TRANSCRIPT

Page 1: Python y la POO, en una clase, UNNe-Corrientes

Python

Page 2: Python y la POO, en una clase, UNNe-Corrientes

Indice

1. Técnicas de enseñanza de la programación en Ingenieria.2. Que es python? Cuando nace? Y donde se usa hoy?2. Como comparamos distintos lenguajes de programación?3. OK. Ahora veamos que nos ofrece Python….4. El Paradigma de Programación Orientada a Objetos y la filosofía de python5. Estructuras basicas en Python, comparadas con C++.6. Estructuras complejas…7. OpenSource la gran ventaja , y su licencia PSFL.8. Gran cantidad de Modulos y paquetes.9. No me creen?? Estadisticas, y el principal usuario del lenguaje.10. Links recomendados, para ponerse en marcha.11. Dudas, consultas, quejas??

Page 3: Python y la POO, en una clase, UNNe-Corrientes

Técnicas de enseñanza: Modelo clásico

PIC16F84

C, C++

Arquitectura de PC, Registros

Ensamblador

Page 4: Python y la POO, en una clase, UNNe-Corrientes

Técnicas de enseñanza: Modelo clásico

VENTAJAS:1. Sigue el orden lógico de aprendizaje (desde el punto de vista del hardware)

DESVENTAJAS:1. Se ata el conocimiento a una estructura de microcontrolador en particular2. Se pierde mucho tiempo tratando de interpretar el funcionamiento de una familia De microcontrolador en particular (16F84)3. Se pierde mucho tiempo tratando de interpretar el trabajo en ensamblador4. Se llega tarde a la etapa en C, C++.5. Se pierde mucho tiempo intentando aprender C, C++.6. No se llega al vinculo software- hardware entre microcontrolador y PC.7. El conocimiento adquirido es valido casi exclusivamente para «familias» O marcas de micro controladores particulares.

Page 5: Python y la POO, en una clase, UNNe-Corrientes

Técnicas de enseñanza: Modelo Actual

Linux, Windows

Arduino

Arquitectura hardware de PC,

Registros

Arquitectura de software de un

Sistema Operativo (PC)

C,C++

PythonReseñas de

Ensamblador

Proyecto o trabajo de vinculación

Page 6: Python y la POO, en una clase, UNNe-Corrientes

Técnicas de enseñanza: Modelo ActualVENTAJAS:1. Sigue el orden lógico de aprendizaje, para software y para el hardware2. Se conoce rápidamente C,C++ , lenguaje base de todos casi todos los lenguajes De programación. 3. Se aprende a trabajar con la PC, algo básico para después manejar softwareEspecifico de mayor complejidad (matlab, python, Proteus, Orcad, VHDL, etc.)4. No se ata el conocimiento a un proveedor de hardware o ‘marca’, y se prioriza La comprensión de los PARADIGMAS y FILOSOFIAS de programación, en vez de una ‘marca’ de hardware.5. Conociendo C, C++ es extremadamente sencillo iniciar en python.6. Se cierra el circuito de aprendizaje vinculando un desarrollo de software (PC + python), con un desarrollo de hardware (Arduino + C).7. Este proceso aporta al estudiante una herramienta de trabajo con formato general.

DESVENTAJAS:1. No se puede omitir ningún paso en el proceso de enseñanza.2. Se necesita de personal que conozca cada área en particular.3. Requiere de bastante practica, se aprende haciendo

Page 7: Python y la POO, en una clase, UNNe-Corrientes

Python fue creado a finales de los ochenta por Guido van Rossum (foto) en Holanda.Van Rossum es el principal autor de Python, y continua con su rol central en decidir la dirección de Python.•Primera aparicion de Python : 1991.•Influido por Perl, Java, Lisp.•Influyo en Ruby, JavaScript, Cython.•Multiplataforma•OpenSource•Version Actual: 3.3.1 / 2.7.4 .

Que es python? Cuando nace?Y donde se usa hoy?

Python se uso en la Tesis doctoral que creo Google. Debido a eso ha tenido un fuerte vinculo con la empresa. Python se hizo masivo en el año 2008, cuando fue el primer leguaje soportado por la Google App Engine.Actualmente python es parte fundamental de: Google, DreamWorks, Pixar, Disney, la NASA el CERN y el caso de éxito mas importante: toda la plataforma de YOUTUBE.

Page 8: Python y la POO, en una clase, UNNe-Corrientes

Como comparamos distintos lenguajes de programación?

Con todos los lenguajes se puede hacer todo, pero formalmente, algunos tienen mas “facilidad y velocidad” para algunas “tareas o filosofias” de trabajo.

Para comparar lenguajes se los clasifican segun:1. Nivel de abstraccion (alto o bajo nivel).2. Forma de ejecucion (compilada o intepretada).3. Según el paradigma de programacion ( procedual,POO, funcional, Logica).

3.1- Procedual: C, BASIC. Python3.2- POO: C++. Python3.3- Funcional: Matlab, LISP, FORTRAN. Python3.4- Logica: PROLOG. Python3.5- Multi-Paradigma: C#, JAVA, Python,VB.

4. Según la Filosofia del lenguaje:Ruby: Prioriza pocas lineas de codigo, y el principio de la menor sorpresa.Python: Prioriza la Legibilidad, la transparencia y la sencillez.

Page 9: Python y la POO, en una clase, UNNe-Corrientes

El paradigma Programación Orientada a Objetos (POO)

• Cambia el concepto de DATO pasivo a OBJETO ACTIVO.• No hay DIMENSIONES , hay OBJETOS con METODOS y ATRIBUTOS.• Un objeto suele confundirse con una librería o importar un archivo, esto es

falso. Una librería puede incluir varias clases u objetos internos.• Las clases son consecuencia de la evolución de los tipos de datos.

Page 10: Python y la POO, en una clase, UNNe-Corrientes

El paradigma Programación Orientada a Objetos (POO)

Datos simplesx= 5

y = 2.3

Agrupación de Datos simples

del mismo tipo (arrays, strings)

x= [5,2,4,6]Y=‘buen dia’

Agrupación de Datos de distinto tipo

(struct, union)

x= [5, 0.3, ’hola’, 0xFF]

Agrupación de Datos y funciones, de distintos

tipos

?

1950, ensamblador

1960,FORTRAN,COBOL

1980,C, BASIC

1985,C++

~2000 Python, C#, JAVA

Page 11: Python y la POO, en una clase, UNNe-Corrientes

El paradigma Programación Orientada a Objetos (POO)

Video Rápido, que explica POO en Python, clic aquí

Page 12: Python y la POO, en una clase, UNNe-Corrientes

OK. Ahora veamos que nos ofrece Python….Python permite trabajar de todas las maneras vistas antes (y tiene tipado dinámico )•Procedual y POO:

•Funcional:

•Logica:

Page 13: Python y la POO, en una clase, UNNe-Corrientes

Estructuras básicas en Python, comparadas con C++.

.Tipado de variables:

C,C++,etc. Python

Page 14: Python y la POO, en una clase, UNNe-Corrientes

Estructuras básicas en Python, comparadas con C++.

.Bucles(for, if-elif-else, while):

C,C++,etc. Python

Page 15: Python y la POO, en una clase, UNNe-Corrientes

Estructuras complejas….Clases :

C,C++,etc. Python

Page 16: Python y la POO, en una clase, UNNe-Corrientes

Estructuras complejas…

.Excepciones:

C,C++,etc. Python

Page 17: Python y la POO, en una clase, UNNe-Corrientes

Estructuras en Python, comparadas con C++.

Conclusiones generales:

• Python corre entre entre 3 y 5 veces mas lento que C++, pero lleva entre 5 y 10 veces menos tiempo de desarrollo. Es decir 1 año de C++ == 2 meses de python

• En python maneja errores como un juguete, en C++ como un guru.

• C++ es la base de cualquier lenguaje de programación actual, Python no.

• Un problema en cualquier lenguaje se puede resolver con su equivalente en C++, no en python.

• Python esta altamente orientado al prototipo y resultados rapidos, C++ esta orientado a algo concreto y de producción.

• Python NO TIENE PUNTEROS, en ves de eso usa variables mutables (pasan por referencia), como ser listas,diccionarios y objetos de usuario. Y variables inmutables (paso por valor), como son los int, float y tuplas.

Page 18: Python y la POO, en una clase, UNNe-Corrientes

OpenSource la gran ventaja , y su licencia PSFL.

• No hay que pagarle a nadie para desarrollar en Python, como si ‘deberia ser’ con Visual, Matlab, JavaScript,

• No existen las variables de tipo privado, aunque hay directivas para identificarlas como tal.

• Python no respeta norma ANSI,ISO, ni nada (todavia), C++ si (ISO/IEC C++-2011).

• Licencia PSFL, permite distribuir software como privado.

Page 19: Python y la POO, en una clase, UNNe-Corrientes

Gran cantidad de Modulos y paquetes.

Python actualmente cuenta con +25000 paquetes. Cada paquete es un conjunto de Modulos. Cada Modulo es un conjunto de clases. Cada clase es un conjunto de Metodosy variables.

Python tiene varias implementaciones, la principal y por defecto es Cpython. Pero existen otras (por las dudas):

• IronPython -> implementacion en .NET• Stackless -> implementacion en Cpython que no usa el stack de C.• Jython -> implementacion en Java VM.• Pippy -> implementacion para PALM.• PyPy -> implementacion de Python en Python (?????)• Pyjamas -> implementacion en JavaScript• Shed Skin -> en C++• PyS60 -> en symbian S60 de nokia.• Py4A -> ¿Quién adivina?

Page 20: Python y la POO, en una clase, UNNe-Corrientes

No me creen?? EstadisticasLa web http://www.tiobe.com/, se encarga del benchmarck o comparacion de lenguajes de programacion en funcion del numero de webs sobre el tema (super-impreciso ), aquí algunos graficos para octubre 2013:

Salon de la fama(python, unico en ganar 3 veces)

Page 21: Python y la POO, en una clase, UNNe-Corrientes

No me creen?? EstadísticasSegún el Sr. trendy (HTML y XML no son lenguajes y no dice como obtiene los datos, dudoso):

Page 22: Python y la POO, en una clase, UNNe-Corrientes

No me creen?? EstadísticasPyPL-PopularitY-of-Programming-Language, es el mas neutral y certero de los estadistas en este tema, se basa en las busquedas de google sobre ‘tutoriales del lenguaje’, son ademas, datos de acceso publico (de google):

Page 23: Python y la POO, en una clase, UNNe-Corrientes

Links recomendados, para ponerse en marcha...

Python Oficiales:• http://python.org/• http://python.org.ar/ - comunidad de argentina• http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html- estadisticas del

lenguaje (yo no le creo)• http://trendyskills.com/ - otro • https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-

Language - otro, el mas certero para mi.• http://www.pinguino.cc/ - version arduino con PIC, y Python• http://micropinguino.blogspot.com.ar/ -- la mejor web para pingüino y Python• https://code.google.com/p/pinguino32/ -- comunidad pinguino

Page 24: Python y la POO, en una clase, UNNe-Corrientes
Page 25: Python y la POO, en una clase, UNNe-Corrientes