SEMANA 4
Semana del 13 al 17 de Abril de 2020
Asignatura: Programación y Base de Datos
DATOS
INFORMATIVOS:
Docente
|
Cesar Hidalgo
|
Fecha de
Inicio:
|
2020/ 04/13
|
Área
|
Programación
|
Fecha de
Finalización:
|
2020/04/17
|
RECOMENDACIONES:
Recuerde guardar las tareas firmadas, serán revisadas y calificadas
Para los estudiantes que tienen acceso a una computadora y a internet pueden ingresar al blog y a las páginas que se sugiere.
Para los estudiantes que no cuentan con un computador ni internet, se envía un archivo adjunto.
Cualquier inquietud por favor enviar mensajes por el WhatsApp o por el Blog.
Recuerde guardar las tareas firmadas, serán revisadas y calificadas
Para los estudiantes que tienen acceso a una computadora y a internet pueden ingresar al blog y a las páginas que se sugiere.
Para los estudiantes que no cuentan con un computador ni internet, se envía un archivo adjunto.
Cualquier inquietud por favor enviar mensajes por el WhatsApp o por el Blog.
PLANIFICACIÓN SEMANAL: 4
Día
|
Asignatura
|
Especificaciones
|
Actividades/ Tareas
|
2020/04/14
|
Programación
Y Base de Datos
|
Unidad: 5
Análisis Estructurado de Sistemas
Tema:
Programación con
sistemas gestores de bases
de datos norelacionales
Objetivo: Aplicar
las herramientas de desarrollo que cumplan
con las especificaciones establecidas.
|
Opcional. Observar y analizar los
videos
Realiza, en tu
cuaderno o carpeta de trabajo, un mapa
conceptual sobre los principales gestores de bases de datos no relacionales
(NoSQL), deberá contener:
-
Definición
-
Características
-
Ventajas
-
Desventajas
|
OBSERVACIONES
|
Nota: Se adjunta un archivo.
|
ELABORADO POR:
|
REVISADO POR :
|
APROBADO POR
|
DOCENTE
|
DIRECTOR DE ÁREA
|
VICERRECTORA
|
Cesar Hidalgo
|
Patricia Robalino
|
Ana Tacuri
|
BASES DE DATOS NO RELACIONAL
Una base de datos no relacional (NoSQL) es aquella
que:
O No requiere
de estructuras de datos fijas como tablas.
O Escala muy
bien horizontalmente.
O Se utiliza
en entornos distribuidos que han de estar siempre disponibles y operativos.
O Gestiona un
importante volumen de datos.
Los principales sistemas gestores de bases de datosno
relacionales(SGBD NoSQL) son:
MongoDB
Es un SBGD NoSQL orientado a ficheros,que almacena la
información en estructuras BSON con un esquema dinámico que permite su
facilidad de integración.
Empresas como Google, Facebook, eBay, Cisco o Adobe
utilizan MongoDB como Sistema Gestor de Bases de datos. Las principales
características de MongoDB son:
O Indexación y
replicación
O Balanceo de
carga
O Almacenamiento
en ficheros
O Consultas ad
hoc
O Escalabilidad
horizontal
O Open source
Como desventaja principal:
MongoDB no es un SGBD adecuado para realizar
transacciones complejas.
Fuente: https://www.mongodb.com/es
Redis
Redis está basado en el almacenamiento clave‒valor. Podríamos verlo como un
vector enorme que almacena todo tipo de datos, desde cadenas, hashses, listas,
etc.
El principal uso de este SGBD es el almacenamiento en
memoria caché y la administración de sesiones.
Las características principales son:
O Atomicidad y
persistencia
O Gran
velocidad
O SimplicidadoMultiplataforma
Fuente: https://redis.io/
Cassandra
Al igual que Redis, Cassandra también utiliza
almacenamiento clave-valor. Es un SGBD NoSQL distribuido y masivamente
escalable. Facebook, Twitter, Instagram, Spotify yNetflix utilizan Cassandra. Dispone
de un lenguaje propio para las consultas denominado CQL (Cassandra Query
Languaje).
Las principales características de este SGBD NoSQL
son:
O Multiplataforma.
O Propio lenguaje de consultas (CQL).
O Escalado lineal y horizontal.
O Es un SGBD distribuido.
O Utiliza una arquitectura peer-to-peer.
Fuente: cassandra.apache.org/
Otros SGBD
NoSQL
Otros sistemas gestores de bases de datos no
relacionales muy utilizados son:
O Azure Cosmos DB
O RavenDBoObjectDB
O Apache CouchDB
O Neo4joGoogle BigTable
O Apache Hbase
O Amazon DynamoDB
SEMANA 3
Semana del 30 de Marzo al 3 de Abril de 2020
Asignatura: Programación y Base de Datos
Como el Ministerio de Educación ya ha incorporado las actividades para el BACHILLERATO TÉCNICO EN INFORMÁTICA, en el siguiente sitio web puedes revisar las actividades que debes realizar durante estas semanas de suspensión de clases.
TEMA:
Programación con sistemas gestores de bases de datos relacionales
- MySQL
- PostgreSQL
- Oracle
ACTIVIDAD:
En su cuaderno o carpeta de trabajo realice un mapa conceptual sobre los principales gestores de bases de datos relacionales, deberá contener: definición, características, ventajas y desventajas.
TEMA:
Programación con sistemas gestores de bases de datos relacionales
- MySQL
- PostgreSQL
- Oracle
ACTIVIDAD:
En su cuaderno o carpeta de trabajo realice un mapa conceptual sobre los principales gestores de bases de datos relacionales, deberá contener: definición, características, ventajas y desventajas.
SEMANA 2
Semana del 23 al 27 de Marzo de 2020
Asignatura: Programación y Base de Datos
ACTIVIDAD
1: Lee detenidamente la información sobre
POO:
Programación orientada a objetos (POO)
Es un paradigma de
programación que usa objetos y sus interacciones, para diseñar aplicaciones y
programas informáticos. Está basado en varias técnicas, incluyendo herencia,
abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a principios
de la década de los años 1990. En la actualidad, existe variedad de lenguajes
de programación que soportan la orientación a objetos.
Introducción
Los objetos son entidades
que combinan estado (atributo), comportamiento (método) e identidad:
El estado.- Está
compuesto de datos, será uno o varios atributos a los que se habrán asignado
unos valores concretos (datos).
El comportamiento.- está definido por los
procedimientos o métodos con que puede operar dicho objeto, es decir, qué
operaciones se pueden realizar con él.
La identidad.-
Es una propiedad de un objeto que lo diferencia del resto, dicho con otras
palabras, es su identificador (concepto análogo al de identificador de una
variable o una constante).
Un objeto contiene toda la
información que permite definirlo e identificarlo frente a otros objetos
pertenecientes a otras clases e incluso frente a objetos de una misma clase, al
poder tener valores bien diferenciados en sus atributos. A su vez, los objetos
disponen de mecanismos de interacción llamados métodos, que favorecen la
comunicación entre ellos. Esta comunicación favorece a su vez el cambio de
estado en los propios objetos. Esta característica lleva a tratarlos como
unidades indivisibles, en las que no se separa el estado y el comportamiento.
Los métodos
(comportamiento) y atributos (estado) están estrechamente relacionados por la
propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos
para poder tratar los atributos con los que cuenta. El programador debe pensar
indistintamente en ambos conceptos, sin separar ni darle mayor importancia a
alguno de ellos. Hacerlo podría producir el hábito erróneo de crear clases
contenedoras de información por un lado y clases con métodos que manejen a las
primeras por el otro. De esta manera se estaría realizando una programación
estructurada camuflada en un lenguaje de programación orientado a objetos.
La POO difiere de la
programación estructurada tradicional, en la que los datos y los procedimientos
están separados y sin relación, ya que lo único que se busca es el
procesamiento de unos datos de entrada para obtener otros de salida. La
programación estructurada anima al programador a pensar sobre todo en términos
de procedimientos o funciones, y en segundo lugar en las estructuras de datos
que esos procedimientos manejan. En la programación estructurada sólo se
escriben funciones que procesan datos. Los programadores que emplean POO, en
cambio, primero definen objetos para luego enviarles mensajes solicitándoles
que realicen sus métodos por sí mismos.
Origen
Los conceptos de la
programación orientada a objetos tienen origen en Simula 67, un lenguaje
diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard
del Centro de Cómputo Noruego en Oslo. En este centro, se trabajaba en
simulaciones de naves, que fueron confundidas por la explosión combinatoria de
cómo las diversas cualidades de diferentes naves podían afectar unas a las
otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas
clases de objetos, siendo responsable cada clase de objetos de definir sus
propios datos y comportamientos. Fueron refinados más tarde en Smalltalk, que
fue desarrollado en Simula en Xerox PARC (cuya primera versión fue escrita
sobre Basic) pero diseñado para ser un sistema completamente dinámico en el
cual los objetos se podrían crear y modificar "en marcha" (en tiempo
de ejecución) en lugar de tener un sistema basado en programas estáticos.
La programación orientada
a objetos tomó posición como el estilo de programación dominante a mediados de
los años ochenta, en gran parte debido a la influencia de C++, una extensión
del lenguaje de programación C. Su dominación fue consolidada gracias al auge
de las Interfaces gráficas de usuario, para las cuales la programación orientada
a objetos está particularmente bien adaptada. En este caso, se habla también de
programación dirigida por eventos.
Las características de
orientación a objetos fueron agregadas a muchos lenguajes existentes durante
ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adición de
estas características a los lenguajes que no fueron diseñados inicialmente para
ellas condujo a menudo a problemas de compatibilidad y en la capacidad de
mantenimiento del código. Los lenguajes orientados a objetos "puros",
por su parte, carecían de las características de las cuales muchos
programadores habían venido a depender. Para saltar este obstáculo, se hicieron
muchas tentativas para crear nuevos lenguajes basados en métodos orientados a
objetos, pero permitiendo algunas características imperativas de maneras
"seguras". El Eiffel de Bertrand Meyer fue un temprano y
moderadamente acertado lenguaje con esos objetivos pero ahora ha sido
esencialmente reemplazado por Java, en gran parte debido a la aparición de
Internet, y a la implementación de la máquina virtual de Java en la mayoría de
navegadores. PHP en su versión 5 se ha modificado, soporta una orientación
completa a objetos, cumpliendo todas las características propias de la
orientación a objetos.
Conceptos
fundamentales
La programación orientada
a objetos es una forma de programar que trata de encontrar una solución a estos
problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos
ya conocidos. Entre ellos destacan los siguientes:
Clase
Definiciones de las
propiedades y comportamiento de un tipo de objeto concreto. La instanciación es
la lectura de estas definiciones y la creación de un objeto a partir de ellas.
Herencia
Es la facilidad mediante
la cual la clase D hereda en ella cada uno de los atributos y operaciones de C,
como si esos atributos y operaciones hubiesen sido definidos por la misma D.
Por lo tanto, puede usar los mismos métodos y variables publicas declaradas en
C. Los componentes registrados como "privados" (private) también se
heredan, pero como no pertenecen a la clase, se mantienen escondidos al
programador y sólo pueden ser accedidos a través de otros métodos públicos.
Esto es así para mantener hegemónico el ideal de OOP.
Objeto
Entidad provista de un
conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad
(métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde
con los objetos reales del mundo que nos rodea, o a objetos internos del
sistema (del programa). Es una instancia a una clase.
Método
Algoritmo asociado a un
objeto (o a una clase de objetos), cuya ejecución se desencadena tras la
recepción de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio
en las propiedades del objeto, o la generación de un "evento" con un
nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema
(tal como una interacción del usuario con la máquina, o un mensaje enviado por
un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto
pertinente. También se puede definir como evento, a la reacción que puede
desencadenar un objeto, es decir la acción que genera.
Mensaje
Una comunicación dirigida
a un objeto, que le ordena que ejecute uno de sus métodos con ciertos
parámetros asociados al evento que lo generó.
Propiedad o atributo
Contenedor de un tipo de
datos asociados a un objeto (o a una clase de objetos), que hace los datos
visibles desde fuera del objeto y esto se define como sus características
predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún
método.
Estado interno
Es una variable que se
declara privada, que puede ser únicamente accedida y alterada por un método del
objeto, y que se utiliza para indicar distintas situaciones posibles para el
objeto (o clase de objetos). No es visible al programador que maneja una
instancia de la clase.
Componentes de un objeto
Atributos, identidad,
relaciones y métodos.
Identificación de un objeto
Un objeto se representa
por medio de una tabla o entidad que esté compuesta por sus atributos y
funciones correspondientes.
En comparación con un
lenguaje imperativo, una "variable", no es más que un contenedor
interno del atributo del objeto o de un estado interno, así como la
"función" es un procedimiento interno del método del objeto.
Características
de la POO
Existe un acuerdo acerca
de qué características contempla la "orientación a objetos", las
características siguientes son las más importantes:
Abstracción
Denota las características
esenciales de un objeto, donde se capturan sus comportamientos.Cada objeto en
el sistema sirve como modelo de un "agente" abstracto que puede
realizar trabajo, informar y cambiar su estado, y "comunicarse" con
otros objetos en el sistema sin revelar cómo se implementan estas
características. Los procesos, las funciones o los métodos pueden también ser
abstraídos y cuando lo están, una variedad de técnicas son requeridas para
ampliar una abstracción.El proceso de abstracción permite seleccionar las
características relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real. La abstracción
es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante
ella podemos llegar a armar un conjunto de clases que permitan modelar la
realidad o el problema que se quiere atacar.
Encapsulamiento
Significa reunir a todos
los elementos que pueden considerarse pertenecientes a una misma entidad, al
mismo nivel de abstracción. Esto permite aumentar la cohesión de los
componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Principio de ocultación
Cada objeto está aislado
del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a
otros objetos que especifica cómo pueden interactuar con los objetos de la
clase. El aislamiento protege a las propiedades de un objeto contra su
modificación por quien no tenga derecho a acceder a ellas, solamente los
propios métodos internos del objeto pueden acceder a su estado. Esto asegura
que otros objetos no pueden cambiar el estado interno de un objeto de maneras
inesperadas, eliminando efectos secundarios e interacciones inesperadas.
Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos
internos del objeto de una manera controlada y limitando el grado de
abstracción. La aplicación entera se reduce a un agregado o rompecabezas de
objetos.
Polimorfismo
Comportamientos
diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al
llamarlos por ese nombre se utilizará el comportamiento correspondiente al
objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones
de objetos pueden contener objetos de diferentes tipos, y la invocación de un
comportamiento en una referencia producirá el comportamiento correcto para el
tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de
ejecución", esta última característica se llama asignación tardía o
asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en
"tiempo de compilación") de polimorfismo, tales como las plantillas y
la sobrecarga de operadores de C++.
Herencia
Las clases no están
aisladas, sino que se relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las propiedades y el comportamiento de todas
las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden
compartir (y extender) su comportamiento sin tener que volver a implementarlo.
Esto suele hacerse habitualmente agrupando los objetos en clases y estas en
árboles o enrejados que reflejan un comportamiento común. Cuando un objeto
hereda de más de una clase se dice que hay herencia múltiple.
Recolección de basura
La recolección de basura o
garbage collector es la técnica por la cual el entorno de objetos se encarga de
destruir automáticamente, y por tanto desvincular la memoria asociada, los
objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el
programador no debe preocuparse por la asignación o liberación de memoria, ya
que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie
lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para
soportar el Paradigma de Programación Orientada a Objetos como C++ u Object
Pascal, esta característica no existe y la memoria debe desasignarse
manualmente.
Entre los lenguajes
orientados a objetos se destacan los siguientes
Ada
C++
C#
Object Pascal (Delphi)
Java
JavaScript (la herencia se realiza por
medio de la programación basada en prototipos)
Objective-C
PHP (a partir de su versión 5)
PowerBuilder
Python
Ruby
Visual BASIC.NET
Visual FoxPro (en su versión 6)
Visual Basic 6.0
Visual Objects
XBase++
Lenguaje DRP
Lenguaje de programación Scala (lenguaje
usado por Twitter).
Muchos de estos lenguajes
de programación no son puramente orientados a objetos, sino que son híbridos
que combinan la POO con otros paradigmas.
Al igual que C++ otros
lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados
añadiendo extensiones orientadas a objetos a un lenguaje de programación
clásico.
Un nuevo paso en la
abstracción de paradigmas de programación es la Programación Orientada a
Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada
vez atrae a más investigadores e incluso proyectos comerciales en todo el
mundo.
Fuente: EcuRed
ACTIVIDAD
2: Observa detenidamente el video del siguiente link:
https://youtu.be/aEVH7oFoWnw
SEMANA 1
TERCER CURSO DE BACHILLERATO INFORMÁTICA ABC
Semana del 16 al 20 de Marzo de 2020
Asignatura: Programación y Base de Datos
Actividades: Terminar el Sistema de Notas de un Curso en C+. (matrices y vectores con funciones)
Tareas:
- Son N estudiantes
- Cada estudiante tiene 3 aportes
- Realizar un menú de opciones (Ingresar # estudiantes,Ingresar Notas,Promedio Individual y Promedio General)
- Aplicar Vectores y Matrices en C++
- Deben programarse utilizando funciones.
- Realiza en una hoja el Diagrama de Flujo del Programa
- Enviar el código al correo hidalgopcesar@gmail.com