viernes, 17 de mayo de 2019


S6. Actividad 1. Bitácora de investigación


Universidad Abierta y a Distancia de México


Nombre:
Jaguar Ulises Pérez Hernández


Carrera:
Ing. En Desarrollo de Software


Monitor:
Lic. Martha Patricia Ramirez Cortes


Blog:
https://jaguarulises-unadm.blogspot.com/

Fecha:
17 de mayo de 2019



Bitácora:


Fecha: 17 de mayo de 2019
Hora: 12:00 am



Propósitos:
- Visitar la página: https://www.volabit.com/es.
- Observar la página de inicio, inicio de sesión y la de registro de usuarios.
- Observar el diseño y distribución de elementos, y las animaciones en caso de que cuente con ellas.


Objetivos:
- Conocer el diseño de la página:  https://www.volabit.com/es, asi como su diseño y distribución de elementos.
- Conocer los pasos para registrarse e iniciar sesión en este plataforma.
- Conocer que tan fácil es crear una cuenta en la página visitada.
- Analizar que tan fácil podria ser todo el desarrollo de crear la página: principal, inicio de sesión y crear cuenta, aplicando el lenguaje de programacion con Flask.
- Crear las preguntas para la entrevista.
- Hacer una cita para la entrevista con el CEO de Volabit, T. Alvarez.


Actividades no realizadas:
- No fue posible conocer el funcionamiento interno de procedimientos de seguridad.
- No se obtuvo información sobre que lenguajes de programación utilizan dentro de la plataforma.



Resultados:
La página de Volabit es una plataforma para compra y venta de criptomonedas que ofrece una agradable experiencia visual y también es intuituva al momento de crear una cuenta o iniciar sesión. Los elementos de la paǵina principal están diseñados de tal manera que el usuario promedio puede localizar con facilidad donde crear e iniciar sesión (en la cabecera de la página). También se puede ver precios de criptomonedas para usuarios que se dedican a hacer trading y necesitan este tipo de información al instante.





Imagen 1. Pagina principal de Volabit.




Imagen 2. Crear una cuenta en Volabit.







Imagen 3. Iniciar sesión en Volabit.






Imagen 4. Precios de criptomonedas en Volabit.





Hallazgos:

La plataforma de Volabit cuenta con una página bien diseñada, gracias al buen manejo de los elementos y la combinación de colores que hacen agradable a la vista. Es intuitiva y se puede encontrar de forma fácil como crear una cuenta y como iniciar sesión.
Usuarios intermedios o expertos pueden encontrar un sitio de trading con información a la mano visitando sólo la página principal.
Con el lenguaje de programación Flask se puede empezar a crear este tipo de plataformas de forma más fácil y rápida, esto ayuda a tener en linea un servidor funcional en poco tiempo y enfocando el demás tiempo para el desarrollo de frontend. Se puede trabajar en la seguridad del sitio sin complicados métodos de programación sólo es necesario instalar un complemento para poder trabajarlo inmediatamente con Flask y crear una plataforma más segura al crear una cuenta y al iniciar sesión.

domingo, 12 de mayo de 2019


S5. Actividad 2. Análisis y abstracción de información




Antecedentes del tema

        El uso de software libre que sea fácil de aprender y usar, en cualquier nivel educativo ya sea desde secundaria (García Monsálvez, José Carlos, Python como primer lenguaje de programación textual en la Enseñanza Secundaria. Education in the Knowledge Society, 2017), en universidades, centros de investigación científica o para análisis y visualización de datos (Patrick Vogel, Thijs Klooster, Vasilios Andrikopoulos, Mircea Lungu, A Low-Effort Analytics Platform for Visualizing Evolving Flask-Based Python Web Services, 2017), es muy importante para desarrollar aplicaciones que requieran construir plataformas complejas y robustas en poco tiempo. En este caso Python no es sólo un lenguaje de programación con amplia documentación y más de un centenar de ejemplos (en páginas web, libros electrónicos y videotutoriales), tambien es un lenguaje que emplea una sintaxis simple que hace muy fácil de leer (Challenger-Pérez, Ivet, Díaz-Ricardo, Yanet, Becerra-García, Roberto Antonio, El lenguaje de programación Python. Ciencias Holguín, 2014), pueden crearse scripts muy sencillos o complejos desde un editor de texto simple, este código creado se puede ejecutar desde una consola en sistemas operativos comerciales o de software libre.


        Para el desarrollo fácil y rápido de una o varias plataformas en línea que sirvan datos a los usuarios o que se comuniquen entre ellas. Existe un lenguaje de programación basado en python, llamado Flask que tambien cuenta con una buena documentación y libros electrónicos que nos enseñan a crear un mini servidor virtual con apenas unas lineas de código (Miguel G., 2014, Flask Web Development: Developing Web Applications with Python, O'Reilly Media, Inc., p.10).


Bases Teóricas

        Con el lenguaje de programación Python se puede crear software muy sencillo para hacer desde operaciones aritméticas simples (suma, resta, multipliación o división), análisis y visualización de una gran cantidad de datos o servidores virtuales que muestren una página web simple o páginas complejas y responsivas.

S5. Actividad 1. Selección y recopilación de información


Buscadores utilizados para la recopilación de información:

https://scholar.google.es/
http://www.redalyc.org/


Búsqueda en https://scholar.google.es/:


Búsqueda en http://www.redalyc.org/:





Bibliografía:

García Monsálvez, José Carlos, Python como primer lenguaje de programación textual en la Enseñanza Secundaria. Education in the Knowledge Society [en linea] 2017, 18, Disponible en:<http://www.redalyc.org/articulo.oa?id=535554766009> ISSN

Challenger-Pérez, Ivet, Díaz-Ricardo, Yanet, Becerra-García, Roberto Antonio, El lenguaje de programación Python. Ciencias Holguín [en linea] 2014, XX (Abril-Junio), Disponible en:<http://www.redalyc.org/articulo.oa?id=181531232001> ISSN

Patrick Vogel, Thijs Klooster, Vasilios Andrikopoulos, Mircea Lungu, A Low-Effort Analytics Platform for Visualizing Evolving Flask-Based Python Web Services, 2017, IEEE, ISBN: 978-1-5386-1003-9

Miguel G., 2014, Flask Web Development: Developing Web Applications with Python, O'Reilly Media, Inc.

martes, 7 de mayo de 2019

S4. Actividad 2. Delimitación del tema y plan de investigación



Identificación del Problema

      El desarrollo de sistemas, aplicaciones y la programación en diferentes lenguajes es una de las bases de la carrera de Ing. en Desarrollo de Sistemas. Es necesario que un aspirante a esta carrera tenga conocimiento mínimo de dos de los lenguajes más usados actualmente, ya que estos son solicitados por particulares o grandes empresas que necesitan soluciones a medida o programadores con amplios conocimientos y experiencia para resolver sus problemas internos. Uno de los lenguajes de programación que hoy en día es muy usado y solicitado en proyecto científicos y grandes empresas de internet, es Python, este lenguaje de sintaxis sencilla y fácil de leer se puede utilizar para desarrollar scripts muy sencillos de sumas y restas, funciones para calcular llaves criptográficas, automatizar tareas en entornos linux, o crear servidores virtuales pequeños o de gran escala.
      Como programador es necesario tener conocimiento de un lenguaje de programación en varios lenguajes, algunos puede ser muy difíciles de aprender y se debe tener constante práctica para no perder el ritmo y otros muy sencillos de leer que facilitan resolver los problemas desde lo más sencillo hasta lo más completo y robusto en sistemas de seguridad informática.


Planteamiento del Problema

      La tecnología avanza cada día a una velocidad muy rápida, tanto en software como en hardware, la actualización y mejoramiento continuo del hardware (distribución en masa de procesadores más veloces en móviles y computadoras portátiles) de dispositivos eletrónicos personales los hace más rápidos, capaces de accesar a internet (alámbrico o inalámbrico) y esto tiene como consecuencia que los usuarios consuman grandes cantidades de datos; ya sea texto, imágenes, sonido, video o transmisiones en vivo (streaming) en diversas aplicaciones. Esta nueva manera de consumir información a cualquier hora del día, hace necesario un desarrollo rápido, eficaz y de calidad, de aplicaciones para dispositivos móviles y principalmente de servidores virtuales ya que son los que se encargan de proveer, de forma casi instantanea y sin interrupciones, toda la información que el usuario solicite a cualquier hora desde cualquier dispositivo electrónico (teléfono inteligente, tableta o computadora) desde el que este conectado, en cualquier parte del mundo. Para resolver este problema es necesario crear más servidores en entornos virtuales de forma más rápida, sencilla y de calidad que puedan satisfacer la gran demanda de plataformas que sean capaces de estar trabajando en linea sin descansar. Realizar los servidores virtuales requiere de un gran conocimiento especializado y experiencia no sólo en programación tambien en la configuración del servidor, redes y programación backend y frontend. Por eso es necesario un lenguaje de programación para crear servidores virtuales que sea fácil de aprender y usar, que no complique la expansión del proyecto cuando este se vuelva cada vez más grande. Un sistema operativo estable con un entorno gráfico amigable y sencillo, con una consola de comandos con comandos sencillos, faciles de leer e instalar. El sistema operativo debe ser capaz de manejar de forma eficaz el o los lenguaje de programacion requeridos para el desarrollo y ejecución del servidor virtual básico y ver los resultados en un navegador web de forma local. 
      El sistema operativo que se utilizará para este proyecto será una distribución de Ubuntu con un entorno gráfico de escritorio Xfce que es liviano y fácil de usar. El diseño intuitivo del gestor sistema que no genera problemas a la hora de instalar programas, actualizar el sistema o ejecutar comandos.
         El lenguaje de programación que se utilizará será Python en la versión 3.6, elegido por su sintaxis fácil de leer, aprender y ejecutar. Apesar de ser tan sencillo es muy poderoso y utilizado ampliamente en muchos proyectos científicos en análisis de grandes cantidades de datos. Se instalará el framework Flask (desarrollado en Python) en su versión 1.0.2, que es utilizado para creación de servidores de forma fácil y rápida, el servidor puede ejecutarse de forma local o puede ser desplegado en servidores virtuales como Heroku. Las distribuciones de linux ya tienen preinstalado una versión actualizada de Python esto hace más rápido el desarrollo y ejecución de scripts en este sistema.


Tema
Desarrollo de servidor web virtual básico mediante un framework fácil de aprender, usar e instalar; ejecutado de forma local en una distrubución linux.


Objetivo General
Desarrollar un servidor virtual sencillo con un framework en Python, corriendo de forma local en linux.


Objetivos Específicos
Instalación de Flask mediante comandos en consola en una distribución de Ubuntu.
Instalación y configuración de la paquetería básica para ejecutar el servidor virtual.
Desarrollo del frontend y backend de la página principal.


Justificación

      La creación de un servidor virtual con un framework desarrollado en Python, en este caso Flask, es de gran ayuda para el programador encargado de desarrollar el sitio completo, ya que la sintaxis de programación que Flask hereda de Python, hace que sea muy fácil de aprender, leer, desarrollar y sea flexible a la hora de escribir pocas lineas o grandes cantidades de código en proyectos más especializados. En proyectos muy grandes la facilidad de lectura del código es muy importate, esto hace más fácil y rápida la tediosa tarea de buscar, entre cientos de lineas de código, los errores que ocurran al momento de hacer las pruebas o en un entorno real de producción con el sitio en linea y muchos usuarios usando el sistema al mismo tiempo. Esto hace que encontrar y corregir los errores sea más eficiente. En el caso de una caída del sitio completo el programador encargado del sitio se tardería menos tiempo en volver a ponerlo en línea.
      Con Flask se pueden crear desde servidores virtuales muy sencillos con apenas siete lineas de código (Miguel G., 2014, Flask Web Development: Developing Web Applications with Python, O'Reilly Media, Inc., p.10), que muestren en una página web algunas lineas de texto, un servidor con las caracteristicas más básicas con páginas web estáticas (utilizando sólo HTML) hasta un servidor muy robusto con todos los requerimientos y librerías necesarias para que muestre páginas web responsivas con HTLM, CSS y Javascript, descargar o subir todo tipo de archivos, proveer rutas especiales para servir APIs en formato Json, hacer streaming y utilizar WebSockets.


Plan de Trabajo








S4. Actividad 1. Tipos de investigación



1. Mapa mental del texto: "Tipos de Investigación"





2. Esquema de pasos de Sherlock Holmes del texto: "Estudio en Escarlata"




lunes, 29 de abril de 2019


S3. Actividad 3. Campaña de difusión


Realización de presentación para campaña de difusion de la UnADM:







S3. Actividad 2. Planeando mi campaña publicitaria





Sí terminaste tus estudios de nivel bachillerato y te interesa ser un profesional con conocimientos en tecnología, computación, desarrollar aplicaciones móviles, programación de sistemas y quieres tener disposición de tu tiempo y estudiar desde cualquier parte del país, sólo conectandote a internet para accesar a una plataforma virtual donde estudiarás a tu ritmo.


Plan de estudios

La Universidad Abierta y a Distancia de México (UnADM) te está esperando con un plan de estudios flexible, inclusivo, accesible, interactivo, utilizando las TICs de vanguardia, adaptado para que el estudiante administre, desarrolle y sea el eje de todo su potencial adquiriendo conocimientos para ser un profesionista de calidad, avanzando a tu ritmo, de forma gradual, sin cuotas mensuales, cuatrimestrales o semestrales, un sistema totalmente gratuito. La carrera de Ing. En Desarrollo de Software de la UnADM forma profesionales con habilidades para desarrollar software de alto nivel, capaces de crear soluciones innovadoras y adecuadas a la exigencias actuales.

Es muy fácil registrarse al sistema de la UnADM sólo debes crear una cuenta y esperar a la siguiente convocatoria, subir tu certificado de bachillerato y llenar el perfil sociodemográfico. Presentar y aprobar los exámenes iniciales, el propedéutico y podrás entrar a la carrera.


La UnADM centra sus esfuerzo en un modelo educativo inclusivo, interactivo y eficaz adaptado totalmente para que el estudiante sea el que administre su propio aprendizaje.

Características del modelo educativo:

Centrado en el estudiante: El estudiante es el centro educativo y gestor de su autoaprendizaje.

Flexible: El estudiante administra su tiempo y decide su ritmo de estudio. También tiene la libertad de elegir el máximo grado académico que quiera alcanzar.

Inclusivo: Diseñado para personas con discapacidad motriz, auditiva y/o visual. Pueden participar personas que llevan mucho tiempo sin estudiar.

Tecnología de vanguardia: Diseñado con infraestructura tecnológica y equipo de vanguardia.

Accesible: Se puede accesar a la plataforma virtual para realizar tareas y/o actividades desde cualquier lugar, cualquier día y a cualquier hora.

Interactivo: El estudiante puede interactuar con el Docente de forma virtual, o también de forma colaborativa con sus compañeros.


Estructura Curricular

Plan de estudios modular annual.
Dos módulos para graduarse como Técnico Superior Universitario (2010 horas o 125 créditos).
Cuatro módulos para graduarse como Licenciado o Ingeniero (4000 horas o 225 créditos).


Estructuración Modular

Módulo está compuesto por semestres seriados (1056 horas o 55 créditos).
Semestre equivale a 288 horas (20-25 créditos) de aprendizaje, por cuatro asignaturas.
El alumno decide a partir del segundo semestre cuántas asignaturas quiere cursar respetando la seriación de cada plan de estudios (mínimo dos, máximo cuatro),
Núcleos de formación profesional.


Núcleos de formación profesional

Núcleo de Formación Básica

El Núcleo de formación Básica está compuesto por tres semestres transversales (del primero al tercero) que incluyen aprendizajes comunes a familias de carreras. Consta de dos partes: la primera es el curso propedéutico y por el primer semestre de carrera. La segunda está agrupada por familias de carreras, el objetivo es enseñar los conocimientos de cada campo para la formación de un profesional de calidad.

Núcleo de Formación Disciplinar

Adquiere conocimientos científicos, tecnológicos, procedimientos, y actitudes requeridas para lograr las competencias de cada carrera. Este núcleo es desde el cuarto semestre hasta el sexto semestre, para los TSU, y hasta noveno semestre para las licenciaturas e ingenierías.

Núcleo de Formación Especializada

Este núcleo proporciona formación referente a modelos, métodos y técnicas de intervención práctica. La duración es del décimo al doceavo, para la acreditación el estudiante debe realizar la estadía profesional, cumplir con el servicio social y presentar su trabajo recepcional para obtener su título de la carrera que eligio.


Perfil de ingreso

El aspirante debe tener óptimo desempeño para la modalidad abierta y a distancia es deseable también que posea:

Capaz de adaptarse al auto-aprendizaje.
Tener iniciativa para la investigación.
Habilidad para comunicarse de forma efectiva y el trabajo en equipo.
Organizado y alto sentido del compromiso.


Otras características necesarias para cursar el programa educativo de Ingeniería en Desarrollo de Software son:

Conocimiento a nivel medio superior de ciencias básicas: Matemáticas y Física.
Pensamiento lógico, analítico, crítico y reflexivo.
Marcado interés por el desarrollo de software empleando tecnologías emergentes en las áreas de lenguajes de programación, Bases de Datos e ingeniería del software.

Perfil de egreso

El egresado de Ingeniería en Desarrollo de Software es un profesionista con capacidad de adaptarse a los nuevos entornos tecnológicos de forma rápida, eficiente y amplia visión para desarrollo de soluciones de software aplicando los procesos, modelos, estándares y herramientas de calidad de la industria actual del software; calificado para planear, diseñar, evaluar, controlar, instalar, integrar, construir, operar, administrar y mantener soluciones innovadoras adaptadas a las nuevas tendencias en la Tecnología de Información y de Software en sus diversas modalidades, entornos y dispositivos móviles electrónicos, logrando el máximo rendimento de los recursos en las diferentes organizaciones públicas o privadas.