lunes, 9 de octubre de 2017

Actividad 4. Instalación de Code Blocks


DIRECCIÓN GENERAL DE CENTROS DE FORMACIÓN PARA EL TRABAJO



CECATI 120




Curso Programación Orientada a Objetos con C++


CURP RAGS751027MJCMMS01
Susana Elizabeth Ramírez Gómez





09 de octubre de 2017



INSTALACIÓN DE CODE BLOCKS

Después de tener el instalador descargado esta es la pantalla inicial del proceso de instalación:








En seguida activé la opción “I agree” para aceptar el acuerdo de la licencia





En la siguiente pantalla elegí la opción que abarca todos los pluggins y herramientas.




Después me pregunta si deseo ejecutar la aplicación Code:Blocks.



Me apareció esta ventana sobre el compilador actual: GNU GCC




En seguida aparece la ruta donde se instalará el software





En esta pantalla se aprecia el progreso  de la instalación.




Esta es la pantalla final de la instalación.



Esta es la captura de pantalla de la consola de comando de Windows donde pude comprobar  la versión de GCC.



viernes, 6 de octubre de 2017

Actividad 01

DIRECCIÓN GENERAL DE CENTROS DE FORMACIÓN PARA EL TRABAJO



CECATI 120




Curso Programación Orientada a Objetos con C++



Susana Elizabeth Ramírez Gómez


 05/10/2017




 
DESCRIPCIÓN DE LAS CARACTERÍSTICAS DISTINTIVAS
DE LOS
LENGUAJES DE PROGRAMACIÓN

Bajo nivel:

Sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivos[1].

Alto nivel:

Un lenguaje de programación de alto nivel se le caracteriza por expresar el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad que se la ejecuta de las máquinas[2].

Generaciones de lenguajes de programación[3]


Primera generación: – 1GL:
Código máquina y Ensambladores
La primera generación de lenguajes de programación consistía enteramente de una secuencia de 0s y 1s que los controles de la computadora interpretan como instrucciones, eléctricamente.
Representan los primeros lenguajes de programación que la computadora podía entender, son conocidos como lenguaje máquina.

Segunda generación: – 2GL:
Primeros lenguajes de alto nivel, no estructurados – Fortran, Cobol, Basic
La segunda generación de lenguajes de programación consistía se identificaron como lenguajes ensambladores. Un lenguaje ensamblador convierte las secuencias de 0s y 1s a un lenguaje entendido por los seres humanos, como “añadir”, “sumar”, etc.
El código escrito en un lenguaje ensamblador se convierte en lenguaje de máquina (1GL).

Tercera generación: -3GL:
La tercera generación de lenguajes de programación se conoce como lenguajes de alto nivel. Un lenguaje de alto nivel tiene una gramática y sintaxis similar a las palabras en una oración. Un compilador se encarga de traducir el lenguaje de alto nivel a lenguaje ensamblador o código máquina.
Todos los lenguajes de programación de software necesitan ser traducidos a código de máquina para una computadora para utilizar las instrucciones que contienen.

Cuarta generación: -4GL
La cuarta generación de lenguajes de programación avanza en la sintaxis utilizada. Lenguajes 4GL se utilizan típicamente para acceder a bases de datos.
Lenguajes Declarativos: SQL Generadores de aplicaciones, Herramientas CASE
Programación Visual: Visual Basic, Visual C
Lenguajes Orientados a Objeto  C++, Java, Eiffel

Quinta generación (5GL)
Imitación de la mente humana
La quinta generación de lenguajes de programación es utilizada para redes neuronales. Una red neuronal es una forma de inteligencia artificial que trata de imitar la mente humana.

Imperativos

La programación en este paradigma consiste en determinar qué datos son requeridos para el cálculo, asociar a esos datos una dirección de memoria, y efectuar, paso a paso, una secuencia de transformaciones en los datos almacenados, de forma que el estado final represente el resultado correcto[4].

Orientados a objetos

Los lenguajes de programación orientados a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar acciones. Entendiendo como objeto al entidades que contienen datos. Permitiendo que los programas sean más fáciles de escribir, mantener y reutilizar.

Los objetos tienen toda la información (atributos) que los diferencia de otros pertenecientes a otra clase. Por medio de unos métodos se comunican los objetos de una misma o diferente clase produciendo el cambio de estado de los objetos. Esto hace que a los objetos se les trate como unidades indivisibles en las que no se separan la información ni los métodos usados en su tratamiento[5].

Funcionales.

Los lenguajes funcionales suelen usarse mucho para Inteligencia Artificial. Para alguien que está acostumbrado a programar en lenguajes imperativos u orientados a objetos, la curva de aprendizaje es un poco más grande; cuesta un poco entender el paradigma. Lo más chocante es que en general no existe la asignación de variables, se trabaja en forma recursiva, con memoria dinámica, y, en algunos lenguajes, cualquier programa se puede escribir en una sola línea (por ejemplo en APL), lo que dificulta un poco su lectura[6].

Lógicos

Se utiliza el formalismo de la lógica para representar el conocimiento sobre un problema y para hacer preguntas que, si se demuestra que se pueden deducir a partir del conocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas.
Con base en la información expresada dentro de la lógica de primer orden, se formulan las preguntas sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar la respuesta automáticamente. El conocimiento sobre el problema se expresa en forma de predicados (axiomas) que establecen relaciones sobre los símbolos que representan los datos del dominio del problema

Concurrentes, paralelos y distribuidos[7].

La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina.
Los programas de ordenador paralelos son más difíciles de escribir que los secuenciales porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y la sincronización entre las diferentes subtareas son típicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelización viene dado por la ley de Amdahl.
La informática distribuida o “en malla”, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida.




[1] https://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel
[2] https://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel
[3] http://www.cavsi.com/preguntasrespuestas/cuales-son-las-generaciones-de-los-lenguajes-de-programacion/
[4] https://lenguajesdeprogramacion14.wordpress.com/2-paradigmas-de-la-programacion/paradigma-imperativo/
[5] http://www.larevistainformatica.com/lenguajes-programacion-orientada-objetos.htm
[6] http://elblogdelfrasco.blogspot.mx/2008/07/lenguajes-funcionales.html
[7] https://sites.google.com/site/cienciasdelacompucion/algoritmos-y-estructuras-de-datos/con/historia/sistemas-concurrentes-paralelos-y-distribuidos

martes, 3 de octubre de 2017

Actividad 0


DIRECCIÓN GENERAL DE CENTROS DE FORMACIÓN PARA EL TRABAJO 

CECATI 120 

 Herramientas para el aprendizaje autogestivo 


 Susana Elizabeth Ramírez Gómez 



 Ocotlán, Jal. a 3 de octubre de 2017  





APRENDIZAJE AUTOGESTIVO


El aprendizaje autogestivo es el proceso que le permite al individuo dirigir la forma en que adquiere nuevo conocimiento, así como identificar sus aciertos y errores a la hora de estudiar, para diseñar estrategias adecuadas que le ayuden a avanzar en su proceso de aprendizaje. Para llevar a cabo este proceso, es indispensable que el individuo tenga la capacidad de observar y comprender su propio proceso de aprendizaje de manera consciente, gracias a esta habilidad podrá identificar errores, vicios o defectos en su metodología actual para corregirlos o ajustarlos, de tal manera que pueda lograr sus objetivos eficientemente. Asimismo sea capaz de adquirir la habilidad de abstraer sus estrategias de aprendizaje para aplicarlas en distintos ambientes. Esta habilidad es conocida como metacognición. A continuación se describe brevemente las herramientas de la Web que servirán como apoyo para el aprendizaje autogestivo que para este curso se requieren.



CUENTA DE CORREO ELECTRÓNICO 

El correo electrónico (en inglés: electronic mail, comúnmente abreviado e-mail o email) es un servicio web que permite a los usuarios enviar y recibir mensajes (también denominados mensajes electrónicos o cartas digitales) mediante redes de comunicación electrónica. El término «correo electrónico» proviene de la analogía con el correo postal: ambos sirven para enviar y recibir mensajes, y se utilizan «buzones» intermedios (servidores de correo). Por medio del correo electrónico se puede enviar no solamente texto, sino todo tipo de archivos digitales, si bien suelen existir limitaciones al tamaño de los archivos adjuntos. Los sistemas de correo electrónico se basan en un modelo de almacenamiento y reenvío, de modo que no es necesario que ambos extremos se encuentren conectados simultáneamente. Para ello se emplea un servidor de correo que hace las funciones de intermediario, guardando temporalmente los mensajes antes de enviarse a sus destinatarios. En Internet, existen multitud de estos servidores, que incluyen a empresas, proveedores de servicios de internet y proveedores de correo tanto libres como de pago. Para este curso estaré usando mi cuenta de Hotmail (ahora Outlook) rgsusy2004@hotmail.com   

ALMACENAMIENTO EN GOOGLE DRIVE 

El Almacenamiento en la Nube consiste en guardar archivos en un lugar de Internet. Esos lugares de Internet son aplicaciones o servicios que almacenan o guardan esos archivos. Los archivos pasan de estar en nuestros dispositivos a estar guardados en ese servicio o aplicación. La Nube son en realidad ordenadores (servidores) conectados a Internet con discos enormes que pueden guardar archivos. Cuando subes un archivo a algún sitio de Internet, decimos que lo has almacenado en la Nube. Las palabras Nube o Cloud son más unos términos de marketing que otra cosa, sirven para describir aquellos servicios de Internet que hacen algo más que mostrar páginas web, por ejemplo guardar archivos o un programa de contabilidad. Son programas o servicios que no están en tu ordenador, están en Internet, por eso se dice que están en la Nube. Para este curso utilizaré mi cuenta de Google Drive