CAC Programacion 1 A 34

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 685

Codo a Codo Inicial

Nuestro objetivo
Nuestros cursos están destinados a personas jóvenes y adultas, que busquen
desarrollarse profesional y personalmente, ampliando sus oportunidades
laborales de acuerdo a los desafíos que plantea el Siglo XXI.
El objetivo es brindar herramientas que faciliten la inserción laboral en el sector
Informática (IT), y en particular, fomentar la participación de las mujeres, con el fin
de mejorar su empleabilidad.

Codo a Codo Inicial


Resulta ideal para aquellos que se están iniciando en el mundo de la
programación y desean adquirir una base sólida en este campo.
Durante el curso, aprenderás los conceptos esenciales y las habilidades
fundamentales necesarias para convertirte en un programador capacitado.
Al finalizar el curso contarás con los conocimientos y habilidades necesarias para
dar tus primeros pasos como programador, sentando una base sólida para tu
desarrollo profesional en el campo de la programación.

Modalidad
Clases online en vivo 2 veces por semana

Duración
20 semanas

Carga horaria
198 horas

Versión
2023.07.01

1
Herramientas y tecnologías que
aprenderemos

Visual Studio
Code Python IntelliJ IDEA Java

GIT GitHub MySQL phpMyAdmin

2
Temario del curso

1. Introducción a la algoritmia
Aprenderás sobre el procesamiento de información en un sistema
computacional y cómo fluye a través de él. Conocerás los diferentes tipos de
datos utilizados en programación y comprenderás la importancia de los
algoritmos en la resolución de problemas. Adquirirás las habilidades
necesarias para identificar características de algoritmos eficientes y entender
la diferencia entre algoritmo y programa. Abordarás los componentes
esenciales de un algoritmo, incluyendo la entrada, procesamiento y salida de
información. Además, explorarás los diagramas de flujo como una herramienta
visual para representar algoritmos, comprendiendo los elementos y símbolos
utilizados en su construcción.

2. Análisis y resolución de problemas


Podrás abordar problemas de programación de manera sistemática, aplicando
técnicas y enfoques para analizarlos adecuadamente. Aprenderás a identificar
requisitos, restricciones y objetivos del problema, y seleccionarás algoritmos y
estructuras de control adecuados para su resolución. Dominarás la
implementación de algoritmos en un lenguaje de programación específico,
utilizando estructuras de datos y variables para manipular la información.
Además, adquirirás habilidades para realizar pruebas y depuración de
algoritmos, así como técnicas de optimización para mejorar su eficiencia y
rendimiento.

3. Sintaxis y uso de operadores


Explorarás las bases fundamentales del lenguaje de programación,
aprendiendo sobre variables y su manipulación, así como métodos de entrada
y salida de valores. Desarrollarás tu primer programa "Hola Mundo" como una
forma tradicional de iniciar en la programación. Dominarás el uso de
estructuras condicionales, incluyendo el condicional "if", para tomar decisiones
en el programa. Conocerás los operadores lógicos y los operadores relacionales
para evaluar condiciones y realizar comparaciones.

4. Estructuras secuenciales y repetitivas


Desarrollarás habilidades en la implementación de estructuras secuenciales
para ejecutar instrucciones en un orden específico y realizar tareas de manera
organizada. Abordarás la creación de ciclos con un número determinado de
iteraciones utilizando bucles for y while, así como la creación de ciclos con

3
número indeterminado de iteraciones utilizando bucles while y do-while.
Conocerás la diferencia entre bucles finitos e infinitos y aprenderás a
controlarlos utilizando instrucciones de control como break y continue.

5. Introducción al lenguaje de programación


Conocerás la historia del lenguaje de programación y su relevancia en la
industria y en diversos casos de uso. Dominarás el uso principal del lenguaje
en el desarrollo de software y otras áreas. Aprenderás a descargar e instalar el
IDE necesario para programar en el lenguaje elegido. Explorarás los tipos de
datos básicos del lenguaje, como enteros, flotantes, cadenas y booleanos, y
utilizarás variables para almacenar y manipular estos datos. Profundizarás en el
uso de estructuras condicionales más complejas, como if-else if-else, para
tomar decisiones más elaboradas en el programa.

6. Estructuras secuenciales y repetitivas


Explorarás diferentes estructuras de control, como if-else, switch-case y
estructuras condicionales anidadas, para tomar decisiones más complejas en
el programa. Aprenderás a crear bucles con un número determinado de
iteraciones utilizando la sintaxis específica del lenguaje. Utilizarás bucles for y
while para ejecutar un bloque de código un número determinado de veces.
También, crearás bucles con un número indeterminado de iteraciones
mediante bucles while y do-while, ejecutando un bloque de código hasta que
se cumpla una condición de salida.

7. Colecciones
Aprenderás sobre las colecciones de elementos en el lenguaje de
programación, comenzando por los Arrays. Dominarás la creación y
manipulación de Arrays, así como su uso para almacenar múltiples elementos
del mismo tipo en una secuencia ordenada. Conocerás las listas, tuplas y
diccionarios, y explorarás sus ventajas y aplicaciones en la programación.
Adquirirás habilidades para recorrer las colecciones y acceder a sus elementos,
además de incorporar, modificar y borrar elementos de las colecciones.

8. Funciones
Desarrollarás funciones que acepten parámetros de entrada y aprenderás a
utilizar la palabra reservada return para devolver datos al programa principal.
Adquirirás habilidades para procesar la información dentro de las funciones,
realizando operaciones y cálculos con los parámetros de entrada o variables
locales. También, trabajarás con funciones que no requieren parámetros de

4
entrada, llamadas funciones sin parámetros. Aprenderás a utilizar funciones
void para realizar tareas sin retornar valores hacia el programa principal.

9. Librerías
Explorarás el concepto de librerías en el lenguaje de programación y su
importancia para la reutilización de código. Conocerás las librerías más
utilizadas en el lenguaje dictado en la cursada, explorando ejemplos prácticos
de su uso y sus principales características. Aprenderás a importar y utilizar las
funciones y recursos de una librería en un programa. También, adquirirás
habilidades para explorar y utilizar librerías externas populares y ampliamente
utilizadas en el ámbito del lenguaje de programación.

10. Introducción a las bases de datos relacionales


Conocerás el concepto y origen de las bases de datos y su importancia en el
almacenamiento y gestión de la información. Explorarás los objetivos y
funcionalidades que brindan las bases de datos relacionales, así como la
arquitectura y modelos utilizados en ellas. Aprenderás a realizar la instalación y
configuración básica de una base de datos relacional, además de la creación
de tablas y la inserción de datos.

11. Lenguaje SQL


Dominarás la creación de bases de datos utilizando SQL y la creación de tablas
con sus columnas, tipos de datos, restricciones y claves primarias. Aprenderás
a realizar consultas y subconsultas utilizando la cláusula SELECT, operadores
de comparación y lógicos, y la cláusula WHERE para filtrar los resultados.
Además, conocerás las cláusulas INSERT, UPDATE y DELETE para insertar,
modificar y eliminar datos en una tabla.

5
Proyecto a desarrollar durante la cursada

El proyecto se construye a lo largo de la cursada y sirve para validar tu aprendizaje,


poniéndolo en práctica con un proyecto propio. Las pautas del proyecto se les
informará durante la cursada. Los proyectos serán una excelente herramienta para
enriquecer tu portfolio y así poder aumentar tus probabilidades de empleabilidad
en el sector IT.

Proyecto Final
Vamos a desarrollar una aplicación desde cero, abordando tanto el diseño como la
implementación de todas sus funcionalidades.
Trabajarás en un caso de uso específico, diseñando la lógica para la entrada de
datos, su procesamiento y la posterior salida de resultados.
Podrás elegir una temática relevante a tu interés o problemática específica para
desarrollar tu proyecto.
Realizarás una validación exhaustiva del procesamiento de datos para garantizar
la integridad y precisión de los resultados.
Aplicarás librerías o frameworks relevantes a la temática del proyecto para mejorar
la eficiencia y calidad de la aplicación.
Integrarás prácticas de seguridad y manejo adecuado de errores para asegurar la
confiabilidad y robustez de la aplicación.
Realizarás una presentación y documentación concisa que describirá las
funcionalidades, proceso de desarrollo y decisiones tomadas durante el proyecto.

6
Requerimientos para cursar
○ No se requieren conocimientos previos de programación para asistir a este
curso.
○ Acceso a Internet, manejo básico de exploradores web (Chrome, Firefox,
Edge, Opera, Safari), manejo básico de la computadora.

Requisitos para obtener el diploma


○ Asistir al 65% de las clases en vivo (clases sincrónicas).
○ Acceder semanalmente al Aula Virtual.
○ Realizar los ejercicios obligatorios semanales.
○ Aprobar el Trabajo Práctico Obligatorio.
○ Aprobar el EFI (Examen Final Integrador).

7
Codo a Codo inicial
Clase 01
Presentación del curso
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Sobre Codo a Codo 4.0
Preparamos a los/as estudiantes para la demanda de las empresas
más innovadoras del área de IT.

Nuestros cursos están destinados a personas jóvenes y adultas, que


busquen desarrollarse profesional y personalmente, ampliando sus
oportunidades laborales de acuerdo a los desafíos que plantea el Siglo
XXI.
Objetivos de
¿Qué hacemos?
Codo a Codo:
>Incrementar la inserción
laboral en el sector IT. Brindamos Cursos de
Programación Inicial, Full Stack y
>Mayor sinergia con el otras formaciones IT.
sector privado.

Nuestras ofertas duran 20


>Más mujeres capacitadas
en tecnología. semanas (208 h) y se cursan,
entre instancias sincrónicas y
>Formar más y mejores asincrónicas, de forma 100%
programadores/as. virtual.
Nuestro
Compromiso
● Brindar una oferta
académica amplia,
actualizada y de calidad.
Codo a Codo 4.0
en números…
+65.000 20.000
postulantes en la Vacantes totales para la
inscripción jun-jul 2023 2da cohorte 2023
(valor aproximado)

Articulación y presencia en
93% de los egresados
CABA y las
5.000 considera que haber

24 Provincias del país egresados/as históricos*


cursado Codo a Codo 4.0
agregó valor a su CV
y perfil profesional.

* Conocé sus trabajos en:


https://agenciadeaprendizaje.bue.edu.ar/portfolio-egresados-codo-a-codo/
+ 12.000 estudiantes
inscriptos en Codo a Codo
Inicial en Agosto 2023.
Junto a quiénes trabajamos…

Generamos alianzas estratégicas con empresas y organizaciones del sector IT con el fin


de actualizar la oferta y potenciar la empleabilidad de los/as egresados/as del programa:

Capacitaciones Inserción Prácticas Convenios


complementarias laboral formativas de colaboración
Requisitos de Ingreso

30 preguntas a resolver en línea durante


Examen de ingreso 40 minutos para nivelar aspirantes
mediante sus conocimientos en Inglés,
Lógica Matemática y Pseudocódigo

Lógica Matemática o
Programación básica

Secundario
completo
2 Períodos de inscripciones vía Web
(Enero y Febrero / Junio y Julio)
Inglés
conocimientos básicos
Metodologías de Enseñanza

Ejercitación
Clase sincrónica Tutores
3 h semanales
asincrónica Egresados/as
6 h semanales

CaC Inicial CaC 4.0 CaC +

E-learning Sincrónico Bootcamp o Entrenamiento Construcción colaborativa


Mayor presencia del vínculo sincrónico basado en Proyectos del conocimiento
entre el/la instructur/ra y el alumno/a. Simulación de proyecto real con 2
De la divergencia de ideas a la
Donde se potencia el pensamiento entregas y fomento de trabajo en equipo, convergencia del conocimiento
computacional mediante la resolución creatividad, colaboración e innovación
de problemas prácticos
Mapa de Propuestas

Codo a Codo Codo a Codo CaC +


Inicial + Full Stack + Cursos Avanzados

El curso comprende: ➨ Desarrollo web


➨ Desarrollo Web Java
Avanzado
Entrenamiento en el ➨ Desarrollo Web PHP
➨ Desarrollador de
pensamiento ➨ Desarrollo Web Python
Videojuegos
computacional ➨ Desarrollo Web
➨ Analista
Javascript/NodeJs
mediante: Lógica Programador Mobile
matemática, Lógica Developer
computacional, Base de ➨ Product Manager
Datos, introducción a la ➨ Consultor/a BI
➨ Especialista en
programación
Otras formaciones Seguridad
secuencial o funcional, Informática
entre otros contenidos.
➨ Testing QA
➨ Big Data
➨ Diseño
➨ UX/UI
Curso Inicial

208 h ● Programación inicial

Pseudocódigo Lenguaje Trabajo final


60 hs 140 h (obligatorio)

60 h 58 h
60 h 30 h Estructuras y 30 h
Herramientas Persistencia
funciones (al menos en horas extra)
de datos

• Programacion • Conceptos • Estructuras y • Manejo de • Trabajo en equipo


estructurada y basicos bucles archivos • Flexibilidad
secuencial • Funciones
• Tipos • Manejo de • Comunicación
• Estructuras • Modularidad
• Operadores BBDD • Autoconfianza
Cursos Full Stack

● Full Stack Web Java


● Full Stack Web PHP
208 h
● Full Stack Web Python
● Full Stack Web Javascript/NodeJs

Front End Back End Trabajo final


(en común) 108 h (obligatorio)

54 h 27 h 27 h
90 h en común
Lenguajes Frameworks
específicos específicos

• HTML • Arquitectura • Java Spring • Trabajo en equipo


• CSS • Bases de datos • PHP Laravel • Flexibilidad
• Bootstrap • GIT • Python Flask - Django • Comunicación
• JavaScript • Scrum • NodeJs Express • Autoconfianza
• POO
Otras Formaciones

● Testing QA
208 h ● Big Data
● Diseño
UX/UI

Testing QA Big Data Diseño UX UI Trabajo final


(obligatorio)
• Ciclo de vida del • Fundamentos de lógica • Diseño Centrado en el
desarrollo de Software y algoritmia Usuario
• Metodologías de Testing • Planillas de cálculo • Investigación y validación
• Análisis de avanzado • Arquitectura de la
requerimientos • Bases de datos información
• Armado de casos de Relacionales • Diseño y prototipado en
prueba • Programación en Python Figma • Trabajo en equipo
• Estadística básica • Pruebas de usabilidad • Flexibilidad
• Reporte de Bugs
• Librerías Python para • Comunicación
• Automatización • Imagen y composición
• Autoconfianza
procesamiento de datos • Nociones de Ps y Ai
• Performance
• Informes y Dashboards • Design Thinking
Tu Compromiso
● Valorar la vacante.
● Aprovechar los contenidos de calidad.
● Aprovechar las clases sincrónicas.
● Gratuidad del curso: un curso equivalente de Programación Inicial
está costando actualmente + $250.000 (valores aproximados a julio del
2023).
● Valoren el lugar que están ocupando. Hay mucha gente que quiere
participar y quedó fuera (más de 110 mil inscriptos en 2022). Si no
podrán cursar avisen lo antes posible para darle posibilidad a otros.
○ Si les surgen imponderables y se les complica cursar, también comuníquenlo para
ayudarlos a buscar una solución.
GUÍA DEL ESTUDIANTE
CODO A CODO

2° CUATRIMESTRE 2023
del 31 de Julio al 15 de Diciembre de 2023
¿CUÁLES SON LOS REQUISITOS OBLIGATORIOS PARA SER UN
ESTUDIANTE REGULAR DE CODO A CODO?

➔ Ser mayor de 18 años.


➔ Tener título secundario aprobado.
➔ Presentar la documentación solicitada al comienzo de la cursada:
título y DNI.
➔ Asistir a las clases sincrónicas dos veces por semana según días y
horarios asignados.
➔ De esta manera cumplir con el 65% de asistencia
obligatoria.
➔ Realizar los ejercicios obligatorios en el Campus virtual.
➔ Realizar los trabajos prácticos grupales.
Datos importantes Tu Docente
Nro. de comisión: 23626

Días y horarios de la cursada on-line: Peletay Milena Abigail


Martes y Jueves de 10:00 hs a 11:30hs e-mail de contacto:
Modalidad: Virtual-Sincrónica milena.peletay@bue.edu.ar

Drive: link
Youtube: link
Tutor/a: Fernanda Torok
Contacto: Meet: link
fernanda.torok@bue.edu.ar
Coordinador pedagógico del curso: Asistencia: link
Emiliano S. Spinoso
HERRAMIENTAS DEL CURSO
Vas a contar con el acceso a la plataforma virtual donde encontrarás
diversos materiales de estudio, ejercicios de repaso, ejercicios
obligatorios, entre otros.
El alta a esta plataforma suele demorar, así que no te preocupes si aún
no podés acceder. Inténtalo durante las primeras dos semanas.

Para acceder seguirás los siguientes pasos:


1. Entra a https://aulasvirtuales.bue.edu.ar/
2. “Acceder”
3. Usuario: (nro de dni o documentación) clave:(Prueba!123)
4. Si no logras acceder, contacta a tu tutor/a mediante el formulario
de consultas.
¿CÓMO SABE TU DOCENTE QUE TE
CONECTASTE?
Cada docente compartirá el medio para tomar asistencia en
determinado momento de la clase.
Deberás completarlo automáticamente porque una vez
finalizada la clase no podrás completarla ni validar tu
asistencia de otra manera.
La modalidad de toma de asistencia puede estar sujeta a
modificaciones durante la cursada.
MODALIDADES DE EVALUACIÓN

Para mantener la regularidad durante la cursada,


● Participar en los encuentros sincrónicos.
● Trabajar con los contenidos publicados semanalmente en la
plataforma.
● Realizar los ejercicios obligatorios en las fechas correspondientes,
● Entregar las actividades prácticas propuestas según lo requiera tu
instructor/ra.
● Te recomendamos invertir 6 horas de práctica semanal para
completar satisfactoriamente la cursada.
● Realizar el trabajo final obligatorio.
● Aprobar satisfactoriamente el examen final integrador.
MODALIDADES DE EVALUACIÓN
Importante y a tener en cuenta:
● Los ejercicios obligatorios semanales, se habilitan durante
dos semanas, una vez cerrados no vuelven a
habilitarse.
● El trabajo final grupal es obligatorio y los observa el/la
instructor/ra, con defensa final al finalizar la cursada.
MODALIDADES DE EVALUACIÓN
El exámen integrador estará disponible desde el 11 de
Diciembre 23 contará con dos fechas de llamado al
finalizar la cursada.
Requisitos para ser egresado/egresada:
Cumplir con el 65% de asistencia.
Cumplir con la entrega de los ejercicios obligatorios.
Cumplir con el proyecto práctico final solicitado por el/la
instructor/ra.
Cumplir con la aprobación del examen integrador.

Una vez cumplidos todos los requisitos se te avisará vía mail sobre la
entrega de diplomas. La demora es de 4 a 6 meses.
Codo a Codo 4.0 2023
Plan de estudios
Curso: Codo a Codo Inicial
MÓDULO I: Algoritmia esencial utilizando pseudocódigo
1) Introducción a la algoritmia
● Cómo se procesa la información.
● Que es un dato. Que es un Algoritmo. Que es un programa.
● Características de los algoritmos. Entrada, procesamiento y salida de la información.
● Diagrama de flujo de un algoritmo.

2) Análisis y resolución de problemas


● Definición de un problema y análisis de sus puntos principales.
● Utilización de algoritmos para la resolución de los problemas planteados.

3) Sintaxis y uso de operadores


● Definición de una variable y asignación de valor a la misma.
● Entrada y salida de valores por pantalla.
● Hola Mundo!
● Condicionales
● Operadores lógicos y relacionales

4) Estructuras secuenciales y repetitivas
● Ciclos con un número determinado o indeterminado de iteraciones
● Bucles finitos e infinitos.
MÓDULO II: Lenguaje de Programación

1) Introducción al lenguaje de programación


● Historia del lenguaje. Uso principal del mismo.
● Descarga e instalación del IDE.
● Tipos de datos. Variables.
● Condicionales
2) Estructuras secuenciales y repetitivas dentro del lenguaje
● Estructuras de control
● Creación de bucles con un número determinado o indeterminado de iteraciones utilizando la sintaxis propia del
lenguaje.
3) Colecciones
● Creación de Arrays - Listas - Tuplas - Diccionarios.
● Recorrido de la colección.
● Incorporación , modificación y borrado de elementos dentro de las colecciones.
4) Funciones
● Funciones con y sin parámetros de entrada
● Devolución de datos hacia el programa principal
● Procesamiento de la información dentro de la función
● Palabra reservada Void
5) Librerías
● Librerías más utilizadas dentro del lenguaje de programación dictado en la cursada.
MÓDULO III: Base de Datos
1) Introducción a las bases de datos relacionales
● Concepto y origen de las BD .
● Objetivos y funcionalidad.
● Arquitectura y Modelos.
● Instalación de la base de datos

2) Consultas SQL
● Creación de base de datos. Creación de tablas. Inserción, modificación y eliminación de datos.
● Consultas y subconsultas dentro de la BD.
● Clausulas: Select Insert Update Delete Where
¿Cuánto cobra un programador en
Argentina?
¿Cuánto cobra un programador en
Argentina?
El sueldo promedio de un programador junior sin experiencia en Argentina es de
$176.000 por mes, de acuerdo al sitio web Encuestas IT.
Los profesionales con pocos años de experiencia en el mercado laboral cobran un sueldo
mayor de aproximadamente 269.000 pesos mensuales.
Sin embargo, el sueldo promedio de un programador senior en el país es de 365.000
pesos por mes, de acuerdo al sitio web Encuestas IT.
En la Argentina esta profesión es muy demandada y suele ser una de las que menos ofertas
tiene en el campo digital y tecnológico. Según la Cámara de la Industria Argentina del
Software (Cessi), se encuentran alrededor de 5.000 vacantes laborales.
Fuente: https://www.iprofesional.com/tecnologia/382894-cuanto-cobra-un-programador-en-argentina-2023
Empleo IT: las 10 carreras con salida laboral de 2023

● Data Science y Business Intelligence


● Especialista en Marketing Digital
● Diseñador Web y Mobile
● Diseñador UX/UI
● Desarrollador Full Stack
● Especialista en Redes
● Experto en Seguridad de la Información
● Responsable de Infraestructura
● Analista de Soporte
● Especialista en eCommerce
Empleo IT:
Opciones cortas de carreras con salida laboral
● “Las carreras cortas permiten una breve especialización en un
campo profesional que, aunque más reducido de lo que brindan las
carreras tradicionales, ofrece una rápida salida laboral dentro del
área elegida.”
Estudiar carreras con salida laboral
● “Según datos de la Cámara de la Industria Argentina del Software
(CESSI), todos los años quedan cerca de 5.000 puestos de trabajo
en tecnología sin ocupar en el país por falta de perfiles
calificados. Es necesario incrementar la cantidad de alumnos en
carreras con salida laboral de manera de contar con los talentos
necesarios para el futuro.”
En conclusión…
No está mal iniciar por el principio
Vas por buen camino, estás en buenas manos.
En este curso vas a asentar los conocimientos necesarios para seguir
avanzando con éxito en las propuestas más avanzadas de Codo a
Codo.

Es mayor el porcentaje de alumnos/as que finalizan satisfactoriamente


los cursos avanzados habiendo comenzado por el Inicial.

Sigamos avanzando que nos espera una gran cursada


¡Muchas Gracias!
agenciadeaprendizaje.bue.edu.ar/codo-a-codo
linkedin.com/company/saalv
instagram.com/programaCodoACodo
No te olvides de dar el presente
Codo a Codo inicial

Presentación de herramientas
Les damos la bienvenida
Actual Proximo
Anterior

Presentacion del curso Presentacion de Herramientas Introduccion a la algoritmia

● Repaso de clase anterior


● ¿Qué es PSeInt?
● ¿Por qué PSeInt?
● Expectativas para el curso
¿Qué es PSeInt?

PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en


programación. Mediante un simple e intuitivo pseudolenguaje en español
(complementado con un editor de diagramas de flujo), le permite centrar su
atención en los conceptos fundamentales de la algoritmia computacional,
minimizando las dificultades propias de un lenguaje y proporcionando un entorno de
trabajo con numerosas ayudas y recursos didácticos.

Sitio oficial:https://pseint.sourceforge.net/
¿Por qué PSeInt?
PSeInt está pensado para asistir a los estudiantes que se inician en la construcción de
programas o algoritmos computacionales. El pseudocódigo se suele utilizar como primer
contacto para introducir conceptos básicos como el uso de estructuras de control,
expresiones, variables, etc, sin tener que lidiar con las particularidades de la sintaxis de un
lenguaje real. Este software pretende facilitarle al principiante la tarea de escribir algoritmos
en este pseudolenguaje presentando un conjunto de ayudas y asistencias, y brindarle
ademas algunas herramientas adicionales que le ayuden a encontrar errores y comprender
la lógica de los algoritmos.
¿Qué es pseudocódigo?
El pseudocódigo es un lenguaje informal utilizado para describir un algoritmo. Es una forma
de representar la lógica y el flujo de un programa sin necesidad de utilizar la sintaxis
específica de un lenguaje de programación en particular.

El pseudocódigo es una herramienta útil para planificar y diseñar programas antes de


comenzar a codificar en un lenguaje de programación específico. El objetivo es
proporcionar una representación clara y concisa de los pasos que se deben seguir para
resolver un problema o completar una tarea en particular.
Instalación

El paquete para Windows es un instalador ejecutable. Abrir y seguir las


instrucciones (el mismo instalador funciona en cualquier Windows, ya sea
de 32 o 64 bits).

Si se utiliza la versión "portable", el ejecutable que se debe lanzar es


"wxPSeInt.exe".

Sitio de descarga: aquí


Hurra!! Instalación completa!!

Ya tenemos todo listo para comenzar nuestra primer unidad en Codo a Codo
Inicial. Pero.. ahora que ya conocés el programa y a tu profe, me gustaría
conocerte a vos..

¿Cuáles son tus expectativas? ¿Cuáles son tus metas?


Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase Introductoria
Aprendizaje desde Cero
Parte 1
Les damos la bienvenida
Vamos a comenzar a Aprender desde Cero
Contenido:
● Conceptos básicos de computación
● Un poco de historia
● Reconocimiento de componentes
● Hardware y software
● Sistemas Operativos
● Navegación, buscar información en internet
Conceptos básicos de computación:
La computación o informática es una ciencia que estudia las formas, técnicas y procesos para
trabajar con datos. Su trabajo consiste en almacenar, procesar y transmitir información,
siempre en formato digital. En un principio esta ciencia se usó para facilitar los trabajos
repetitivos y monótonos del área administrativa y junto con la automatización de máquinas se
produjo una disminución de los costes y un incremento en la productividad.

Actualmente se requiere de la informática o ciencias de la computación para


conseguir optimización en casi todas las ciencias y disciplinas existentes, y generar
mejoras en la calidad de vida de las personas.
Entrada, Proceso y Salida:
El proceso de computación en general consta de una entrada de datos sobre un problema que
vamos a abordar. Luego, realiza un proceso interno, el cual transforma estos datos en información
manipulada a fin de cumplir un propósito en particular. Por último, se genera la salida, de dicha
información para ser utilizada por el usuario.
La siguiente imagen representa este proceso en forma general:
Dato e información:

Dato es un término que se refiere a hechos, eventos, transacciones, etc., que han
sido registrados. Es la entrada sin procesar de la cual se produce la información.
Información se refiere a los datos que han sido procesados y comunicados de tal
manera que pueden ser entendidos e interpretados por el receptor.
Este paso del dato a la información es crucial ya que los datos por sí solos no nos
dicen nada. No tienen ningún significado en particular, no son buenos ni malos en sí
mismos. Solo al procesarlos, es decir, al analizarlos, compararlos con otros, ponerlos
en contexto y relacionarlos, es que se convierten efectivamente en información. De
esta forma, la información es nada más ni nada menos que "datos
interpretados", a los que les damos un significado.
Ejemplo:
Por ejemplo, cuando una persona va al médico, le proporciona una serie de datos (sus síntomas).
Solamente con esos datos no se puede hacer demasiado: podrían significar cualquier cosa, pero el
médico, los procesa y los transforma en información (un diagnóstico) a partir de la cual puede
sugerir un tratamiento y por lo tanto, una solución al problema del consultante.
Historia de la computadora:
La historia de la computadora es el recuento de los eventos,
innovaciones y desarrollos tecnológicos del campo de la
informática y la automatización, que dieron origen a las
máquinas que conocemos como computadoras, computadores
u ordenadores. Registra además su mejoramiento y
actualización hasta alcanzar las versiones miniaturizadas y
veloces del siglo XXI.
Las computadoras son las máquinas de cálculo más
avanzadas y eficientes inventadas por el ser humano. Están
dotadas del suficiente poder de operaciones, la suficiente
autonomía y velocidad como para reemplazarlo en muchas
tareas, o permitirle dinámicas de trabajo virtuales y digitales
que nunca antes en la historia habían sido posibles.
La invención de este tipo de aparatos en el siglo
XX revolucionó para siempre la manera en que
entendemos los procesos industriales, el trabajo, la
sociedad y un sinfín de otras áreas de nuestra vida. Afecta
desde el modo mismo de relacionarnos, hasta el tipo de
operaciones de intercambio de información a escala mundial
que somos capaces de realizar.
Antecedentes:
Joseph Marie Jacquard inventó en 1802 un sistema de tarjetas perforadas.
La historia de la computadora tiene largos antecedentes, que se remontan a las primeras reglas de
cálculo y a las primeras máquinas diseñadas para facilitarle al ser humano la tarea de la aritmética. El
ábaco, por ejemplo, fue un importante adelanto en la materia, creado alrededor de 4.000 a. C.

También hubo inventos muy posteriores, como la máquina de Blaise Pascal, conocida como
Máquina de Pascal o Pascalina, creada en 1642. Consistía en una serie de engranajes que permitían
realizar operaciones aritméticas. Esta máquina fue mejorada por Gottfried Leibinitz en 1671 y se dio inicio
a la historia de las calculadoras.

Los intentos del ser humano por automatizar continuaron desde entonces: Joseph Marie Jacquard
inventó en 1802 un sistema de tarjetas perforadas para intentar automatizar sus telares, y en 1822
el inglés Charles Babbage empleó dichas tarjetas para crear una máquina de cálculo diferencial.

Solamente doce años después (1834), logró innovar su máquina y obtener una máquina analítica capaz de
las cuatro operaciones aritméticas y de almacenar números en una memoria (hasta 1.000 números de 50
dígitos). Por este motivo, a Babbage se le considera el padre de la computación, ya que esta
máquina representa un salto hacia el mundo de la informática como lo conocemos.
Invención de la computadora
La invención de la computadora no puede atribuirse a una sola persona. Se considera a Babbage
como el padre de la rama de saberes que luego será la computación, pero no será sino hasta mucho
más adelante que se hará la primera computadora como tal.
Otro importante fundador en este proceso fue Alan
Turing, creador de una máquina capaz de calcular
cualquier cosa, y que llamó “máquina universal” o
“máquina de Turing”. Las ideas que sirvieron para
construirla fueron las mismas que luego dieron
nacimiento al primer computador.
Otro importante caso fue el de ENIAC (Electronic
Numeral Integrator and Calculator, o sea,
Integrador y Calculador Electrónico Numeral), creado
por dos profesores de la universidad de Pensilvania en
1943, considerado el abuelo de los computadores
propiamente dicho. Consistía en 18.000 tubos al vacío
que llenaban un cuarto entero.
Historia del Hardware:
Desde los primeros sistemas informáticos, el hardware ha experimentado importantes cambios, con el fin de
obtener computadoras más veloces y capaces de desarrollar una mayor diversidad de tareas. Teniendo en
cuenta los adelantos más significativos, se distinguen al menos cuatro generaciones de hardware:

● Primera generación (1945-1956): Eran máquinas de cálculo que operaban mediante tubos al vacío.

● Segunda generación (1957-1963): Se inventaron los transistores, gracias a los cuales se redujo
enormemente el tamaño total de las computadoras.

● Tercera generación (1964-1971): Se diseñaron los primeros circuitos integrados, impresos en pastillas
de silicio, lo que permitió una mayor rapidez y efectividad en el procesamiento de la información.

● Cuarta generación (1971-1981): Surgieron los microprocesadores, que permitieron la creación de la


computadora personal (PC).
A estas cuatro generaciones, se añade a veces una quinta generación (1982-1989), correspondiente al
desarrollo de sistemas de computación paralela, capaces de ejecutar muchas operaciones
simultáneamente. Se trató de un proyecto que no obtuvo los resultados esperados y se abandonó.
¿Qué es hardware?
En computación e informática, se conoce como hardware (del inglés hard, rígido, y ware,
producto, mercancía) al conjunto de los componentes materiales, tangibles, de un computador o
un sistema informático. Incluye todas las partes mecánicas, eléctricas y electrónicas, sin
considerar los programas y otros elementos digitales que forman parte del software.

El término hardware se utilizó en inglés a partir del siglo XV para designar utensilios y
herramientas fabricados con metales duros. Actualmente, hardware también se emplea con los
significados de ferretería, armamento y conjunto de barat as de metal.

Con el surgimiento de las computadoras en la década de 1940, se comenzó a denominar hardware


a los componentes físicos de la máquina para distinguirlos de los componentes lógicos.

La palabra se emplea en español y otros idiomas sin traducción. En el caso del español, se han
propuesto, sin demasiado éxito, varios términos y expresiones equivalentes: equipo, equipo
informático, componentes, soporte físico.
Tipos de hardware:
De acuerdo con la tarea que desempeña, el hardware se clasifica en cinco categorías
principales:

• Hardware de procesamiento: Es el corazón propiamente dicho del computador, donde


reside su capacidad de realizar operaciones lógicas, es decir, sus cálculos. Corresponde a
la Unidad Central de Proceso (CPU) o también se puede considerar como parte del
hardware de procesamiento la placa madre o placa base (motherboard), que conecta a
todos los componentes.
• Hardware de almacenamiento: Es la memoria del sistema. Se trata de unidades que
permiten guardar la información, tanto en soportes internos dentro de la máquina como
en soportes extraíbles y portátiles. El principal componente de este tipo es la memoria
de acceso aleatorio, más conocida como memoria RAM (sigla en inglés de Random
Access Memory).
Tipos de hardware:

Hardware de entrada: Son dispositivos que permiten ingresar información al sistema. Pueden estar
integrados a la máquina o ser removibles. El teclado, el mouse, el micrófono y el escáner forman parte de este
tipo de dispositivos.
Hardware de salida: Son dispositivos semejantes a los de entrada, pero permiten extraer información del
sistema. Entre este tipo de dispositivos se encuentran el monitor, la impresora y los altavoces.
Hardware de entrada y salida: Son aquellos dispositivos que combinan las funciones de entrada y de salida
de información del sistema. Los discos externos y las memorias USB son componentes de entrada y salida por
ejemplo.

El hardware también se puede clasificar teniendo en cuenta su importancia. En este caso, se distinguen dos
grupos:

● Hardware crítico: Es aquel sin el cual la computadora no puede funcionar. Incluye la placa madre, la CPU,
la memoria RAM, la tarjeta gráfica y la fuente de alimentación.

● Hardware no crítico: Son los componentes que, aunque necesarios, no son imprescindibles para el
arranque de la computadora. A esta categoría pertenecen el disco duro y, en general, los dispositivos de
entrada y salida.
Componentes internos y dispositivos externos:
Como hemos visto, el hardware hace referencia a los diferentes elementos tangibles de una computadora
y hay varias formas de clasificarlo. A continuación, una de las formas más comunes de agruparse es en
interno y externo (periférico).

El hardware interno está conformado principalmente por componentes:

● Placa madre (o motherboard): Es la placa principal de cualquier sistema informático al que todos los
demás dispositivos se conectan, tanto de manera directa (como los circuitos eléctricos
interconectados) como indirecta (a través de puertos USB u otro tipo de conectores). Cuenta con un
software básico llamado BIOS que le permite realizar y sincronizar sus funciones básicas (como la
transmisión de datos, la administración de la energía eléctrica y el reconocimiento de la conexión
física de otros componentes externos).
Componentes internos y dispositivos externos:

● Microprocesador: Es la Unidad Central de Procesamiento (CPU), es decir, el cerebro de la


computadora que controla todo lo que ejecuta el ordenador y es responsable de realizar los
cálculos y la comprensión de datos. Hay varios tipos de CPU que se diferencian, entre otras
cosas, por su velocidad para procesar la información. Esa velocidad se mide en una unidad
de frecuencia llamada Hertz (o Hercio en español) y, cuanto más rápida es la velocidad
alcanzada por el procesador, más rápido será el rendimiento de la computadora. En la
actualidad, las dos marcas principales de CPU son AMD e Intel. Ojo, también Intel y AMD son
fabricantes de Placas de Video. Ya veremos que esto tiene sentido porque tanto el
procesador como la placa de video trabajan juntos para procesar muchísimos datos.
Componentes internos y dispositivos externos:

● Memoria interna RAM: Es la memoria que almacena información, de manera temporal y rápida,
para que la computadora la utilice en el momento. Su capacidad de almacenamiento se mide en
unidades llamadas gigabytes (GB). A mayor cantidad de memoria RAM, más rápido puede funcionar
la computadora, por ejemplo, para abrir y usar varios programas a la vez. El contenido de la memoria
RAM se elimina tan pronto se apaga la computadora porque no almacena datos (archivos, videos,
programas, etc.), sino que conserva información sobre las acciones que se están realizando con esos
datos. No almacena el archivo o el programa en sí, sino la información necesaria para ejecutarlo y
mantenerlo funcionando.
Componentes internos y dispositivos externos:
● Memoria interna ROM o BIOS: Es la memoria que almacena información de manera permanente y que se denomina
de “solo lectura”, es decir, el usuario no puede alterar el contenido una vez que se almacenó esa información, solo
puede instalarlo o desinstalarlo. La memoria ROM almacena todo lo relacionado con instrucciones o lo que también
se denomina BIOS (sistema básico o programa de arranque) y que comprende las instrucciones de cómo se inicia la
máquina o cómo funcionan ciertos programas,entre otros.

● Placa de video: También conocida como “tarjeta gráfica” es un dispositivo de hardware interno que se conecta a la
placa madre y permite que la computadora muestre imágenes en el monitor. Básicamente, la única función que
cumple la tarjeta de vídeo en el conjunto de una computadora es procesar la información que le envía la CPU
(Unidad de Proceso Central), y convertirla en imágenes, las que luego enviará al monitor. Es decir que por un lado
ingresa información, es procesada y luego sale por el monitor, tan simple como eso. El tema es como lo hacen. En
este proceso intervienen los varios elementos que conforman una placa de video. A su vez, cada placa de video
siempre requiere de la instalación de un software para que le indique a la computadora cómo usar esa placa de
video. El usuario puede modificar la configuración de la imagen proyectada en el monitor, por ejemplo, la calidad
(mayor o menor definición), el tamaño, entre otros.
Componentes internos y dispositivos externos:

● Placa de sonido: Es un dispositivo de hardware interno que se conecta a la placa madre y se clasifica
según los canales que utiliza, por ejemplo, estéreo, cuadrafónico (sonido envolvente), MIDI
(conector de uso profesional), entre otros. La función principal de la placa es permitir a la
computadora reproducir sonidos (música, voz o cualquier señal de audio) a través de altavoces o
auriculares. También recibe sonidos del usuario a través de la conexión de un micrófono.
Componentes internos y dispositivos externos:

● La unidad de almacenamiento: Es el dispositivo que principalmente almacena el sistema operativo y la


información. A diferencia de la memoria RAM, la unidad de almacenamiento guarda la información de forma
permanente. Existen dos tipos de unidades de almacenamiento, los discos duros o discos rígidos (hard disk
drive, HDD) y las unidades de estado sólido (solid state drive, SSD). Los HDD, más antiguos, están formados
por uno o varios platos giratorios de metal, en los que un cabezal magnético lee o escribe información a
medida que se usa la computadora. Las unidades SSD, más modernas, no poseen partes mecánicas. La
información se guarda en chips que utilizan memoria flash. Esta tecnología permite leer y escribir
información ubicada en distintas posiciones al mismo tiempo. De este modo, resultan mucho más veloces
que los discos duros. Un gran consejo es que el sistema operativo esté siempre instalado en unidades SSD
mientras que archivos menos relevantes o requeridos en unidades HDD, ya que no se requieren con tanta
frecuencia y velocidad.
Componentes internos y dispositivos externos:

● La fuente de alimentación: Se encarga de recibir la corriente eléctrica alterna y de transformarla en


corriente continua, que alimenta los dispositivos internos de la computadora. La fuente se ocupa,
además, de filtrar y distribuir el voltaje que precisan los dispositivos para funcionar, ya que no todos
requieren la misma cantidad de voltios.
Componentes internos y dispositivos externos:

El hardware externo de una computadora está conformado principalmente por dispositivos de entrada y
salida:

Dispositivos de entrada: También llamados periféricos. Son piezas que reciben datos sin procesar y que la
computadora puede procesar a través del software correspondiente. Se dividen en dos categorías,
dispositivos de entrada manual, que deben ser operados por el usuario (teclado, mouse, pantalla táctil,
micrófono, etc.) y dispositivos de entrada automática, que accionan el ingreso de información por su cuenta,
de manera independiente del usuario (lector de banda magnética, reconocimiento de caracteres de tinta
magnética, lector de PIN y chip, lector de código de barras, etc.).
Componentes internos y dispositivos externos:

Dispositivos de salida: Son piezas que envían hacia fuera los datos procesados por la
computadora. Hay dos tipos, de salida temporal (como el monitor, que actualiza
constantemente la imagen de salida en la pantalla) y de salida permanente (como la
impresora, que reproduce información sobre un papel que perdura como una copia
impresa).
Componentes internos y dispositivos externos:

Dispositivos de entrada-salida: Los periféricos de entrada y salida, abreviados e/s o también i/o (del
inglés input/output), son aquellos que cumplen tanto con el ingreso de información al sistema como
con su extracción. Esto puede ocurrir de manera simultánea o por turnos.
Son ejemplos de periféricos mixtos:
Las pantallas táctiles, que permiten al mismo tiempo mostrar la información del sistema visualmente e
interactuar con ella a través de los dedos o de otros instrumentos ópticos como lápices digitales.
Las impresoras multifuncionales, que cumplen las funciones de un escáner y una impresora, o sea,
permiten al usuario tanto digitalizar documentos como imprimirlos.
Los equipos de realidad virtual, normalmente cascos y guantes que proyectan directamente la información
digital a la vista y los oídos del usuario, y le permiten retroalimentar el sistema con los movimientos de su
cuerpo.
Las tarjetas de red o bluetooth, que permiten el envío y la recepción de información proveniente de otros
sistemas computarizados, mediante la codificación y decodificación de señales ópticas, ondas de radio o
impulsos eléctricos a través del cableado.
Qué es Software?
El software es el soporte lógico de un sistema informático, que comprende el conjunto de
instrucciones lógicas necesarias para cumplir tareas específicas en conjunto con el hardware.
De esta manera, el software envía instrucciones que el hardware ejecuta, haciendo posible su
funcionamiento.

El software se construye con una serie de “reglas”(código del programa) escritas en algún
lenguaje de programación. Estas reglas definen cómo debe comportarse el sistema
informático (es decir, el software y también el hardware), indicando su lógica y estructura.
Ahora bien, estas reglas no pueden escribirse de cualquier forma, por ello existen los
lenguajes de programación, que nos permiten darle comportamiento al software.

Relacionando el concepto de software con sistema informático, toda la parte lógica no


tangible de un sistema informático se considera como software del sistema.

Por ejemplo, Microsoft Excel es un sistema informático, el cual se compone de diferentes


elementos orientados al tratamiento y administración de datos con el objetivo de generar
información.
Tipos de software
Al igual que el hardware se clasifica de diferentes formas, con el software sucede algo similar. Existen tres
grandes tipos de software, clasificados según su finalidad y estos son el software operativo, el software de
aplicación y el software de programación.
Un ejemplo de la gestión de recursos de un SO:

Software operativo (sistema operativo)

Un Sistema Operativo (S0) es el software principal


de un sistema informático que gestiona los recursos
de hardware y provee servicios a los programas de
aplicación de software. Ejemplos de SO:
Tipos de software
Además, la parte más importante que tiene un S0 es que se encarga de administrar los recursos de una computadora,
esto significa que es un “orquestador” de todos los programas que están funcionando en una PC. Sin el S0 no podrías
usar una computadora, ya que no estaría asegurado el orden y equilibrio para que cada programa funcione
correctamente.

Algunos de los sistemas operativos más famosos son Windows, de la empresa Microsoft y Mac0S de la empresa Apple.
A su vez, existen otras alternativas libres (pagas o gratuitas) basadas en otro sistema operativo que es Unix. Un
ejemplo de esto es Ubuntu que es libre y gratuito. Pero atención, Mac0S también fue diseñado a partir de la base de
Unix pero es privado y pago. ¿Cómo es esto? ¿Cuáles son las diferencias entre software libre, gratuito y privado?

Software libre no es sinónimo de gratuito

Se conoce como software libre a todo programa que respeta la libertad de los usuarios y la comunidad. A grandes rasgos,
significa que los usuarios tienen la libertad de ejecutar, copiar, distribuir, estudiar, modificar y mejorar el software. Es
decir, el software libre es una cuestión de libertad, no de precio. Para entender el concepto, debemos pensar “libre” como
en “libre expresión”.
En inglés, a veces en lugar de “free software” decimos “libre software ”, empleando ese adjetivo francés o español,
derivado de “libertad”, para mostrar que no implica que el software es gratuito. Se puede haber pagado dinero para
obtener copias de un programa libre, o puede haber obtenido copias sin costo, pero con independencia de cómo se
obtuvieron sus copias, siempre se tiene la libertad de copiar y modificar el software, incluso de vender copias.
Software de aplicación
En informática, se entiende por software de aplicación, a aquellos programas generalmente
instalados en el sistema operativo por el usuario, y diseñados para llevar a cabo un objetivo
determinado y concreto, de tipo lúdico, instrumental, comunicativo, informativo, etc.

Dicho de otro modo, todos aquellos programas que no tienen que ver con el funcionamiento del
computador, sino que se instalan en él con funciones determinadas, ya sea como herramientas de
trabajo (hoja de cálculo, procesador de palabras, programas de diseño gráfico, etc.), de ocio
(videojuegos, reproductores de audio o video, etc.) o de información (enciclopedias digitales,
navegador de Internet, etc.), entre otras.

El software de aplicación normalmente es diseñado y comercializado aparte del software de sistema


operativo que viene incorporado de fábrica al computador, y su selección e instalación en el sistema
es a total libre albedrío del usuario. No es, sin embargo, imposible que muchos programas de este
tipo vengan preinstalados —debido a convenios empresariales y promociones específicas— en el
disco rígido de un computador recién comprado, por ejemplo un antivirus o un navegador web
específico.
Software de aplicación

Algunos ejemplos populares de Software de aplicación son:


Google Chrome: Se llama así a este navegador de Internet diseñado y
publicado por Google Inc., y distribuido de manera totalmente gratuita por
la red. Revolucionó el ramo al ser uno de los exploradores más livianos y
veloces del momento.

OpenOffice: Un paquete de software de oficina, de distribución libre y


gratuita a través de Internet, para hacer la competencia a versiones
pagas populares, como Microsoft Office. 0pen0ffice opera con código
abierto y posee tanto un procesador de palabras (Writer), una hoja de
cálculo (Calc), un software de presentaciones y diapositivas (lmpress),
una base de datos (Base) y un editor de fórmulas matemáticas (Math),
como un editor de gráficos y efectos visuales (Draw)
Software de aplicación

Skype: Un software diseñado para establecer comunicaciones telefónicas o


videoconferencias empleando la transmisión de datos de Internet. Permite al usuario
establecer su agenda de contactos, administrar diversas cuentas y emitir y recibir tanto
señales de audio como de video en tiempo real.
Actual mente es propiedad de la empresa Microsoft.

MediaMonkey: Se trata de un programa reproductor multimedia para archivos de


audio y de video, desarrollado por Ventis Media Inc. Permite organizar, etiquetar y
reproducir archivos, y opera en diversos sistemas operativos.

Adobe Illustrator: Diseñado para la edición de gráficos y en representación virtual de


un taller de arte, este programa opera en base a un tablero de dibujo llamado “mesa
de trabajo”, en el que se lleva a cabo la labor de diseño artístico y creativo, ayudado
por diversas herramientas digitales. Es propiedad de Adobe Systems y se encuentra
en el paquete Adobe Creative Cloud.
Software de programación
Se conoce así a los lenguajes de programación, es decir, a los programas que sirven para diseñar
otros programas. Para ello el usuario o programador cuenta con diversas herramientas de asistencia
en la escritura del código de la nueva pieza de software, tales como funciones de prueba o interfaces
amigables.

Todos los programas existentes provienen de un software de programación, y cada software de este tipo
permite “escribir” un lenguaje o protocolo diferente, aunque muchos, claro, son el equivalente a
políglotas.

Entonces, el software de programación se usa para la creación de otros software, programas o


aplicaciones. Algunos son programas, o sea aplicaciones específicamente diseñadas para poder trabajar
con lenguajes de programación, por ejemplo Microsoft Visual Studio Code y otros son lenguajes
propiamente dichos como Java, Javascript, Python, Ruby, PHP, C++, etc.
CONCEPTOS BÁSICOS SOBRE INTERNET

INTERNET NAVEGADOR BUSCADOR


Se trata de una red de Es el instrumento que Es un sistema
equipos de cálculo, permite a los usuarios informático que busca
que se relacionan de internet navegar todo tipo de información
entre sí a través del entre las distintas en la web, almacenando
uso de un lenguaje páginas de sitios la misma en una enorme
universal. webs. base de datos, para
arrojar la información
solicitada.
¿QUÉ ES UN
SITIO WEB?
Es un espacio virtual en Internet. Se
trata de un conjunto de páginas web,
accesibles desde un mismo dominio o
subdominio de la World Wide Web
(WWW).
DIFERENCIA ENTRE PÁGINA
WEB Y SITIO WEB
EL MODELO CLIENTE-SERVIDOR
Cuando la petición llega al servidor, el
mismo resuelve:

➔ Si el sitio efectivamente está en ese


servidor.
➔ Qué directorio (o carpeta)
corresponde con ese sitio web.
➔ Qué archivo está siendo
solicitado (si no es ninguno,
siempre se busca uno por
defecto).
➔ Qué tecnologías conforman esos
archivos.
CLIENTE-SERVIDOR
Al abrir un browser y pedir
una página web,se suele
hacer por su nombre
normalmente. A lo largo de
toda la red de internet, hay
una serie de máquinas que
hacen de “agenda” y nos dan
la IP. Cuando la petición llega
al servidor,el mismo
resuelve.
EXPLORADORES
Para probar tu web, necesitarás varios
exploradores, con el fin de corroborar si
los mismos soportan las etiquetas
aplicadas al diseño. Los más comunes
son:

● Google Chrome.
● Mozilla Firefox.
● Opera.
● Safari.
● Microsoft Edge.
EDITORES DE TEXTO
Son programas que te permiten realizar o
escribir código fuente (HTML, CSS, PHP,
JavaScript) de tus proyectos. Al ser dinámicos,
son idóneos para cuando desarrollas uno con
varios lenguajes de programación. Algunos de
ellos son:

● Sublime Text.
● Atom.
● Visual Studio Code.

Código fuente: es el conjunto de líneas de textos, las cuales son las directrices
que debe seguir la computadora para realizar dicho
programa.
TERMINAL O CONSOLA

En informática, una terminal o


consola es la aplicación que se
utiliza para interactuar con el
computador a través de
comandos. Está disponible en
todos los Sistemas Operativos.
CONOCIENDO LA TERMINAL - DOS

Windows: ve al menú o pantalla de


Inicio, y escribe "Símbolo del Sistema"
en el cuadro de búsqueda escribe
CMD.
Algunos Comandos en Sistemas Operativos
Comando Comando (Mac OS / Descripción Ejemplo
(Windows) Linux)

exit exit Cierra la ventana. exit


cd cd Cambia el directorio. cd test
cd pwd Mostrar el directorio actual. cd (Windows) o pwd (Mac OS
/ Linux)
dir ls Lista directorios/archivos. dir

copy cp Copia de archivos. copy c:\test\test.txt


c:\windows\test.txt

Fuente: https://tutorial.djangogirls.org/es/intro_to_command_line/
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase Introductoria
Aprendizaje desde Cero
Parte 2
Les damos la bienvenida
Vamos a comenzar a Aprender desde Cero
Contenido:
• Introducción aWindows
• Ofimática: definición
• Nociones básicas de Sistemas
• Herramientas digitales
• Aspectos de seguridad
Conceptos Básicos de Windows 10

Interfaz de Usuario Configuración Aplicaciones

• Escritorio • Visión general • Tienda Microsoft


• Menú de Inicio • Personalización • Aplicaciones incluidas:
• Barra de Tareas • Cuentas de usuario  Microsoft Edge
• Explorador de Windows • Actualizaciones y  Correo, Calendario
• Vista de Tareas y Escala seguridad y Contactos
de Tiempo  Fotos, música, películas
• Centro de actividades  OneDrive
 Cortana
 Office 365
Configuración de Windows 10

Windows 7
Windows 8
Windows 8
Windows 10
Windows 10
Configuración de Windows 10

El cuadro de búsqueda
permite encontrar
configuraciones

Las configuraciones de Windows se encuentran


agrupadas en diferentes áreas.
¿Qué es la nube? Desde su aparición en el año
Es un servicio de aplicaciones y 2015, Windows recibe dos
almacenamiento disponibles actualizaciones de
desde cualquier dispositivo y características al año,
desde cualquier lugar. incluyendo nuevas funciones
y mejoras de seguridad
Instalar aplicaciones
desde la Tienda Microsoft

Windows 10 es un sistema
operativo orientado a la
nube y nos ofrece acceso a
las aplicaciones Office
365
Interfaz de usuario

• Centro de
actividades

• Menú de Inicio • Barra de Tareas


Explorador de Windows
Acceso rápido:
• Carpetas frecuentes
• Archivos frecuentes
• Anclar a acceso rápido

OneDrive desde el Explorador se puede guardar


en la nube
OneDrive

OneDrive, el servicio
de almacenamiento
en la nube de
Microsoft, se
encuentra ahora
integrado en el
Explorador de
Windows.

Requiere cuenta
Microsoft.
Opciones de configuración

Categoría

Para entrar en panel de control


se accede desde el botón
Windows/Inicio o desde la barra
de accesos elegir configuración
dando luego a panel de control.
Consejo: cuando no sepamos
como entrar dónde está una
utilidad, programa, archivo, Elementos de
podemos indicar su nombre configuración
en el acceso buscar y una
vez buscado, acceder al
mismo.
Personalización
Desde el área de
personalización podemos
cambiar el fondo de
pantalla, los colores,
aplicar temas, cambiar el
tamaño de las fuentes…

Para poder ajustar la


personalización del equipo,
la licencia de Windows
debe estar activada.
En Aplicaciones y
Características podemos
ver todas las aplicaciones
instaladas.

Existe un cuadro de
búsqueda que nos
permite buscar
aplicaciones.

Para desinstalar una


aplicación, basta con
seleccionarla y dar al
botón Desinstalar.
Cuentas de Usuario
Una cuenta local permite iniciar
sesión en un
equipo.

Existen dos tipos de usuarios:


administrador y usuario estándar.
Por seguridad es conveniente
usar un usuario estándar.

Si no lo hemos hecho durante la


instalación de Windows, en
cualquier momento podemos
convertir una cuenta local en una
cuenta Microsoft.
Cuentas Microsoft Una cuenta Microsoft permite iniciar sesión
en varios equipos. Ventajas:
Se puede sincronizar configuraciones como
el fondo de escritorio, temas, contraseñas y
otras configuraciones.
Puede ser necesaria para instalar ciertas
aplicaciones de la Tienda Microsoft
Es necesaria para usar determinados
servicios como Office 365 o Cortana.
Cuando una cuenta local se convierte en
cuenta Microsoft, se puede configurar un
PIN para usarlo en lugar de una
contraseña.
Es muy
Actualización y importante tener
el sistema
seguridad operativo
actualizado,
especialmente
en lo relativo a
las
actualizaciones
de seguridad.

Windows tiene
su propio
antivirus,
Windows
Defender, que
debe estar
actualizado para
protegernos de
programas
maliciosos.
Dos veces al año, Microsoft libera actualizaciones de
características y nuevas funcionalidades
Aplicaciones
En Windows hay dos tipos de aplicaciones: Aplicaciones de escritorio:
Aplicaciones de escritorio - Sólo se pueden instalar y usar en PC o Tablet
Aplicaciones universales con W10
Aplicaciones
universales
Se adquieren en la Tienda Microsoft
Algunas son gratuitas y otras son de
pago (en ese caso se requiere cuenta
Microsoft).
Correo, Contactos, Calendario, Paint
3D… son aplicaciones universales que
vienen incluidas en W10
Se pueden instalar en diversos
dispositivos: PC, Tablet o Smartphone.
Muchas aplicaciones tienen versiones
para sistemas operativos Android y
Mac
La Tienda Microsoft es un portal similar a Google Play o
Apple Store, desde el que se pueden adquirir:
Aplicaciones
Tienda Juegos

Microsoft Música
Películas y Series TV

Windows 10 revisa de
todas las aplicaciones de
la Tienda Microsoft,
también las que vienen
incluidas con el sistema
operativo, se actualicen
de forma automática.

También se pueden
obtener actualizaciones
de forma manual.
Microsoft Edge: el nuevo navegador basado en
Chromium, que sustituye a la anterior versión de
Nuevo Microsoft Edge.

Edge Está disponible desde enero de 2020. Para instalarlo


se requiere la versión 1909 de Windows 10 en
adelante.

Por el momento, no se instala desde la Tienda


Microsoft, sino mediante descarga dese la página
web de Microsoft.
Nuevo Microsoft Edge
Pinchando en icono de los tres puntos “…” aparecen todas las
opciones disponibles, muchas de ellas típicas de los
navegadores actuales: Favoritos, Historial, Descargas,
Configuración…

Podemos iniciar sesión en Microsoft Edge con varios perfiles de


usuario,
que se pueden sincronizar.
Correo, contactos y calendario

Podemos
Correo contactos y agregar varias
calendario son tres cuentas de
aplicaciones que correo, de varios
están conectadas proveedores
entre sí (Outlook,
Google,
Yahoo...)
Fotos, Música, Películas y TV

La aplicación Fotos, se ha diseñado para


que de una forma sencilla se puedan
recortar, girar y aplicar filtros.

Aplicaciones multimedia incorporadas con Windows


10. Se pueden cambiar las aplicaciones
predeterminadas para música, fotos y vídeo.
Aplicaciones Office 365

Windows 10 incluye el
acceso a la versión web de
las aplicaciones Office 365.
Permite almacenar trabajos
y documentos de forma
segura en OneDrive.
Requiere cuenta Microsoft.
Aplicaciones
Ofimática
Atajos de teclado
Win Abre el menú Inicio
Win + Q Abre Cortana preparada para
comando de voz

Win + S Abre Cortana preparada para


comando de texto

Win + I Abre Configuración


Win + R Abre menú ejecutar
Win + X Abre menú administración
Win + A Abre el centro de acciones
Win + P Abre el menú proyectar
Menú administración: Menú proyectar: Win + E Abre el explorador de Windows
Win + X Win + P
Win + T Desplazarse entre los programas de
la barra de tareas. (Enter para abrir
Abrir Configuración: la aplicación).
Win + I
Guía definitiva de atajos de teclado para
Windows 10 http://es.gizmodo.com/la-guia-
definitiva-de-atajos-de- teclado-para-windows-
10-1720856213
Atajos de teclado
Alt + F4: Cerrar ventana
Ctrl + F1: Muestra/oculta cinta opciones
Ctrl + Z: Deshacer Win + Arriba: Maximiza la ventana
Win + Abajo: Minimiza la ventana

Ctrl + C: Copiar Ctrl Ctrl + E: Seleccionar


+ X: Cortar Ctrl + V: todo
Pegar

Nuevos atajos de teclado:


Pulsando la tecla ALT
aparecen cuadrados
indicado la tecla que
debemos pulsar para
escoger la siguiente
opción.
¿Qué es un sistema?
Etimología y definición de sistema

La etimología del vocablo proviene del latín “systēma” que a su vez proviene del griego “σύστημα”, que se
traduce como “unión de elementos de forma organizada”. Un sistema es una serie de elementos que
están interconectados entre sí y cuyo funcionamiento es como un todo. Los elementos que lo
conforman pueden ser diversos, como un grupo de lineamientos o principios perfectamente estructurados
acerca de una teoría, ciencia o materia. Algunos ejemplos pueden ser los sistemas de información, los
sistemas económicos y políticos o el cuerpo humano, entre otros.

Características de un sistema

Ahora bien, los sistemas son a su vez el objeto de estudio de la Teoría General de Sistemas, una disciplina
que los aborda desde una perspectiva múltiple e interdisciplinaria. Según esta teoría, cualquier sistema es
reconocible dados sus límites y partes interrelacionadas e interdependientes (sus llamados subsistemas), a
punto tal que la modificación de un elemento modifica necesariamente el funcionamiento del resto del
sistema. Asimismo, dentro de un sistema es posible prever, con mayor o menor precisión, el
comportamiento de sus componentes si se modifican los demás.
¿Qué es un sistema? - Características
A continuación se presentarán algunas de sus principales características:

● Propósito: todos los sistemas deben tener un propósito, tanto sus objetivos como las relaciones que
se dan dentro de él. Esto tiene que ver con la sinergia que surge de cada sistema, o sea que el todo
sería mucho más que la suma de las partes. Esta visión permitiría apreciar aún más las interacciones,
particularidades y procesos que por lo general no se perciben si se estudian los aspectos que
conforman el todo por separado. Toda relación y todo objetivo debe poder responder el por qué y para
qué.

● Globalismo o totalidad: son de origen orgánico; por ello, si existe una acción que provoca
modificaciones en cualquier elemento del mismo, es probable que se den restauraciones en el resto de
los elementos a causa de la relación que hay entre cada uno de ellos. Las consecuencias totales de
dichos cambios se presentarán como un ajuste de esta estructura, todo esto es de gran relevancia a la
hora de entender su significado y el estudio de los mismos.

● Entropía: la entropía es definida como la tendencia que tienen estas estructuras para desgastarse,
desintegrarse, para bajar los estándares e incrementar la aleatoriedad. La segunda ley de la
termodinámica afirma que con el tiempo la entropía de los sistemas se eleva. Por ejemplo, en el
ámbito de la computación, se puede apreciar como los dispositivos se van deteriorando con el uso de un
dispositivo, a la larga comienzan a surgir deterioros.
¿Qué es un sistema? - Características

● Homeostasis: es el equilibrio común que hay entre las partes. Generalmente estas tienden a
adaptarse, para de esa forma lograr un balance internamente que les permita hacerle frente a los
cambios del medio en el que se encuentran. Esto es conocido también bajo el nombre de
autorregulación y es una característica que no todos los sistemas logran alcanzar con igual éxito. Por
ejemplo, hoy en día, en el mundo de la informática, los sistemas de inteligencia artificial tienen esta
característica super desarrollada buscando crear sistemas que sean cada vez más autónomos y
adaptativos frente a escenarios cambiantes.

Ahora bien, ¿por qué nos importa todo esto en el mundo Informático? Básicamente, toda esta teoría de los
sistemas es la base en donde hoy se apoyan diferentes profesionales para resolver los desafíos del mundo
informático. Una computadora, tablet o celular suelen ser pensados como sistemas informáticos ya que su
principal finalidad es almacenar, procesar y representar información de forma tal que sea útil para un ser
humano u otro tipo de sistemas.

Asimismo, hoy en día la computación está compuesta por dos grandes sistemas: el hardware y el software.
Estos dos grandes sistemas, que son casi indivisibles como el cuerpo y la mente, van a ser nuestros
principales espacios de trabajo. En esta unidad, nos dedicaremos a comprender, desde una mirada
sistémica, cómo se conforman e interrelacionan ambos sistemas.
Herramientas Digitales
Herramientas Digitales
Aspectos de seguridad
Los datos son valores, números, medidas, textos,
documentos en bruto, la información es el valor de esos
datos, es lo que aporta conocimiento. Los manuales de
procedimientos, los datos de los empleados, de los
proveedores y clientes de la empresa, la base de datos de
facturación son datos estructurados de tal forma que se
convierten en información, que aportan valor como
compañía.
Los pilares de la seguridad de la información se fundamentan
en esa necesidad que todos tienen de obtener la información,
de su importancia, integridad y disponibilidad de la
información para sacarle el máximo rendimiento con el
mínimo riesgo.
La seguridad está fundamentada por 3 pilares, pero puede
haber más que puedan fundamentar a la seguridad, en este
caso, si alguno de los lados es débil se perderá seguridad o
usabilidad, si falta alguno de los lados la organización queda
expuesta a ataques, para esto se debe conocer en detalle
cuál es la función de cada lado en el gráfico.

Principales pilares de la seguridad de la información


Aspectos de seguridad
Cuando se habla de tecnología defensiva en el ámbito de la informática, lo primero que se suele venir a la cabeza son
los antivirus, pero hay mucha más tecnología que puede complementar la seguridad de lo organización. Lo primero que
se debe tener en cuenta es que la responsabilidad de la gestión de la parte tecnológica de la defensa de la
infraestructura, ha de recaer sobre el departamento de IT o del centro de operaciones de seguridad, es posible y cada
vez más habitual que existan departamentos de seguridad específicos en muchas organizaciones y parte de su labor va
a ser coordinado con el trabajo del Departamento de IT, por lo que hay que tener precaución en la gestión administrativa
de esta situación.
Cómo se ha analizado en muchas ocasiones, la defensa debe establecerse en profundidad, es decir que se deben
aplicar capas de defensa.
Aspectos de seguridad
Mantenimiento
En primer lugar, se tiene el propio mantenimiento de los equipos y la aplicación de parches de seguridad, no parece
una medida demasiado especial, pero se debe tener en cuenta que si se hace que una vulnerabilidad deje de estar
presente en los equipos no se necesitarán poner una capa exterior que impida su explotación.
Antivirus
El siguiente paso sería la instalación de sistemas de antivirus en los servidores y estaciones de trabajo, existen de
todo tipo y calidad, unos consumen más y menos recursos, pero hay que contar siempre con ellos y mantenerlos
actualizados. Existen los que sólo se basan en firmas, los que emplean sistemas heurísticos, algunos recurren a
plataformas online para remitir archivos sospechosos y también hay que hacen sandboxing.
Los antivirus esencialmente son programas que se basan en la detección de malware en la fase de pre- ejecución, es
decir que analizan archivos y programas antes de que se ejecuten para prevenir que puedan hacer algo malo. Cada vez
está consiguiendo mayor relevancia Windows Defender integrado por la empresa Microsoft en su sistema operativo,
no es el más avanzado de los sistemas, pero es bastante eficiente en detección de firmas de malware y además ha
mejorado mucho su rendimiento respecto a las primeras versiones, la Figura 106 muestra la pantalla principal de este
antivirus.
Entre las características principales de este antivirus incluye supervisión sobre el estado de configuración del
firewall del equipo, sobre la seguridad de las cuentas de usuario e incluso la posibilidad de realizar cierto nivel de
monitorización de directorios para protegerlos de ransomware.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 3
Introducción a la Algoritmia
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 02 Clase 03 Clase 04

Introducción a la Algoritmia Variables y tipos de Datos en


Instalacion PSEINT
PSEINT
● Hardware y Software
● ¿Qué es la programación?
● Programa informático
● ¿Qué es un dato? / Tipos de
dato
● Algoritmos
● Diagramas de flujo –
ejercitación
● Análisis y resolución de
problemas con algoritmos
Hardware y Software

Veamos rápidamente las diferencias


Diferencias entre Hardware y Software

Hardware: son los componentes materiales y físicos de una computadora. Es la


parte física, tangible (que se puede tocar), de la computadora.
○ Interno.
○ Periférico: de entrada y/o de salida.

Software: es un conjunto de programas de cómputo, procedimientos, reglas,


documentación y datos asociados, que forman parte de las operaciones de un
sistema de computación. Es la parte lógica, intangible (que NO se puede tocar),
de la computadora.
○ De sistema (ej.: sistemas operativos).
○ De aplicación (ej.: utilitarios, como el procesador de texto Word).
○ De programación (IDE’s).
¿Qué es la programación ?

La programación trata la creación, diseño, codificación, mantenimiento


y depuración de un programa o aplicación informática, a través de un
código fuente.

Fuente: Carlos Cimino.


Objetivo

● Definir instrucciones para que un ordenador pueda ejecutar sistemas,


programas y aplicaciones que sean eficaces, accesibles y amigables para
el usuario.

● Para ello se usan algoritmos y lenguajes de programación.


Programa informático

Un programa informático es una secuencia de acciones (instrucciones)


basadas en un lenguaje de programación que manipulan un conjunto
de objetos (datos) para resolver un problema o cumplir una función
determinada.
¿Cómo se compone un programa ?

Bloque de declaraciones: en este se detallan todos los objetos que


utiliza el programa (constantes, variables, archivos, etc).

Bloque de instrucciones: conjunto de acciones u operaciones que se


han de llevar a cabo para conseguir los resultados esperados.
¿Qué es un dato?
En sentido general, un dato es una pieza de información. Es la unidad
mínima de información. En programación, un dato es esencialmente una
pieza de información que vamos a almacenar en algún lado (por ejemplo,
una constante o una variable). Un valor que puede ser de distintos tipos.

Recordemos que: «para la computadora cualquier dato es un número


binario. La diferencia es, a alto nivel, cómo el programador interactúa con
estos datos». (Fuente: C. Cimino).
Tipo de dato

Es el atributo que le indica al ordenador la naturaleza de los datos que


se dispone a procesar.

Con esto se puede definir qué especie o rango de valores acepta y qué
clase de operaciones se puede realizar.
Tipos de datos

Podemos encontrar frecuentemente:

ENTEROS (números enteros): por ejemplo, 12, 24, 65, 1044.


Numéricos
REALES (números decimales y fraccionarios ): 1,25; ¼; 3,1415; 1,42856.

CARACTERES(alfanuméricos + símbolos): “Hola, Mundo!”; “A4YNm832@34”.

LÓGICOS (Verdadero o Falso / True or False): también llamados ‘booleanos’,


pueden ser Verdadero o Falso.
Numéricos

Si el dato es exclusivamente un número y se pretende operar con él como


tal, entonces su tipo de dato es numérico. Estos pueden ser, a su vez,
positivos, negativos, decimales o enteros.

Luego, según qué lenguaje de programación usemos, el tipo de dato puede


estar discriminado en corto o largo (para los enteros), coma flotante simple o
coma flotante doble (para los decimales), información que se usará para
disponer el espacio en memoria que deberá reservarse.
Caracteres (alfanuméricos)

El caracter, que puede ser una letra, un símbolo o un número entre comillas, es un dato
alfanumérico.

Cuando agrupamos más de un carácter se forma una cadena de texto, una cadena de
caracteres.

“Hola”, “asd@3”, “42”, “Argentina es campeón” son todos ejemplos de tipo de dato caracter.

En el caso del “42”, lo que hace que esto sea de tipo caracter y no numérico es el uso de las
comillas para enmarcarlo: aquí, eso no es un número, sino una cadena de caracteres que,
coincidentemente, representa un número en forma de texto.
Lógicos (booleanos)

Este tipo de dato puede representar sólo dos valores, como pueden ser
Verdadero o Falso, 1 o 0.

Normalmente usados para representar las alternativas a determinadas


condiciones que pueden resultar verdaderas o falsas.

Ejemplo: la expresión booleana |8 < 4| daría Falso como resultado, dado que 8
no es menor que 4.
Tipos de lenguajes de programación

● Lenguaje de máquina: es el lenguaje que entiende la máquina, basado en


el sistema binario (0 y 1, Falso o Verdadero).
● Lenguajes de bajo nivel (ensamblador): se utilizaban palabras simples
(mnemónicas) que sustituían códigos numéricos y luego eran traducidas al
código máquina; están más cerca del lenguaje máquina que del humano
(Ej.: Assembler).
● Lenguaje de alto nivel: son más cercanos al lenguaje humano, requieren
de un compilador o intérprete para traducirse a lenguaje ensamblador y
luego a lenguaje de máquina (Ej.: Fortran, C++, Python, PHP, Java).
Lenguaje de Máquina
Es el lenguaje que los ordenadores reconocen, por lo que aún hoy
todo lenguaje es convertido a este.
Lenguaje ensamblador (bajo nivel)
El lenguaje ensamblador fue incorporado porque resultaba más fácil
de recordar y realizar por el usuario que el código máquina.
Lenguaje de alto nivel

Es un idioma artificial prediseñado formado por signos, palabras y


símbolos que permite la comunicación entre el programador y el
ordenador. Algunas ventajas:

● Más cercano a un lenguaje humano


● Más fácil de programar
● Menos posibilidad de cometer errores
● Permiten la portabilidad
Lenguaje de alto nivel

Los lenguajes de programación más conocidos son: Basic (1964), C++


(1983), Python (1991), Java (1995), C# (2000), entre otros.
Algoritmos
Es una secuencia lógica de pasos ordenados para resolver un problema

Hay algoritmos de la vida cotidiana y algoritmos computacionales.

Ejemplos en la vida cotidiana pueden ser: lavarse los dientes, una receta de
cocina, caminar de un punto a otro, etc.

Un algoritmo computacional, en cambio, define los procesos para dar


soluciones a problemas mediante operaciones lógicas en una computadora.
Componentes

• Entrada: información que damos al algoritmo con la


que va a trabajar para ofrecer la solución esperada.
• Proceso: conjunto de pasos para que, a partir de los
datos de entrada, se llegue a la solución esperada.
• Salida: resultados, a partir de la transformación de los
valores de entrada durante el proceso.
Características

• Precisos: sin ambigüedades.

• Finitos: tienen principio y un fin; un número determinado de pasos.

• Definidos: el algoritmo debe dar el mismo resultado siempre que


reciba la misma entrada para realizar el mismo proceso.

• Ordenados: presentan una secuencia de pasos para llegar a la


solución.
Representación

Vamos a destacar tres maneras formales de representar un algoritmo:

✔ Diagrama de flujo: representa de manera gráfica un algoritmo,


normalmente se utiliza el lenguaje UML (Lenguaje unificado de
modelado).
✔ Pseudocódigo: describe un algoritmo en un lenguaje de alto nivel que
luego puede traducirse a código en cualquier lenguaje de programación.
✔ Código fuente: lo podemos definir como una serie de instrucciones
secuenciales, escritas en un lenguaje de programación determinado que, a
través de un compilador o intérprete, puede ser ejecutado en una
máquina.
Diagramas de Flujo
Es una manera gráfica de representar un algoritmo. Se utiliza a la hora
de diseñar un programa. Normalmente se usa el lenguaje UML
(Lenguaje unificado de modelado). Se puede hacer en un simple papel.
Símbolos comunes de los diagramas de flujo

Fuente: “Introducción a la programación | Carlos E. Cimino”


Símbolos comunes de los diagramas de flujo

Símbolo de entrada y Representa los datos que están


salida de datos en general disponibles como entrada o salida

Agrega una explicación o


Símbolos de comentario comentarios necesarios dentro de un
rango específico
Ejemplo: Algoritmo para preparar café

Fuente:
C. Cimino.
Ejemplos en PSeInt

Este algoritmo
representado mediante
un diagrama de flujo
simplemente imprime
por consola la frase “Hola
Mundo”.
Análisis y resolución de Problemas

Una metodología para la resolución de problemas nos ayuda a


conseguir un algoritmo eficiente y eficaz. Siguiendo estos pasos
debidamente, conseguiremos realizar el algoritmo que
necesitamos.
Pasos a seguir

1 2 3 4
Análisis del Análisis del Análisis del Análisis del
problema
Análisis del problema
Diseñar el problema problema
Depurar el
problema Algoritmo Codificar programa
1- Análisis del problema
Ejercicio

Me ofrecen realizar un trabajo como monotributista y me dicen que me van a


pagar $30.000 de sueldo bruto. Sabiendo que el sueldo bruto es aquel al que no
se le descontaron impuestos, aportes, etc., quiero calcular cuánto dinero
realmente recibiría en la mano, es decir, mi sueldo neto.

Sigamos a continuación los pasos previstos.


Entendiendo el problema

Me doy cuenta de que debo averiguar el dato de cuánto es lo que se paga de


monotributo por esos conceptos, considerando mi sueldo bruto, y entonces
realizar una operación aritmética para dar como resultado mi sueldo neto.
Vamos al codigo!!

Primer intento
Identificando las entradas y salidas

Entradas Salidas
Mi sueldo bruto Mi sueldo neto
El valor del monotributo
Vamos al código!!

Segundo intento
No te olvides de dar el presente
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

CONCEPTOS INTRODUCTORIOS

En estos apuntes desarrollaremos algunos de los conceptos fundamentales que debes


conocer para comenzar tu camino en el mundo de la programación informática. El objetivo
principal de la presente guía, es el de mostrarte sintéticamente, desde conceptos técnicos hasta
apreciaciones personales que te servirán a la hora de comenzar a formarte como programador/a.
Comencemos..

Computadora: Hardware y Software. La herramienta


indispensable del programador.

Antes de comenzar a transitar nuestro camino, será necesario entender cuál es nuestra
principal herramienta de trabajo y el sector en el que nos desenvolveremos.
Si analizamos nuestro entorno, podremos identificar varios artefactos que son denominados
“inteligentes”, algunos de ellos son: los smartphones, los aires acondicionados, los smartwatchs,
etc. Se les atribuye tal nombre, al estar computarizados. Sin embargo, cada uno de ellos, operan de
manera diferente y cada uno cumple distintas funciones en la cotidaneidad.
Para entender la diferencia de cada uno de estos artefactos y por consiguiente, poder abordar
algunas areas de la informatica, es necesario preguntarnos ¿qué es una computadora?
Una computadora es un objeto que surge de la sumatoria de dos partes bien diferenciadas,
que se necesitan entre si para poder operar, estas partes son denominadas como hardware y
software. Si bien es cierto que se puede programar desde un dispositivo móvil, por motivos de
comodidad y de rendimiento, el programador usualmente utiliza lo que se conoce comercialmente
como computadora de escritorio o portátil para desempeñar su trabajo. Partiendo de este concepto,
podemos enfocarnos en esas partes que la conforman:

➔ Hardware: Se identifica así, a todo el grupo de componentes materiales y físicos que


conforman una computadora. Abarca toda la parte tangible de ella(todo lo que se puede
tocar), por ejemplo, el teclado, la memoria ram, el gabinete, etc. Este grupo, a su vez, se
subdivide en dos subgrupos: el hardware interno, y el hardware periférico (de entrada y/o de
salida). En el mercado laboral y academico, existen perfiles que se especializan en el
mantenimiento de esta area como por ejemplo los “tecnicos en reparacion de PC”.

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

➔ Software: Es el conjunto de programas de cómputo, procedimientos, reglas,


documentación y datos asociados, que forman parte de las operaciones de un sistema de
computación. Es la parte lógica, intangible (que NO se puede tocar), de la computadora. Se
subdivide en tres grupos:
• Software de sistema (ej.: sistemas operativos).
• Software de aplicación (ej.: utilitarios, como el procesador de texto
Word).
• Software de programación (IDE’s).
El oficio del programador informático o desarrollador de software, se enmarca en el
área del Software. A su vez dentro de esta, encontrarás más áreas en las que podrás
especializarte y orientar un perfil, como por ejemplo el área de Desarrollo de Aplicaciones
Móvil, Desarrollo de Aplicaciones de Escritorio, Desarrollo Web, etc.

¿Cuál es la tarea del programador?

La programación informática aborda todo el proceso de diseño, codificación, mantenimiento


y depuración de un programa o aplicación informática, por medio de un código fuente.
Nuestra tarea principal como programadores sera definir instrucciones para que un
ordenador pueda ejecutar todos esos pasos que tendrán como finalidad, automatizar o solucionar
una tarea para el usuario(por ejemplo: una agenda virtual, o una calculadora). Para lograrlo, se
definirán algoritmos, en un determinado lenguaje de programación.

¿Qué es un programa? ¿Y un algoritmo?

Un programa es un conjunto de uno o mas algoritmos, que trabajan de forma ordenada, a fin
de cumplir con determinado propósito, realizar una tarea o trabajos específicos, en una
computadora.
Un algoritmo, es un conjunto ordenado de instrucciones finitas bien definidas que resuelven
un problema. Un manual de instrucciones para colgar una televisión en la pared, una receta de
cocina para preparar un postre, las indicaciones de un GPS para llegar a destino, son algunos de las
tareas diarias que conforman algoritmos, ya que cumplen con ciertas características que hacen a su
esencia. Todo algoritmo debe ser:
• Preciso: Sin ambigüedad.

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

• Ordenado: Constituir una secuencia clara y precisa, un paso a paso, para poder
llegar a un determinado resultado.
• Finito: Ser un número determinado de pasos.
• Concreto: Ofrecer una solución especifica a un problema especifico.
• Definido: El mismo algoritmo debe dar el mismo resultado al recibir la misma
entrada.

Componentes o partes de un algoritmo en informatica:


➔ Input(entrada): recoleccion de datos que
aportaremos al algoritmo.
➔ Proceso: conjunto de pasos para que, a partir de
los datos de entrada, llegue a la solución de la
situación.
➔ Output(salida): resultado, a partir de la
transformación de los valores de entrada
durante el proceso.

Cuando se te presente un problema al que debas darle solución, podrás representar tu


algoritmo de distintas maneras, para asegurarte que la solución que proporcionas es la ideal:
• Diagrama de flujo: Es una representación gráfica de un algoritmo, normalmente se
utiliza el lenguaje UML (Lenguaje unificado de modelado) , puedes utilizar plantuml
para llevarla adelante. Tambien en PSEINT encontrarás la opcion de trabajar con
diagramas de flujo.
• Pseudocódigo: Este busca acercarse aun mas a un algoritmo en un lenguaje de alto
nivel, pero, en un lenguaje mucho más amigable para el programador. Podes
desarrollarlo vos según tus propios criterios, o respetando la sintaxis de algun
software educativo como PSEINT.
• Código fuente: Lo podemos definir como una serie de instrucciones secuenciales,
escritas en un lenguaje de programación determinado que, a través de un compilador
o intérprete, puede ser ejecutado en una máquina.

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

La importancia de la lógica de programación.

Como vimos anteriormente, dar una solución a un problema de manera eficaz, implica ser
muy conscientes a la hora de definir la secuencia de instrucciones y qué instrucciones le daremos a
la computadora. De ello depende el resultado que obtendremos.
Pensemos que estamos configurando un robot, y queremos programarlo para que pueda
lavarse los dientes. Los pasos que el autómata debería llevar adelante son:
1. Tomar la pasta de dientes con la mano derecha.
2. Con la mano izquierda destapar la pasta de dientes.
3. Dejar la tapa en el lavamanos
4. Con la mano izquierda ya liberada, tomar el cepillo de dientes
5. Posicionar la pasta de dientes sobre las cerdas del cepillo
6. Depositar la pasta en el cepillo: Apretar la pasta de dientes mientras la deslizamos sobre las
cerdas, y soltar cuando corresponda para que no caiga al piso
7. Introducir el cepillo en la boca
8. Cepillar: Mover el cepillo de izquierda a derecha cuando este posicionado en cada diente

etc…..
Este es un algoritmo que apunta a resolver esa tarea. Ahora bien, ¿qué pasaría si movemos
una instrucción de lugar? Imaginemos que lo establecemos de la siguiente manera:
1.Introducir el cepillo en la boca
2.Tomar la pasta de dientes con la mano derecha.
3.Con la mano izquierda destapar la pasta de dientes.
4.Dejar la tapa en el lavamanos
5.Con la mano izquierda ya liberada, tomar el cepillo de dientes
6.Posicionar la pasta de dientes sobre las cerdas del cepillo
7.Depositar la pasta en el cepillo: Apretar la pasta de dientes mientras la deslizamos sobre
las cerdas, y soltar cuando corresponda para que no caiga al piso
8.Cepillar: Mover el cepillo de izquierda a derecha cuando este posicionado en cada diente

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

En esta situación, seguramente al intentar ejecutar la primer instrucción, el autómata te dirá


que no puede hacerlo, ya que no podrá ingresar un objeto a su boca sin antes haberlo tomado. Lo
mismo sucedería si obviamos algún paso fundamental para la resolución de la tarea, por ejemplo, si
nunca le damos la instrucción de destapar la pasta el autómata, al presionarla haría estallar el
recipiente.
Si damos instrucciones claras, bien organizadas, estaremos estableciendo una “lógica
adecuada” que apunte a solucionar el problema; el arte de pensar y definir bien ese paso a paso, se
desarrolla con la practica.
Para conseguir un primer acercamiento a la lógica de programación, puedes jugar con
LightBot , allí comprenderás que tanto influye la lógica de nuestras soluciones.

Un poco de historia..

Ada Lovelace, es considerada la pionera de la programación informática, ya que fue ella


quien creó el primer algoritmo informático. Gracias a su invención, a lo largo de la historia hemos
podido desarrollar tres tipos de lenguajes de programación. Ellos son:
• Lenguaje de máquina: El lenguaje que los ordenadores reconocen, por lo que aún hoy todo
lenguaje es convertido a este. Basado en el sistema binario(0 y 1).
• Lenguaje ensamblador: Se utilizaban palabras simples, mnemónicas y abreviaturas que
tenían su correlativo y eran traducidas al código máquina.
• Lenguaje de alto nivel: con el Fortran se dio inicio a la aparición de lenguajes basados en
conjuntos de algoritmos mucho más complejos. Es un idioma artificial prediseñado formado
por signos, palabras y símbolos que permite la comunicación entre el programador y el
ordenador. Algunas ventajas: Más cercano a un lenguaje humano. Más fácil de programar.
Menos posibilidad de cometer errores. Permiten la portabilidad.

En este grupo de estudio, nos enfocaremos en aprender la sintaxis básica del lenguaje de
programación de alto nivel Python 3.11.

Comentario final: Las habilidades del programador.

Si partimos de una visión holística de la profesión, lograremos entender los cómo y por qué
del oficio del programador.

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

Cuando una persona se capacita en distintas herramientas informáticas(como lo puede ser un


lenguaje de programación de alto nivel, un tipo de base de datos, etc.) , se dice que está formando o
desarrollando sus habilidades duras o “hard skills”. Las hard skills, refieren a todo el conocimiento
y habilidad técnica que se le demanda al programador para desempeñarse en determinado puesto.
Retomando el concepto de que el programador viene a resolver problemas, podemos deducir
que al profesional también se le demandarán ciertas habilidades interpersonales,que determinarán
en mayor o menor medida, su forma de desenvolverse en el ámbito informático. Estas son, las
llamadas habilidades blandas o “soft skills”.
Éstas ultimas, son tan importantes como las primeras. Requieren de mucha introspección y
autocrítica. Notarás que algunas de ellas las tendrás mas o menos desarrolladas que otras, pero la
buena noticia, es que una vez que las identifiques, podrás trabajar en ellas. Podemos mencionar
algunas, por ejemplo: la constancia, la independencia, la tolerancia a la frustración, la capacidad de
trabajar en equipo, la buena comunicación, etc.

Algunos consejos...
Si bien apuntaremos a desarrollar habilidades duras(nos instruiremos en Python), te dejo
algunos consejos que considero necesarios destacar antes de que inicies tu camino en el mundo de
la programación:

1. Aprender a programar depende de cuánto practiques, sin constancia no asimilarás los


conceptos teóricos. Como bien dice el dicho “la practica, hace al maestro”. No te enfoques
en aprender de memoria los conceptos técnicos, enfocate en entenderlos y luego llevarlos a
la practica. Si en ese proceso, algo sale mal, entonces sabrás que hay algo que seguramente
debes repasar.
2. La programación no es para genios, ni siquiera hay una edad limite o idonea para aprender a
programar, la programacion es para resilientes. Rara vez, las cosas funcionaran a la primera,
y eso no tiene que ver con tus capacidades o caracteristicas como persona; como
programador deberás ser firme cuando tengas un problema, y volver a intentarlo hasta llegar
a la solución, no importa cuanto tiempo te lleve resolverlo. Hasta los programadores más
experimentados se equivocan o deben refrescar informacion.
3. La curiosidad será tu mejor aliada. Las herramientas son muchas, y están en constante
evolución. Como programador, deberás mantenerte en constante aprendizaje.
4. El conocimiento surge en la cooperación. A través del trabajo en equipo, reforzaras
saberes y adquirirás otros.
5. Todas aquellas dudas que te surjan, incluso la resolución de errores, se encuentran en la web.
Todo programador es en mayor o menor medida autodidacta, con el tiempo notaras que
comenzaras a desarrollar cierta independencia que te permita a través de la investigación,

v1.0.0
Introducción a la Algoritmia
Instructora: Peletay, Milena Abigail

refrescar conceptos, pensar en otras soluciones a través de ejemplos, aprender cosas nuevas,
cada vez que se te presente un problema, para llegar más rápido a la solución.

v1.0.0
NOTA: Esta lista no es exhaustiva, es una guía de preguntas orientativa a la hora de
comenzar el análisis de cualquier problemática que queramos informatizar.
Sería un buen ejercicio si pueden completar esta lista con preguntas que les surjan y que
consideren útiles a la hora de encarar los ejercicios.

● Entender el problema
○ ¿Cuáles son las entradas y salidas? Identificar variables y/o constantes a
utilizar.
○ ¿Con qué tipos de datos voy a trabajar? Es decir, ¿Cuál es la naturaleza de
esos datos?
○ ¿Cuáles son las restricciones que se pueden aplicar a dichos datos?
○ Pensar casos particulares del problema, por ejemplo en el ejercicio de
números primos, pensar cómo tendrían que ser las operaciones si el número
fuera un 5, o un 7, luego generalizar. Pensar que pasa datos "extremos o
problemáticos", por ejemplo el 0, un número negativo, etc.

● Diseñar el algoritmo
○ ¿Cómo estará estructurado nuestro algoritmo? Esta pregunta está orientada
a implementar una estrategia conocida como top-down, en la cual
desglosamos el problema que plantea el ejercicio en problemas más
pequeños e independientes entre sí para poder encararlos de a uno.
■ Parte declarativa
■ Etapa de validación (Aplicar restricciones a los datos de entrada).
● ¿Qué salidas o mensajes obtendrá el usuario durante el
proceso de validación?
● Algoritmo principal o parte de procesos.

○ ¿Cuáles son los pasos que debemos realizar y en qué orden para resolver el
problema?
■ ¿Requiere algún proceso repetitivo? Es decir, hay pasos que se
tengan que repetir? En caso afirmativo, ¿Sabemos cuantas veces?
■ Si no sabemos cuantas veces se repetirán esos pasos, bajo qué
condiciones se evaluarán?
■ ¿Cuáles son esos pasos que se repiten?
■ ¿Hay otras condiciones que tenga que tener en cuenta en mi
programa? ¿Cuáles? ¿En qué parte del proceso?
■ ¿Vamos a necesitar variables "temporales", "intermedias", “internas”,
por ejemplo: contadores, acumuladores, banderas? ¿En qué parte del
proceso?
● En caso del contador y/o acumulador, pensar dónde y con qué
valor inicializarlo, y en qué parte/s del proceso deberá
actualizarse.
● En el caso de la bandera, que eventos del programa
querremos "recordar" o "marcar" para luego ser utilizados,
¿dónde los necesitaremos?
Palabras reservadas
Es una palabra que tiene un significado gramatical especial para ese lenguaje y no puede ser
usada como identificador de objetos en el código (nombre de variables, de constantes, de
funciones, etc).

Cada lenguaje de programación tiene su propio conjunto de palabras reservas.

Palabras reservadas en PSeInt

Algoritmo Se utiliza en la cabecera de un algoritmo, precediendo al nombre


(identificador) que se le asigne.

Cadena Tipo de dato cadena.

Caracter Tipo de dato carácter.

Como Se utiliza para indicar el tipo de dato de una variable en su definición.

Con Paso En una instrucción repetitiva para (Para), se utiliza para indicar
el <valor_incremento> que se sumará, en cada iteración del bucle, a la
variable inicializada.

De Otro Modo Caso por defecto en una instrucción de control alternativa múltiple (Segun).

Definir Sirve para declarar variables.

Dimension Sirve para declarar arrays.

Entero Tipo de dato entero.

Entonces Se utiliza en instrucciones de control alternativas simples (Si) y dobles (Si


SiNo) precediendo al bloque de instrucciones que se ejecutará en el caso de
que la condición de la instrucción de control sea verdadera.

Escribir Se emplea para escribir una instrucción de salida.

Falso Posible valor de un tipo de dato Logico.

FinAlgoritmo Indica la finalización de un algoritmo.

FinFuncion Indica la finalización de una función.


FinMientras Indica la finalización de un bucle Mientras.

FinPara Indica la finalización de un bucle Para.

FinSegun Indica la finalización de una instrucción de control alternativa múltiple


(Segun).

FinSi Indica la finalización de instrucciones de control alternativas simples (Si) y


dobles (Si SiNo).

FinSubProceso Indica la finalización de un procedimiento.

Funcion Se utiliza en la cabecera de una función, precediendo al nombre


(identificador) que se le asigne.

Hacer Se emplea en la sintaxis de la instrucción de control alternativa múltiple


(Segun), y también, en la sintaxis de las instrucciones de control
repetitivas Mientras y Para.

Hasta En una instrucción repetitiva Para, se utiliza para indicar


el <valor_final> que deberá tener la variable inicializada, para que el bucle
finalice.

Hasta Que En una instrucción repetitiva Repetir, se escribe precediendo a la condición


que deberá ser verdadera para que el bucle finalice.

Leer Se emplea para escribir una instrucción de entrada.

Logico Tipo de dato lógico.

Mientras Se usa para escribir una instrucción de control repetitiva Mientras.

Para Se usa para escribir una instrucción de control repetitiva Para.

Por Referencia En la cabecera de un subalgoritmo (procedimiento o función), se utiliza para


indicar que un parámetro se pasa por referencia.

Por Valor En la cabecera de un subalgoritmo (procedimiento o función), se utiliza para


indicar que un parámetro se pasa por valor.

Real Tipo de dato real.

Segun Se usa para escribir una instrucción de control alternativa múltiple.

Si Se usa para escribir instrucciones de control alternativas simples y dobles.


Sin Saltar En una instrucción de salida (Escribir), se emplea para indicar que, después
de su ejecución, el cursor no debe "saltar" a la siguiente línea.

SiNo Se usa en instrucción de control alternativa doble precediendo al bloque de


instrucciones que se ejecutará en el caso de que la condición sea falsa.

SubProceso Se utiliza en la cabecera de un procedimiento, precediendo al nombre


(identificador) que se le asigne.

Verdadero Posible valor de un tipo de dato Logico.

Algunos ejemplos de palabras reservadas en lenguajes de programación:

Palabras reservadas en JAVA


Palabras reservadas en Python
Funciones en PSeInt

Las funciones que trae PSeInt.

No es el momento de explicar funciones en programación, más adelante se verá en más de


una clase, pero si es bueno ir conociendo las que tiene definidas nuestro PSeInt.

Para usar las funciones se debe colocar su nombre y entre paréntesis el o los argumentos que
requiera. Esta función devolverá un valor y nos facilitará realizar ciertos cálculos o usar código
ya escrito.

Sintaxis: nombreFuncion (arg1, arg2, …, argN)

Donde nombreFuncion es el nombre de la función y arg1, … son los argumentos que requiere
la función para devolvernos un resultado.

Funciones matemáticas
Veamos Algunos ejemplos
Funciones para cadenas de texto

Veamos Algunos ejemplos


Codo a Codo inicial
Clase 4
Introducción a la algoritmia ,
Variables y tipos de Datos
Les damos la bienvenida
Clase 3

Hoy Clase 5

Introducción a la Algoritmia,
Introducción a la algoritmia Variables y tipos de datos Operadores.

● Retomando:Algoritmos.
Concepto y Diagrama de
flujo.
● Variables y constantes
● Operador de asignación.
● Input & Output
● Operadores aritméticos
Algoritmos
Es una secuencia lógica de pasos ordenados para resolver un problema

Hay algoritmos de la vida cotidiana y algoritmos computacionales.

Ejemplos en la vida cotidiana pueden ser: lavarse los dientes, una receta de
cocina, caminar de un punto a otro, etc.

Un algoritmo computacional, en cambio, define los procesos para dar


soluciones a problemas mediante operaciones lógicas en una computadora.
Componentes

• Entrada: información que damos al algoritmo con la


que va a trabajar para ofrecer la solución esperada.
• Proceso: conjunto de pasos para que, a partir de los
datos de entrada, se llegue a la solución esperada.
• Salida: resultados, a partir de la transformación de los
valores de entrada durante el proceso.
Características

• Precisos: sin ambigüedades.

• Finitos: tienen principio y un fin; un número determinado de pasos.

• Definidos: el algoritmo debe dar el mismo resultado siempre que


reciba la misma entrada para realizar el mismo proceso.

• Ordenados: presentan una secuencia de pasos para llegar a la


solución.
Representación

Vamos a destacar tres maneras formales de representar un algoritmo:

✔ Diagrama de flujo: representa de manera gráfica un algoritmo,


normalmente se utiliza el lenguaje UML (Lenguaje unificado de
modelado).
✔ Pseudocódigo: describe un algoritmo en un lenguaje de alto nivel que
luego puede traducirse a código en cualquier lenguaje de programación.
✔ Código fuente: lo podemos definir como una serie de instrucciones
secuenciales, escritas en un lenguaje de programación determinado que, a
través de un compilador o intérprete, puede ser ejecutado en una
máquina.
Diagramas de Flujo
Es una manera gráfica de representar un algoritmo. Se utiliza a la hora
de diseñar un programa. Normalmente se usa el lenguaje UML
(Lenguaje unificado de modelado). Se puede hacer en un simple papel.
Símbolos comunes de los diagramas de flujo

Fuente: “Introducción a la programación | Carlos E. Cimino”


Símbolos comunes de los diagramas de flujo

Símbolo de entrada y Representa los datos que están


salida de datos en general disponibles como entrada o salida

Agrega una explicación o


Símbolos de comentario comentarios necesarios dentro de un
rango específico
Ejemplo: Algoritmo para preparar café

Fuente:
C. Cimino.
Como se ven en PSeInt

Este algoritmo
representado mediante
un diagrama de flujo
simplemente imprime
por la ventana la frase
“Hola Mundo”.
Ejercicio

Diseñemos un algoritmo sencillo, que le enseñe a un robot a


estudiar programación !! :)
Análisis y resolución de Problemas

Una metodología para la resolución de problemas nos ayuda a


conseguir un algoritmo eficiente y eficaz. Siguiendo estos pasos
debidamente, conseguiremos realizar el algoritmo que
necesitamos.
Pasos a seguir

1 2 3 4
Análisis del Análisis del Análisis del Análisis del
problema
Análisis del problema
Diseñar el problema problema
Depurar el
problema Algoritmo Codificar programa
1- Análisis del problema
Detonador de conocimientos previos..
¿Qué tienen en común las siguientes imágenes?
¿Qué es una variable?

Es un espacio en la memoria ram, que nos


permitirá almacenar temporalmente un dato
específico.

Podemos entenderla como una “cajita


temporaria”, que nos permitirá individualizar
cada dato con el que estamos trabajando, para
luego procesarlo.
Declarar una variable.
Necesitaremos darle un nombre a la cajita(identificador), e indicar qué tipo
de dato guardaremos en ella. Asi el ordenador entendera cada vez que la
mencionemos, que estaremos apuntando a esa cajita y no a otra.
Observemos la siguiente sintaxis:

Definir «identificador» Como «unTipoDeDato»


Definir «otroIdentificador» Como «otroTipoDeDato»

Si tenemos varias variables que comparten el mismo tipo de dato, las


podemos declarar en una misma linea de codigo para ahorrar tiempo

Definir «identificador1»,«identificador2», Como «tipoDeDato»


Veamos los siguientes ejemplos
(ésta variable
solo admitirá
enteros)
(la primera admitirá
enteros, la segunda
una cadena de
caracteres)
(ambas
admitirán
enteros)
¿Cómo nombrar una variable?
Reglas generales
*No utilizar la letra ñ
*Comenzar con una letra
¿por qué son importantes
*Puede contener números y guiones las convenciones en
*No puede contener espacios programación?
*No utilizar palabras reservadas
En variables cortas de una palabra, el nombre se recomienda siempre en
minúsculas, incluso su primera letra.

Convención de nomenclatura
● Lower Camel Case o Camel Case: nombreVariable
● Pascal Case o Upper Camel Case: NombreVariable
● Snake Case: nombre_variable
● Kebab Case: nombre-variable
Inicializar una variable. El operador de asignación.
Una vez que reservamos la “cajita” en la memoria
ram, que indicamos el nombre y el tipo de dato que
vamos a guardar allí, podemos proceder a guardar
un dato siempre que sea del tipo que hemos
indicado anteriormente. Todo esto gracias al
operador de asignación “=”
Reasignar un dato a una variable
El operador de asignación, siempre
examinará lo que hay en la derecha
y lo asociará al objeto que tendrá a
la izquierda. Las variables son
“cajitas simples”(hay otras mas
complejas), que admiten un dato a
la vez. Cuando utilicemos éste
operador para guardar un dato en
una variable a la que ya le hemos
guardado un dato con anterioridad,
estaremos “actualizando” el dato
asociado.
¿Qué es una constante?
Si consideramos una variable como una "cajita"
que puede almacenar un valor que puede
cambiar durante la ejecución del programa,
entonces podríamos decir que una constante es
una "cajita" que tiene un valor fijo que no cambia
durante la ejecución del programa.

PseInt nos aporta las constantes PI y Euler


Entrada y Salida de valores. (Input y Output)

Partiendo de la idea de que un software siempre apuntara a


resolver problemas, es necesario establecer mecanismos para
que el usuario pueda interactuar con un programa, o incluso
para que un programa interactúe con otros programas.. Para ello
debemos hablar de inputs y outputs
Instrucción Escribir(output)
Con ella podremos darle la orden a la máquina de que nos muestre un
mensaje por terminal. Puede ir acompañado de una variable, lo que
devuelva otra función, un dato, o varios de estos objetos concatenados.

Veamos la sintaxis antes de pasar a los ejemplos:

Escribir «objeto»

Escribir «unObjeto» , «otroObjeto» , «otroObjetoMas»


Veamos algunos ejemplos

Con el operador , podremos concatenar objetos, de modo que el mensaje que se muestre
sea mucho mas interesante
Instrucción Leer(input)
Anteriormente vimos cómo la maquina podía recibir
la orden de exteriorizar información a través de la
instrucción Escribir.

La instrucción Leer, por el contrario, nos permitirá


dar la instrucción de que acepte un valor ingresado
por el usuario a través del teclado. Para ello es
necesario indicar en qué variable guardaremos ese
dato que nos llegara desde afuera.
Veamos la sintaxis:

Leer «identificadorVariable»
Veamos como funciona

La terminal se quedará esperando hasta que ingresemos el valor mediante teclado;


presionando INTRO . Es importante recordar que el valor ingresado por el usuario
debe ser compatible con el tipo de dato de la variable.
Retomando conceptos.. ¿qué es un operador?

La RAE lo define como un “Símbolo matemático que denota un


conjunto de operaciones que han de realizarse.” entre dos operandos..

Los operadores son importantes porque ayudan a los programas a


hacer cosas útiles y realizar tareas complejas. En programación, un
operador es un símbolo o palabra que se utiliza para realizar una
acción matemática o lógica en una o varias variables. Estos
operadores se utilizan para hacer cálculos, comparar valores, asignar
valores a variables y realizar otras tareas esenciales en los programas.
Operadores aritméticos
Son aquellos que nos permitirán procesar datos numéricos, mediante operaciones
algebraicas. Veamos que símbolo se asocia a cada operación:

Suma +

Resta -
Multiplicación *
División /
Potencia ↑

Módulo MOD
Veamos un ejemplo más...
Ahora integrando todos los conceptos vistos...
Jerarquía de operadores aritméticos
Como programadores, estaremos en situaciones que nos demandaran realizar calculos
un poco más complejos, para ello es importante respetar cierta jerarquia, ya que la
computadora priorizara resolver algunos primeros que otros...
La jerarquía de operadores en PSeInt, de mayor a menor prioridad, es la siguiente:

1 Paréntesis.
2 Exponentes.
3 Multiplicación, división y resto: se realizan en orden de izquierda a derecha, es decir,
primero se realizan todas las multiplicaciones, luego todas las divisiones y,
finalmente, todos los restos.
4 Suma y resta: también se realizan en orden de izquierda a derecha.

Es importante tener en cuenta que si dos operadores tienen la misma prioridad, se


evalúan en orden de izquierda a derecha.
Ejercicio

Me ofrecen realizar un trabajo como monotributista y me dicen que me van a


pagar $30.000 de sueldo bruto. Sabiendo que el sueldo bruto es aquel al que no
se le descontaron impuestos, aportes, etc., quiero calcular cuánto dinero
realmente recibiría en la mano, es decir, mi sueldo neto.

Sigamos a continuación los pasos previstos.


Entendiendo el problema

Me doy cuenta de que debo averiguar el dato de cuánto es lo que se paga de


monotributo por esos conceptos, considerando mi sueldo bruto, y entonces
realizar una operación aritmética para dar como resultado mi sueldo neto.
Vamos al codigo!!

Primer intento
Identificando las entradas y salidas

Entradas Salidas
Mi sueldo bruto Mi sueldo neto
El valor del monotributo
Vamos al código!!

Segundo intento
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 5
Variables y Operadores
Les damos la bienvenida
Clase 4

Hoy Clase 6

Variables y Operadores
Variables y tipos de datos Operadores y estructuras de
● Retomando con control
demostracion: Variables y
tipos de datos. Operador de
asignación.
● Input & Output
● Operadores aritméticos
● Resolucion de ejercicio
Veamos los siguientes ejemplos
(ésta variable
solo admitirá
enteros)
(la primera admitirá
enteros, la segunda
una cadena de
caracteres)
(ambas
admitirán
enteros)
¿Cómo nombrar una variable?
Reglas generales
*No utilizar la letra ñ
*Comenzar con una letra
¿por qué son importantes
*Puede contener números y guiones las convenciones en
*No puede contener espacios programación?
*No utilizar palabras reservadas
En variables cortas de una palabra, el nombre se recomienda siempre en
minúsculas, incluso su primera letra.

Convención de nomenclatura
● Lower Camel Case o Camel Case: nombreVariable
● Pascal Case o Upper Camel Case: NombreVariable
● Snake Case: nombre_variable
● Kebab Case: nombre-variable
Operador de asignacion
El operador de asignación, siempre
examinará lo que hay en la derecha
y lo asociará al objeto que tendrá a
la izquierda. Las variables son
“cajitas simples”(hay otras mas
complejas), que admiten un dato a
la vez. Cuando utilicemos éste
operador para guardar un dato en
una variable a la que ya le hemos
guardado un dato con anterioridad,
estaremos “actualizando” el dato
asociado.
¿Qué es una constante?
Si consideramos una variable como una "cajita"
que puede almacenar un valor que puede
cambiar durante la ejecución del programa,
entonces podríamos decir que una constante es
una "cajita" que tiene un valor fijo que no cambia
durante la ejecución del programa.

PseInt nos aporta las constantes PI y Euler


Entrada y Salida de valores. (Input y Output)

Partiendo de la idea de que un software siempre apuntara a


resolver problemas, es necesario establecer mecanismos para
que el usuario pueda interactuar con un programa, o incluso
para que un programa interactúe con otros programas.. Para ello
debemos hablar de inputs y outputs
Instrucción Escribir(output)
Con ella podremos darle la orden a la máquina de que nos muestre un
mensaje por terminal. Puede ir acompañado de una variable, lo que
devuelva otra función, un dato, o varios de estos objetos concatenados.

Veamos la sintaxis antes de pasar a los ejemplos:

Escribir «objeto»

Escribir «unObjeto» , «otroObjeto» , «otroObjetoMas»


Veamos algunos ejemplos

Con el operador , podremos concatenar objetos, de modo que el mensaje que se muestre
sea mucho mas interesante
Instrucción Leer(input)
Anteriormente vimos cómo la maquina podía recibir
la orden de exteriorizar información a través de la
instrucción Escribir.

La instrucción Leer, por el contrario, nos permitirá


dar la instrucción de que acepte un valor ingresado
por el usuario a través del teclado. Para ello es
necesario indicar en qué variable guardaremos ese
dato que nos llegara desde afuera.
Veamos la sintaxis:

Leer «identificadorVariable»
Veamos como funciona

La terminal se quedará esperando hasta que ingresemos el valor mediante teclado;


presionando INTRO . Es importante recordar que el valor ingresado por el usuario
debe ser compatible con el tipo de dato de la variable.
Retomando conceptos.. ¿qué es un operador?

La RAE lo define como un “Símbolo matemático que denota un


conjunto de operaciones que han de realizarse.” entre dos operandos..

Los operadores son importantes porque ayudan a los programas a


hacer cosas útiles y realizar tareas complejas. En programación, un
operador es un símbolo o palabra que se utiliza para realizar una
acción matemática o lógica en una o varias variables. Estos
operadores se utilizan para hacer cálculos, comparar valores, asignar
valores a variables y realizar otras tareas esenciales en los programas.
Operadores aritméticos
Son aquellos que nos permitirán procesar datos numéricos, mediante operaciones
algebraicas. Veamos que símbolo se asocia a cada operación:

Suma +

Resta -
Multiplicación *
División /
Potencia ↑

Módulo MOD
Veamos un ejemplo más...
Ahora integrando todos los conceptos vistos...
Jerarquía de operadores aritméticos
Como programadores, estaremos en situaciones que nos demandaran realizar calculos
un poco más complejos, para ello es importante respetar cierta jerarquia, ya que la
computadora priorizara resolver algunos primeros que otros...
La jerarquía de operadores en PSeInt, de mayor a menor prioridad, es la siguiente:

1 Paréntesis.
2 Exponentes.
3 Multiplicación, división y resto: se realizan en orden de izquierda a derecha, es decir,
primero se realizan todas las multiplicaciones, luego todas las divisiones y,
finalmente, todos los restos.
4 Suma y resta: también se realizan en orden de izquierda a derecha.

Es importante tener en cuenta que si dos operadores tienen la misma prioridad, se


evalúan en orden de izquierda a derecha.
Ejercicio

Me ofrecen realizar un trabajo como monotributista y me dicen que me van a


pagar $30.000 de sueldo bruto. Sabiendo que el sueldo bruto es aquel al que no
se le descontaron impuestos, aportes, etc., quiero calcular cuánto dinero
realmente recibiría en la mano, es decir, mi sueldo neto.

Sigamos a continuación los pasos previstos.


Entendiendo el problema

Me doy cuenta de que debo averiguar el dato de cuánto es lo que se paga de


monotributo por esos conceptos, considerando mi sueldo bruto, y entonces
realizar una operación aritmética para dar como resultado mi sueldo neto.
Vamos al codigo!!

Primer intento
Identificando las entradas y salidas

Entradas Salidas
Mi sueldo bruto Mi sueldo neto
El valor del monotributo
Vamos al código!!

Segundo intento
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 6
Operadores
Les damos la bienvenida
Clase 5

Hoy Clase 7

Operadores
Variables y tipos de datos Estructuras de control
● Operadores aritméticos y
resolucion de ejercicio
● Operadores relacionales
● Operadores logicos
● Resolucion de ejercicio
● Introduccion a estructuras
de control
Retomando conceptos.. ¿qué es un operador?

La RAE lo define como un “Símbolo matemático que denota un


conjunto de operaciones que han de realizarse.” entre dos operandos..

Los operadores son importantes porque ayudan a los programas a


hacer cosas útiles y realizar tareas complejas. En programación, un
operador es un símbolo o palabra que se utiliza para realizar una
acción matemática o lógica en una o varias variables. Estos
operadores se utilizan para hacer cálculos, comparar valores, asignar
valores a variables y realizar otras tareas esenciales en los programas.
Operadores aritméticos
Son aquellos que nos permitirán procesar datos numéricos, mediante operaciones
algebraicas. Veamos que símbolo se asocia a cada operación:

Suma +

Resta -
Multiplicación *
División /
Potencia ↑

Módulo MOD
Veamos un ejemplo más...
Ahora integrando todos los conceptos vistos...
Jerarquía de operadores aritméticos
Como programadores, estaremos en situaciones que nos demandaran realizar calculos
un poco más complejos, para ello es importante respetar cierta jerarquia, ya que la
computadora priorizara resolver algunos primeros que otros...
La jerarquía de operadores en PSeInt, de mayor a menor prioridad, es la siguiente:

1 Paréntesis.
2 Exponentes.
3 Multiplicación, división y resto: se realizan en orden de izquierda a derecha, es decir,
primero se realizan todas las multiplicaciones, luego todas las divisiones y,
finalmente, todos los restos.
4 Suma y resta: también se realizan en orden de izquierda a derecha.

Es importante tener en cuenta que si dos operadores tienen la misma prioridad, se


evalúan en orden de izquierda a derecha.
Ejercicio

Me ofrecen realizar un trabajo como monotributista y me dicen que me van a


pagar $30.000 de sueldo bruto. Sabiendo que el sueldo bruto es aquel al que no
se le descontaron impuestos, aportes, etc., quiero calcular cuánto dinero
realmente recibiría en la mano, es decir, mi sueldo neto.

Sigamos a continuación los pasos previstos.


Operadores relacionales
Los operadores relacionales sirven para realizar comparaciones de
igualdad, desigualdad y relación de menor o mayor en una expresión y
como resultado nos dará un valor lógico de verdadero o falso.
Operadores relacionales en PSeInt

Veamos los operadores relacionales que podemos usar en


PSeInt.
Concepto

En programación es frecuente que debamos evaluar


expresiones.

Una expresión booleana nos va a retornar siempre


verdadero o falso.

Debemos relacionar expresiones con operadores


relacionales y lógicos para obtener una expresión
booleana.
Cuáles son estos operadores ?

< <= >


res = 5<7 res = 5 <= 4 res = 3 > 4
res es Verdadero res es Falso res es Falso

>= == !=
res = 13 >= 13 res = 10 == 10 res = 15 != 15
res es Verdadero res es Verdadero res es Falso
Ejemplos
Qué muestra en pantalla ?
Operadores aritméticos y relacionales

Como se analiza esta expresión.

Los operadores relacionales tienen menor prioridad que


los aritméticos, así que primero se evalúa 2 + 3 que es 5 y
luego se evalúa 5 > 4 que es Verdadero.
Operadores lógicos
Nos permiten operar con expresiones booleanas y como resultado
obtendremos un valor lógico (Verdadero o Falso)
Operadores Lógicos

Para poder entender cómo funcionan, cada operador tiene


su tabla de verdad, en ella se representan todas las
combinaciones posibles.

&Y |O !

AND OR NOT
Operador NOT

Este operador conocido también como NO o negación


lógica, trabaja con un solo operando (Le invierte su estado
lógico.)

NOT
Operador NOT su tabla de verdad

La tabla de verdad de este operador es sencilla, invierte el


valor.

Expresión booleana Resultado

!VERDADERO FALSO

!FALSO VERDADERO
Operador AND

Este operador conocido también como Y o conjunción


lógica, trabaja con dos operandos, si ambos son
Verdaderos devuelve Verdadero, sino Falso.

&Y

AND
Operador AND su tabla de verdad

Expresión booleana Resultado

VERDADERO & VERDADERO VERDADERO

VERDADERO & FALSO FALSO

FALSO & VERDADERO FALSO

FALSO & FALSO FALSO


Operador OR

Este operador conocido también como O o disyunción


lógica, trabaja con dos operandos, si al menos un
operando es Verdadero devuelve Verdadero, sino Falso.

|O

OR
Operador OR su tabla de verdad

Expresión booleana Resultado

VERDADERO | VERDADERO VERDADERO

VERDADERO | FALSO VERDADERO

FALSO | VERDADERO VERDADERO

FALSO | FALSO FALSO


Jerarquía de operadores

Es muy importante conocer el orden en que el intérprete evalúa y


realiza las operaciones.
Jerarquía
El orden a seguir es resolver primero los operadores
aritméticos, luego los relacionales y por último los lógicos.

1. Operadores aritméticos
2. Operadores relacionales
3. Operadores lógicos
Ejercicio de cierre

Dado un año ingresado por el usuario, verifica si es un año bisiesto o


no. Un año es bisiesto si:
● es divisible por 4 (residuo 0) y no es divisible por 100 (residuo
distinto a 0), ó
● es divisible por 4 (residuo 0) y es divisible por 400(residuo 0).

Deberás imprimir si el año ingresado es bisiesto o no. La salida deberá


ser la siguiente "El año ingresado ¿es bisiesto? Resultado:
<<Verdadero o Falso>>”
Probemos nuestro algoritmo
Estos años son bisiestos:

1. 2000
2. 2004
3. 2008
4. 2012
5. 2016

Estos años no son bisiestos:

1. 2001
2. 2003
3. 2005
4. 2007
5. 2009
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 7
Estructuras de control.
Condicionales
Les damos la bienvenida
Clase 6
Actual Clase 8

Estructuras de
Operadores Estructuras de control.Bucles
control.Condicionales

● Repaso con resolucion de


ejercicio
● Estructura de control.
Condicionales. Concepto.
● Condicional Simple
● Condicional Doble
● Anidamiento de
Estructuras
● Condicional Multiple
Ejercicio de repaso

Dado un año ingresado por el usuario, verifica si es un año bisiesto o


no. Un año es bisiesto si:
● es divisible por 4 (residuo 0) y no es divisible por 100 (residuo
distinto a 0), ó
● es divisible por 4 (residuo 0) y es divisible por 400(residuo 0).

Deberás imprimir si el año ingresado es bisiesto o no. La salida deberá


ser la siguiente "El año ingresado ¿es bisiesto? Resultado:
<<Verdadero o Falso>>”
Probemos nuestro algoritmo
Estos años son bisiestos:

1. 2000
2. 2004
3. 2008
4. 2012
5. 2016

Estos años no son bisiestos:

1. 2001
2. 2003
3. 2005
4. 2007
5. 2009
Detonador de conocimientos previos..
¿Conoces este juego de mesa?
En el juego de la oca, hay casillas especiales que te permiten avanzar varias
casillas de golpe, retroceder a una casilla anterior, perder un turno o volver a
tirar el dado. Estas casillas especiales son condiciones que afectan tu progreso
en el juego.

En programación, los condicionales son decisiones que se toman


dependiendo de una condición que se cumple o no. Por ejemplo, podemos
hacer un programa que le pregunte al usuario si quiere jugar al juego de la
oca. Si la respuesta es "sí", el programa puede ejecutar el juego. Pero si la
respuesta es "no", el programa puede mostrar un mensaje de despedida y
cerrarse.

En ambos casos, las casillas especiales en el juego de la oca y las condiciones


en programación son decisiones que se toman dependiendo de ciertas
circunstancias, y afectan el resultado final del juego o del programa.
Estructuras de Control. Concepto

Una estructura de control en programación es una instrucción o


conjunto de instrucciones que permiten controlar el flujo de
ejecución de un programa. Es decir, permiten decidir qué
instrucciones se ejecutan en qué orden, o bien permiten repetir
un conjunto de instrucciones varias veces.
¿Qué es un condicional en
programación?

Un condicional es una estructura de control que permite a los desarrolladores


crear bifurcaciones en el flujo de ejecución de un programa. Los
condicionales permiten que el programa ejecute diferentes bloques de código
dependiendo del resultado de una evaluación de situación. En diagrama de
flujo lo vemos representado con la figura de rombo.
Condicional Simple
Con esta estructura, podremos detallar una serie
de instrucciones que se ejecutaran SOLO SI la
evaluación de determinada expresión, es
VERDADERA.

La sintaxis es:
Si <<expresión_booleana» Entonces
«instrucciones>>
FinSi

Supongamos que queremos escribir un programa


en PSeInt que determine si un estudiante ha
aprobado un examen, según su calificación...
Veamos un ejemplo
Salidas de nuestro programa..
Comentarios..
En el ejemplo anterior, vemos que nuestro programa solo ejecuta la linea Escribir
“El estudiante ha aprobado”, cuando el usuario ingresa un valor del 7 al 10.

Pero… ¿no seria conveniente definir una instrucción que se ejecute en el caso de
que el estudiante haya obtenido una calificacion del 1 al 6?

Veamos la siguiente estructura...


Condicional Doble
En esta estructura
definiremos dos bloques
de codigo distintos.
En uno detallaremos las La sintaxis es:
ordenes que le daremos Si <<expresión_booleana» Entonces:
a la computadora SOLO «instrucciones_caso_VERDADERO»
SI la evaluacion de la Sino
<<instrucciones_caso_FALSO»
expresion devuelve FinSi
VERDADERO;
Y en el otro las ordenes
que ejecutara SOLO SI la
expresion devuelve
FALSO
Comentarios..
En el ejemplo anterior, vemos que el algoritmo solo ejecuta la linea Escribir
“El estudiante ha aprobado”, cuando el usuario ingresa un valor del 7 al 10 .
De no ser asi, el programa siempre ejecutará la orden de Escribir “El
alumno ha reprobado”

Pero… ¿que pasa si ingresamos un 11? ¿y un 0?

¿No seria conveniente definir cuales son las notas admitidas para mostrar
el mensaje de reprobado?

Veamos el siguiente ejemplo


Anidamiento de estructuras
El anidamiento de estructuras en programación se refiere a la
capacidad de incluir una estructura dentro de otra estructura, lo
que permite una mayor complejidad y flexibilidad en la toma de
decisiones y en la ejecución de código.

El anidamiento puede hacer que el código sea más difícil de leer y


entender si se utiliza en exceso, por lo que es importante utilizarlo
de manera efectiva y con moderación.
Condicional Múltiple

La estructura de control multiple en programación es una herramienta que


permite ejecutar diferentes bloques de código según el valor de una
variable o expresión, y es una alternativa organizada y legible a múltiples
condicionales.
Sintaxis:

Segun («variable») Hacer


«opcion»:
<<instrucciones>>
«opcion»:
«instrucciones»
<<opcion»:
«instrucciones>>
De Otro Modo:
«instrucciones»
FinSegun
Mejorando nuestro algoritmo...
Resolvamos el siguiente desafío

Crea un programa que solicite al usuario dos números y muestre


por pantalla cuál de ellos es el mayor. Si son iguales, el programa
debe mostrar "Los dos números son iguales".
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 8
Estructuras de control.
Condicional múltiple,
Intro a Bucles
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Actual Clase 9
Clase 7

Estructuras de Control I Estructuras de Control I y II Estructuras de control II

● Concepto ● Anidamiento; Segun


● Flujo de selección simple ● Concepto de estructura
● Flujo de selección doble repetitiva;
Bucle Mientras
Resolvamos el siguiente desafío

Crea un programa que solicite al usuario dos números y muestre


por pantalla cuál de ellos es el mayor. Si son iguales, el programa
debe mostrar "Los dos números son iguales".
Anidamiento de estructuras
El anidamiento de estructuras en programación se refiere a la
capacidad de incluir una estructura dentro de otra estructura, lo
que permite una mayor complejidad y flexibilidad en la toma de
decisiones y en la ejecución de código.

El anidamiento puede hacer que el código sea más difícil de leer y


entender si se utiliza en exceso, por lo que es importante utilizarlo
de manera efectiva y con moderación.
Condicional Múltiple

La estructura de control multiple en programación es una herramienta que


permite ejecutar diferentes bloques de código según el valor de una
variable o expresión, y es una alternativa organizada y legible a múltiples
condicionales.
Sintaxis:

Segun («variable») Hacer


«opcion»:
<<instrucciones>>
«opcion»:
«instrucciones»
<<opcion»:
«instrucciones>>
De Otro Modo:
«instrucciones»
FinSegun
Mejorando nuestro algoritmo...
Flujo de repetición

Existen ocasiones donde queremos repetir un código tantas veces como


sea necesario para resolver un problema dado. Con el flujo de repetición
solucionamos esta problemática mediante el uso de ciclos o bucles.
Tipos de ciclos

Vamos a tener situaciones donde necesitamos ejecutar


una serie de instrucciones un numero definido de veces y
otras el numero de veces no lo sabremos de antemano.
Mientras

Es una estructura de control que nos va a permitir realizar


una serie de instrucciones siempre y cuando la condición
evaluada sea Verdadera.
La sintaxis

En pseudocódigo la sintaxis es:

Mientras <expresión_booleana> Hacer


<instrucciones>
FinMientras
Ejemplo
Otro ejemplo
No te olvides de dar el
presente
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 9
Estructuras de control.
Bucles
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Actual Clase 10
Clase 8

Estructuras de Control II
Estructuras de Control II Repaso general PSeInt
● Concepto de estr repetitiva
● Mientras
● Repetir Hasta Que
● Para

● Contador, Acumulador y
Bandera
Tipos de ciclos

Vamos a tener situaciones donde necesitamos ejecutar


una serie de instrucciones un numero definido de veces y
otras el numero de veces no lo sabremos de antemano.
Mientras

Es una estructura de control que nos va a permitir realizar


una serie de instrucciones siempre y cuando la condición
evaluada sea Verdadera.
Ejemplo
Repetir hasta que
Ejecuta las instrucciones al menos una vez, y las repite
mientras la expresión no sea verdadera.
La sintaxis

En pseudocódigo la sintaxis es:

Repetir
<instrucciones>
Hasta Que <expresión_booleana>
Ejemplo
Para
La instrucción Para ejecuta una secuencia de
instrucciones un numero determinado de veces.
La sintaxis

En pseudocódigo la sintaxis es:

Para i = vi Hasta vf Con Paso paso Hacer


<instrucciones>
Fin Para

Donde i es una variable que la inicializamos con el valor


inicial (vi), luego ira creciendo en cada iteración con el
valor de paso hasta llegar a su valor final (vf) y salir del
ciclo.
Ejemplo
Contador, acumulador y bandera

Son variables con una función definida, veamos estos conceptos


Contador

 Es una variable

 Siempre tienen un valor inicial

 Su valor nuevo es el resultado del valor anterior más una


constante.
Acumulador

 Es una variable

 Siempre tienen un valor inicial

 Su valor nuevo es el resultado del valor anterior más una


variable.
Funcionalidad

Con un contador podemos controlar ciclos donde tenemos un


numero definido de iteraciones.

En el acumulador podemos ir almacenando resultados parciales


por cada iteración.
Ejemplificando

Dado un numero entero,


buscar los números
pares menores a el y
mostrar la suma de los
mismos.
Bandera

 Es una variable

 Siempre tienen un valor inicial

 Nos permite controlar ciclos donde no esta definido el numero


de iteraciones.
Ejemplo unificando los conceptos
Se ingresan por
teclado montos de
dineros para una
caja de ahorro, al
ingresar un cero
mostrar el total
ahorrado.
No te olvides de dar el
presente
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 10
Repaso
Les damos la bienvenida
Clase 9

Hoy Clase 11

Repaso
Estructuras de control Repaso
● Ejercicio de repaso 1
● Ejercicio de repaso 2
● Ejercicio de repaso 3
● Trivia
Ejercicio de repaso 1

Crear un programa que me solicite el nombre y el


apellido y me devuelva el mismo nombre y apellido pero
con el formato: “<<Apellido>>, <<Nombre>>”. Por ej. sí
cuando me solicita el nombre le respondo Juan y
cuando me solicita el apellido le respondo Perez, el
programa debería devolver el texto: Perez, Juan
Ejercicio de repaso 2

Dadas las horas trabajadas de una persona y el valor


por hora, calcular el salario e imprimirlo.
Ejercicio de repaso 3

Realizar un algoritmo que permita pedir 5


números enteros y determine e imprima
cuantos de los numeros ingresados son
pares, impares, positivos y negativos.
Kahoot!
Repasamos los conceptos fundamentales. Resolvemos dudas a través de una trivia.

➔ Podes acceder al juego ingresando al link que enviare al chat, ó


➔ accediendo a www.kahoot.it e ingresando el PIN que te compartire por chat.

Deberas ingresar tu nombre y esperar a que comience el juego.


Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 11
Repaso
Les damos la bienvenida
Clase 10

Hoy Clase 12

Repaso
Repaso Produccion de CheatSheet
● Ejercicio de repaso 1
● Ejercicio de repaso 2
● Ejercicio de repaso 3
● Trivia
Ejercicio de repaso 1
Crea un programa que solicite un color, y en funcion del color
ingresado muestre un mensaje indicando si el color es primario,
secundario, o terciario; y que indique un mensaje cuando el dato
ingresado no sea un color. Por ej: que cuando ingrese “Mario” , el
programa muestre “El dato ingresado no corresponde a un color”

Nota: los colores primarios son amarillo, azul , rojo; los secundarios
son verde, naranja, violeta; y los terciarios amarillo verdoso, amarillo
anaranjado, rojo anaranjado, rojo violeta, azul violeta y azul verdoso.
Ejercicio de repaso 2

Teniendo en cuenta que el usuario de una persona es


“roberto23” y su contraseña “12345ñ” ; definir un
algoritmo que pida usuario y contraseña, y si estos
coinciden con los datos previamente definidos,
mostrar el mensaje “Bienvenido” y finalizar el
programa; si no, mostrar un mensaje de error y
volver a pedir las credenciales.
Ejercicio de repaso 3

Escribe un programa que solicite al usuario


ingresar un número entero y luego muestre la
tabla de multiplicar de ese número del 1 al
10.
Kahoot!
Repasamos los conceptos fundamentales. Resolvemos dudas a través de una trivia.

➔ Podes acceder al juego ingresando al link que enviare al chat, ó


➔ accediendo a www.kahoot.it e ingresando el PIN que te compartire por chat.

Deberas ingresar tu nombre y esperar a que comience el juego.


Intenta resolverlo para la prox clase!
Un comerciante desea un programa que le permita calcular su gasto
total mensual. El programa debera iniciar dando la bienvenida y
preguntando si se desea comenzar con el calculo, si la respuesta es
“si” el programa debera pedir los montos y al final mostrar el
resultado de la sumatoria de todos esos gastos, es decir, el gasto
total mensual. Al finalizar siempre se debe mostrar un mensaje de
despedida independientemente de que se haya ingresado algun
monto o no.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


//Hola soy un comentario!!
// Podemos incluir un ; al final de cada instrucción de manera no obligatoria
//Algoritmo y FinAlgoritmo

INPUT OUTPUT
Leer <variable> Escribir <<variable o expresión>>

TIPOS DE DATOS primitivos VARIABLES


DECLARACIÓN INICIALIZACIÓN

ALFANUMÉRICOS “Hola12” //Carácter Definir <<nombreVariable>> Como <<tipoDato>> <<nombreVariable>> = <<dato>>


+ símbolos
CONSTANTES
NUMÉRICOS -2; 0; 1; // Entero DECLARACIÓN INICIALIZACIÓN
1.2 -3.4 23// Real
Definir <<NOMBRE_CONSTANTE>> Como <<tipo <<NOMBRE_CONSTANTE>> = <<dato>>
de Dato>>
BOOLEANOS Verdadero o Falso (1 //PI //EULER
/ 0)// Lógico

OPERADORES
ASIGNACIÓN CONCATENACIÓN ARITMÉTICOS RELACIONALES LÓGICOS

= , // COMA + // Suma > //Mayor que


- // Resta < //Menor que ! // NOT
+ // SUMA * // Producto <= // Menor o igual que
/ // División >= //Mayor o igual que & // AND
% MOD// Módulo == //Igual que
^ // Potencia != <> //Distinto que O // OR

Jerarquía: 1º se leen los operadores aritméticos: 1. Paréntesis 2. Exponentes 3. Multiplicación, división y resto 4. Suma y resta . 2º los operadores relacionales y
3º los operadores lógicos. Se realizan las operaciones de Izq a der.

ESTRUCTURAS DE CONTROL
CONDICIONALES BUCLES

Simple Doble Múltiple Mientras Repetir Para


Algoritmo Algoritmo Algoritmo
Si Si <<expresión Según (<variable>) Hacer
<<expresión Booleana> Booleana>> <<opción 1>>: <expresión <instrucciones> Para (variable) = vi
<<instrucciones>> Booleana> hasta vf con paso
> Entonces entonces: <<opcion2>>: Hasta que <expresión <paso> hacer
<<instrucciones caso <<instrucciones>> Hacer Booleana> <instrucciones>
verdadero>> <<instrucciones caso De otro modo:
verdadero>> <<instrucciones> <instrucciones> FinAlgoritmo finPara
FinSi FinSegun
sino FinMientras FinAlgoritmo
//siempre y cuando
<<instrucciones caso FinAlgoritmo sea falsa //ejecuta un número
falso>> determinado de
//siempre y cuando veces
Finsi sea verdadera
Codo a Codo inicial
Clase 12
Producción de Repaso
Les damos la bienvenida
Clase 11

Hoy Clase 13

Producción de repaso
Repaso Instalacion de VSC y Python 3

● Presentacion de
herramientas de
produccion de resumen
● Produccion de resumen
Presentación de herramientas para la
producción del resumen

¿Alguna vez modificaste un documento junto a otras personas, en


tiempo real?
Con solo abrir el documento, podras trabajar con tus
compañeros en simultaneo, y ver quien esta realizando las
distintas modificaciones: escribiendo, borrando, etc
Incluso podras abrir un chat para comunicarte con tus
compañeros en el mismo sitio
Aqui verás la conversacion con tus compañeros

Aqui escribiras todo lo que les quieras comunicar,


enviaras el mensaje al chat presionando ENTER
Producción : ¿Que haremos?

Un "cheat sheet" en programación es una referencia rápida y


concisa que contiene información clave, comandos, sintaxis u
otros detalles relevantes sobre un lenguaje de programación.

En el siguiente documento dejaremos una sintesis de todo lo que


hemos visto en PSEINT hasta ahora:
https://docs.google.com/document/d/1kmszBEwYRiqJ6nt3mhm_rWvqKRFBQ0-qJkRPbHktkK0/edit?usp=sharing
TIPS PARA UN BUEN AYUDA MEMORIA

➔ Enfocarnos en sintaxis
➔ Aprovechar todo el espacio disponible de la hoja(incluso
ocupar los bordes)
➔ Usar colores que ayuden con la lectura del resumen
➔ El documento final debe tener una, dos o tres hojas como
máximo
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 13
Python y VSC:
Instalación / Hola Mundo
Instalación de Python

Python es un lenguaje de alto nivel de programación interpretado cuya


filosofía hace hincapié en la legibilidad de su código,
se utiliza para desarrollar aplicaciones de todo tipo, por ejemplo:
Instagram, Netflix, Spotify, Panda3D, entre otros.
Principales Características
 Multiparadigma: Soporta la programación imperativa, programación
orientada a objetos y funcional.
 Multiplataforma: Se puede encontrar un intérprete de Python para los
principales sistemas operativos: Windows, Linux y Mac OS. Además, se
puede reutilizar el mismo código en cada una de las plataformas.
 Dinámicamente tipado: El tipo de las variables se decide en tiempo
de ejecución.
 Fuertemente tipado: No se puede usar una variable en un contexto
fuera de su tipo. Si se quisiera, habría que hacer una conversión de
tipos.
 Interpretado: El código no se compila a lenguaje máquina, sino que
ejecuta las instrucciones a medida que las va leyendo.
Uso de Python
Al ser un lenguaje de propósito general, podemos encontrar aplicaciones
en todos los campos científico-tecnológicos:

● Análisis de datos - Aplicaciones de escritorio.


● Bases de datos relacionales / NoSQL
● Buenas prácticas de programación / Patrones de diseño.
● Concurrencia - Criptomonedas / Blockchain.
● Desarrollo de aplicaciones multimedia.
● Desarrollo de juegos - Desarrollo en dispositivos embebidos - Desarrollo móvil.
● Desarrollo web - DevOps / Administración de sistemas / Scripts de automatización.
● Gráficos por ordenador - Inteligencia artificial.
● Internet de las cosas - Machine Learning.
● Programación de parsers / scrapers / crawlers.
● Programación de redes - Seguridad - Tests automatizados.
● Propósitos educativos - Prototipado de software.
Para descargar dirigirse a la pagina oficial

https://www.python.org/downloads/

Instalar marcando que agregaremos python al PATH


Instalación de
Visual Studio Code

Visual Studio Code es un editor de código fuente desarrollado


por Microsoft para Windows, Linux, macOS y Web.
● Para instalar VSC, primero diríjase a su página para descargar el
software de instalación, disponible en:
https://code.visualstudio.com/Download

● Una vez en la página de descarga, diríjase al final de esta donde


encontrará los siguientes tipos de descarga. Para ello seleccione
el “Instalador del sistema” de “64 bits” ó “32 bits” según su
sistema:
Tipos datos
 NoneType: Representa la ausencia de un valor.
 bool: Representa uno de dos valores True o False
 int: Representa un numero entero, positivo o negativo, sin
decimales.
 float: Representa un numero decimal, positivo o negativo.
 string: Representa una cadena de texto
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 14
Primeros pasos en Python
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
Clase 13 Actual Clase 15

Instalación de herramientas Introducción a Lenguajes Operadores e intro a arreglos

● Repaso de caracteristicas
● Output
● Funcion type()
● Input
● Casting
¿Qué es Python?

● Python es un lenguaje de programación de alto nivel creado a finales de los


80/principios de los 90 por Guido van Rossum, holandés que trabajaba por
aquella época en el Centro para las Matemáticas y la Informática de los
Países Bajos. Sus instrucciones están muy cercanas al lenguaje natural en
inglés y se hace hincapié en la legibilidad del código. Toma su nombre de
los Monty Python, grupo humorista de los 60 que gustaban mucho a Guido.
Python fue creado como sucesor del lenguaje ABC.

● Dentro de los lenguajes informáticos, Python, pertenece al grupo de


los lenguajes de programación y puede ser clasificado como un lenguaje
interpretado, de alto nivel, multiplataforma, de tipado dinámico y
multiparadigma.
Lenguajes compilados vs lenguajes interpretados
Idiomas compilados Idiomas interpretados
El compilador trabaja en el programa completo a la vez. Un intérprete lleva los programas línea a línea. Toma una
Toma todo el programa como entrada declaración a la vez como entrada.
Genera el código intermedio conocido como código Un intérprete no genera un código intermedio conocido
máquina o código objeto. como código máquina.

Los lenguajes interpretados son menos eficientes pero


Los lenguajes de compilación son más eficientes pero
fáciles de depurar. Esta especialidad lo convierte en una
difíciles de depurar.
opción ideal para nuevos estudiantes.

El compilador no permite que un programa se ejecute El intérprete ejecuta el programa desde la primera línea y
hasta que esté completamente libre de errores. detiene la ejecución sólo si encuentra un error.
Compile una vez y ejecútelo en cualquier momento. El Cada vez que ejecutan el programa, se interpreta línea
programa compilado no necesita compilarse cada vez. por línea.
El error se informa cuando se encuentra el primer error. El
Los errores se informan después de que se comprueba
resto del programa permanece sin marcar hasta que se
todo el programa, los errores sintácticos y de otro tipo.
resuelve el error.
El intérprete no genera código de memoria intermedio.
El programa compilado ocupa más memoria porque todo
Por lo tanto, los programas de intérprete son eficientes en
el código objeto tiene que residir en la memoria.
la memoria.
Por ejemplo: C, C ++, CLEO, C #. Por ejemplo: JavaScript, Python, BASIC, etc.
Fuertemente tipado:

● Python requiere que las operaciones sean coherentes en cuanto a


los tipos de datos que estan siendo utilizados en una operación.
No nos permitira realizar determinadas operaciones con distintos
tipos de datos
Tipado dinámico:

● un lenguaje de tipado dinámico es aquel cuyas variables, no


requieren ser definidas asignando su tipo de datos, sino que éste,
se auto-asigna en tiempo de ejecución, según el valor declarado.
OUTPUT en Python

Función print()
Funcion type()

● la utilizaremos para saber el tipo de un objeto. Muy util cuando


necesitemos saber que tipo de dato hemos almacenado en una
variable
INPUT en Python

Función input()
Casting

Hacer un cast implica convertir un tipo de dato a otro. Existe la


conversion implicita y explicita
Crear un programa que me solicite el nombre y el
apellido y me devuelva el mismo nombre y apellido
pero con el formato: “<<Apellido>>, <<Nombre>>”.
Por ej. sí cuando me solicita el nombre le respondo
Juan y cuando me solicita el apellido le respondo
Perez, el programa debería devolver el texto: Perez,
Juan
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 15
Operadores e Introduccion a Arreglos
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase
Clase 14 Actual Clase 16

Primeros pasos Operadores-intro arreglos Estructuras de control

● f-strings
● operadores aritmeticos
● operadores relacionales
● operadores logicos
● operadores asignacion
● Intro a arreglos
● operadores de pertenencia
Mejorando nuestros outputs

● los literals strings o f-strings nos permitiran incluir expresiones dentro de


una cadena sin tener que concatenar. Las expresiones se evaluaran en
tiempo de ejecucion, dentro de las llaves, y se insertaran en la cadena en su
lugar correspondiente. Sintaxis:

f“hola hola hola{expresion} hola”


OPERADORES en Python

Aritmeticos , Relacionales, Logicos, Asignacion y Pertenencia


Aritmeticos
Operación en Python
Operación en PSEINT
Suma +
Suma +
Resta -
Resta -
Potencia **
Potencia ↑
Multiplicacion *
Multiplicacion *
Division /
Division /
División Entera //
Modulo MOD %
Modulo %
Relacionales
Operación en Python Operación en PSEINT
Menor que < Menor que <

Mayor que > Mayor que >

Menor o igual que <= Menor o igual que <=


Mayor o igual que >= Mayor o igual que >=

Igual que == Igual que ==

Distinto que != Distinto que != <>


Logicos

Operación en Python Operación en PSEINT

conjuncion and conjuncion y

disyuncion or disyuncion o

negacion not negacion !


Jerarquia, recordemos…

● aritméticos
● relacionales
● lógicos

https://docs.python.org/es/3/reference/expressions.html?highlight=oper
ators#operator-precedence
Asignacion

Operación en Python en PSEINT

Asignacion = Asignacion =

Incremento += Incremento a = a + incremento

Decremento -= Decremento a = a - decremento


Arreglos

Estructuras de datos complejas que nos permiten asociar más de un


dato a un identificador
Listas, uno de los arreglos de Python

● en una variable almacenaremos distintos datos mutables . Sintaxis:

<<nombreLista>> = [ <<dato1>>, <<dato2>> , <<dato3>> ]


Operadores de pertenencia

Operador Como trabaja

in Devuelve True
cuando el valor se
encuentra en una
secuencia

not in Devuelve True


cuando el valor NO
se encuentra en
una secuencia
Operadores de identidad

Operador Como trabaja

is Devuelve True
cuando dos var se
refieren al mismo
objeto en la memoria.

is not Devuelve True


cuando dos var NO
se refieren al mismo
objeto en la memoria.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 16
Estructuras de Control
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
Clase 15 Actual Clase 17

Operadores e intro a arreglos Hoy Estructuras de control

● Condicional Simple
● Condicional Doble
● Variables y condicionales
● Condicional Multiple (elif)
● Estructura Match
Estructuras de Control en Python

Condicionales
IF- CONDICIONAL SIMPLE

● Equivalente al Si-FinSi. Sintaxis:

if <<expresionBooleana>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>>
IF-ELSE - CONDICIONAL DOBLE

● Equivalente al Si-SiNo-FinSi. Sintaxis:

if <<expresionBooleana>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>>
else:
sangría<<bloqueDeInstruccionesEnCasoFalse>>
IF-ELSE y variables

● Guardar un dato en una variable a partir de una decision. Sintaxis:

<<nombreVariable>>= <<datoEnCasoTrue>> if <<expBooleana>> else <<datoEnCasoFalse>>


IF-ELIF-ELSE - CONDICIONAL Multiple

● Para evitar el anidamiento. Sintaxis:

if <<expresionBooleana>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>>
elif <<expresionBooleana2>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>>
else:
sangría<<bloqueDeInstruccionesEnCasoFalse>>
MATCH - CONDICIONAL Múltiple
● Introducido en python 3.10. Equivalente al Segun. Sintaxis:
match <<expresionNumericaOAlfanum>>:
sangríacase <<opcion1>>:
sangríasangría<<bloqueDeInstrucciones>>
sangríacase <<opcion2>>:
sangríasangría<<bloqueDeInstrucciones>>
sangríacase _:
sangríasangría<<bloqueDeInstruccionesEnCasoQueNingunoCoincida>>
Material extra:

01-Introduccion a Python
https://www.youtube.com/watch?v=ZBE33BKtzLk
02-Cadenas en Python
https://www.youtube.com/watch?v=udrtC26_l04
03-Numeros en Python
https://www.youtube.com/watch?v=_qNQzBKPhKs
04-Estructuras de control en Python
https://www.youtube.com/watch?v=Weeq4-EcjSM
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 17
Estructuras de Control II
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
Clase 15 Actual Clase 17

Condicionales Hoy Arreglos

● Bucle while
● Bucle for
● Funcion range
● Break, continue , else
Estructuras de Control en Python

Bucles
WHILE- BUCLE

● Equivalente al Mientras. Sintaxis:

while <<expresionBooleana>>:
sangría<<bloqueARepetirEnCasoTrue>>
FOR - BUCLE

● Equivalente al Para. Sintaxis:

for <<elemento>> in <<secuencia>>:


sangría<<bloqueDeInstruccionesARepetir>>
break , continue , else

Sentencias con las que podremos tener ciertos controles en los ciclos.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 18
Arreglos
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase
Clase 17 Actual Clase 19

Bucles Hoy Arreglos + Ejercicios

● Arreglos
● Listas
● Tuplas
Arreglos

Estructuras de datos complejas que nos permiten asociar más de un


dato a un identificador
Listas, uno de los arreglos de Python
● en una variable almacenaremos distintos datos mutables . Sintaxis:

<<nombreLista>> = [ <<dato1>>, <<dato2>> , <<dato3>> ]

<<dato1>> <<dato2>> <<dato3>>

indice 0 indice 1 indice 2


Accedemos a cada uno de los elementos con el
indice
● Siempre que el indice exista. Sintaxis:

<<nombreLista>>[<<indice>>]
Actualizamos un dato de acuerdo al indice

● Siempre que el indice exista. Sintaxis:

<<nombreLista>>[<<indice>>] = <<nuevoDatoEnIndice>>
MÉTODOS. ¿Qué son?

● ACCIONES QUE PUEDEN REALIZAR DETERMINADOS OBJETOS. Sintaxis:

<<nombreLista>>.<<nombreMetodo>>(<<argumento>>)
Función dir()

● Con esta función vamos a obtener los métodos de un objeto. Sintaxis:

dir(<<elemento>>)
Metodos de las listas
sintaxis metodo ¿que hace?
<nombre_lista>.append(<elemento>) añade un elemento
al final

<nombre_lista>.insert(<posición>,<elemento>) añade un elemento


en determinada
posicion

<nombre_lista>.extend(<nombre_lista_a_unir>) une dos listas


Metodos de las listas
sintaxis metodo ¿que hace?
<nombre_lista>.clear() modifica la lista
original, la deja vacia

<nombre_lista>.pop(<posición>) devuelve un
elemento y lo borra

<nombre_lista>.remove(<elemento>) borra un elemento


Metodos de las listas
sintaxis metodo ¿que hace?
<nombre_lista>.count(<elemento>) devuelve la cantidad
de veces que
aparece un
elemento en la lista

<nombre_lista>.index(<elemento>) devuelve el indice en


el que esta un
elemento
Metodos de las listas
sintaxis metodo ¿que hace?
<nombre_lista>.reverse() modifica la lista
original, invierte el
orden de los
elementos en una
lista

<nombre_lista>.sort() #de menor a mayor modifica la lista


original, reorganiza
<nombre_lista>.sort(reverse=True) #de mayor a menor de menor a mayor
de forma
predeterminada.
Tuplas, otro de los arreglos de Python

● en una variable almacenaremos distintos datos inmutables .


Sintaxis:

<<nombreTupla1>> = ( <<dato1>>, <<dato2>> , <<dato3>> )


<<nombreTupla2>> = <<dato1>>, <<dato2>> , <<dato3>>
<<dato1>> <<dato2>> <<dato3>>

indice 0 indice 1 indice 2


Accedemos a cada uno de los elementos con el
indice
● Siempre que el indice exista. Esta cajita es solo de lectura. Sintaxis:

<<nombreTupla>>[<<indice>>]
Metodos de las tuplas
sintaxis metodo ¿que hace?
<nombre_tupla>.count(<elemento>) devuelve el numero
de veces que
aparece un
elemento en la tupla

<nombre_tupla>.index(<elemento>) devuelve el indice en


el que esta un
elemento
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 19
Diccionarios
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
Clase 18 Actual Clase 20

Listas y Tuplas Hoy Ejercicios de integracion

● Arreglos
● Diccionarios
● Metodos de diccionarios
● Repaso funcion len
● Operador del
Arreglos

Estructuras de datos complejas que nos permiten asociar más de un


dato a un identificador
Diccionarios, uno de los arreglos de Python
● en una variable almacenaremos distintos pares clave-valor sin indice,
mutables. Sintaxis:
<<nombreDic>> = {<<clave1>>: <<valor>> , <<clave2>>:<<valor>>}

<<valor>> <<valor>>
nombreDic
clave 1 clave 2
Accedemos a cada uno de los valores con su clave

● Siempre que la clave exista. Sintaxis:

<<nombreDic>>[<<clave>>]
Actualizamos un valor de acuerdo a su clave

● Siempre que la clave exista. Sintaxis:

<<nombreDic>>[<<clave>>] = <<nuevoDatoAsociadoAClave>>
MÉTODOS. ¿Qué son?

● ACCIONES QUE PUEDEN REALIZAR DETERMINADOS OBJETOS. Sintaxis:

<<nombreDic>.<<nombreMetodo>>(<<argumento>>)
Función dir()

● Con esta función vamos a obtener los métodos de un objeto. Sintaxis:

dir(<<elemento>>)
Metodos de los diccionarios
sintaxis metodo ¿que hace?
<nombre_diccionario>.copy() devuelve otro dict,
que es una copia
de ese dict
dict.fromkeys(<secuenciaDeClaves>, <valor>) devuelve un dict con las
claves de la secuencia y
el mismo valor
Metodos de diccionarios
sintaxis metodo ¿que hace?
<nombre_diccionario>.get(<clave>,<valorSiNoHayClave>) devuelve un valor segun
una clave, si no
encuentra la clave
devuelve un valor por
defecto

<nombre_diccionario>.items() devuelve un iterable


con pares clave y valor

<nombre_diccionario>.keys() devuelve un iterable


con claves

<nombre_diccionario>.values() devuelve un iterable


con valores
Metodos de los diccionarios
sintaxis metodo ¿que hace?
<nombre_diccionario>.setdefault(<clave>,<valor>) Si la clave ya existe en el
diccionario, devuelve su valor. Si la
clave no existe, la añade al
diccionario con el valor

<nombre_diccionario>.update() para agregar los elementos de otro


iterable al diccionario actual. Si una
clave ya existe en el diccionario
actual, su valor se actualiza. Si una
clave no existe en el diccionario
actual, se agrega al diccionario
actual.
Metodos de diccionarios
sintaxis metodo ¿que hace?
<nombre_diccionario>.popitem() elimina y devuelve el par
que se insertó por última
vez. En versiones
anteriores a la 3.7,
elimina un par aleatorio.

<nombre_diccionario>.pop(<clave>) elimina el par segun


su clave

<nombre_diccionario>.clear() modifica el dict


original, lo deja vacio
Función len()

● Con esta función vamos a obtener un numero, que representa la cantidad de


elementos de un iterable, en un diccionario es la cantidad de pares que hay en
el. Sintaxis:

len(<<elemento>>)
Operador del

● Destruiremos un elemento. Sintaxis:

del <<elemento>>
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 20
Ejercicios de integracion
Les damos la bienvenida
Clase 19

Hoy Clase 21

Arreglos Produccion de CheatSheet


● Ejercicio 1
● Ejercicio 2
● Ejercicio 3
● Desafio extra
Ejercicio 1
Pablo creo un registro de tareas a realizar durante el fin de semana.
En su registro del dia domingo, tiene anotado que debe ir al supermercado,
luego lavar el auto, y luego estudiar para un examen. Aunque Pablo ya tiene su
registro para ese dia, se adelanto y lavo su auto el sabado, para que en su lugar
pueda ir de picnic con sus hermanos, y pueda, luego de estudiar, ir a cenar con
sus amigos. Representa tal situacion con un algoritmo desarrollado en python,
que haga las modificaciones en el registro de pablo y luego muestre el registro
con este formato.
---TAREAS DE DOMINGO----
- <<tarea>>
- <<tarea>>
Ejercicio 2 (3)
(4)
Observa la imagen.
Desarrolla un programa que
solicite al usuario un número del (2)

1 al 5 y, en función de ese
número, determine e imprima el
nombre del dedo de la mano
correspondiente, utilizando un
(5)
arreglo con los nombres de los
(1)
dedos.
Ejercicio 3
Estás desarrollando un programa para una aplicación de
navegación y necesitas representar los puntos cardinales y sus
correspondientes grados en un círculo de brújula. Crea un
registro que contenga los puntos cardinales (Norte, Sur, Este,
Oeste) y sus respectivos grados (0, 180, 90, 270) en un círculo
de brújula. Al iniciar el programa debera mostrar la informacion
con el siguiente formato "En tu brujula encontraras..."
seguido de
"El <<puntoCardinal>> a <<grados>> grados ."
Desafio extra…
Desarrolla un programa que gestione una agenda
telefonica. El programa debe permitir al usuario
realizar las siguientes acciones: 1->agregar un
numero de telefono con el nombre del contacto,
2->buscar un numero por el nombre y 3->mostrar la
lista de contactos. El programa finaliza cuando se
ingrese un 0.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 21
Producción de Repaso
Les damos la bienvenida
Clase 20
Hoy Clase 22

Producción de repaso
Arreglos Funciones

● Produccion de resumen
● Kahoot de repaso
Producción : ¿Que haremos?

Un "cheat sheet" en programación es una referencia rápida y


concisa que contiene información clave, comandos, sintaxis u
otros detalles relevantes sobre un lenguaje de programación.

En clases anteriores realizamos el resumen de PSEINT, ahora y


bajo la misma modalidad, dejaremos una sintesis de todo lo que
hemos visto en PYTHON
RECORDEMOS .. TIPS PARA UN BUEN AYUDA MEMORIA

➔ Enfocarnos en sintaxis
➔ Aprovechar todo el espacio disponible de la hoja(incluso
ocupar los bordes)
➔ Usar colores que ayuden con la lectura del resumen
➔ El documento final debe tener una, dos o tres hojas como
máximo
Momento KAHOOT! Juguemos una trivia!!

➔ Ingresa a www.kahoot.it , ingresa el PIN que te compartire


por chat, ingresa tu nombre y aguarda a que comience el
juego, o

➔ Ingresa al link que te compartire por chat, ingresa tu


nombre y aguarda a que comience el juego
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


¿Cómo dejar un comentario? Para generar un comentario en python, se agrega # al principio de la oración. Comentario = Ctrl+K+C.
Descomentar = Ctrl+K+U.

OUTPUT : OTRAS FUNCIONES PREDEFINIDAS


print(<<salida>>)
type(<<elemento>>) #devuelve el tipo de objeto que hay en una variable
len(<<secuencia>>) #devuelve la cantidad de objetos que hay en la
INPUT: secuencia
input(<<información a ingresar>>) dir(elemento) # nos devuelve todas las características.

TIPOS DE DATOS SIMPLES TIPOS DE DATOS COMPLEJOS

ALFANUMÉRICOS “Hola”#String str() ARREGLO ACCESO A MÉTODOS


ELEMENTOS
f“secue{expresion}
ncia” #f-string (<<dato1>> , <<dato2>>,<<dato3>>) nombreTupla[indice] nombreTupla.index(<<dato>>)
#devuelve el indice del dato
""" <<dato1>> , <<dato2>>,<<dato3>>
linea1 #Tupla tuple() ordenado , datos de nombreTupla.count(<<dato>>)
linea2 distinto tipo , datos repetidos, inmutable #devuelve cuantas veces aparece
""" #reconocer los el dato
saltos de línea
[<<dato1>> , <<dato2>> , <<dato3>>] nombreLista.append(<<dato>>)
nombreLista[indice] #Agrega al dato al final de la lista
NUMÉRICOS 23 #Integer int() #Lista list() ordenado, datos de distinto
23.1 #Float float() tipo, datos repetidos, mutable nombreLista.extend(<<elementos>
>)
BOOLEANOS True #Agrega los elementos de otra lista
False #Boolean al final de la lista
bool()
nombreLista.insert(<<indice>>,<<d
ato>>)
#Agrega al dato dentro de la lista
en el índice. No reemplaza

nombreLista.index(<<dato>>)
#Devuelve el índice del dato

nombreLista.remove(<<dato>>)
#Elimina el dato de la lista

nombreLista.pop(<<índice>>)
#Elimina el dato en el índice de la
lista y lo devuelve

nombreLista.clear()
#Deja vacía la lista

nombreLista.reverse()
#Modifica la lista original, invierte
el orden de los datos

nombreLista.sort()
#Ordena de menor a mayor

nombreLista.sort(reverse = True)
#Ordena de mayor a menor

{ <<clave1>> : <<valor1>> , nombreDict[<<clave>>] nombreDict.copy()


<<clave2>> : <<valor2>> , #Devuelve una copia del
<<clave3>> : <<valor3>> } diccionario, no el original
#Diccionario dict() datos de distinto
tipo, valores repetidos, claves no dict.fromkeys(<<secuenciaDeClave
repetidas, mutable s>>, <<valor>>)
#Crea una diccionario con el
mismo valor en cada clave

nombreDict.get(<<clave>>,
<<valorPorDefecto>>)
#Devuelve el valor del dict si
encuentra la clave. Si no la
encuentra devuelve el valor por
defecto
nombreDict.items()
#Devuelve un iterable, una lista con
tuplas que son los pares del dict

nombreDict.keys()
#Devuelve un iterable con claves

nombreDict.values()
#Devuelve un iterable con valores

nombreDict.setdefault(<<clave>>,
<<valor>>)
#Si existe la clave devuelve su
valor. Si no existe, la añade con su
valor

nombreDict.update(<<otroDict>>)
#Si las claves existen las actualiza.
Si no existen las añade

nombreDict.popitem()
#Elimina del dict y devuelve al
último par agregado en versiones
sup 3.7

nombreDict.pop(<<clave>>)
#Elimina del dict y devuelve

nombreDict.clear()
#Vacía el dict

VARIABLES y CONSTANTES

DECLARACIÓN E INICIALIZACIÓN
nombreVariable = <<datoAGuardar>> #variable
NOMBRECONSTANTE = <<datoQueNoSeDeberiaActualizar>> #constante, en python no podemos generar una constante como tal

OPERADORES

ASIGNACIÓN CONCATENACI ARITMÉTICOS RELACIONALES LÓGICOS PERTENENCIA IDENTIDAD ELIMINACIÓN


ÓN DE OBJETOS

a=5 #asignación + #cuan + #suma > #Mayor que and in #true si se is # devuelve del #destruye el
a += 5 #a = a + 5 do los datos - # resta < #Menor que #conjunción encuentra en la true si los elemento
a -= 5 #a= a-5 son ** # potencia >= #mayor o igual or # secuencia #sino operandos se
a *= 5 #a= a*5 alfanumerico *# que disyunción devuelve false refieren al
a **= 5 #a = a ** 5 s multipli <= #menor o not #negación mismo objeto
a /= 5 #a= a/5 cación igual que not in #true si
a //= 5 #a= a//5 , #distintos / #división == #igual que no se encuentra is not
a %= 5 #a= a%5 tipos de datos // #división != #distinto que en la secuencia #devuelve true
entera #sino devuelve si los
%# módulo false operandos no
se refieren al
mismo objeto

Jerarquía:

ESTRUCTURAS DE CONTROL

CONDICIONALES
IF-ELIF-ELSE- CONDICIONAL Múltiple MATCH - CONDICIONAL Múltiple CONDICIONAL SIMPLE: CONDICIONAL DOBLE:
if<<expresionBooleana>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>> match<<expresionNumericaOAlfanu if - else:
elif<<expresionBooleana>>:
m>>: if <<expresionBooleana>> : if <<expBool>>:
sangría<<bloqueDeInstruccionesEnCasoTrue>> sangríacase<<opcion1>>: SANGRÍA<<bloqueDeInstruc SANGRÍA<<bloqueenTrue>>
sangríasangría<<bloqueDeInstruccio cionesEnCasoTrue>> else:
else<<expresionBooleana>>:
sangría<bloqueDeInstruccionesEnCasoFalse>>
nes>> SANGRÍA<<bloqueenFalse>>

sangríacase<<opcion2>>:
sangríasangría<<bloqueDeInstruccio
nes>>

sangríacase_:

sangríasangría<<bloqueDeInstruccio
nesEnCasoQueNingunoCoincida>>

BUCLES

WHILE - bucle FOR-BUCLE:


while <<expresion bool>>: for<<elemento>>in<<secuencia>>:
SANGRIA<<bloqueArepetirEnCasoTrue>> SANGRÍA<<bloqueDeInstruccionesARepetir>>

break #forzamos la detencion del bucle


continue #sentencia ignora y sigue
else #cláusula ejecutar un bloque cuando el bucle NO se detiene por un break
Codo a Codo inicial
Clase 22
Funciones
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 21 Hoy Clase 23

Produccion de repaso Actual Funciones

● Funciones y Procedimientos
● Argumentos posicionales,
nombrados, y opcionales
Funciones

Una función permite definir un bloque de código reutilizable que se puede


ejecutar muchas veces dentro de un programa.
Funciones
Ya venimos trabajando con varias funciones propias de Python, como:

 print()

 input()

 len()

 type()

Funciones predefinidas en Python 3.10:


https://docs.python.org/es/3/library/functions.html

También podemos definir nuestras propias funciones para usar en nuestros


proyectos.
Definición (sintaxis y terminología).
Definición
Las funciones pueden tener parámetros o no, como también pueden devolver un
valor o nada.
Para que la función ejecute el código que tiene dentro, debemos llamarla o invocarla,
lo mismo que veníamos realizando con mas de una función propia de Python.
Veamos un ejemplo simple:

Resultado luego de llamar


la función
Reglas para el nombre

Las reglas para el nombre de una función son las mismas que
para la de una variable, y por ello refrescamos lo siguiente:

 El nombre debe comenzar con una letra


 Puede contener letras, números y guiones bajos
 No puede llamarse igual que una palabra reservada del
lenguaje
 No debe contener caracteres extraños ( “ñ”, acentos, etc)
Return

Las funciones pueden o no retornar un valor, si retornan un valor lo harán


con la palabra reservada return, sino los llamaremos procedimientos.
Función que no retorna un valor. *
La siguiente función no retornara un valor, sino que simplemente muestra un
mensaje por pantalla:

El siguiente código imprimirá un 8 en pantalla, ya que la función realiza la


impresión del doble del numero que se le pasa como argumento.

*NOTA: Teóricamente los llamaremos procedimientos, aunque recordemos que en Python a nivel
práctico hablamos solamente de funciones .
Función que retorna un valor
Para poder retornar un valor usamos return:, una vez que Python ejecute la
instrucción return, saldrá del bloque de código de la función retornando el
valor ubicado a la derecha de dicha instrucción.
Parámetros y argumentos

Si queremos pasarles datos a una función necesitamos usar parámetros y


argumentos.
Parámetros y argumentos.
 Parámetro: Cuando definimos la función le damos un nombre a cada
parámetro, que luego serán usadas como variables dentro de la función.

 Argumento: Es la información transferida a la función en el momento que


se realiza la invocación.
Tipos de parámetros
Los argumentos cuando llamamos a una función pueden ser:

 Posicionales: son argumentos que se pueden pasar por su posición en la


definición de la función. En este caso el orden en que se pasan es
importante.

 Nombrados: son argumentos que se pueden pasar por su nombre.


Argumentos posicionales
Definimos una función con dos argumentos: nombre y profesión:

Luego la podemos llamar con argumentos posicionales:


Argumentos nombrados
Dada la misma función:

Podemos llamar con argumentos nombrados, sin importar el orden, el


resultado será el mismo:
Combinando argumentos
Para llamar a una función con argumentos posicionales y nombrados, primero se deben
colocar los posicionales y a la derecha todos los nombrados.
Combinando argumentos
Si colocamos como primer argumento uno nombrado, ya luego no se pueden colocar
los posicionales, estos van siempre al inicio y en el orden que son declarados en la
definición de la función.

Si intentaríamos invocar una función de esa manera obtendremos un error de sintaxis.


Combinando argumentos
En este caso recordemos que los posicionales ocupan el lugar en que se encuentran en
la definición de la función, en este caso el primer parámetro definido fue nombre, asi
que en la siguiente invocación el argumento posicional “Ingrid” hace referencia al
parámetro nombre, y luego intenta pasarle otra vez un valor al mismo parámetro:

Es por eso que se genera un error donde indica que hay múltiples valores para el
argumento nombre.
Cantidad de argumentos
Los argumentos son obligatorios, si definimos n cantidad de parámetros
debemos llamar la función con n cantidad de argumentos:
Argumentos opcionales
Los argumentos pueden ser opcionales, para ello el parámetro cuando se
define la función debe asignársele un valor predeterminado.

En la siguiente invocación el parámetro toma su valor predeterminado:

En el siguiente caso le pasamos como argumento un valor distinto:


Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 23
Funciones
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 22 Hoy Clase 24

Funciones Actual Funciones y Modulos

● Arg. por valor y referencia


● Scope
Argumentos por valor y referencia

Python según el tipo de dato del argumento define si ese argumento se pasa
por valor o referencia a la función..
Argumentos por valor
Cuando invocamos una función en Python, si el argumento enviado es de tipo
int, str, float o bool, este argumento será enviado por valor, lo que significa
que dentro del cuerpo de la función se trabaja con una copia de el dato,
manteniendo el valor original de la variable por fuera de la función.

La variable miNumero
pasada como argumento
se pasa por valor, se
trabaja dentro de la
función con una copia de
la misma, por eso no se
modifica.
Argumentos por referencia
Cuando invocamos una función en Python, si el argumento enviado es una
colección (por ejemplo una lista, un diccionario, etc ), este argumento será
enviado por referencia (se le envía su dirección de memoria), lo que significa
que dentro del cuerpo de la función se trabaja con el propio elemento,
alterando el contenido de la variable.
La variable miNumeros
pasada como argumento
se pasa por referencia, se
trabaja dentro de la
función con esa misma
variable, por eso se
modifica.
Funciones: Scope, ámbito o alcance de variables.

Ahora que podemos definir nuestras funciones, nuestros próximos


programas tendrán dos ámbitos: Local o Global.
Funciones: Scope, ámbito o alcance de variables.
• Ámbito local: Espacio en memoria reservado durante la ejecución de una
función. (Exclusivo de la función).

- Las variables declaradas en el cuerpo de una función solamente son accesibles


por la propia función durante su ejecución.
- Al finalizar la ejecución de la misma, ese espacio en memoria se libera.
- Los parámetros de las funciones son variables locales.

• Ámbito global: Espacio de memoria general accesible desde el programa


principal, es decir, desde el código que no corresponde a ninguna función; e
incluso accesible desde el cuerpo de las funciones.

- Excepción: Si una variable local tiene el mismo nombre que una global, cuando
se utiliza dentro de su ámbito, la local oculta a la global.
Ejemplos:

Acceder a una variable local desde el programa principal = error.


Ejemplos:
La variable local “nombre” tiene prioridad dentro de la función.
No hay relación con la variable global “nombre”, ocupan espacios de memoria distintos.
Ejemplos:
Podemos acceder a variables globales, pero si las inicializamos dentro del cuerpo de la función,
se genera una local.
Ejemplos:
Si necesitamos modificar el valor de una variable global desde una función
debemos utilizar la clausula “global” para explicitarlo, (no es una buena práctica, pero existe
la posibilidad).
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 24
Funciones,
Modulos
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 23 Hoy Clase 25

Funciones Actual Practicas de integracion

● Funciones generalidades
● Modulos + Desafio
Repasando...
En programación, una función es un bloque de código que realiza una tarea específica y puede
ser invocado (llamado) desde otro lugar del programa para ejecutar esa tarea. Las funciones son
una forma de organizar y reutilizar el código, ya que encapsulan una secuencia de instrucciones
en una unidad lógica y modular.

Una función generalmente acepta entradas (argumentos o parámetros) y puede devolver una
salida (valor de retorno). Los argumentos son valores que se pasan a la función cuando es
llamada, y el valor de retorno es el resultado que la función devuelve al lugar desde donde fue
llamada...
Trabajando con funciones...

En Python, puedes combinar varias funciones de diferentes maneras para crear


funciones más complejas y realizar operaciones más avanzadas. Los veremos en el
siguiente orden

1-Composición y funciones como argumento


2-Funcion lambda
1- Puedes crear una nueva función que sea la composición de dos o más funciones
existentes. Para hacer esto, simplemente toma el resultado de una función y úsalo
como entrada para la siguiente función. Aquí hay un ejemplo:
En Python, puedes pasar una función como argumento a otra función. Esto te
permite combinar varias funciones al llamar a una función principal. Aquí hay un
ejemplo:
2- Una función lambda, también conocida como función anónima, es una
función pequeña y anónima en Python que se define sin un nombre específico.
A diferencia de las funciones regulares definidas con la palabra clave def, las
funciones lambda se definen utilizando la palabra clave lambda y pueden ser
utilizadas en cualquier lugar donde se necesite una función.
# Ejemplo 1: Función lambda sin argumentos

# Ejemplo 2: Función lambda con un argumento

# Ejemplo 3: Función lambda con múltiples argumentos


Módulos
Módulos
En Python, los módulos son archivos que contienen definiciones y declaraciones de
funciones, clases, variables y otros objetos reutilizables. Los módulos permiten
organizar el código en unidades lógicas y promueven la reutilización de código en
diferentes programas.

Podemos utilizar la siguiente estructura para organizar nuestro proyecto:


Carpeta principal del proyecto/

- main.py: Archivo principal que contiene el código principal del proyecto.

- resources/

- database/ Carpeta que contiene archivos relacionados con la base de datos.

- database.db: Archivo de la base de datos SQLite.

- modules/ Carpeta que contiene los modulos.

-modulo1.py
-modulo2.py
-modulo3.py
En Python, no hay un nombre específico que debas dar a los módulos. Puedes elegir un nombre
descriptivo y significativo que refleje el propósito o la funcionalidad.


Utiliza nombres en minúsculas: Es común utilizar nombres en minúsculas.


Utiliza nombres descriptivos: Elige nombres que sean descriptivos y concisos para tus módulos. El
nombre del módulo debe reflejar su funcionalidad o el área temática en la que se centra. Esto facilitará
a otros desarrolladores y a ti mismo entender el propósito del módulo.


Evita palabras reservadas: Evita nombres genéricos o demasiado comunes que puedan entrar en
conflicto con los nombres de otros módulos o con las palabras clave de Python. Trata de ser específico
y único en la elección del nombre.


Deben comenzar con una letra o un guion bajo (_).


El resto del nombre puede consistir en letras, dígitos y guiones bajos.


No se permiten espacios, caracteres especiales (como !, @, #, etc.) ni guiones medios (-)
Como importar una funcion que se encuentra en un modulo de la carpeta modules:

Traer dos o más funciones que esten en un mismo modulo en la carpeta modules:

#from nombrecarpeta.nombremodulo import nombre_funcion1,nombre_funcion2

Luego invocamos la funcion normalmente:


La línea if __name__ == "__main__": es una construcción especial en Python que se utiliza
para determinar si el archivo actual se está ejecutando como el programa principal. Incluyela
en tu archivo main.py
La línea if __name__ == "__main__": es una construcción especial en Python que se utiliza para
determinar si el archivo actual se está ejecutando como el programa principal.

Cuando ejecutas un archivo de Python, Python asigna automáticamente el valor especial


__name__ a la variable __name__ del archivo. Si el archivo se está ejecutando como el
programa principal, es decir, si se está ejecutando directamente y no se está importando como
un módulo en otro archivo, entonces __name__ tendrá el valor "__main__". Por otro lado, si el
archivo se está importando como un módulo en otro archivo, el valor de __name__ será el
nombre real del archivo.

Entonces, if __name__ == "__main__": se utiliza para condicionar la ejecución de cierto bloque


de código específico solo cuando el archivo se ejecuta directamente como el programa principal.
Esto es útil cuando tienes funciones o clases definidas en el archivo y quieres que se ejecuten
solo cuando el archivo se ejecute directamente.
¡¡Pasemos al código!!
ConversorApp
Desarrollar un programa que por ejecucion, me permita ingresar
un monto en pesos, y conocer
la conversión de ese monto a pesos chilenos, reales ó pesos uruguayos.

Aplicar lo visto hasta el momento.


Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 25
Modulos
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 24 Hoy Clase 26

Funciones Actual Practicas de integracion

● Kahoot repaso!
● Modulos + Desafio
Kahoot!
Repasamos los conceptos fundamentales. Resolvemos dudas a través de una trivia.

➔ Podes acceder al juego ingresando al link que enviare al chat, ó


➔ accediendo a www.kahoot.it e ingresando el PIN que te compartire por chat.

Deberas ingresar tu nombre y esperar a que comience el juego.


Módulos
Módulos
En Python, los módulos son archivos que contienen definiciones y declaraciones de
funciones, clases, variables y otros objetos reutilizables. Los módulos permiten
organizar el código en unidades lógicas y promueven la reutilización de código en
diferentes programas.

Podemos utilizar la siguiente estructura para organizar nuestro proyecto:


Carpeta principal del proyecto/

- main.py: Archivo principal que contiene el código principal del proyecto.

- resources/

- database/ Carpeta que contiene archivos relacionados con la base de datos.

- database.db: Archivo de la base de datos SQLite.

- modules/ Carpeta que contiene los modulos.

-modulo1.py
-modulo2.py
-modulo3.py
En Python, no hay un nombre específico que debas dar a los módulos. Puedes elegir un nombre
descriptivo y significativo que refleje el propósito o la funcionalidad.


Utiliza nombres en minúsculas: Es común utilizar nombres en minúsculas.


Utiliza nombres descriptivos: Elige nombres que sean descriptivos y concisos para tus módulos. El
nombre del módulo debe reflejar su funcionalidad o el área temática en la que se centra. Esto facilitará
a otros desarrolladores y a ti mismo entender el propósito del módulo.


Evita palabras reservadas: Evita nombres genéricos o demasiado comunes que puedan entrar en
conflicto con los nombres de otros módulos o con las palabras clave de Python. Trata de ser específico
y único en la elección del nombre.


Deben comenzar con una letra o un guion bajo (_).


El resto del nombre puede consistir en letras, dígitos y guiones bajos.


No se permiten espacios, caracteres especiales (como !, @, #, etc.) ni guiones medios (-)
Como importar una funcion que se encuentra en un modulo de la carpeta modules:

Traer dos o más funciones que esten en un mismo modulo en la carpeta modules:

#from nombrecarpeta.nombremodulo import nombre_funcion1,nombre_funcion2

Luego invocamos la funcion normalmente:


La línea if __name__ == "__main__": es una construcción especial en Python que se utiliza
para determinar si el archivo actual se está ejecutando como el programa principal. Incluyela
en tu archivo main.py
La línea if __name__ == "__main__": es una construcción especial en Python que se utiliza para
determinar si el archivo actual se está ejecutando como el programa principal.

Cuando ejecutas un archivo de Python, Python asigna automáticamente el valor especial


__name__ a la variable __name__ del archivo. Si el archivo se está ejecutando como el
programa principal, es decir, si se está ejecutando directamente y no se está importando como
un módulo en otro archivo, entonces __name__ tendrá el valor "__main__". Por otro lado, si el
archivo se está importando como un módulo en otro archivo, el valor de __name__ será el
nombre real del archivo.

Entonces, if __name__ == "__main__": se utiliza para condicionar la ejecución de cierto bloque


de código específico solo cuando el archivo se ejecuta directamente como el programa principal.
Esto es útil cuando tienes funciones o clases definidas en el archivo y quieres que se ejecuten
solo cuando el archivo se ejecute directamente.
¡¡Pasemos al código!!
ConversorApp
Desarrollar un programa que por ejecucion, me permita ingresar
un monto en pesos, y conocer
la conversión de ese monto a pesos chilenos, reales ó pesos uruguayos.

Aplicar lo visto hasta el momento.


Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 26
Prácticas de Integración
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 25 Actual Clase 27

Modulos Hoy Prácticas de integración

● Desafio
¡Llegó el momento de escribir código!

Resolución de ejercicio en grupo, no te preocupes si no lo resolvemos


completamente en esta clase, tendremos tiempo para avanzar con esta
consigna y con otras también
Consigna
Deberá crear una aplicación de consola que simulara una app de recordatorios, que
permita:
- Registrar un nuevo recordatorio indicando titulo y descripcion del mismo. El programa
debera asignar un identificador unico a cada registro.
- Ver todos los recordatorios registrados(mostrando id, titulo y descripcion).
- Modificar un recordatorio especifico, segun id.
- Eliminar un recordatorio especifico, segun id.
- Al finalizar, el programa deberá mostrar reportes de la cantidad de recordatorios
que estan guardados en la app.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 27
Prácticas de Integración
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 26 Actual Clase 28

Practicas de integracion Hoy Prácticas de integración

● Continuamos con el desafio


anterior y resolvemos
dudas
¡Continuamos escribiendo código!

Resolución de ejercicio en grupo


Consigna
Deberá crear una aplicación de consola que simulara una agenda de anotaciones, que
permita:
- Registrar una nueva nota indicando titulo y descripcion de la misma. El programa
debera asignar un identificador unico a cada nota registrada.
- Consultar las notas registradas(mostrando id, titulo y descripcion).
- Modificar una nota especifica, segun id.
- Eliminar una nota especifica, segun id.
- Al finalizar, el programa deberá mostrar reportes de la cantidad de notas registradas.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 28
Prácticas de Integración
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 27 Actual Clase 29

Practicas de integracion Hoy Prácticas de integración

● Finalizamos el desafio
anterior y comenzamos
uno nuevo
¡Continuamos escribiendo código!

Resolución de ejercicio en grupo


Consigna
Deberá crear una aplicación de consola que simulara una app de recordatorios, que
permita:
- Registrar un nuevo recordatorio indicando titulo y descripcion del mismo. El programa
debera asignar un identificador unico a cada registro.
- Ver todos los recordatorios registrados(mostrando id, titulo y descripcion).
- Modificar un recordatorio especifico, segun id.
- Eliminar un recordatorio especifico, segun id.
- Al finalizar, el programa deberá mostrar reportes de la cantidad de recordatorios
que estan guardados en la app.
¡Llegó el momento de resolver
un nuevo desafío!

Resolución de ejercicio en grupo.


No te preocupes si no lo resolvemos completamente en esta
clase, tendremos tiempo para avanzar con esta consigna y con
la siguiente, también.
¿Conoces a este mamífero ?
Sabías que …
las ballenas son conocidas por ser
algunos de los mamíferos marinos más
longevos en la Tierra?

Por ejemplo, las ballenas azules, que


son las criaturas más grandes que jamás
hayan existido en la Tierra, pueden vivir
hasta alrededor de 90 años !!!
Acercándonos a un nuevo tema..
En el siguiente ejemplo, luego de importar random, se llama a la función randint con
dos argumentos, 0 y 10. randint genera un número entero aleatorio dentro del rango
especificado (en este caso, entre 0 y 10, incluyendo el 0 y el 10).
Consigna ¡Jug
u emo
s!

Juego “Adivina la edad de Lola”.

-El juego consiste en tratar de adivinar la edad de una ballena azul llamada Lola, que
se encuentra cumpliendo años.

-El juego admite dos jugadores.

- Por ronda, cada jugador podrá ingresar un número en su intento de adivinanza, de la edad de Lola.

-El programa compara el número ingresado por cada jugador con la edad de Lola y brinda
retroalimentación (“soy mas joven”, “soy mayor”, “adivinaste! esa es mi edad!”) para ayudar a los
jugadores a adivinar en la siguiente oportunidad.

-Finalización del juego: El juego termina cuando uno de los jugadores adivina correctamente el
número o cuando se completaron 4 rondas, y ninguno acertó.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 29
Prácticas de Integración
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
28 Actual Clase 30

Prácticas de Integración Hoy Prácticas de integración

● Acercándonos a un nuevo
tema
● Desafío
Acercándonos a un nuevo tema..
En el siguiente ejemplo, luego de importar random, se llama a la función randint con
dos argumentos, 0 y 10. randint genera un número entero aleatorio dentro del rango
especificado (en este caso, entre 0 y 10, incluyendo el 0 y el 10).
¡Llegó el momento de escribir código!

Resolución de ejercicio en grupo.


La clase que viene avanzamos con una nueva consigna!
Consigna ¡Jug
uem
os!

Juego “Adivina la edad de Lola”.

-El juego consiste en tratar de adivinar la edad de una ballena azul llamada Lola, que
se encuentra cumpliendo años.

-El juego admite dos jugadores.

- Por ronda, cada jugador podrá ingresar un número en su intento de adivinanza, de la edad de Lola.

-El programa compara el número ingresado por cada jugador con la edad de Lola y brinda
retroalimentación (“soy mas joven”, “soy mayor”, “adivinaste! esa es mi edad!”) para ayudar a los
jugadores a adivinar en la siguiente oportunidad.

-Finalización del juego: El juego termina cuando uno de los jugadores adivina correctamente el
número o cuando se completaron 4 rondas, y ninguno acertó.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 30
Prácticas de Integración
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
28 Actual Clase 31

Prácticas de Integración Hoy Clase de consultas

● Nos acercamos a un nuevo


tema
● Completamos el último
Desafío
Acercándonos a un nuevo tema..
En el siguiente ejemplo, luego de importar random, se llama a la función choice
pasandole un argumento: una lista. choice se utiliza para elegir un elemento aleatorio de
una secuencia, como una lista, tupla o cadena.
¡Llegó el momento de escribir código!

Resolución de ejercicio en grupo. Continuamos con la


resolución de nuestro último desafío!
Consigna
Juego “Obsequio Navideño”

La Navidad se acerca y Julia está llena de emoción por entregar regalos a


todos. De hecho, ¡ha adquirido un regalo especial para ti! Sin embargo, antes
de comenzar a envolverlo, te propone un desafío divertido.

¿Te atreves a adivinar qué ha comprado para ti? Si logras adivinarlo, ¡podrás
recibir tu regalo antes de lo previsto! Pero si no aciertas, Julia se pondrá
manos a la obra para envolverlo, si completa la envoltura, tendrás que esperar
hasta la Nochebuena para recibir tu obsequio.
Requerimientos Generales:
● Elección del Regalo: Comienza por definir una lista de regalos predefinidos, de la cual se seleccionará uno
al azar en cada partida. Este regalo es el que Julia habrá elegido para ti. Al principio, deberás ver la palabra
como una serie de guiones bajos, uno por cada letra de la palabra oculta. Por ejemplo, si el regalo es
"remera", lo verás como "_ _ _ _ _ _".
● Verifica tus Adivinanzas: Cada letra que ingreses se verificará para saber si está presente en la palabra a
adivinar. Si adivinas correctamente, verás la posición de la letra en la palabra. Por ejemplo, si adivinas la
letra "e", la palabra podría mostrarse como "_ e _ _ e _".
● Intentos fallidos: Solo podras fallar 6 veces.
● Muestra la Caja de Regalo: A medida que fallas al intentar adivinar letras, se mostrará progresivamente una
figura de una caja de regalos. Recuerda que tú eres el único jugador en este emocionante juego y que este
sera el mecanismo por el cual te enteraras si estas a punto de perder al agotar tus posibilidades de fallar.
● Control del Final del Juego: El juego termina cuando adivinas toda la palabra correctamente o cuando se
completa la figura de la caja de regalos. ¿Serás capaz de descubrir qué regalo te ha preparado Julia antes
de que termine de envolverlo?
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 31
Prácticas de Integración
y clase de consultas PFI
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 30 Actual Clase 32

Prácticas de Integración Hoy Archivos, modulos, librerias

● Completamos el último
Desafío
● Atendemos consultas sobre
el PFI
¡Llegó el momento de escribir código!

Resolución de nuestro último desafío!


Consigna
Juego “Obsequio Navideño”

La Navidad se acerca y Julia está llena de emoción por entregar regalos a


todos. De hecho, ¡ha adquirido un regalo especial para ti! Sin embargo, antes
de comenzar a envolverlo, te propone un desafío divertido.

¿Te atreves a adivinar qué ha comprado para ti? Si logras adivinarlo, ¡podrás
recibir tu regalo antes de lo previsto! Pero si no aciertas, Julia se pondrá
manos a la obra para envolverlo, si completa la envoltura, tendrás que esperar
hasta la Nochebuena para recibir tu obsequio.
Requerimientos Generales:
● Elección del Regalo: Comienza por definir una lista de regalos predefinidos, de la cual se seleccionará uno
al azar en cada partida. Este regalo es el que Julia habrá elegido para ti. Al principio, deberás ver la palabra
como una serie de guiones bajos, uno por cada letra de la palabra oculta. Por ejemplo, si el regalo es
"remera", lo verás como "_ _ _ _ _ _".
● Verifica tus Adivinanzas: Cada letra que ingreses se verificará para saber si está presente en la palabra a
adivinar. Si adivinas correctamente, verás la posición de la letra en la palabra. Por ejemplo, si adivinas la
letra "e", la palabra podría mostrarse como "_ e _ _ e _".
● Intentos fallidos: Solo podras fallar 6 veces.
● Muestra la Caja de Regalo: A medida que fallas al intentar adivinar letras, se mostrará progresivamente una
figura de una caja de regalos. Recuerda que tú eres el único jugador en este emocionante juego y que este
sera el mecanismo por el cual te enteraras si estas a punto de perder al agotar tus posibilidades de fallar.
● Control del Final del Juego: El juego termina cuando adivinas toda la palabra correctamente o cuando se
completa la figura de la caja de regalos. ¿Serás capaz de descubrir qué regalo te ha preparado Julia antes
de que termine de envolverlo?
Consultas sobre el Proyecto Final
Integrador

Compartí pantalla, veamos tu código :)

Recordá, fuera de la clase, debes usar el aula virtual

https://aulasvirtuales.bue.edu.ar/mod/forum/view.php?id=394460&group=65216
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 32
Archivos, Módulos y Librerías
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
Clase 31 Actual Clase 33

Clase de consultas Hoy Archivos, módulos, librerías -


Bases de datos
● Módulos estándar
● Librerías: persistencia en
xlsx
¿Que es un módulo?

Es un archivo de Python que contiene funciones, variables y declaraciones


que se pueden importar a otro programa. Puede considerarse como un
archivo .py que contiene código reutilizable. Un módulo puede contener una
o varias funciones y clases, y se utiliza para organizar y reutilizar código en
un programa.
Módulos estándar: Random
Escoger valores aleatorios. Veamos qué otras cosas ofrece el módulo.

https://docs.python.org/es/3/library/random.html?highlight=random#module-random
Módulos estándar: Datetime
Manipular fechas y horas. Veamos qué ofrece este módulo:

https://docs.python.org/es/3/library/datetime.html?highlight=datetime#module-datetime
Módulos estándar: Math
Funciones para ir un paso más allá en matemática.

https://docs.python.org/es/3/library/math.html?highlight=math#module-math

Recuerda que estos son algunos de los módulos estándar que nos ofrece Python.
Puedes seguir explorando otros, por ej: cmath
https://docs.python.org/es/3/library/cmath.html#module-cmath
¿Que es una librería o biblioteca?

Se usa a menudo como sinónimo de "conjunto de módulos".


Una librería es un conjunto de funcionalidades y herramientas
que pueden estar compuestas por uno o más módulos, que
ofrecen funcionalidades relacionadas entre sí.
Librerías de terceros: openpyxl
Leer/escribir archivos xlsx/xlsm/xltx/xltm de Excel 2010.

https://pypi.org/project/openpyxl/

Puedes explorar a fondo la documentación en el siguiente link:


https://openpyxl.readthedocs.io/en/stable/
Instalación:
● Abre la terminal.
● Escribe la siguiente linea y presiona Enter:
pip install openpyxl
● Espera que termine el proceso.
● Ya puedes utilizar openpyxl en tu proyecto!: Genera tu archivo .py y no te olvides de
importar de openpyxl , la clase Workbook
La próxima clase…
Función open() , se utiliza para abrir archivos en diferentes modos de
acceso (lectura, escritura, etc.). Esta función es fundamental para trabajar
con archivos en Python y permite interactuar con ellos.

Tkinter, por otro lado, es un paquete de la libreria estándar de Python que


proporciona herramientas para crear ventanas, botones, cuadros de texto,
menús y otros elementos de interfaz gráfica. Con Tkinter, puedes diseñar
programas interactivos con una interfaz visual.
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 33
Archivos, Módulos y Librerías
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Sobre esta clase…
Vamos a abordar principalmente el contenido teórico que sustenta los conceptos clave que
luego aplicaremos al análisis de código. Una vez que hayamos cubierto esa base teórica,
nos adentraremos en ejemplos prácticos y análisis de código para consolidar el
aprendizaje.

Es importante mencionar, que la profundización más allá de lo que cubriremos en clase es


completamente posible y alentada. Si desean explorar y profundizar más en los temas que
abordaremos hoy, les animo a que lo hagan. Estoy disponible para brindar orientación
adicional y recursos que puedan facilitar ese proceso de aprendizaje autónomo, con el
objetivo de que se sientan seguros y capaces de explorar más allá de lo que cubriremos
juntos en este encuentro..
Clase 06
32 Actual Clase 34

Modulos, archivos, librerias Hoy Bases de datos

● Funcion open, manejo de


archivos
● ¿Que es un modulo? Modulos
estandar
● ¿Que es un paquete? Tkinter
● ¿Que es una libreria?
Openpyxl
Función open()

En Python, la función open() se utiliza para abrir archivos


en distintos modos de operación, permitiéndote leer, escribir
o manipular datos en archivos.
Argumentos
Esta función toma como argumento: el nombre del archivo que quieres abrir y el modo en
el que se abrirá el archivo

Modo lectura. Abre el archivo para lectura “r” archivo = open('misContactos.txt', 'r')
(por defecto).

Modo escritura. Abre el archivo para “w” archivo = open('misContactos.txt', 'w')


escritura. Si el archivo ya existe, borra su
contenido. Si no existe, crea uno nuevo.

Modo anexar. Abre el archivo para añadir “a” archivo = open('misContactos.txt', 'a')
contenido al final. Si el archivo no existe, lo
crea.
Algunos métodos de los archivos: read() y readlines()
read() lee el contenido completo del archivo y lo devuelve como una sola cadena de
caracteres (string)

contenido = archivo.read() #misma sintaxis para readlines()


print(contenido)

readlines() lee todas las líneas del archivo y las devuelve como una lista donde cada
elemento es una línea del archivo. Cada línea termina con el carácter de nueva línea (\n)
a menos que sea la última línea del archivo y no tenga un carácter de nueva línea al final
Algunos métodos de los archivos: write()
Nos servira para escribir en el archivo. Importante, aclarar saltos de linea con \n , de lo
contrario, por mas que ejecutemos de manera seguida el metodo write() siempre
estaremos escribiendo en la misma linea que ya este escrita.

archivo.write("Hola, este es un nuevo archivo.\n")


archivo.write("Aquí puedo escribir más líneas si quiero.")
Iterar sobre las líneas de un archivo
Podemos usar un bucle for para iterar sobre cada línea del archivo e imprimir cada línea,
después de eliminar los caracteres de nueva línea con strip()

for linea in archivo: # Itera sobre cada línea del archivo


print(linea.strip()) # Imprime cada línea sin caracteres de nueva línea (\n)
Método close()
Cada vez que carguemos un archivo y lo manipulemos, después de hacerlo siempre lo
cerraremos para liberar ese espacio de la memoria en la que guardabamos el archivo para
manipularlo

archivo.close()
Función open()

¡Veamos un caso práctico!


¿Que es un módulo?

Es un archivo de Python que contiene funciones, variables y declaraciones


que se pueden importar a otro programa. Puede considerarse como un
archivo .py que contiene código reutilizable. Un módulo puede contener una
o varias funciones y clases, y se utiliza para organizar y reutilizar código en
un programa.
Módulos estándar: Random
Escoger valores aleatorios. Veamos qué otras cosas ofrece el módulo.

https://docs.python.org/es/3/library/random.html?highlight=random#module-random
¿Que es un paquete?

Son conjuntos organizados de código, generalmente formados por módulos,


funciones, clases u otros componentes. Los paquetes pueden contener
varios archivos y están destinados a organizar y estructurar el código de una
manera específica.
Tkinter
Es un paquete(conjunto de modulos) de la biblioteca estándar
de Python que proporciona herramientas para crear ventanas,
botones, cuadros de texto, y otros elementos de interfaz gráfica.
Hoy veremos algunos de sus widgets .. Podes explorar a fondo
esta herramienta en:

https://docs.python.org/es/3/library/tkinter.html
Ventanas
import tkinter as tk

ventana = tk.Tk() # Crear una ventana


ventana.title("Mi Ventana") # Establecer el título de la ventana

#aca va todo el codigo que te permite añadir cosas y configurar tu ventana

ventana.mainloop() # Al final del codigo daremos la orden de que la ventana


aparezca y quede funcionando
Label
Podemos crear una etiqueta que contiene el texto "Hola, esta es una etiqueta de ejemplo".
La etiqueta se colocara y vera en la ventana usando el método pack()

#Decimos en que ventana se ubica y el texto estatico que mostrara


etiqueta = tk.Label(ventana, text="Hola, esta es una etiqueta de ejemplo")
#Colocamos la label creada en la ventana
etiqueta.pack()
Entry
Es una clase que permite crear un widget de entrada de datos, que le permitira al usuario
ingresar un dato. Podemos pasarle varios argumentos, el mas importante es indicar en
que ventana creada se debe ubicar esa entrada.

entrada = tk.Entry(ventana)
entrada.pack()
IntVar() y StringVar()
IntVar() y StringVar() son algunas de las clases que se utilizan para crear variables especiales
asociadas a widgets específicos, sobre todo a widgets que nos permiten obtener datos que pueden cambiar,
como por ejemplo un Entry.
Por ejemplo, en un Entry (campo de entrada) puedes asociar una StringVar() para rastrear y modificar el
texto dentro del campo. Cualquier cambio en la variable se reflejará automáticamente en el campo de entrada y
viceversa.

# Crear una StringVar


nombre = tk.StringVar()

# Asociar la StringVar a un Entry


entradaNombre = tk.Entry(ventana, textvariable=nombre)
entradaNombre.pack()
get() y set()
son métodos que se utilizan para interactuar con las variables especiales asociadas a
ciertos widgets, como StringVar, IntVar, DoubleVar, entre otros. get() se utiliza
para obtener el valor actual en la variable asociada a un widget.

nombreIngresado = nombre.get() #obtener dato

set(valor) se utiliza para establecer un nuevo valor en la variable asociada a un


widget. Puedes utilizar set() para actualizar el valor almacenado en la variable, lo que a
su vez se reflejará automáticamente en el widget vinculado.

nombre.set(“nuevo nombre”) #modificar dato desde el programa


Button
Se utiliza para crear un botón en la interfaz gráfica que el usuario puede presionar
para realizar alguna acción o desencadenar un evento específico. Al crear un botón,
puedes asociar una función que se ejecutará cuando se presione el botón.

def mostrar_texto():
print("¡Botón presionado!")

boton = tk.Button(ventana, text="Escribir", command=mostrar_texto)


boton.pack()
Messagebox
El módulo proporciona métodos para mostrar diferentes tipos de ventanas de mensaje que
permiten al programador mostrar información, mensajes de advertencia, errores, solicitar
confirmaciones y más, de manera interactiva y ya definida. Como es un modulo, lo debemos
importar

from tkinter import messagebox

def mostrar_mensaje_error():
messagebox.showerror("ERROR", "¡Ingrese un valor distinto a 0!")
Tkinter
¡analicemos código!

No te olvides que puedes explorar todo esto y más siguiendo la


documentación:

https://docs.python.org/es/3/library/tkinter.html
¿Que es una librería o biblioteca?

Las librerías pueden estar compuestas por uno o más paquetes


y pueden incluir múltiples funcionalidades y utilidades entre sí.
Los paquetes pueden formar parte de una librería, pero no toda
librería está necesariamente compuesta exclusivamente por
paquetes. En ocasiones, una librería puede incluir funciones,
clases u otros componentes sin estar divididos explícitamente
en paquetes o módulos separados.
Librerías de terceros: openpyxl
Leer/escribir archivos xlsx/xlsm/xltx/xltm de Excel 2010.

https://pypi.org/project/openpyxl/

Puedes explorar a fondo la documentación en el siguiente link:


https://openpyxl.readthedocs.io/en/stable/
Instalación:
● Abre la terminal.
● Escribe la siguiente linea y presiona Enter:
pip install openpyxl
● Espera que termine el proceso.
● Ya puedes utilizar openpyxl en tu proyecto!: Genera tu archivo .py y no te olvides de
importar de openpyxl , la clase Workbook
Openpyxl
¡cerramos la clase analizando un caso práctico!

No te olvides que puedes explorar todo esto y más siguiendo la


documentación:

https://openpyxl.readthedocs.io/en/stable/
Recordá:
● Revisar la Cartelera de Novedades.
● Hacer tus consultas en el Foro.

Todo en el Aula Virtual.


Codo a Codo inicial
Clase 34
Openpyxl y BBDD
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 06
33 Actual Clase 35

Modulos, archivos, librerias Hoy Presentacion PFI

● ¿Que es un paquete?
Tkinter
● ¿Que es una libreria?
Openpyxql
● Base de datos relacionales
¿Que es un paquete?

Son conjuntos organizados de código, generalmente formados por módulos,


funciones, clases u otros componentes. Los paquetes pueden contener
varios archivos y están destinados a organizar y estructurar el código de una
manera específica.
Tkinter
Es un paquete(conjunto de modulos) de la biblioteca estándar
de Python que proporciona herramientas para crear ventanas,
botones, cuadros de texto, y otros elementos de interfaz gráfica.
Hoy veremos algunos de sus widgets .. Podes explorar a fondo
esta herramienta en:

https://docs.python.org/es/3/library/tkinter.html
¿Que es una librería o biblioteca?

Las librerías pueden estar compuestas por uno o más paquetes y


pueden incluir múltiples funcionalidades y utilidades entre sí.
Los paquetes pueden formar parte de una librería, pero no toda
librería está necesariamente compuesta exclusivamente por
paquetes. En ocasiones, una librería puede incluir funciones,
clases u otros componentes sin estar divididos explícitamente en
paquetes o módulos separados.
Librerías de terceros: openpyxl
Leer/escribir archivos xlsx/xlsm/xltx/xltm de Excel 2010.

https://pypi.org/project/openpyxl/

Puedes explorar a fondo la documentación en el siguiente link:


https://openpyxl.readthedocs.io/en/stable/
Instalación:
● Abre la terminal.
● Escribe la siguiente linea y presiona Enter:
pip install openpyxl
● Espera que termine el proceso.
● Ya puedes utilizar openpyxl en tu proyecto!: Genera tu archivo .py y no te olvides de
importar de openpyxl , la clase Workbook
Openpyxl
¡analizamos un caso practico!

No te olvides que puedes explorar todo esto y más siguiendo la


documentación:

https://openpyxl.readthedocs.io/en/stable/
Base de datos relacionales
Colección de datos persistentes, relacionados y estructurados.
Persistentes: se almacenan en archivos.
Relacionados: cooperan en la descripción de informaciones.
Estructurados: se mantienen en estructuras (registros, tablas, documentos, etc).

Ejemplos de la vida real:


● Legajos personales
● Guia telefonica
● Historial médico
● Registro de transacciones: operaciones bancarias, llamadas de teléfono, etc.
Dato

Un dato es una información que refleja el valor de una característica de un


objeto real, sea concreto, abstracto o hasta imaginario. Son
representaciones de un determinado atributo o variable cualitativa o
cuantitativa, es decir: la descripción codificada de un hecho empírico, un
suceso, una entidad.
SQL su importancia

Es un lenguaje de consulta estructurado, es


un lenguaje estándar para el manejo de
información desde una base de datos
relacional. Se desarrolló en IBM en la década
de 1970 con Oracle como uno de los
principales contribuyentes, lo que llevó a la
implementación del estándar ANSI de SQL.
SQLite3

SQLite3 no es un módulo de Python en sí mismo, es un


motor de base de datos independiente que está integrado
en el lenguaje Python a través del módulo sqlite3. El
modulo permite a los programadores Python crear,
manipular y consultar bases de datos SQLite directamente
desde sus programas. Proporciona funciones y clases que
facilitan la conexión a la base de datos, la ejecución de
consultas SQL, la gestión de transacciones y la
recuperación de resultados.
DBBrowser for SQLite3

Es una herramienta de software de código abierto que


permite a los usuarios crear, diseñar, administrar y
explorar bases de datos SQLite de una manera
gráfica e intuitiva. Es una aplicación independiente
que proporciona una interfaz de usuario amigable
para trabajar con bases de datos SQLite sin
necesidad de escribir código. Debes instalarlo
https://sqlitebrowser.org/
Tabla

Agrupa datos sobre un mismo tema.


● Campos (Columnas): es cada una de las columnas de
la tabla y el nombre de la columna es el nombre del
campo.
● Registros (Filas): es cada una de las filas de la tabla, y
está formado por el dato de cada uno de los campos.
Tipos de Datos
Para cada campo de cada una de las tablas, es
necesario determinar el tipo de datos que contiene,
para de esa forma ajustar el diseño de la base de
datos, y conseguir un almacenamiento óptimo con
la menor utilización de espacio.
Tipos de datos
✔ INTEGER: Almacena números enteros.
✔ REAL: Almacena números de coma flotante.
✔ TEXT: Almacena cadenas de texto, utiliza la codificación UTF-8.
✔ BLOB: Almacena datos binarios (por ejemplo, imágenes,
archivos).
✔ NULL: Almacena valores nulos.
✔ BOOLEAN: Aunque no existe un tipo BOOLEAN explícito, suele
ser representado como INTEGER donde 0 es falso y 1 es
verdadero.
Restricciones
Las constraints son restricciones que se utilizan
para limitar el tipo de dato que puede recibir una
columna de una tabla.
✔ NOT NULL
✔ UNIQUE
✔ PRIMARY KEY
✔ FOREIGN KEY
DDL
El lenguaje de definición de datos es el que se
encarga de la modificación de la estructura de los
objetos de la base de datos. Nos permite modificar,
borrar o definir las tablas en las que se almacenan
los datos de la base de datos mediante las
sentencias: CREATE, ALTER, DROP.
SQL - Comandos DDL
SQL - Comandos DDL
CREATE DATABASE editorial

CREATE TABLE IF NOT EXISTS Libro (


idLibro INTEGER PRIMARY KEY,
Titulo TEXT,
CantidadEjemplares INTEGER,
NombreAutor TEXT,
)
SQL - Comandos DDL
DROP TABLE Libro

ALTER TABLE Libro MODIFY COLUMN CantidadEjemplares TEXT


DML
El Lenguaje de Manipulación de Datos se
utiliza para manipular la estructura que
almacenan los datos. Las sentencias DML son
aquellas utilizadas para insertar, borrar,
modificar y consultar los datos de una base
de datos. INSERT, DELETE,
UPDATE,SELECT
SQL - Comandos DML
SQL - Comandos DDL
SELECT * FROM Libro WHERE idLibro = 5

INSERT INTO Libro (Titulo, CantidadEjemplares, NombreAutor) VALUES ('El Aleph', 50,
'Jorge Luis Borges')

UPDATE Libro SET Titulo = '500 recetas de cocina' WHERE idLibro = 9

DELETE FROM Libro WHERE idLibro = 11


Aclaración con creación de BBDD Desde python
En Python, cuando te conectas a una base de datos SQLite usando
sqlite3.connect('nombre_basededatos.db'), si la base de datos especificada no existe,
SQLite la creará automáticamente. Usaremos el metodo close para luego cerrar la base
de datos. Aquí hay un ejemplo:

import sqlite3

# Conexión a una nueva base de datos llamada 'nueva_base.db'


conexion = sqlite3.connect('nueva_base.db') #creamos y abrimos conexion con la BDD
# aca realizaremos todas las acciones de manipulacion de la BDD
conexion.close() #cerramos la conexion con la BDD
Aclaración: desde python
1. connect('database_name'): Método para establecer una conexión con una base de datos SQLite.
Toma como argumento el nombre del archivo de la base de datos.
2. cursor(): Método que devuelve un objeto de cursor. Un cursor permite recorrer los registros en un
conjunto de resultados y realizar operaciones en la base de datos.
3. execute(query, parameters): Método del cursor que ejecuta una consulta SQL. Puede incluir
parámetros que se pasan como una tupla.
4. commit(): Método para confirmar los cambios realizados en la base de datos. Se utiliza después
de las operaciones que modifican datos (INSERT, UPDATE, DELETE).
5. fetchone(): Método del cursor que recupera la siguiente fila del resultado de la consulta. Devuelve
una sola fila o None si no hay más filas que recuperar.
6. rowcount: Atributo del cursor que devuelve el número de filas afectadas por la última operación
ejecutada (INSERT, UPDATE, DELETE).
No te olvides de dar el presente

También podría gustarte