Python y la POO, en una clase, UNNe-Corrientes
Upcoming SlideShare
Loading in...5
×
 

Python y la POO, en una clase, UNNe-Corrientes

on

  • 64 views

Una breve descripcion de python, la POO y su uso en ingenieria. Esta presentacion minimiza un curso de 4 meses en una sola clase. ...

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

Statistics

Views

Total Views
64
Views on SlideShare
64
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Python y la POO, en una clase, UNNe-Corrientes Python y la POO, en una clase, UNNe-Corrientes Presentation 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 python 5. 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 particular 2. 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 ensamblador 4. 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++ Python Reseñas de Ensamblador Proyecto o trabajo de vinculación
  • Técnicas de enseñanza: Modelo Actual VENTAJAS: 1. Sigue el orden lógico de aprendizaje, para software y para el hardware 2. 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 software Especifico 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
  • Que es python? Cuando nace? Y donde se usa hoy? 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 . 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. Python 3.2- POO: C++. Python 3.3- Funcional: Matlab, LISP, FORTRAN. Python 3.4- Logica: PROLOG. Python 3.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 simples x= 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 Metodos y 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?? Estadisticas La 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ísticas Según el Sr. trendy (HTML y XML no son lenguajes y no dice como obtiene los datos, dudoso):
  • No me creen?? Estadísticas PyPL-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