01
Encuentro 01
Programación
Orientada a
Objetos
BIENVENIDOS!
Encuentro 01. Programación Orientada a Objetos
INTRODUCCIÓN A
PROGRAMACIÓN CON
PYTHON
MAPA DE CONCEPTOS
FUNDAMENTOS
DESAFIOS Y TIPOS DE
ENTREGABLES DESAFIOS
PROYECTO FINAL
INTRODUCCION
PARADIGMAS
TIPOS DE
QUE ES PYTHON
ARQUITECTURA
ARQUITECTURA TIPOS DE
DE PROYECTOS ARQUITECTURA
Temario
01 02
Introducción a Números y
programar con cadenas de
Python I caracteres
✓ Fundamentos
✓ Números
✓ Desafíos y
entregables ✓ Strings
✓ Proyecto Final ✓ Print
✓ Instalación de ✓ Variables
Python
✓ Index & Slicing
✓ Primer script
Objetivos de la clase
Reconocer principales nociones y metodologías
del mundo de la programación.
Definir Python como lenguaje de programación
con sus principales ventajas y desventajas.
Presentar e instalar el stack de herramientas de
trabajo.
Comenzar a implementar el entorno de
programación “Colabs”.
Encuentro 01. Programación Orientada a Objetos
PRESENTACIÓN DEL
MÓDULO
FUNDAMENTOS
El módulo “Programación Orientada a Objetos”
busca que el estudiante adquiera técnicas y
buenas prácticas para el desarrollo de sistemas
pensados en el paradigma de programación que
lleva el nombre de este módulo. Paralelamente,
se busca la simulación en el ámbito laboral
utilizando marcos de trabajo en equipos que
usan actualmente las empresas dedicadas al
software.
FUNDAMENTOS
Específicamente, este módulo tiene como finalidad que
el alumno pueda ofrecer soluciones, mejoras y
mantenimiento a los sistemas de las organizaciones
trabajando conjuntamente con el equipo de desarrollo.
Trayecto Programador CARGA HORARIA
364 horas reloj
MÓDULO BASE MÓDULO ESPECIALIZACIÓN
Técnicas de Programación
Programación Orientada a Objetos
120 hs 150 hs
CERTIFICA
MÓDULO BASE MÓDULO ESPECIALIZACIÓN
Programador
Relaciones Laborales Base de Datos
y Orientación
Profesional 24 hs 70 hs
Encuentro 01. Programación Orientada a Objetos
DESAFÍOS Y
ENTREGABLES
DESAFÍOS Y ENTREGABLES
Son actividades o ejercicios que se realizan durante la cursada, para
enfocarse en la práctica.
12
Desafíos genéricos Desafíos entregables
Ayudan a poner en práctica los Relacionados completamente con el
conceptos y la teoría vista en clase No Proyecto Final. Deben ser subidos
deben ser subidos a la plataforma. obligatoriamente a la plataforma hasta
7 días luego de la clase para que sean
corregidos.
DESAFÍOS Y ENTREGABLES
Son actividades o ejercicios que se realizan durante la cursada, para
enfocarse en la práctica.
Desafíos complementarios Entregas del Proyecto Final I, II, III y IV
Desafíos que complementan a los 4 etapas con el estado de avance de tu
entregables. Son optativos proyecto final que deberás subir a tu
repositorio, a lo largo del curso y hasta 7
días luego de la clase
PROYECTO FINAL
El Proyecto Final se construye a partir de los desafíos que se realizan
clase a clase. Se va creando a medida que el estudiante sube los
desafíos entregables al Google Drive.
El objetivo es que cada estudiante pueda utilizar su Proyecto Final
como parte de su portfolio personal.
El proyecto final se debe subir a la plataforma la ante-última clase del
curso.
Encuentro 01. Programación Orientada a Objetos
¿CUÁL ES NUESTRO
PROYECTO FINAL?
WEB CON DJANGO
Desarrollarás una web en Django. Las entregas son individuales. Se verán temas avanzados:
Registros:
¿Qué es una Web Playground? Un playground es un
• Login/signup
lugar de pruebas, donde podremos hacer, deshacer,
• Reset pwd
refactorizar, romper, etc.
• Logout
En un Playground no se abordan las cuestiones relativas
Páginas:
a la Interfaz Gráfica (la parte visual de la App), sólo
• CRUD sólo si está registrado
trabajaremos con el Código Fuente.
Perfil:
La idea de generar una web playground es para que
• Imagen
podamos aventurarnos en las funciones más avanzadas
• Editar email/pwd
de Python y Django, de tal forma que siempre tengamos
Admin:
un lugar donde probar dichas funciones.
• Apps
EJEMPLO
PROYECTO
Los desafíos entregables y el Proyecto
Final se realizarán en SOLITARIO
● Cada estudiante sube la entrega (link al repositorio) a través del Google
drive y podrá ser vista por los demás equipos (Carpeta de entrega
compartida)
● Cuando se hagan correcciones sobre la entrega, el estudiante recibe la
devolución
● Todas las calificaciones serán individuales y será obtenida de la
presentación
¡IMPORTANTE!
Los desafíos y entregas de proyecto se deben cargar hasta siete días
después de finalizado el encuentro. Te sugerimos llevarlos al día.
ENTREGA REQUISITO FECHA
Proyecto Final Fundación del proyecto y creación de Encuentro N° 38
Etapa I Objetos
Proyecto Final Web en Django utilizando Herencia de Encuentro N° 40
Etapa II plantillas
Proyecto Final Web en Django implementando los roles y Encuentro N° 42
Etapa III permisos para ellos
Proyecto Final Entrega del PI corregido y Finalizado Encuentro N° 44
Etapa IV
Encuentro 01. Programación Orientada a Objetos
PYTHON: UN BREVE VIAJE
POR LA HISTORIA
UN POCO DE HISTORIA...
UN POCO DE HISTORIA...
• Python es uno de los lenguajes de programación dinámicos más populares que
existen entre los que se encuentran Java, JavaScript, Go y C#. Aunque es
considerado a menudo como un lenguaje "scripting", es realmente un lenguaje de
propósito general. En la actualidad, Python es usado para todo, desde simples
"scripts", hasta grandes servidores web que proveen servicio ininterrumpido 24×7.
Es utilizado para la programación de interfaces gráficas y bases de datos,
programación web tanto en el cliente como en el servidor (véase Django o Flask) y
"testing" de aplicaciones. Además tiene una amplia aceptación por científicos que
hacen aplicaciones para las supercomputadores más rápidas del mundo y por los
niños que recién están comenzando a programar.
UN POCO DE HISTORIA...
• se remonta hacia finales de los 80s y principio de los 90s,1 su implementación
comenzó en diciembre de 19892 cuando en Navidad Guido van Rossum que
trabajaba en el (CWI) (un centro de investigación holandés de carácter oficial que,
entre otras cosas, actualmente alberga la oficina central del W3C) decidió empezar
el proyecto como un pasatiempo dándole continuidad al lenguaje de programación
ABC del que había formado parte del equipo de desarrollo en el CWI,3 dicho lenguaje
se enfocaba en ser fácil de usar y aprender manteniendo potencia en su desempeño
pero el hardware disponible en la época de su creación hacía difícil su uso y el
proyecto no trascendió como se esperaba.
UN POCO DE HISTORIA...
UN POCO DE HISTORIA...
• Van Rossum es por tanto el autor principal de Python y continúa ejerciendo un rol
central decidiendo la dirección del lenguaje, en la comunidad de Python se le conoce
como Benevolente Dictador Vitalicio (en inglés: Benevolent Dictator for Life, BDFL).
El nombre "Python" viene dado por la afición de Van Rossum al grupo Monty Python.
• El lenguaje de programación Python fue originalmente
desarrollado para el sistema operativo Amoeba.
LA EVOLUCIÓN DE LOS
LENGUAJES
LA EVOLUCIÓN DE LOS LENGUAJES
• En sus inicios programar implicaba el uso del código binario con cadenas de 0s y 1s,
el lenguaje que entiende directamente el computador. ¡Algo sumamente complejo!
• Más tarde se crea el lenguaje ensamblador,
que en vez de números utilizaba letras, algo
más fácil de recordar.
LA EVOLUCIÓN DE LOS LENGUAJES
• Finalmente surgen los lenguajes de alto nivel,
que suelen utilizar términos en inglés para dictar
las órdenes a seguir. Este sería un proceso
intermedio entre el lenguaje de la máquina
(binario) y el “código fuente” (proceso por
compilador o intérprete).
¡PARA PENSAR!
¿Qué lenguajes de programación reconoces tras ver los
logotipos de la diapo anterior?
¿Preguntas?
¿Quieres saber más?
Te dejamos material
ampliado de la clase
MATERIAL AMPLIADO
Recursos multimedia
✓ [Link] | Link a la Meet (Encuentro presencial los
Martes y Jueves de 9:00 a 11:50 hs)
✓ [Link]
?usp=sharing | Acceso a la carpeta del Drive
Break
Encuentro 01. Programación Orientada a Objetos
PROGRAMACIÓN
PROGRAMACIÓN Y
LENGUAJES
“La Programación es el proceso con el
que se crea algún tipo de aplicación o
software, para materializar un concepto
o proyecto que requiere de la utilización
de un lenguaje informático y así poder
llevarse a cabo.”
Fuente: NeoAttack
DE OTRO MODO
• Es el proceso de escribir instrucciones para la computadora, en el formato y sintaxis
que el lenguaje de programación requiere, a fin de que se realice determinada
acción.
• Programar es comunicar
HTML
Es un "lenguaje" de marcado de etiquetas,
que permite crear documentos para web.
Los términos de uso frecuente:
● Etiqueta
● Atributo
● Estructura
CSS
El CSS, en español «hojas de estilo en
cascada», es un lenguaje de diseño gráfico,
utilizado para definir y crear la presentación
de un documento estructurado, escrito en un
lenguaje de marcado.
Los términos de uso frecuente:
● Estilo
● Reglas
● Medidas
● Fuente
RELACIÓN ENTRE HTML, CSS & JS
● HTML nos aportará a través de sus etiquetas, la estructura básica de sitio
web que creemos. Funcionará en consonancia y en relación con CSS y JS.
● CSS lo utilizaremos para darle el estilo que queremos mostrar en nuestro sitio
web a través de la definición de formato y diseño de nuestra presentación
● JavaScript entonces utilizará a ambos lenguajes(HTML y CSS) para
controlar el comportamiento y funcionalidad de los elementos de nuestros sitio
web.
RELACIÓN ENTRE HTML, CSS & JS
DEL LADO DEL CLIENTE
(FRONTEND)
LENGUAJES DE BACKEND
• Principales lenguajes de Backend (lo que sucede en el servidor):
• Python
• Java,
• Ruby
• PHP
FRAMEWORKS
FRAMEWORKS
• Un framework, o marco de trabajo, es un conjunto de herramientas y clases que nos
permiten solucionar un problema o funcionalidad. Están escritos en uno o más
lenguajes de programación.
FRAMEWORKS
• Los frameworks establecen, además, una estructura determinada para el código y
todos los archivos, como así también una metodología armada del proyecto.
Encuentro 01. Programación Orientada a Objetos
ALGUNOS CONCEPTOS
CLAVES
DATOS VS INFORMACIÓN
DATOS VS INFORMACIÓN
Característica o atributo sin Unión de datos procesados,
procesamiento, el cual no que se complementan para
informa nada por sí solo. informar un hecho.
DATO
Un dato es un conjunto discreto, de factores objetivos sobre un
hecho real. Dentro de un contexto empresarial, el concepto de
dato es definido como un registro de transacciones. Un dato no
dice nada sobre el porqué de las cosas, y por sí mismo tiene poca
o ninguna relevancia o propósito.
INFORMACIÓN
A diferencia de los datos, la información tiene significado,
relevancia y propósito. No sólo puede formar potencialmente a
quien la recibe, sino que está organizada para algún propósito.
Los datos se convierten en información cuando su creador les
añade significado. Transformamos datos en información
añadiendoles valor en diversos sentidos.
FRONTEND VS BACKEND
FRONTEND VS BACKEND
FrontEnd es la parte de un sitio web que BackEnd es la parte que conecta con la
interactúa con los usuarios, se le dice lado del base de datos y el servidor que usa el sitio
cliente. web, se le dice lado del servidor.
Maquetación, lógica visible de un sitio web. Es Desarrollo de APIs del lado de los
lo que puede ver un cliente, y con lo que servidores y bases de datos. Se conecta la
interactúa. base de datos con la interfaz de la
web/app.
Encuentro 01. Programación Orientada a Objetos
METODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILES
Trabajaremos con Programación Extrema o
Son las metodologías que permiten adaptar la eXtreme Programming (XP). Su objetivo
forma de trabajo a las condiciones del principal es que un equipo de desarrollo pueda
proyecto, dando flexibilidad e inmediatez al producir software de mejor calidad y promover
amoldarse a las circunstancias del entorno. buena calidad de vida al equipo.
METODOLOGÍAS ÁGILES
● Desarrollo iterativo e incremental
● Programación en parejas
● Corrección de todos los errores
● Refactorización del código
● Propiedad de código compartida
● Simplicidad en el código
Muchas gracias.
Resumen
de la clase hoy
✓ Programación.
✓ Python
✓ Stack inicial del programador: Python, Colabs.
✓ Metodologías Ágiles, XP.