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

Post on 04-Jul-2015

239 Views

Category:

Engineering

4 Downloads

Preview:

Click to see full reader

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

Python

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

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

PIC16F84

C, C++

Arquitectura de PC, Registros

Ensamblador

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.

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

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

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.

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.

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.

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

El paradigma Programación Orientada a Objetos (POO)

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

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:

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

.Tipado de variables:

C,C++,etc. Python

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

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

C,C++,etc. Python

Estructuras complejas….Clases :

C,C++,etc. Python

Estructuras complejas…

.Excepciones:

C,C++,etc. Python

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.

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.

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?

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)

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

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):

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

top related