miércoles, 27 de noviembre de 2013

La introducción de la tecnología en el aula

Ing. Abraham Sopla Maslucán
Ingeniería de Sistemas
UNTRM – Perú

Introducción
En las siguientes líneas daremos nuestra opinión con respecto a la introducción de tecnologías en las aulas. Una de las preguntas más importantes que nos planteamos sería ¿Por qué en su mayoría los profesores y estudiantes en la región Amazonas no adquieren, tabletas o laptops como herramientas para sus actividades de enseñanza o aprendizaje? Nosotros creemos que esto se da debido a que los costos de estos equipos aún son muy elevados y con mucha más razón cuando el ancho de banda del acceso a internet en las instituciones educativas de la Región Amazonas es de muy baja calidad. En cuanto a las laptops tienen mayor preferencia dado que son de uso múltiple, hecho que no sucede con las tabletas, estas requieren de conexión a internet para su máximo aprovechamiento.
Los primeros intentos de introducción de la tecnología se hicieron a través de las llamadas aulas de innovación para enseñar el uso y manejo de las computadoras, la navegación en internet o para capacitar a los estudiantes y profesores en el manejo de herramientas ofimáticas. Uno que otro docente se aventuraba a crear módulos de aprendizaje de matemáticas en el viejo Jclic. Hoy se observa, que lentamente se está introduciendo las tecnologías en las aulas de clase, ya no para enseñar su uso como tal, sino más bien como herramienta de aprendizaje de algún tema en particular.
En cuanto a las tecnologías en el aula de clase, nosotros consideramos tres aspectos importantes que toda administración educativa moderna debe tener en cuenta. Primero, el software de red y escritorio como Jclic, encarta, u otras aplicaciones. Segundo, el software de internet, como ejemplo, Moodle, Chamilo para crear aulas virtuales, opencourseware, foros, wikis, blogs, otros para comunicación instantánea como skype, ooVoo, tango, Watsapp, viber, además de las redes sociales y otros espacios tecnológicos en los que se pueda intercambiar conocimientos. Tercero, nos referimos a las herramientas hardware como pizarras electrónicas, retroproyectores, equipos de cómputo, audio y teleconferencia; es aquí donde se ubican las laptops y tabletas acerca de las cuales daremos nuestra opinión.
La importancia del uso de tablets y laptops en el salón de clases.
Mediante el conectivismo de George Siemens se explica el efecto que la tecnología tiene sobre la manera en que actualmente vivimos, nos comunicamos y aprendemos. En los últimos años, la tecnología ha ido irrumpiendo en las aulas de los centros educativos de todo el mundo con la incorporación de laptops, tabletas e internet. En estos tiempos es muy común ver a los estudiantes limeños asistir a la universidad portando una tableta o al menos una laptop, hecho que aún es extraño en algunas universidades de la selva peruana. A pesar de la gran importancia que tienen la laptops y tabletas como herramientas para el aprendizaje, trasporte de grandes volúmenes de información como diccionarios, libros en pdf, herramientas de diseño gráfico, de comunicación, aplicaciones para el aprendizaje, captura de videos y fotografías, enseñanza y gestión de conocimiento, su uso es limitado a un pequeño sector estudiantil en esta zona del Perú.
En Amazonas, con pena hemos visto que la adquisición de tecnologías en el sector educativo es incipiente dado a su alto costo y el pésimo servicio de acceso a internet que requieren las tabletas, esto hace que su adquisición no sea muy rentable, más aun si nos referimos al costo del servicio de intentet que ofertan las empresas movistar y claro, el mismo que bordea los cien soles mensual para uso regular de un estudiante en el que todos los días requiere de acceso a intenet. Sobre la adquisición de laptops, en algunas instituciones educativas el estado peruano ha remediado en parte con la entrega de más de diez mil laptops XO entre el 2011 y el 2013, incluyendo en ellos software libre y paquete para aprendizaje denominado Sugar, aquí el servcios de intenet es satelital en las instituciones eduacativas (IE) fuera de la ciudad de Chachpoyas y mediante telefonia fija en algunas IE dentro de la ciudad. En la Universidad Nacional Toribio Rodríguez de Mendoza se cuenta con recursos hardware para el proceso enseñanza aprendizaje en algunas aulas y laboratorios, sin embargo como suponemos sucede en la mayoría de nuestras universidades peruanas aún no se cuenta con las herramientas o software especializado que aportan directamente en el proceso enseñanza aprendizaje, si no que más están enfocados en la gestión del conocimiento como el campus virtual de la Universidad y algunos blogs o cursos virtuales que con sus propios esfuerzos elaboran los docentes. Pocos estudiantes cuentan con laptops cuyo uso queda limitado a la elaboración de documentos, elaboración de hojas cálculo y presentaciones, algunas herramientas de software aplicadas a algunas cursos, y en algunos casos como medio de distracción. Con respecto al uso de tabletas es aún más limitado. Sin embargo en el mundo hay otros instrumentos que los alumnos del futuro requieren, tal como se propone en el proyecto Aula Star Trek de Durham Universisity de Reyno Unido en el cual se promueve el aprendizaje colaborativo, mediante el desarrollo de ejercicios matemáticos en pupitres táctiles [BBC Mundo, 2012], de los cuales aún nosotros estamos más lejos.
El papel del maestro en este nuevo contexto.
En este nuevo contexto el papel del maestro, en primer término tiene ser de promotor del uso de recursos tecnológicos como tabletas, laptos y aplicaciones educativas en el aula. Luego tiene que transformase en un gestionador del conocimiento, no en quien necesariamente tiene que saberlo o resolverlo todo en el instante, sino quién debe saber dónde o cómo se pueden encontrar repuestas o soluciones y es aquí donde las tecnologías cumplen su papel más importante.
En este sentido los maestros en las aulas de cualquier nivel educativo, jugamos un gran papel, que es el de seleccionar las herramientas de acuerdo a nuestras necesidades como maestros para enseñar y las más adecuadas que los alumnos deben usar para optimizar sus aprendizajes.
 
Conclusión
Las laptops y tabletas son extremadamente útiles en el aula, pero sólo si se implementan apropiadamente con la dirección y control del profesor. Los maestros tienen el papel de, primero que todo capacitarse en su uso y aplicación al proceso de la enseñanza aprendizaje y segundo saber seleccionar cuales de estos son los más adecuados para los estudiantes y para su propio aprendizaje de un tema en clase. Los docentes estamos en la obligación de aprovechar las nuevas tecnologías móviles expresadas mayormente en el uso de tabletas y smartphones proponiendo nuevas modelos y formas de aprendizaje para los alumnos de la era digital, como juegos matemáticos, foros e intercambio de información en las redes sociales.












lunes, 16 de septiembre de 2013

Sistemas UNTRM: Pasos para el registro en aula virtual

Ing. Abraham Sopla Maslucán
Universidad Nacional TRM – Perú.

 

Esta guía esta elaborada para los estudiantes de Ingeniería de Sistemas UNTRM, 2013-II. En cuatro pasos ustedes podrán registrarse en el aula virtual de Sistemas UNTRM.

1. Entrando al aula virtual aquí

image

 

2. Complete los datos correctamente (no se olvide de apuntar su usuario y clave)

image

 

3. Finamente usted obtendrá un mensaje similar

image

4. Listo, espere la confirmación del profesor para poder hacer uso del aula virtual. Recuerde!!!, apuntar su clave.

miércoles, 17 de julio de 2013

Aplicación móvil para una tienda en cambio

Ing. Abraham  Sopla Maslucán

Lima – Perú

Problema

Se requiere usar un web service para crear una aplicación móvil para Android que  permita calcular el valor de un monto de dinero dado en cierto tipo de moneda a otro tipo de moneda.

 

Solución

La solución nos exige el un servicio web, para que los valores de cambio sean totalmente actualizados en el momento que se desea hacer el cambio. Por eso usaremos la información de  la siguiente ruta: http://www.webservicex.net/ws/WSDetails.aspx?CATID=2&WSID=10, se subrayan los parámetros que se usaran en la aplicación.  

clip_image002[4]

 

Al invocar el servicio se recibe, en este caso específico, el tipo de cambio de un dólar en soles.

<double xmlns="http://www.webserviceX.NET/">2.7645</double>

 

Creación del proyecto

Crear un nuevo proyecto con las especificaciones de la siguiente tabla, use el SDK 3.0 como mínimo:

Application Name

Cambio

Project Name

Cambio

Package Name

com.soplaingenieros.cambio

 

Una actividad en blanco con las siguientes especificaciones:

Activity Name

MainActivity

Layout Name

activity_main

Navigation Type

none

 

Actividad

activity_main.xml

En el layout de la actividad 1 (activity_actividad1) agregue los widgets para construir la siguiente interfaz:

clip_image004[4]

Nombre los controles: La estructura de la Outline y los nombres de los controles es la siguiente:

clip_image006[4]

Librerías adicionales

·         Ksoap2

Agregando el permiso para usuarios de internet

Esto se realiza en el Android Manifest

clip_image008[4]

Programación

MainActivity.java

package com.soplaingenieros.cambio;

import org.ksoap2.SoapEnvelope;

import org.ksoap2.serialization.PropertyInfo;

import org.ksoap2.serialization.SoapObject;

import org.ksoap2.serialization.SoapPrimitive;

import org.ksoap2.serialization.SoapSerializationEnvelope;

import org.ksoap2.transport.HttpTransportSE;

 

import android.os.Bundle;

import android.os.StrictMode;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

 

public class MainActivity extends Activity {

      private static final String SOAP_ACTION = "http://www.webserviceX.NET/ConversionRate";

      private static final String NAME_SPACE = "http://www.webserviceX.NET/";

      private static final String URL = "http://www.webservicex.net/CurrencyConvertor.asmx";

      private static final String METHOD_NAME = "ConversionRate";

     

      // Controles

      private EditText etImporte;

      private EditText etDe;

      private EditText etA;

      private TextView tvResultado;

 

      @Override

      protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            // Si se trata de Android versión 3 o superior

            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()

                        .permitAll().build();

            StrictMode.setThreadPolicy(policy);

            // Controles

            etImporte = (EditText) findViewById(R.id.ccEtImporte);

            etDe = (EditText) findViewById(R.id.ccEtDe);

            etA = (EditText) findViewById(R.id.ccEtA);

 

      }

 

      public void onClickConsultar(View view) {

            try {

                  // Datos

 

                  // String cant = etImporte.getText().toString();

                  String de = etDe.getText().toString();

                  String a = etA.getText().toString();

                  // Objeto SOAP

                  SoapObject request = new SoapObject(NAME_SPACE, METHOD_NAME);

 

                  // Propiedad DE

                  PropertyInfo propDe = new PropertyInfo();

                  propDe.setName("FromCurrency");

                  propDe.setValue(de);

                  request.addProperty(propDe);

                  // Propiedad A

                  PropertyInfo propA = new PropertyInfo();

                  propA.setName("ToCurrency");

                  propA.setValue(a);

                  request.addProperty(propA);

                  // Ejecución

                  SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(

                             SoapEnvelope.VER11);

                  envelope.dotNet = true;

                  envelope.setOutputSoapObject(request);

                  HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

                  androidHttpTransport.call(SOAP_ACTION, envelope);

                  SoapPrimitive response = (SoapPrimitive) envelope.getResponse();

 

                  // Obtener respuesta

 

                  Double importe = Double.valueOf(etImporte.getText().toString());

                  Double resultado = Double.valueOf(response.toString()) * importe;

                  tvResultado = (TextView) findViewById(R.id.ccTvRespuesta);

                  tvResultado.setText(String.valueOf(resultado));

 

            } catch (Exception e) {

                  e.printStackTrace();

                  Toast.makeText(getApplicationContext(), e.getMessage(),

                             Toast.LENGTH_LONG).show();

            }

      }

}

 

Pruebas y resultados

En este caso se hacen dos pruebas de la aplicación, primero, pasamos 56800 dólares americanos a soles, siendo el resultado 156681.6. En el segundo caso, pasamos 38890 soles a euros. Convierta usted 270 dólares americanos a euros. Aquí te mostramos algunas tipos de monedas con las que podría probar en la aplicación móvil, use las letras en mayúsculas antes del símbolo “-”, por ejemplo PEN, EUR, XPT.

XPF-Pacific Franc
PKR-Pakistani Rupee
XPD-Palladium Ounces
PAB-Panama Balboa
PGK-Papua New Guinea Kina
PYG-Paraguayan Guarani
PEN-Peruvian Nuevo Sol
PHP-Philippine Peso
XPT-Platinum Ounces

 

clip_image010[4]clip_image012[4]

martes, 16 de julio de 2013

Aplicación móvil Android para calcular áreas y medir distancias.

imageDescripción de la aplicación

El GPS del celular nos permite capturar las coordenadas geográficas en grados decimales. Con esto podemos hacer muchísimas aplicaciones de múltiples usos orientadas al turismo, industria e ingeniería. Por ejemplo, algo que ayude a medir las distancias entre puntos, calcular áreas, trabajar con altitudes. La funcionalidad del GPS en los smartphones es muy usada hoy en día, para simular la realidad aumentada en aplicaciones móviles. En este proyecto, se desarrolla una aplicación móvil para colectar puntos geográficos en una base de datos SQlite, para el cálculo de las distancias se tiene en cuenta la fórmula de Harveshine. Usamos los semiejes del elipsoide Hayford y las ecuaciones de Coticchia-Surace para convertir los coordenados decimales a UTM, con ello calculamos las áreas dado una serie de puntos capturados por el smartphone.

 

1373995678366

Funcionalidades de la aplicación

· Convierte una coordenada decimal capturada por el GPS del Smartphone a UTM

· Calcula la distancia entre dos puntos capturados por el celular

· Calcula el área dado n puntos (lógicamente, n>=3)

sábado, 13 de julio de 2013

Cálculo de distancia entre dos coordenadas decimales y conversión de coordenada decimal a UTM

image

 

 

 

 

 

 

La clase calculoUTM tiene los métodos UtmX y UtmY para convertir coordenadas geográficas a UTM, se usa los semiejes del elipsoide Hayford y las ecuaciones de Coticchia-Surace. Por otro lado, la clase calculoDistancia tiene el método Distancia para calcular la distancia entre dos coordenadas decimales, en este caso se usa la ecuación de Harvesine.


 

 

principalUTM.java

 

public class principalUtm {

public static void main(String[] args) {

            //Coordenda decimal, casa Santa Apolonia

            double La1 = -12.003093;

            double Lo1 = -77.094313;

           

            // Coordenada decimal, punto final

            double La2 = -11.99096965;

            double Lo2 = -77.06366275;

            calculoUtm oCalculo = new calculoUtm();

            System.out.println("UtmX: "+oCalculo.UtmX(Lo1, La1));

            System.out.println("UtmY: "+oCalculo.UtmY(Lo1, La1));

            System.out.println("Distancia: "+calculoDistancia.Distancia(La1, Lo1, La2, Lo2));

      }

}

 

calculoUTM.java

 

public class calculoUtm {

 

      // Semiejes del elipsoide de Hayford

      double A = 6378388;

      double B = 6356911.946130;

 

      double E = Math.sqrt(Math.pow(A, 2) - Math.pow(B, 2)) / A;

      double E1 = Math.sqrt(Math.pow(A, 2) - Math.pow(B, 2)) / B;

      double E2 = Math.pow(E1, 2);

      double C = Math.pow(A, 2) / B;

 

      public double UtmX(double Lo1, double La1) {

            // COnversiones

            double Lat = La1 * Math.PI / 180;

            double Lon = Lo1 * Math.PI / 180;

            double Huso = Math.floor((Lo1 / 6) + 31);

            double Lamda = (Huso * 6 - 183) * Math.PI / 180;

            double dLamda = Lon - Lamda;

 

            // Calculo de parametros

            double AA = Math.cos(Lat) * Math.sin(dLamda);

            double EE = 0.5 * Math.log((1 + AA) / (1 - AA));

 

            double feUTM=0.996;

            double VV = Math.pow(Math.cos(Lat), 2);

            VV = Math.sqrt(1 + E2 * VV);

            VV = (C / VV) * feUTM; // 0.9996 factor de escala de la proyeccion UTM

            double CC = (E2 / 2) * Math.pow(EE, 2) * Math.pow(Math.cos(Lat), 2);

            //Cálculo de X

            double X = EE * VV * (1 + CC / 3) + 500000;

            return X;

 

      }

      public double UtmY(double Lo1, double La1) {

            // COnversiones

            double Lat = La1 * Math.PI / 180;

            double Lon = Lo1 * Math.PI / 180;

            double Huso = Math.floor((Lo1 / 6) + 31);

            double Lamda = (Huso * 6 - 183) * Math.PI / 180;

            double dLamda = Lon - Lamda;

 

            // Calculo de parámetros

            double AA = Math.cos(Lat) * Math.sin(dLamda);

            double EE = 0.5 * Math.log((1 + AA) / (1 - AA));

            double NN = Math.atan(Math.tan(Lat) / Math.cos(dLamda));

            NN = NN - Lat;

            double VV = Math.pow(Math.cos(Lat), 2);

            VV = Math.sqrt(1 + E2 * VV);

            double feUTM=0.996;

            VV = (C / VV) * feUTM; // 0.9996 factor de escala de la proyeccion UTM

            double CC = (E2 / 2) * Math.pow(EE, 2) * Math.pow(Math.cos(Lat), 2);

            double A1 = Math.sin(2 * Lat);

            double A2 = A1 * Math.pow(Math.cos(Lat), 2);

 

            // Otros cálculos

            double J2 = Lat + A1 / 2;

            double J4 = (3 * J2 + A2) / 4;

            double J6 = (5 * J4 + A2 * Math.pow(Math.cos(Lat), 2)) / 3;

            double alfa = ((double) 3 / 4) * E2;

            double beta = ((double) 5 / 3) * Math.pow(alfa, 2);

            double ganma = ((double) 35 / 27) * Math.pow(alfa, 3);

            double Bo = 0.9996 * C * (Lat - alfa * J2 + beta * J4 - ganma * J6);

 

            // Cálculo final de coordenadas UTM

            double Y = NN * VV * (1 + CC) + Bo;

            if (La1 < 0) {

                  Y = Y + 10000000;

            }

            return Y;

      }

}

 

 

calculoDistancia.java

public class calculoDistancia {

      public static double Distancia(double La1, double Lo1, double La2, double Lo2) {

            double Distancia = 0, Distancia1 = 0;

            double r = 6378;

 

            //Punto inicial

            La1 = La1* Math.PI / 180;

            Lo1 = Lo1 * Math.PI / 180;

 

            // Punto final

            La2 = La2 * Math.PI / 180;

            Lo2 = Lo2 * Math.PI / 180;        

            //Distancia = 6378*Math.acos(Math.sin(La1)*Math.sin(La2)+ Math.cos(La1)* Math.cos(La2)*Math.cos(Lo1 - Lo2));

            Distancia1 = Math.pow(Math.sin((Lo2 - Lo1) / 2), 2);

            Distancia1 = Math.cos(La1) * Math.cos(La2) * Distancia1;

            Distancia1 = Math.pow(Math.sin((La2 - La1) / 2), 2) + Distancia1;

            Distancia1 = Math.sqrt(Distancia1);

            Distancia1 = 2 * r * Math.asin(Distancia1);

            return Distancia1;

      }

}