jueves, 24 de agosto de 2017

¿INFORMÁTICA SIN LÍMITES?

¿INFORMÁTICA SIN LÍMITES?
CUIDADO CON LA AUTOPISTA DE INTERNET, PODRÁS CHOCARTE Y SALDRÁS HERIDO.
Información desmesurada, procesamiento instantáneo, datos exactos,  beneficios descomunales hacen que hoy se viva en un mundo donde la tecnología y la ciencia sean la necesidad impetuosa del ser humano. Personas amantes de la tecnología y la informática se lanzan y se sumergen en un mundo donde todo es conocimiento e información: internet. Sin embargo, algunas de estas personas no se alcanzan a dar cuenta de que el mundo en el que están, se rige por leyes y la violación de estas podría afectarlos directamente y hasta podrían llegar a parar a la cárcel.
Abordar el tema de leyes relacionadas con la informática, implica conocer y entender el ejercicio del derecho y asuntos referentes a  la informática y la tecnología:

¿Qué es la informática? El doctor Fernando Flórez 1 define la informática es la ciencia que tiene como objeto propio de su conocimiento, la información; como método, la teoría general de sistemas; como instrumento operativo, la computación; como ámbito de desarrollo, la organización; como objetivo, la racionalización, la eficacia y eficiencia en la acción; a partir del control del proceso de producción y circulación de información; como misión, la de contribuir a la libertad del ser humano y a la consolidación de la democracia y como valor, el de un bien económico.

¿Qué es el derecho? Es el objeto de estudio de un jurista o persona que estudia el derecho y ejerce una profesión que tiene relación con la justicia. “El Derecho es el conjunto de normas que imponen deberes y normas que confieren facultades, que establecen las bases de convivencia social y cuyo fin es dotar a todos los miembros de la sociedad de los mínimos de seguridad, certeza, igualdad, libertad y justicia”2


La relación que existe entre la informática y el derecho contribuyen a la creación de dos nuevas ciencias: conocidas como la informática jurídica y el derecho informático, de las cuales hablaré en el siguiente párrafo ya que quiero resaltar de donde surgen y el porqué de su aparición. Según la teoría general de sistemas: la integración e interacción de dos o más elementos y/o sistemas hace que se generen nuevas propiedades, para que estas propiedades resulten provechosas para el sistema, estas deberán estar debidamente organizadas. Teniendo en cuenta lo anterior,  el proceso de aplicación de la informática al derecho y el derecho a la informática deberá ser analizado previamente con el fin de implementar una organización que resulte provechosa para ambos sistemas y para las propiedades que surgen del mismo, en este caso las nuevas ciencias.

La informática jurídica es la ciencia que estudia la utilización de aparatos o elementos físicos electrónicos en el derecho;  busca que la capacidad de análisis y procesamiento de la información jurídica sea mayor, que la exista un mejoramiento de los procesos en el tratamiento de la información documentaria de gestión y de decisión judicial, y de esta forma aporta al desarrollo y aplicación del derecho. Por su parte, el derecho informático estudia la regulación normativa de la informática y su aplicación en todos los campos.

A continuación se hará una descripción de elementos propios de la informática, para después analizar los delitos que podrían cometerse mediante la utilización inadecuada de ellos; después se expondrán algunas de las herramientas informáticas aplicadas en el derecho.

El instrumento operativo de la informática es la ciencia de la computación, esta se divide en varios campos mediante los cuales se crean,  describe  y transforma la información. Dentro del campo de manejo de dispositivos de los sistemas, que se encarga de la arquitectura externa de un sistema (hardware), se estudian todas las partes físicas que deberá  tener un dispositivo para procesar información y las capacidades específicas que requiere un determinado tipo de sistema, algunas de las partes físicas son: procesador, memoria, disco duro, dispositivo de entrada y salida, modem, caché, tarjeta madre, ranuras de expansión, puertos USB, tarjeta gráfica o de video, tarjeta de sonido, unidades DVD rom, teclado, impresora, escáner, router, entre otros. El campo de manejo y administración de arquitectura interna (software) se encarga de todo lo relacionado con los tipos de  sistemas operativos,  aplicaciones, procesos e instrucciones que deberá gestionar un dispositivo específico. El campo de comunicación se basa en internet, que es un conjunto de computadores unidos entre sí, que cumplen funciones como: Permitir que se puedan enviar mensajes y se almacenen archivos para que puedan ser leídos, esto desde un computador hacia otro, y  permitir que los usuarios se puedan conectar con computadores en sitios remotos tal como si estuviesen en el mismo lugar. Internet maneja diferentes protocolos específicos para un tipo de aplicación u dato que sea enviado a través de la red, y el proceso de transmisión de datos entre dispositivos se basa el modelo OSI (Open system interconnection model).

Como ya se había nombrado antes, internet, como bien se conoce por gran cantidad de personas en el mundo,  es la conexión de computadores que permite la comunicación entre personas, manejo de información, comercio electrónico, y también delitos informáticos, a continuación se tratará este último tema.  Según el Dr. CLAUDIO Líbano Manzul 3 el delito informático son todas las acciones u omisiones típicas, antijurídicas y dolorosas, trátese de hechos aislados o de una serie de ellos, cometidos contra personas naturales o jurídicas, realizadas en uso de un sistema de tratamiento de la información y destinadas a producir perjuicio en la victima, o a través de atentados a la sana técnica informática, lo cual generalmente producirá de manera colateral lesiones a distintos valores jurídicos, reportándose, muchas veces, un beneficio ilícito en el agente, sea o no de carácter patrimonial, actúe con o sin ánimo de lucro. Es de aclarar que los delitos informáticos se cometen ya sea haciendo uso de internet o manipulando cualquier dispositivo informático se encuentre o no conectado a internet,  puede ser a nivel de hardware o software. Existen diferentes acciones que podrían ser  del delitos informáticos, como son: la manipulación indebida de datos que abarca varias acciones ya sean introducción de datos falsos, caballos de troya, técnica salami, llave no autorizada, puertas falsas, bombas lógicas o cronológicas, ataques sincrónicos, recogida de información residual, divulgación no autorizada, toma no autorizada, pinchada de líneas telefónicas, planificación y simulación de un delito y  manipulación de información,  el espionaje informático, el sabotaje informático, la piratería de programas, el hacking, el homicidio,  el hurto calificado, el acceso electrónico doloso y culposo , la falsificación informática, entre otros.

En Colombia, existen leyes que regulan estos delitos, como son: el artículo 195 bajo el epígrafe de Acceso Abusivo a un sistema informático, la ley 527 de 1999, la ley estatutaria 1266 de 2008 por la cual se dictan las disposiciones del habeas data, la ley 1273 de 2009 de la protección de la información y de los datos. Como conclusión, puedo decir que existen actualmente normas que regulan las acciones que se cometan en la red y a dispositivos informáticos, así que se debe tener consideración este factor, y actuar de forma responsable frente a la informática.









metodos numericos

METODO DE GAUSS CON PIVOTEO PARCIAL Y ELIMINACION HACIA ATRAS

METODO DE GAUSS CON PIVOTEO PARCIAL Y ELIMINACION HACIA ATRAS

ANALISIS DE COMPLEJIDAD COMPUTACIONAL

La complejidad computacional de la eliminación gaussiana simple es Θ(n3), es decir, T(n) = Θ(n3). El cálculo de esta complejidad, supone que la matriz ingresada permite computar el algoritmo sin necesidad de realizar pivoteo, es decir, intercambios de filas, ni tampoco tiene en cuenta la complejidad del llamado a la función de retrosustitución. Además determina una cota asintótica ajustada, puesto que para éste método no existe ni mejor ni peor caso, dada la anterior condición; sin embargo, si se tuviese en cuenta las operaciones adicionadas por la ejecución del bucle interno de pivoteo y la función de retrosustitución a los sumo tendríamos un pequeño aumento en la complejidad, que podríamos obviar, puesto que los términos adicionales serian de orden dos y nuestro análisis es asintótico. Una manera rápida de entender la complejidad de este algoritmo, consistiría en centrar nuestro interés sobre la instrucción dentro del cuerpo del bucle más interno, ya que es la porción de código que mas se ejecuta, dicha instrucción conllevaría un cantidad de operaciones igual a :
Donde los dos términos (N-q) surgen del paso por el bucle más interior y el intermedio, y los límites de la sumatoria están dados por los límites del bucle for más externo.

EJEMPLO DE USO:

Se tiene la matriz A, y el vector B

Paso 1: Volver matriz aumentada

Paso 2: eliminación columnas

Paso 3: Retrosustitucion

METODO DE GAUSS-JORDAN CON PIVOTEO PARCIAL

PSEUDOCODIGO DEL ALGORITMO DE GAUS-JORDAN CON PIVOTEO PARCIAL

  ANALISIS DE COMPLEJIDAD COMPUTACIONAL
Al igual que la eliminación gaussiana, el método de Gauss-Jordan tiene una complejidad Θ(n3). La razon de esto es que Gauss-Jordan se basa en la eliminación gaussiana, solo que para cada eliminación se eliminan tanto los elementos por debajo como aquellos que se encuentran sobre el pivote, de forma que al final lo que resta es normalizar la matriz aumentada, este ultimo procedimiento seguramente suma un termino lineal a la complejidad, que, por ende, puede ser obviado para el calculo de la complejidad.

METODO DE FACTORIZACION LU

ANALISIS DE COMPLEJIDAD COMPUTACIONAL

El método de factorización LU, es una extensión o mas bien una generalización del método de eliminación gaussiana, puesto que usando el mismo proceso, obtiene una factorización que resulta mucho mas aplicable a diferentes sistemas de ecuaciones lineales. De lo anterior se deduce que la complejidad de la factorización LU sea, al igual que la de la del método de Gauss, Θ(n3) puesto que requiere la misma cantidad de operaciones, con la leve diferencia de que luego del calculo de los multiplicadores, estos se deben almacenar; además de que se debe efectuar una sustitución hacia delante y otra hacia atrás para resolver los sistemas de ecuaciones complementarios necesarios para llegar a la solución, esto ultimo suma dos términos lineales al calculo de la complejidad computacional, los cuales pueden ser despreciados debido a la naturaleza asintótica de la búsqueda de la complejidad.


LOS PARADIGMAS DE PROGRAMACIÓN

LOS PARADIGMAS DE PROGRAMACIÓN

Un paradigma es una forma de representar el conocimiento, en este caso es la forma de analizar, diseñar e implementar una solución computacional, es un enfoque particular son diferentes cada uno tiene sus ventajas y desventajas, ellas se deben tener en cuenta a la hora de tomar la decisión de cual paradigma seleccionar para la solución de un caso de ingeniería de software.

Entre los paradigmas más utilizados están:

El paradigma imperativo es considerado el más común. por ejemplo, por el C, son conjuntos de instrucciones que indican como realizar una operación o calculo en el computador cambian de estado las variables que se declaran inicialmente, llevándolas a un estado final.  Los primeros lenguajes imperativos fueron los lenguajes de máquina de los computadores originales. En estos lenguajes, las instrucciones fueron muy simples, lo cual hizo la implementación de hardware fácil.  

A lenguajes como C se les llama estructurados porque permiten el manejo de las conocidas estructuras de datos y las funciones que se pueden llamar desde otras funciones facilitando la reutilización de código.


El paradigma funcional está representado por la familia de lenguajes LISP, en particular Scheme. Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, entendiendo éstas no como subprogramas clásicos de un lenguaje imperativo, sino como funciones puramente matemáticas.

 El paradigma lógico, un ejemplo es PROLOG. La programación lógica comprende dos paradigmas de programación: la programación declarativa y la programación funcional. La programación declarativa gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.
La programación lógica permite formalizar hechos del mundo real, inicialmente se proponen ciertos predicados iniciales, y unas restricciones que nos permiten comprobar o negar hipótesis (afirmación sobre el tema analizado como parte del mundo real que se debe comprobar o refutar).

Paradigma de Programación con restricciones, trabaja en conjunto con el paradigma de programación lógico, se especifica un conjunto de restricciones, las cuales deben satisfacer una solución, en vez de especificar los pasos para obtener dicha solución.  Se trata de buscar un estado en el cual una gran cantidad de restricciones sean satisfechas.

El paradigma orientado a objetos. (POO) represento un gran paso en la ingeniería del software, ya que presentaba un modelo de objetos que parecía encajar de manera adecuada con los problemas reales. La cuestión era saber descomponer de la mejor manera el dominio del problema al que nos enfrentáramos, encapsulando cada concepto en lo que se dio en llamar objetos y haciéndoles interactuar entre ellos, habiéndoles dotado de una serie de propiedades.

Programación dirigida por eventos: El creador de un programa dirigido por eventos debe definir los eventos que manejará su programa y las acciones que se realizarán al producirse cada uno de ellos, lo que se conoce como el manejador de evento. Los eventos soportados estarán determinados por el lenguaje de programación utilizado, por el sistema operativo e incluso por eventos creados por el mismo programador. Por ejemplo Visual Basic ó el framework .NET.




Programación Orientada a Aspectos
Relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos. Gracias a la POA se pueden capturar los diferentes conceptos que componen una aplicación en entidades bien definidas, de manera apropiada en cada uno de los casos y eliminando las dependencias inherentes entre cada uno de los módulos.


En todos los paradigmas se utilizan los módulos de programación: Para extender las capacidades predeterminadas de un lenguaje mediante porciones de código empacadas en diferentes módulos, los cuales pueden ser fácilmente insertados en nuestros programas, esto se llama reutilización de código.

Modularidad: Decimos que un programa es modular con respecto a un cambio en una parte dada si el cambio puede hacerse sin cambiar el resto del programa.

Esta técnica modular se conoce con el nombre de procedimiento o función  en algunos lenguajes de programación.  En Python y en otros lenguajes, el término módulo tiene un significado especial.

En java se utilizan los paquetes; un package es una agrupación de clases que tienen una finalidad relacionada. Existe una jerarquía de packages que se refleja en nombres compuestos, separados por un punto (.). Es habitual nombrar los packages con letras minúsculas (como java.util o java.awt), mientras que los nombres de las clases suelen empezar siempre por una letra mayúscula (como ArrayList). El asterisco (*) de la sentencia 3 indica que se importan todas las clases del package. Hay un package, llamado java.lang, que se importa siempre automáticamente.   Las clases de java.lang se pueden utilizar directamente, sin importar el package.)

 - Investigar los diferentes package que existen en java y que funciones nos brindan.

Booch piensa que la modularización deber ser propiedad de un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y débilmente acoplados.

Acoplamiento

Es la interacción entre módulos, sus propiedades deberían ser:
1.       Facilitar la sustitución de un módulo realizando pocos cambios en los otros.
2.       Facilitar el seguimiento y aislamiento de un error (módulo defectuoso).

Cohesión

Es la interacción interna de un módulo: todos los elementos de un módulo han de tener relación.

Bajo acomplamiento (dependencia entre módulos) y alta cohesión (tener relaciones entre los módulos)



Actividad: En grupos de trabajo identificar los lenguajes en los que se ha desarrollado programas (clasificando los lenguajes de programación según el paradigma al que pertenecen)

REDES Batalla Naval


Silvia Quiroga

Batalla Naval


En este proyecto se simulara un juego de batalla naval entre dos computadores que se comunican a través del puerto serial, para esto se hará uso del protocolo PPP(Point to Point Protocol) pero haciendo algunas modificaciones especiales a las tramas que se explican a continuación:

Trama:

Bandera(1 Byte)
Carga Útil(2 Bytes)
CRC-16(2 Bytes)
Bandera(1 Byte)

Se usara la bandera estándar 01111110 (0x7E) y el polinomio generador especificado para CRC -16.

Se omiten los campos dirección y control pues los computadores están conectados directamente por el cable serial y en estos casos en LCP se puede negociar ACFC(Compresión de los campos de dirección y protocolo) . Así mismo se omite el campo protocolo pues no se requiere y se estaría enviando siempre la misma información en este campo para todas las tramas.

Todas las tramas tendrán la misma longitud (48 bits) y solo se tendrán en cuenta tramas de este tamaño cualquier otra trama será rechazada. Se utilizaran acuses para verificar que las tramas han llegado y se verificara el CRC-16 en la llegada de cada trama y en caso de detectar algún error se solicitara retransmisión de la última trama.

Para negociar quien será el jugador con el primer turno se transmite un primer mensaje por el canal y se espera una respuesta y dependiendo de esta se asigna el primer turno en una variable booleana que obtendrá el valor true para el jugador que inicie el juego en segundo lugar. Después de asignar los turnos el jugador que obtuvo el primero, deberá escoger el tamaño de los tableros el cual será enviado como parámetro a un método local y al método equivalente en el computador del otro jugador para inicializar el juego y poder acomodar los barcos.

Dentro de la carga útil los primeros 8 bits permitirán manejar los tipos de trama entre ellos ACK, NACK, trama de ataque, trama de respuesta a un ataque y trama de inicio de tableros. En caso de tratarse de una trama de ataque o de respuesta a un ataque el segundo byte de la carga útil representa las coordenadas de ataque y se dividirá en dos mitades, los primeros cuatro bits representaran posición horizontal(fila)  y los restantes la posición vertical(columna) como se muestra a continuación:

Carga útil:


Tipo trama(1)
Coordenada Fila Ataque
Coordenada columna Ataque



Cuando una trama es recibida, la aplicación lleva a cabo los siguientes pasos:
  1. Quita las banderas
  2. Revisa la integridad de la trama(CRC-16)
  3. En caso de ser correcta la comprobación del CRC extrae la carga útil.
  4. Evalúa el tipo de instrucción recibida y ejecuta las acciones correspondientes a dicha carga.

Referencias

n  [1] PPP, Presentación Ing. Enrique Ruiz


n  [2] Tanenbaum, Andrew,Redes de Computadores,Cuarta Edición Prentice Hall, 2003

miércoles, 30 de marzo de 2016

BIOINFORMATICS



http://www.compbio.ox.ac.uk/presentations/CBRGPostGrad2008_ptI.pdf
  • Human_Genome

http://web.ornl.gov/sci/techresources/Human_Genome/publicat/hgn/ 


  • Ensembl Ensembl Ensembl Genome Browser (www.ensembl.org) Ensembl Genome Browser (www.ensembl.org)

http://www.ensembl.org/index.html


Systems biology examples
 • Dennis Bray (Cambridge)

 Modelling chemotaxis in bacteria
 • Denis Noble (Oxford) - Science, Vol 295, Issue 5560, 1678-1682 

 Modelling the Heart--from Genes to Cells to the Whole Organ 



EBI  European Bioinformatics Institute

NCBI 

BioMart 

TIGR

ExPASy

PDB 

Bioperl 

CBRG 
genmail@molbiol.ox.ac.uk

Bioinformatics analysis tools online:
A wide range of bioinformatics programs are available online via EMBOSS Explorer.
You will need a molbiol username and password to use these tools.
Other web tools available include: BLASTMIGMir-CRISPRMASCOT and CRISPRscreen   (see full list).