sábado, 10 de septiembre de 2011

.ANALISIS DEL PROBLEMA

CLASE

ANALISIS DEL PROBLEMA
ESPECIFICACIONES:
ENTRADA: SON TODOS LOS DATOS QUE HAY QUE INGRESAR PARA LA RESOLUCION DEL PROBLEMA.
PROCESO: SON LOS DIFERENTES PROCEDIMIENTOS EN LOS CUALES SE UTILIZAN LOS DATOS PROPORCIONALES PARA RESOLVER EL PROBLEMA.
SALIDA: SOLUCION DEL PROBLEMA.             
CUANDO UN USUARIO PLANTEA EN PROGRAMADOR UN PROBLEMA QUE SE RESUELVE MEDIANTE SU ORDENADOR, POR LO GENERAL ESE USUARIO TENDRA CONOCIMIENTOS MAS O MENOS AMPLIOS SOBRE EL DOMINIO DEL PROBLEMA, PERO NO ES HABITUAL QUE TENGA CONOCIMIENTOS DE INFORMATICA.
LA PARTE ESENCIAL DE LA PLANEACION Y DISEÑO LA CONSTITUYE EL ANALISIS DE LOS SISTEMAS HIPOTETICOS DESDE EL PUNTO DE VISTA DE LOS OBJETIVOS DE LAS PREPOSICIONES Y DE LAS CONDICIONES LIMITATIVAS.
HERRAMIENTAS:
-SELECCIONAR LA HERRAMIENTA CORRECTAPARA UN ANALISIS DADO.
-RECONOCER EL MOMENTO EN QUE SE DEBE RETROCEDER PARA ADQUIRIR MAYORES FACILIDADES.
-CONSULTAR CON LOS EXPERTOS Y ESTAR EN CAPACIDAD DE ENTENDERSE EN EL MISMO LENGUAJE.
-CONOCER LOS LIMITES DE UTILIZACION DE DETERMINADA HERRAMIENTA.

jueves, 8 de septiembre de 2011

EJECUTABLES E INTERFAZ DE LINEA DE COMANDO

EJECUTABLES: ES TRADICIONALMENTE UN ARCHIVO BINARIO CUYO CONTENIDO SE INTERPRETA EN EL ORDENADOR COMO UN PROGRAMA .


INTERFAZ DE LINEA DE COMANDO: ES UN METODO QUE PERMITE A LAS PERSONAS DAR INSTRUCCIONES O ALGUN PROGRAMA INFORMATICO PROMEDIO DE TEXTO SIMPLE.


LOS CLI (COMAND LINE INTERFACE), EXISTEN PARA DIVERSOS PROGRAMAS Y SITEMAS OPERATIVOS.


EJEMPLOS DE INTERACION POR CLI:


PROGRAMA                            COMANDO
-BASH                                           LS
-CMD                                            DIR
-MATLAB                                     DIR
-QUAKE                                       /DIR
-PYTHAN SHELL                        OS.LISTDILL
-ETC.

lunes, 5 de septiembre de 2011

EDITOR Y PROCESADOR DE TEXTOS, INTERPRETES Y COMPILADORES.

CLASE

EDITOR DE TEXTO: ES UN PROGRAMA QUE PERMITE CREAR Y MODIFICAR ARCHIVOS DIGITALES COMPUESTOS UNICAMENTE POR TEXTO SIN FORMATO, CONOCIDOS NORMALNMENTE COMO ARCHIVOS DE TEXTO O TEXTO PLANO. EL PROGRAMA LEE EL ARCHIVO O INTERPRETA LOS BYTES LEIDOS SEGUN EL CODIGO DE CARACTERES QUE USA EL EDITOR.

PROCESADOR DE TEXTO:  ES UNA APLICACIÓN INFORMÁTICA DESTINADA A LA CREACIÓN O MODIFICACIÓN DE DOCUMENTOS ESCRITOS POR MEDIO DE UNA COMPUTADORA. REPRESENTA UNA ALTERNATIVA MODERNA A LA ANTIGUA MÁQUINA DE ESCRIBIR, SIENDO MUCHO MÁS POTENTE Y VERSÁTIL QUE ÉSTA. LOS PROCESADORES DE TEXTOS NOS BRINDAN UNA AMPLIA GAMA DE FUNCIONALIDADES, YA SEAN TIPOGRÁFICAS, IDIOMÁTICAS U ORGANIZATIVAS, CON ALGUNAS VARIANTES SEGÚN EL PROGRAMA DE QUE SE DISPONGA. COMO REGLA GENERAL, TODOS PUEDEN TRABAJAR CON DISTINTOS TIPOS Y TAMAÑOS DE LETRA, FORMATO DE PÁRRAFO Y EFECTOS ARTÍSTICOS; ADEMÁS DE BRINDAR LA POSIBILIDAD DE INTERCALAR O SUPERPONER IMÁGENES U OTROS OBJETOS GRÁFICOS DENTRO DEL TEXTO. PUEDEN SER GUARDADOS EN FORMA DE ARCHIVOS, USUALMENTE LLAMADOS DOCUMENTOS, ASÍ COMO IMPRESOS A TRAVÉS DE DIFERENTES MEDIOS, INCORPORAN DESDE HACE ALGUNOS AÑOS CORRECTORES DE ORTOGRAFÍA Y GRAMÁTICA, ASÍ COMO DICCIONARIOS MULTILINGÜES Y DE SINÓNIMOS QUE FACILITAN EN GRAN MEDIDA LA LABOR DE REDACCIÓN.


INTERPRETE: ES UN PROGRAMA INFORMÁTICO CAPAZ DE ANALIZAR Y EJECUTAR OTROS PROGRAMAS, ESCRITOS EN UN LENGUAJE DE ALTO NIVEL. LOS INTÉRPRETES SE DIFERENCIAN DE LOS COMPILADORES EN QUE MIENTRAS ESTOS TRADUCEN UN PROGRAMA DESDE SU DESCRIPCIÓN EN UN LENGUAJE DE PROGRAMACIÓN AL CÓDIGO DE MAQUINA DEL SISTEMA, LOS INTÉRPRETES SÓLO REALIZAN LA TRADUCCIÓN A MEDIDA QUE SEA NECESARIA, TÍPICAMENTE, INSTRUCCIÓN POR INSTRUCCIÓN, Y NORMALMENTE NO GUARDAN EL RESULTADO DE DICHA TRADUCCIÓN.


COMPILADOR: ES UN PROGRAMA INFORMÁTICO QUE TRADUCE UN PROGRAMA ESCRITO EN UN LENGUAJE DE PROGRAMACIÓN A OTRO LENGUAJE, GENERANDO UN PROGRAMA  QUE LA MÁQUINA SERÁ CAPAZ DE INTERPRETAR. GENERALMENTE EL SEGUNDO LENGUAJE ES LENGUAJE DE MÁQUINA, PERO TAMBIÉN PUEDE SER SIMPLEMENTE TEXTO. ES UN PROGRAMA QUE PERMITE TRADUCIR EL CÓDIGO FUENTE DE UN PROGRAMA EN LENGUAJE DE ALTO NIVEL, A OTRO LENGUAJE DE NIVEL INFERIOR (TÍPICAMENTE LENGUAJE DE MAQUINA). DE ESTA MANERA UN PROGRAMADOR PUEDE DISEÑAR UN PROGRAMA EN UN LENGUAJE MUCHO MÁS CERCANO A CÓMO PIENSA UN SER HUMANO, PARA LUEGO COMPILARLO A UN PROGRAMA MÁS MANEJABLE POR UNA COMPUTADORA.

domingo, 4 de septiembre de 2011

PROGRAMA, PROGRAMACIÓN Y PARADIGMAS DE LA PROGRACION (INVESTIGACION)

PROGRAMA: ES UN CONJUNTO DE INSTRUCCIONES QUE UNA VEZ EJECUTADAS REALIZARÁN UNA O VARIAS TAREAS EN UNA COMPUTADORA. SIN PROGRAMAS, ESTAS MÁQUINAS NO PUEDEN FUNCIONAR.AL CONJUNTO GENERAL DE PROGRAMAS, SE LE DENOMINA SOFTWARE, QUE MÁS GENÉRICAMENTE SE REFIERE AL EQUIPAMIENTO LÓGICO O SOPORTE LÓGICO DE UNA COMPUTADORA DIGITAL.
EN INFORMÁTICA, SE LOS DENOMINA COMÚNMENTE BINARIOS, (PROPIO EN SISTEMAS UNIX, DONDE DEBIDO A LA ESTRUCTURA DE ESTE ÚLTIMO, LOS FICHEROS NO NECESITAN HACER USO DE EXTENSIONES. POSTERIORMENTE, LOS PRESENTARON COMO FICHEROS EJECUTABLES, CON EXTENSIÓN .EXE, EN LOS SISTEMAS OPERATIVOS DE LA FAMILIA WINDOWS) DEBIDO A QUE UNA VEZ QUE HAN PASADO POR EL PROCESO DE COMPILACIÓN Y HAN SIDO CREADOS, LAS INSTRUCCIONES QUE SE ESCRIBIERON EN UN LENGUAJE DE PROGRAMACIÓN QUE LOS HUMANOS USAN PARA ESCRIBIRLOS CON MAYOR FACILIDAD, SE HAN TRADUCIDO AL ÚNICO IDIOMA QUE LA MÁQUINA COMPRENDE, COMBINACIONES DE CEROS Y UNOS LLAMADA CÓDIGO MÁQUINA. EL MISMO TÉRMINO, PUEDE REFERIRSE TANTO A UN PROGRAMA EJECUTABLE, COMO A SU CÓDIGO FUENTE, EL CUAL ES TRANSFORMADO EN UN BINARIO CUANDO ES COMPILADO.
GENERALMENTE EL CÓDIGO FUENTE LO ESCRIBEN PROFESIONALES CONOCIDOS COMO PROGRAMADORES. SE ESCRIBE EN UN LENGUAJE QUE SIGUE UNO DE LOS SIGUIENTES DOS PARADIGMAS: IMPERATIVO O DECLARATIVO Y QUE POSTERIORMENTE PUEDE SER CONVERTIDO EN UNA IMAGEN EJECUTABLE POR UN COMPILADOR. CUANDO SE PIDE QUE EL PROGRAMA SEA EJECUTADO, EL PROCESADOR EJECUTA INSTRUCCIÓN POR INSTRUCCIÓN.
DE ACUERDO A SUS FUNCIONES, SE CLASIFICAN EN SOFTWARE DE SISTEMA Y SOFTWARE DE APLICACIÓN. EN LOS COMPUTADORES ACTUALES, AL HECHO DE EJECUTAR VARIOS PROGRAMAS DE FORMA SIMULTÁNEA Y EFICIENTE, SE LE CONOCE COMO MULTITAREA.


LA PRIMERA PROGRAMADORA DE COMPUTADORA CONOCIDA FUE ADA LOVELACE, HIJA DE ANABELLA MILBANKE BYRON Y LORD BYRON. ANABELLA INTRODUJO EN LAS MATEMÁTICAS A ADA QUIEN, DESPUÉS DE CONOCER A CHARLES BABBAGE, TRADUJO Y AMPLIÓ UNA DESCRIPCIÓN DE SU MÁQUINA ANALÍTICA. INCLUSO AUNQUE BABBAGE NUNCA COMPLETÓ LA CONSTRUCCIÓN DE CUALQUIERA DE SUS MÁQUINAS, EL TRABAJO QUE ADA REALIZÓ CON ÉSTAS LE HIZO GANARSE EL TÍTULO DE PRIMERA PROGRAMADORA DE COMPUTADORAS DEL MUNDO. EL NOMBRE DEL LENGUAJE DE PROGRAMACIÓN ADA FUE ESCOGIDO COMO HOMENAJE A ESTA PROGRAMADORA.
NO OLVIDEMOS QUE ESTE PROCESO ESTÁ APLICADO A TODOS LOS MÉTODOS CIENTÍFICOS QUE ACTUALMENTE SE PRACTICAN.


PROGRAMACION: ES  EL PROCESO DE DISEÑAR, ESCRIBIR Y MANTENER EL CODIGO FUENTE DE PROGRAMAS COMPUTACIONALES; EL CODIGO FUENTE ES ESCRITO EN UN LENGUAJE DE PROGRAMACION, SU PROPOSITO ES CREAR PROGRAMAS QUE MUESTREN UN COMPORTAMIENTO DESEADO. EL PROCESO DE ESCRIBIR CÓDIGO REQUIERE FRECUENTEMENTE CONOCIMIENTOS EN VARIAS ÁREAS DISTINTAS, ADEMÁS DEL DOMINIO DEL LENGUAJE A UTILIZAR, ALGORITMOS ESPECIALIZADOS Y LÓGICA FORMAL. PROGRAMAR NO INVOLUCRA NECESARIAMENTE OTRAS TAREAS TALES COMO EL ANÁLISIS Y DISEÑO DE LA APLICACIÓN (PERO SÍ EL DISEÑO DEL CÓDIGO), AUNQUE SÍ SUELEN ESTAR FUSIONADAS EN EL DESARROLLO DE PEQUEÑAS APLICACIONES.

PARADIGMA DE PROGRAMACIÓN: ES UNA PROPUESTA TECNOLÓGICA QUE ES ADOPTADA POR UNA COMUNIDAD DE PROGRAMADORES CUYO NÚCLEO CENTRAL ES INCUESTIONABLE EN CUANTO A QUE UNÍVOCAMENTE TRATA DE RESOLVER UNO O VARIOS PROBLEMAS CLARAMENTE DELIMITADOS. LA RESOLUCIÓN DE ESTOS PROBLEMAS DEBE SUPONER CONSECUENTEMENTE UN AVANCE SIGNIFICATIVO EN AL MENOS UN PARÁMETRO QUE AFECTE A LA INGENIERÍA DE SOFTWARE. TIENE UNA ESTRECHA RELACIÓN CON LA FORMALIZACIÓN DE DETERMINADOS LENGUAJES EN SU MOMENTO DE DEFINICIÓN. UN PARADIGMA DE PROGRAMACIÓN ESTÁ DELIMITADO EN EL TIEMPO EN CUANTO A ACEPTACIÓN Y USO YA QUE NUEVOS PARADIGMAS APORTAN NUEVAS O MEJORES SOLUCIONES QUE LA SUSTITUYEN PARCIAL O TOTALMENTE.
TIPOS DE PARADIGMAS DE PROGRAMACIÓN MÁS COMUNES
  • IMPERATIVO O POR PROCEDIMIENTOS: ES CONSIDERADO EL MÁS COMÚN Y ESTÁ REPRESENTADO, POR EJEMPLO, POR C O BASIC.
  • FUNCINAL: ESTÁ REPRESENTADO POR SCHEME O HASKELL. ESTE ES UN CASO DEL PARADIGMA DECLARATIVO.
  • LOGICO: ESTÁ REPRESENTADO POR ROLOG. ESTE ES OTRO CASO DEL PARADIGMA DECLARATIVO.
  • DECLARATIVO: POR EJEMPLO LA PROGRAMACIO FUNCIONAL, LA PROGRAMACIÓN LOGICA, O LA COMBINACIÓN LÓGICO-FUNCIONAL.
  • ORIENTADO A OBJETOS: ESTÁ REPRESENTADO POR SMALLTALK, UN LENGUAJE COMPLETAMENTE ORIENTADO A OBJETOS.
SI BIEN PUEDE SELECCIONARSE LA FORMA PURA DE ESTOS PARADIGMAS AL MOMENTO DE PROGRAMAR, EN LA PRÁCTICA ES HABITUAL QUE SE MEZCLEN, DANDO LUGAR A LA PROGRAMACIÓN MULTIPARADIGMA.
ACTUALMENTE EL PARADIGMA DE PROGRAMACIÓN MÁS USADO ES EL DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.


LA PROGRAMACIÓN ORIENTADA A OBJETOS: ES UN PARADIGMA QUE UTILIZA OBJETOS COMO ELEMENTOS FUNDAMENTALES EN LA CONSTRUCCIÓN DE LA SOLUCIÓN. SURGE EN LOS AÑOS 70. UN OBJETO ES UNA ABSTRACCIÓN DE ALGÚN HECHO O ENTE DEL MUNDO REAL QUE TIENE ATRIBUTOS QUE REPRESENTAN SUS CARACTERÍSTICAS O PROPIEDADES Y MÉTODOS QUE REPRESENTAN SU COMPORTAMIENTO O ACCIONES QUE REALIZAN. TODAS LAS PROPIEDADES Y MÉTODOS COMUNES A LOS OBJETOS SE ENCAPSULAN O SE AGRUPAN EN CLASES. UNA CLASE ES UNA PLANTILLA O UN PROTOTIPO PARA CREAR OBJETOS, POR ESO SE DICE QUE LOS OBJETOS SON INSTANCIAS DE CLASES.
LENGUAJES ORIENTADOS A OBJETOS
SIMULA (1967) ES ACEPTADO COMO EL PRIMER LENGUAJE QUE POSEE LAS CARACTERÍSTICAS PRINCIPALES DE UN LENGUAJE ORIENTADO A OBJETOS. FUE CREADO PARA HACER PROGRAMAS DE SIMULACIÓN, EN DONDE LOS "OBJETOS" SON LA REPRESENTACIÓN DE LA INFORMACIÓN MÁS IMPORTANTE. SMALLTALK (1972 A 1980) ES POSIBLEMENTE EL EJEMPLO CANÓNICO, Y CON EL QUE GRAN PARTE DE LA TEORÍA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS SE HA DESARROLLADO.
ENTRE LOS LENGUAJES ORIENTADOS A OBJETOS SE DESTACAN LOS SIGUIENTES:

  • ABAP
  • ABL LENGUAJE DE PROGRAMACIÓN DE OPENEDGE DE PROGRESS SOFTWARE
  • ACTION SCRIPT
  • ACTION SCRIPT 3
  • ADA
  • C++
  • C#
  • CLARIÓN
  • ENTRE OTROS
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.

sábado, 3 de septiembre de 2011

PROGRAMA, PROGRAMACIÓN Y PARADIGMAS DE LA PROGRACION

CLASE: 02 DE SEPTIEMBRE DE 2011

PROGRAMA: ES UN CONJUNTO DE INSTRUCCIONES U ORDENES BASADAS EN UN LENGUAJE DE PROGRAMACIÓN QUE UNA COMPUTADORA INTERPRETA PARA RESOLVER UN PROBLEMA O UNA FUNCION ESPECIFICA.

PROGRAMACIÓN: ES  EL PROCESO DE DISEÑAR, ESCRIBIR Y MANTENER EL CODIGO FUENTE DE PROGRAMAS COMPUTACIONALES; EL CODIGO FUENTE ES ESCRITO EN UN LENGUAJE DE PROGRAMACION, SU PROPOSITO ES CREAR PROGRAMAS QUE MUESTREN UN COMPORTAMIENTO DESEADO. EL PROCESO DE ESCRIBIR CÓDIGO REQUIERE FRECUENTEMENTE CONOCIMIENTOS EN VARIAS ÁREAS DISTINTAS, ADEMÁS DEL DOMINIO DEL LENGUAJE A UTILIZAR, ALGORITMOS ESPECIALIZADOS Y LÓGICA FORMAL. PROGRAMAR NO INVOLUCRA NECESARIAMENTE OTRAS TAREAS TALES COMO EL ANÁLISIS Y DISEÑO DE LA APLICACIÓN (PERO SÍ EL DISEÑO DEL CÓDIGO), AUNQUE SÍ SUELEN ESTAR FUSIONADAS EN EL DESARROLLO DE PEQUEÑAS APLICACIONES.
PARADIGMAS DE LA PROGRAMACION: LOS PROGRAMAS SE PUEDEN CLASIFICAR POR EL PARADIGMA DEL LENGUAJE QUE SE USE PARA PRODUCIRLOS. LOS PRINCIPALES PARADIGMAS SON: IMPERATIVOS, DECLARATIVOS Y ORIENTACIÓN A OBJETOS.
LOS PROGRAMAS QUE USAN UN LENGUAJE IMPERATIVO ESPECIFICAN UN ALGORITMO, USAN DECLARACIONES, EXPRESIONES Y SENTENCIAS.[ ]UNA DECLARACIÓN ASOCIA UN NOMBRE DE VARIABLE CON UN TIPO DE DATO, POR EJEMPLO: VAR X: INTEGER;. UNA EXPRESIÓN CONTIENE UN VALOR, POR EJEMPLO: 2 + 2 CONTIENE EL VALOR 4. FINALMENTE, UNA SENTENCIA DEBE ASIGNAR UNA EXPRESIÓN A UNA VARIABLE O USAR EL VALOR DE UNA VARIABLE PARA ALTERAR EL FLUJO DE UN PROGRAMA, POR EJEMPLO: X := 2 + 2; IF X == 4 THEN HAZ_ALGO();. UNA CRÍTICA COMÚN EN LOS LENGUAJES IMPERATIVOS ES EL EFECTO DE LAS SENTENCIAS DE ASIGNACIÓN SOBRE UNA CLASE DE VARIABLES LLAMADAS "NO LOCALES".[]
LOS PROGRAMAS QUE USAN UN LENGUAJE DECLARATIVO ESPECIFICAN LAS PROPIEDADES QUE LA SALIDA DEBE CONOCER Y NO ESPECIFICA CUALQUIER DETALLE DE IMPLEMENTACIÓN. DOS AMPLIAS CATEGORÍAS DE LENGUAJES DECLARATIVOS SON LOS LENGUAJES FUNCIONALES Y LOS LENGUAJES LÓGICOS. LOS LENGUAJES FUNCIONALES NO PERMITEN ASIGNACIONES DE VARIABLES NO LOCALES, ASÍ, SE HACEN MÁS FÁCILES, POR EJEMPLO, PROGRAMAS COMO FUNCIONES MATEMÁTICAS.[ ]EL PRINCIPIO DETRÁS DE LOS LENGUAJES LÓGICOS ES DEFINIR EL PROBLEMA QUE SE QUIERE RESOLVER (EL OBJETIVO) Y DEJAR LOS DETALLES DE LA SOLUCIÓN AL SISTEMA.[] EL OBJETIVO ES DEFINIDO DANDO UNA LISTA DE SUB-OBJETIVOS. CADA SUB-OBJETIVO TAMBIÉN SE DEFINE DANDO UNA LISTA DE SUS SUB-OBJETIVOS, ETC. SI AL TRATAR DE BUSCAR UNA SOLUCIÓN, UNA RUTA DE SUB-OBJETIVOS FALLA, ENTONCES TAL SUB-OBJETIVO SE DESCARTA Y SISTEMÁTICAMENTE SE PRUEBA OTRA RUTA.
LA FORMA EN LA CUAL SE PROGRAMA PUEDE SER POR MEDIO DE TEXTO O DE FORMA VISUAL. EN LA PROGRAMACIÓN VISUAL LOS ELEMENTOS SON MANIPULADOS GRÁFICAMENTE EN VEZ DE ESPECIFICARSE POR MEDIO DE TEXTO.

viernes, 2 de septiembre de 2011

ALGORITMOS Y LENGUAJE DE PROGRAMACION (INVESTIGACION)

ALGORITMO: UN ALGORITMO ES UN CONJUNTO DE OPERACIONES Y PROCEDIMIENTOS QUE DEBEN SEGUIRSE PARA RESOLVER UN PROBLEMA. LA PALABRA ALGORITMO SE DERIVA DEL NOMBRE LATINIZADO DEL GRAN MATEMÁTICO ÁRABE MOHAMED IBN AL KOW RIZMI, EL CUAL ESCRIBIÓ SOBRE LOS AÑOS 800 Y 825 SU OBRA QUITAD AL MUGABALA, DONDE SE RECOGÍA EL SISTEMA DE NUMERACIÓN HINDÚ Y EL CONCEPTO DEL CERO. FUE FIBINACCI, EL QUE TRADUJO LA OBRA AL LATÍN Y EL INICIO CON LA PALABRA: ALGORITMI DICIT.
EL LENGUAJE ALGORÍTMICO ES AQUEL POR MEDIO AL CUAL SE REALIZA UN ANÁLISIS PREVIO DEL PROBLEMA A RESOLVER Y ENCONTRAR UN MÉTODO QUE PERMITA RESOLVERLO. EL CONJUNTO DE TODAS LAS OPERACIONES A REALIZAR Y E ORDEN EN QUE SE DEBEN EFECTUARSE, SE LE DENOMINA ALGORITMO.
ES UN MÉTODO PARA RESOLVER UN PROBLEMA MEDIANTE UNA SERIE DE DATOS PRECISOS,
DEFINIDOS Y FINITOS.

DESCRIPCIÓN: 
  • DE ALTO NIVEL: SE ESTABLECE EL PROBLEMA, SE SELECCIONA UN MODELO MATEMÁTICO, SE EXPLICA EL ALGORITMO POSIBLEMENTE CON ILUSTRACIONES SIN DETALLES.
  • DE MANERA FORMAL: SE USA PSEUDOCODIGO PARA DESCRIBIR LA SECUENCIA DE PASOS Y ENCUENTRA LA SOLUCIÓN.
  • DIAGRAMAS DE FLUJO: DESCRIPCIONES GRÁFICAS DE ALGORITMOS USAN SÍMBOLOS CONECTADOS CON FLECHAS PARA INDICAR LA SECUENCIA DE INSTRUCCIONES.
LINKS DE IMÁGENES DE DIAGRAMAS DE FLUJO:
  • UN ALGORITMO DEBE SER PRECISO E INDICAR EL ORDEN DE REALIZACIÓN DE CADA PASO.
  • UN ALGORITMO DEBE ESTAR DEFINIDO. SI SE SIGUE UN ALGORITMO DOS VECES, SE DEBE OBTENER EL MISMO RESULTADO CADA VEZ.
  •     UN ALGORITMO DEBE SER FINITO. SI SE SIGUE UN ALGORITMO SE DEBE TERMINAR EN ALGÚN MOMENTO; O SEA, DEBE TENER UN NUMERO FINITO DE PASOS.
LA DEFINICIÓN DE UN ALGORITMO DEBE DEFINIR TRES PARTES: ENTRADA, PROCESO Y SALIDA. EJEMPLO: EN EL ALGORITMO DE RECETA DE COCINA CITADO ANTERIORMENTE SE TENDRÁ:
ENTRADA: INGREDIENTE Y UTENSILIOS EMPLEADOS.
PROCESO: ELABORACIÓN DE LA RECETA EN LA COCINA.
SALIDA: TERMINACIÓN DEL PLATO (POR EJEMPLO, CORDERO).



LENGUAJE DE PROGRAMACIÓN: ES UN IDIOMA ARTIFICIAL DISEÑADO PARA EXPRESAR COMPUTACIONES QUE PUEDEN SER LLEVADAS A CABO POR MÁQUINAS COMO LAS COMPUTADORAS. PUEDEN USARSE PARA CREAR PROGRAMAS QUE CONTROLEN EL COMPORTAMIENTO FÍSICO Y LÓGICO DE UNA MÁQUINA, PARA EXPRESAR ALGORITMOS CON PRECISIÓN, O COMO MODO DE COMUNICACIÓN HUMANA. ESTÁ FORMADO POR UN CONJUNTO DE SÍMBOLOS Y REGLAS SINTÁCTICAS Y SEMÁNTICAS QUE DEFINEN SU ESTRUCTURA Y EL SIGNIFICADO DE SUS ELEMENTOS Y EXPRESIONES. AL PROCESO POR EL CUAL SE ESCRIBE, SE PRUEBA, SE DEPURA, SE COMPILA Y SE MANTIENE EL CÓDIGO FUENTE0 DE UN PROGRAMA INFORMÁTICO SE LE LLAMA PROGRAMACIÓN.
TAMBIÉN LA PALABRA PROGRAMACIÓN SE DEFINE COMO EL PROCESO DE CREACIÓN DE UN PROGRAMA DE COMPUTADORA, MEDIANTE LA APLICACIÓN DE PROCEDIMIENTOS LÓGICOS, A TRAVÉS DE LOS SIGUIENTES PASOS:
§  EL DESARROLLO LÓGICO DEL PROGRAMA PARA RESOLVER UN PROBLEMA EN PARTICULAR.
§  ESCRITURA DE LA LÓGICA DEL PROGRAMA EMPLEANDO UN LENGUAJE DE PROGRAMACIÓN ESPECÍFICO (CODIFICACIÓN DEL PROGRAMA).
§  ENSAMBLAJE O COMPILACIÓN DEL PROGRAMA HASTA CONVERTIRLO EN LENGUAJE DE MÁQUINA.
§  PRUEBA Y DEPURACIÓN DEL PROGRAMA.
§  DESARROLLO DE LA DOCUMENTACIÓN.
EXISTE UN ERROR COMÚN QUE TRATA POR SINÓNIMOS LOS TÉRMINOS 'LENGUAJE DE PROGRAMACIÓN' Y “LENGUAJE INFORMÁTICO” '. LOS LENGUAJES INFORMÁTICOS ENGLOBAN A LOS LENGUAJES DE PROGRAMACIÓN Y A OTROS MÁS, COMO POR EJEMPLO HTML (LENGUAJE PARA EL MARCADO DE PÁGINAS WEB QUE NO ES PROPIAMENTE UN LENGUAJE DE PROGRAMACIÓN, SINO UN CONJUNTO DE INSTRUCCIONES QUE PERMITEN DISEÑAR EL CONTENIDO DE LOS DOCUMENTOS).
PERMITE ESPECIFICAR DE MANERA PRECISA SOBRE QUÉ DATOS DEBE OPERAR UNA COMPUTADORA, CÓMO DEBEN SER ALMACENADOS O TRANSMITIDOS Y QUÉ ACCIONES DEBE TOMAR BAJO UNA VARIADA GAMA DE CIRCUNSTANCIAS. TODO ESTO, A TRAVÉS DE UN LENGUAJE QUE INTENTA ESTAR RELATIVAMENTE PRÓXIMO AL LENGUAJE HUMANO O NATURAL. UNA CARACTERÍSTICA RELEVANTE DE LOS LENGUAJES DE PROGRAMACIÓN ES PRECISAMENTE QUE MÁS DE UN PROGRAMADOR PUEDA USAR UN CONJUNTO COMÚN DE INSTRUCCIONES QUE SEAN COMPRENDIDAS ENTRE ELLOS PARA REALIZAR LA CONSTRUCCIÓN DE UN PROGRAMA DE FORMA COLABORATIVA.


LOS LENGUAJES DE PROGRAMACIÓN GENERALMENTE SE DIVIDEN EN DOS GRUPOS PRINCIPALES EN BASE AL PROCESAMIENTO DE SUS COMANDOS:

·         LENGUAJES IMPERATIVOS;
·         LENGUAJES FUNCIONALES.

LENGUAJE DE PROGRAMACIÓN IMPERATIVO

UN LENGUAJE IMPERATIVO PROGRAMA MEDIANTE UNA SERIE DE COMANDOS, AGRUPADOS EN BLOQUES Y COMPUESTOS DE ÓRDENES CONDICIONALES QUE PERMITEN AL PROGRAMA RETORNAR A UN BLOQUE DE COMANDOS SI SE CUMPLE LA CONDICIÓN. ESTOS FUERON LOS PRIMEROS LENGUAJES DE PROGRAMACIÓN EN USO Y AÚN HOY MUCHOS LENGUAJES MODERNOS USAN ESTE PRINCIPIO.
NO OBSTANTE, LOS LENGUAJES IMPERATIVOS ESTRUCTURADOS CARECEN DE FLEXIBILIDAD DEBIDO A LA SECUENCIALIDAD DE LAS INSTRUCCIONES.

LENGUAJE DE PROGRAMACIÓN FUNCIONAL

UN LENGUAJE DE PROGRAMACIÓN FUNCIONAL(A MENUDO LLAMADO LENGUAJE PROCEDIMENTAL) ES UN LENGUAJE QUE CREA PROGRAMAS MEDIANTE FUNCIONES, DEVUELVE UN NUEVO ESTADO DE RESULTADO Y RECIBE COMO ENTRADA EL RESULTADO DE OTRAS FUNCIONES. CUANDO UNA FUNCIÓN SE INVOCA A SÍ MISMA, HABLAMOS DE RECURSIVIDAD.

jueves, 1 de septiembre de 2011

ALGORITMOS Y LENGUAJE DE PROGRAMACION

CLASE: JUEVES 01 DE SEPTIEMBRE


ALGORITMO: CONJUNTO PRESCRITO DE INSTRUCCIONES O REGLAS BIEN DEFINIDAS, ORDENADAS Y FINITAS; PUEDEN EXPRESARSE DE MUCHAS MANERAS:
  • LENGUAJE NATURAL
  • PSEUDOCODIGO
  • LENGUAJE DE PROGRAMACIÓN
  • ETC.
DESCRIPCIÓN: 
  • DE ALTO NIVEL: SE ESTABLECE EL PROBLEMA, SE SELECCIONA UN MODELO MATEMÁTICO, SE EXPLICA EL ALGORITMO POSIBLE MENTE CON ILUSTRACIONES SIN DETALLES.
  • DE MANERA FORMAL: SE USA EL PSEUDOCODIGO  PARA DESCRIBIR LA SECUENCIA DE PASOS Y ENCUENTRA LA SOLUCIÓN. 
  • DIAGRAMAS DE FLUJO: DESCRIPCIONES GRÁFICAS DE ALGORITMOS, USAN SÍMBOLOS CONECTADOS CON FLECHAS PARA INDICAR LA SECUENCIA DE INSTRUCCIONES.

LENGUAJE DE PROGRAMACIÓN: ES UN LENGUAJE  DISEÑADO PARA DESCRIBIR EL CONJUNTO DE ACCIONES CONSECUTIVAS QUE UN EQUIPO DEBE EJECUTAR, ES UN MODO PRACTICO PARA QUE LOS SERES HUMANOS PUEDAN DAR INSTRUCCIONES A UN EQUIPO.

LISTA DE LOS LENGUAJES DE PROGRAMACIÓN ACTUALES:
LENGUAJE
PRINCIPAL ÁREA DE APLICACIÓN
COMPILADO/INTERPRETADO
ADA
TIEMPO REAL
LENGUAJE COMPILADO
BASIC
PROGRAMACIÓN PARA FINES EDUCATIVOS
LENGUAJE INTERPRETADO
C
PROGRAMACIÓN DE SISTEMA
LENGUAJE COMPILADO
C++
PROGRAMACIÓN DE SISTEMA ORIENTADO A OBJETO
LENGUAJE COMPILADO
COBOL
ADMINISTRACIÓN
LENGUAJE COMPILADO
FORTRAN
CÁLCULO
LENGUAJE COMPILADO
JAVA
PROGRAMACIÓN ORIENTADA A INTERNET
LENGUAJE INTERMEDIARIO
MATLAB
CÁLCULOS MATEMÁTICOS
LENGUAJE INTERPRETADO
CÁLCULOS MATEMÁTICOS
CÁLCULOS MATEMÁTICOS
LENGUAJE INTERPRETADO
LISP
INTELIGENCIA ARTIFICIAL
LENGUAJE INTERMEDIARIO
PASCAL
EDUCACIÓN
LENGUAJE COMPILADO
PHP
DESARROLLO DE SITIOS WEB DINÁMICOS
LENGUAJE INTERPRETADO
INTELIGENCIA ARTIFICIAL
INTELIGENCIA ARTIFICIAL
LENGUAJE INTERPRETADO
PERL
PROCESAMIENTO DE CADENAS DE CARACTERES
LENGUAJE INTERPRETADO

miércoles, 31 de agosto de 2011

TIPOS DE SOFTWARE (INVESTIGACIÓN)

SOFTWARE:

SON LA COLECCIÓN DE PROGRAMAS DE UN ORDENADOR (COMPUTADORA) QUE HACEN POSIBLE TRABAJAR EN ELLA, REALIZANDO TAREAS ESPECIFICAS. UN SOFTWARE ES INTANGIBLE, O SEA, QUE NO SE PUEDE TOCAR; SE DEFINE COMO CONJUNTO DE PROGRAMAS DE COMPUTO, PROCEDIMIENTOS, REGLAS, DOCUMENTACIÓN Y DATOS.

TIPOS DE SOFTWARE:


  • SOFTWARE DE SISTEMA: SU OBJETIVO ES DESVINCULAR ADECUADAMENTE AL USUARIO Y AL PROGRAMADOR DE LOS DETALLES DE LA COMPUTADORA EN PARTICULAR QUE SE USE, AISLÁNDOLO ESPECIALMENTE DEL PROCESAMIENTO REFERIDO A LAS CARACTERÍSTICAS INTERNAS DE: MEMORIA, DISCOS, PUERTOS Y DISPOSITIVOS DE COMUNICACIONES, IMPRESORAS, PANTALLAS, TECLADOS, ETC. EL SOFTWARE DE SISTEMA LE PROCURA AL USUARIO Y PROGRAMADOR ADECUADAS INTERFACES DE ALTO NIVEL, HERRAMIENTAS Y UTILIDADES DE APOYO QUE PERMITEN SU MANTENIMIENTO. EJEMPLOS (INCLUYE ENTRE OTROS):




  1. SISTEMAS OPERATIVOS
  2. CONTROLADORES DE DISPOSITIVOS
  3. HERRAMIENTAS DE DIAGNOSTICO
  4. HERRAMIENTAS DE CORRECCIÓN Y DE OPTIMIZACIÓN
  5. SERVIDORES
  6. UTILIDADES
  • SISTEMAS DE PROGRAMACIÓN: ES EL CONJUNTO DE HERRAMIENTAS QUE LE PERMITEN AL PROGRAMADOR DESARROLLAR PROGRAMAS INFORMÁTICOS  USANDO DIFERENTES ALTERNATIVAS Y LENGUAJES DE PROGRAMACIÓN DE MANERA PRACTICA.EJEMPLOS (INCLUYE ENTRE OTROS):
  1. EDITORES DE TEXTO
  2. COMPILADORES
  3. INTERPRETES
  4. ENLAZADORES
  5. DEPURADORES
  • SOFTWARE DE APLICACIÓN: ES AQUEL QUE PERMITE A LOS USUARIOS LLEVAR A CABO UNA O VARIAS TAREAS ESPECÍFICAS, EN CUALQUIER CAMPO DE ACTIVIDAD SUSCEPTIBLE DE SER AUTOMATIZADO O ASISTIDO, CON ESPECIAL ÉNFASIS EN LOS NEGOCIOS. EJEMPLOS (INCLUYE ENTRE OTROS):
  1. APLICACIONES OFIMÁTICAS
  2. SOFTWARE EDUCATIVO
  3. SOFTWARE EMPRESARIAL
  4. BASE DE DATOS
  5. TELECOMUNICACIONES (INTERNET)
  6. VIDEOJUEGOS
  7. SOFTWARE MEDICO
  8. SOFTWARE DE CONTROL NUMÉRICO


  • INGENIERA DE SOFTWARE: ES LA DISCIPLINA O ÁREA DE LA INGENIERÍA QUE OFRECE MÉTODOS Y TÉCNICAS PARA DESARROLLAR Y MANTENER SOFTWARE. LA CREACIÓN DEL SOFTWARE ES UN PROCESO INTRÍNSECAMENTE CREATIVO Y LA INGENIERÍA DEL SOFTWARE TRATA DE SISTEMATIZAR ESTE PROCESO CON EL FIN DE ACOTAR EL RIESGO DEL FRACASO EN LA CONSECUCIÓN DEL OBJETIVO CREATIVO POR MEDIO DE DIVERSAS TÉCNICAS QUE SE HAN DEMOSTRADO ADECUADAS EN BASE A LA EXPERIENCIA PREVIA. ESTA INGENIERÍA TRATA CON ÁREAS MUY DIVERSAS DE LA INFORMÁTICA Y DE LAS CIENCIAS DE LA COMUNICACIÓN, TALES COMO CONSTRUCCIÓN DE COMPILADORES, SISTEMAS OPERATIVOS, O DESARROLLOS INTRANET/INTERNET, ABORDANDO TODAS LAS FASES DEL CICLO DE VIDA DEL DESARROLLO DE CUALQUIER TIPO DE SISTEMAS DE INFORMACIÓN Y APLICABLES A INFINIDAD DE ÁREAS: NEGOCIOS, INVESTIGACIÓN CIENTÍFICA, MEDICINA, PRODUCCIÓN, LOGÍSTICA, BANCA, CONTROL DE TRÁFICO, METEOROLOGÍA, DERECHO, INTERNET, INTRANET, ETC..




  • SOFTWARE COLABORATIVO: SE REFIERE AL CONJUNTO DE PROGRAMAS INFORMÁTICOS QUE INTEGRAN EL TRABAJO EN UN SÓLO PROYECTO CON MUCHOS USUARIOS CONCURRENTES QUE SE ENCUENTRAN EN DIVERSAS ESTACIONES DE TRABAJO, CONECTADAS A TRAVÉS DE UNA RED (INTERNET O INTRANET). EL SOFTWARE COLABORATIVO SE PUEDE DIVIDIR EN TRES CATEGORÍAS: HERRAMIENTAS DE COLABORACIÓN-COMUNICACIÓN, HERRAMIENTAS DE CONFERENCIA Y HERRAMIENTAS DE GESTIÓN COLABORATIVA O EN GRUPO.
§  HERRAMIENTAS DE COMUNICACIÓN ELECTRÓNICA QUE ENVÍAN MENSAJES, ARCHIVOS, DATOS O DOCUMENTOS ENTRE PERSONAS Y FACILITAN LA COMPARTICIÓN DE INFORMACIÓN (COLABORACIÓN ASÍNCRONA), COMO POR EJEMPLO:
§  CORREO ELECTRONICO
§  CORREO DE VOZ.
§  PUBLICACIÓN EN WEB.
§  HERRAMIENTAS DE CONFERENCIA QUE FACILITAN LA COMPARTICIÓN DE INFORMACIÓN, DE FORMA INTERACTIVA (COLABORACIÓN SÍNCRONA), COMO POR EJEMPLO:
§  CONFERENCIA DE DATOS - PC EN RED QUE COMPARTEN UN ESPACIO DE PRESENTACIÓN COMPARTIDO QUE CADA USUARIO PUEDE MODIFICAR.
§  CONFERENCIAS DE VOZ - TELEFONOS QUE PERMITEN INTERACTUAR A LOS PARTICIPANTES.
§  CONFERENCIAS DE VIDEO (O AUDIO CONFERENCIA) - PC EN RED QUE COMPARTEN SEÑALES DE AUDIO O VIDEO.
§  SALAS DE CHAT O MENSAJERÍA INSTANTÁNEA - UNA PLATAFORMA DE DISCUSIÓN QUE FACILITA EL INTERCAMBIO INMEDIATO DE MENSAJES.
§  SISTEMAS PARA FACILITAR REUNIONES - UN SISTEMA DE CONFERENCIAS INTEGRADO EN UNA SALA. ESTAS SALAS SUELEN DISPONER DE UN AVANZADO SISTEMA DE SONIDO Y PRESENTACIÓN QUE PERMITE UNA MEJOR INTERACCIÓN ENTRE PARTICIPANTES EN UNA MISMA SALA O ENTRE SALAS SEPARADAS. EJEMPLOS DE ELLO SON LOS SISTEMAS DE SOPORTE A DECISIONES.
§  HERRAMIENTAS DE GESTIÓN COLABORATIVA QUE FACILITAN LAS ACTIVIDADES DEL GRUPO, COMO POR EJEMPLO:
§  CALENDARIOS ELECTRÓNICOS - PARA ACORDAR FECHAS DE EVENTOS AUTOMÁTICAMENTE Y ENVIAR NOTIFICACIONES Y RECORDATORIOS A LOS PARTICIPANTES.
§  SISTEMAS DE GESTIÓN DE PROYECTOS - PARA ORGANIZAR Y HACER SEGUIMIENTO DE LAS ACCIONES EN UN PROYECTO HASTA QUE SE FINALIZA.
§  SISTEMAS DE CONTROL DE FLUJO DE ACTIVIDAD - PARA GESTIONAR TAREAS Y DOCUMENTOS EN UN PROCESO ORGANIZADO DE FORMA ESTRUCTURADA (BUROCRACIA).
§  SISTEMAS DE GESTIÓN DEL CONOCIMIENTO - PARA RECOGER, ORGANIZAR, GESTIONAR Y COMPARTIR VARIOS TIPOS DE INFORMACIÓN.
§  SISTEMAS DE SOPORTE A REDES SOCIALES - PARA ORGANIZAR LAS RELACIONES DE COLECTIVOS.





  • EL SOFTWARE LIBRE (EN INGLES FREE SOFTWARE, AUNQUE ESTA DENOMINACIÓN TAMBIÉN SE CONFUNDE A VECES CON "GRATIS" POR LA AMBIGÜEDAD DEL TÉRMINO EN ELIDIOMA INGLES, POR LO QUE TAMBIÉN SE USA "LIBRE SOFTWARE") ES LA DENOMINACIÓN DEL SOFTWARE QUE RESPETA LA LIBERTAD DE LOS USUARIOS SOBRE SU PRODUCTO ADQUIRIDO Y, POR TANTO, UNA VEZ OBTENIDO PUEDE SER USADO, COPIADO, ESTUDIADO, MODIFICADO Y REDISTRIBUIDO LIBREMENTE. SEGÚN LA FREE SOFTWARE FOUNDATION, EL SOFTWARE LIBRE SE REFIERE A LA LIBERTAD DE LOS USUARIOS PARA EJECUTAR, COPIAR, DISTRIBUIR, ESTUDIAR, MODIFICAR ELSOFTWARE Y DISTRIBUIRLO MODIFICADO.