Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cuestionario N°1
1. ¿Qué es un algoritmo?
Traza de un algoritmo
Llamada también “corrida” o simplemente probar un algoritmo en papel,
significa razonar cómo lo haría un computador, ejecutando cado uno de los
pasos o instrucciones, asignándole valores a las variables, registrar el
comportamiento de los valores y comprobar que efectivamente cumple el
tratamiento o proceso al cual se someten los datos según el objetivo del
algoritmo.
Pseudocódigo
Significa escribir las instrucciones del algoritmo en lenguaje natural, tal y
como lo expresamos de manera cotidiana, este procedimiento facilita su
escritura en los lenguajes de programación. Según Joyanes (2003): “El
pseudocódigo es un lenguaje de especificación (descripción) de
algoritmos”.
Ampliación.
Ejemplo: Algoritmo diseñado para el cálculo de la hipotenusa de un
triángulo, utilizando pseudocódigo.
La escritura del algoritmo consta de:
-Identificación o cabecera
-Declaración de variables
-Cuerpo o sección de acciones
Inicio
Declaración de variables
Lectura de los datos A, B y C
Aplicar formula
Imprimir resultado
Ventajas:
Java
Es un lenguaje de programación de propósito general orientado a objetos
desarrollado por Sun Microsystems. También se puede decir que Java es
una tecnología que no sólo se reduce al lenguaje sino que además provee
de una máquina virtual Java que permite ejecutar código compilado Java,
sea cual sea la plataforma que exista por debajo; plataforma tanto
hardware, como software (el sistema operativo que soporte ese hardware).
El apoyo a esta tecnología viene dado por la gran cantidad de fabricantes
que apoyan esta especificación de máquina virtual.
Aprender el lenguaje de programación Java requiere tiempo y esfuerzo,
pero en este curso trataremos de sentar las bases para el conocimiento
general del lenguaje. El lenguaje se inspira en otros lenguajes:
Sentencias comunes de C y C++ (sintaxis parecida a dichos lenguajes)
concurrencia parecida a la de Mesa (un lenguaje de investigación de Xerox)
interrupciones parecidas a las de Modula-3 tratamiento de enlace dinámico
de código nuevo parecido al de Lisp definiciones de interfaces parecidas a
las de Objective C gestión de almacenamiento automático parecida a la de
Lisp
Características.
Sun describe al lenguaje Java de la siguiente manera:
Simple
Orientado a Objetos
Tipado estáticamente
Distribuido
Interpretado
Robusto
Seguro
De Arquitectura Neutral
Multihilo
Con Recolector de basura (Garbage Collector)
Portable
De Alto Rendimiento: sobre todo con la aparición de hardware
especializado y mejor software
Dinámico
Python
Es un lenguaje de programación interpretado cuya filosofía hace hincapié
en una sintaxis que favorezca un código legible. Y define este como un
lenguaje multiparadigma, debido a que soporta orientación a objetos,
programación imperativa y en menor medida programación funcional.
Es interpretado de Tipado dinámico y multiplataforma.
Características
Lenguaje de propósito general. ...
Es multiparadigma. ...
Python es un lenguaje interpretado. ...
Es multiplataforma. ...
Es de Tipado dinámico. ...
Es orientado a objetos. ...
Otras propiedades de Python.
JavaScript
Es un lenguaje de programación interpretado, dialecto del
estándar ECMAScript. Se define como orientado a objetos, basado en
prototipos, imperativo, débilmente tipado y dinámico.
Características de JavaScript
• Es simple, no hace falta tener conocimientos avanzados de programación
para poder hacer un programa en JavaScript.
• Maneja objetos dentro de nuestra página Web y sobre ese objeto
podemos definir diferentes eventos. Dichos objetos facilitan la programación
de páginas interactivas, a la vez que se evita la posibilidad de ejecutar
comandos que puedan ser peligrosos para la máquina del usuario, tales
como formateo de unidades, modificar archivos etc.
• Es dinámico, responde a eventos en tiempo real. Eventos como presionar
un botón, pasar el puntero del mouse sobre un determinado texto o el
simple hecho de cargar la página o caducar un tiempo. Con esto podemos
cambiar totalmente el aspecto de nuestra página al gusto del usuario,
evitándonos tener en el servidor un página para cada gusto, hacer cálculos
en base a variables cuyo valor es determinado por el usuario, etc.
C++
El lenguaje de programación c++ fue el lenguaje que ayudó a potenciar
la programación orientada a objetos.
Hoy en día, la mayoría de lenguajes actuales modernos tienen este tipo de
programación, y es gracias al lenguaje C++.
El lenguaje C++ fue creado por Bjarne Stroustrup, en el año 1979. Este
programador danés empezó a trabajar en el lenguaje, que lo llamaba C con
clases.
Stroustrup comparó varios lenguajes para la creación del predecesor de C+
+. Por ejemplo, vio que Simula (un lenguaje POO del 1962), tenía buenas
características para programar, pero era muy lento, y el lenguaje BCPL era
rápido, pero de bajo nivel.
Así que mejoró el lenguaje C con características de Simula. Se decidió por
el lenguaje C porque:
Es de uso general.
Es rápido.
Es portable.
Es muy utilizado.
PHP
PHP es uno de los lenguajes más usados cuando hablamos de crear
páginas web, sobre todo si nos interesa programar con una base de datos
(la base de datos más popular en este sentido es MySQL).
PHP viene de HyperText Preprocessor, un poco raro porque las siglas no
son tal cuál su significado. Cuando se publicó por primera vez se
llamó Personal Home Page Tools, pero luego cambió por el nombre que
hemos comentado.
En su momento fue creado en otro lenguaje Perl, hasta que se reescribió
por completo. Se lanzó PHP 3 con un motor totalmente nuevo, llamado
Zend.
Características de php
Es de propósito general. Aunque está especializado en a programación de
sitios web dinámicos, se puede usar PHP para acceder y manejar una base
de datos, generar cálculos aritméticos (con scripts), comunicarse entre un
servidor y un cliente, etc.
Puedes hacer blogs, foros, aplicaciones dinámicas…
Es un lenguaje con una curva de aprendizaje baja, se aprende rápidamente,
aunque eso hace que tenga mala fama, por ejemplo en la declaración de
variables porque no se define un tipo de datos.
Con PHP 5 tienes programación orientada a objetos, así que tiene la base
de la programación que se usa hoy en día.
Soporte para base de datos, específicamente con MySQL. También tiene
un buen soporte con PostgreSQL, SQLite y Oracle. El acceso se hace
mediante librerías o extensiones ya configuradas, que ayudan en la
escritura del código.
Creación de WebServices, mediante SOAP.
Es un lenguaje interpretado, es decir, no se compila. Además, el código se
almacena en el servidor, por ejemplo dentro de una página web.
Tiene una sintaxis parecida al C.
Es multiplataforma. Podemos tener un servidor de PHP en multitud de
sistemas operativos, como Linux, Mac OS X, Windows.
Es de código libre, así que hay un buen soporte, además de mucha
información por internet.
Amplia documentación oficial, y no oficial como en GitHub o StackOverflow.
Existen otros protocolos y servicios que puedes comunicarte mediante php,
correo con POP3 y SNMP, autentificación de dominio de Windows con
LDAP, IMAP, etc.
Perl
Perl (Practical Extraction and Report Language) es un lenguaje de
programación desarrollado a finales de los años 80 por Larry Wall a partir
otras herramientas de UNIX como son: ed, grep, awk, c-shell, para la
administración de tareas propias de sistemas UNIX.
Es un lenguaje de script de tipo BCPL (como TCL o PHP), muy semejante
al AWK (de hecho está basado en él), de tipo estructurado con trazas de
orientación a objetos (no completamente soportado de forma directa), que
permite el desarrollo rápido de aplicaciones y herramientas especialmente
orientadas al tratamiento de textos y archivos, aunque actualmente también
se utiliza incluso para entornos gráficos, en combinación con sistemas
como Perl/TK o GTK
Características
No establece ninguna filosofía de programación concreta. No se puede
decir que sea orientado a objetos, modular o estructurado aunque soporta
directamente todos estos paradigmas y su punto fuerte son las labores de
procesamiento de textos y archivos.
No es ni un compilador ni un intérprete, está en un punto intermedio,
cuando mandamos a ejecutar un programa en Perl, se compila el código
fuente a un código intermedio en memoria que se optimiza como si se fuera
a elaborar un programa ejecutable pero es ejecutado por un motor, como si
se tratase de un intérprete.
Lenguaje de programación basado en scripts a casi cualquier plataforma.
Es muy utilizado para escribir CGIs.
Lenguaje optimizado para el escaneo de texto arbitrario de ficheros. Es
también un buen lenguaje para tareas de administración de sistemas. Es un
lenguaje con intención de ser práctico en lugar de bonito. Satisface las tres
virtudes del programador: flojera, impaciencia y petulancia.
Básicamente, es un lenguaje que se ha intentado que sea lo más natural
posible, lo que conlleva que en ocasiones nos encontremos estructuras
poco habituales en un lenguaje de este tipo.
SWIFT
En la WWDC de 2014 se introdujo el lenguaje de programación Swift, el
nuevo lenguaje de programación de Apple. Multiparadigma y de propósito
general, concebido con un enfoque moderno en la seguridad, el rendimiento
y el diseño de estándares de software.
Su desarrollo comenzó en el año 2010 de la mano del programador de
software y ex-trabajador de Apple (abandonó la empresa en Enero de
2017) Ph.D. Chris Lattner, también conocido por ser el creador principal
de LLVM y el compilador Clang.
Rust
Es un lenguaje de programación desarrollado por los ingenieros de mozila.
Podríamos catalogarlo como un lenguaje muy nuevo; Estamos hablando
que la versión 1.0 estuvo disponible a principios del 2015; Actualmente
estamos en la versión 1.32.
Al igual que C, Java o C++, Rust es un lenguaje compilado.
Rust está diseñado para desarrollar software de sistemas, donde la
interacción con el usuario es prácticamente nula; Excelente para
aplicaciones con el modelo cliente-servidor o para cosas más internas en
nuestra empresa. Uno que otro demonio por allí.
Algo interesante de Rust es que actualmente se están desarrollando dos
sistemas operativos con dicho lenguaje.
Características de Rust.
Todo desarrollador que pasó por C y C++ debe de ver en Rust un primo
muy cercano, la sintaxis es muy similar, es decir que estaríamos
encontrando las clásicas llaves y bloques de código como las condicionales
y los ciclos.
Para las variables contamos con la inferencia de tipos, así que no siempre
le tendremos que decir que tipo de dato es, pero para que esto se aplique
tendremos que utilizar la palabra let. Para permitir que una variable sea
mutable tendremos que agregar la palabra mut a la palabra let en la
definición de la variable.
Rust no nos permite, como ya lo hacen ahora muchos lenguajes, utilizar un
valor que no haya sido inicializado previamente. Algo que también se repite
en otros lenguajes de programación es que al menos necesitamos una
función de inicio (la famosa función main). Ahora viene una característica
importante, Rust es un lenguaje basado en expresiones, de hecho existen 2
tipos de sentencias y todo lo demás son solo una expresión.
Los 3 objetivos que tiene Rust son velocidad, concurrencia y seguridad. A
diferencia de lenguajes como Java y de ese tipo podemos ver que Rust no
tiene un garbage collector.
Las abstracciones a cero costo son la herramienta más importante que
permite que la seguridad y velocidad se mantenga en un estándar elevado
y fácil para implementar. En la documentación se menciona (y muchos
desarrolladores también) que uno de los problemas es la curva de
aprendizaje. Algunas reglas que implementa Rust son diferentes a las que
estamos acostumbrados por lo que en un inicio pasaras horas peleando y
entendiendo al compilador, aunque ¿quién no ha pasado horas peleando
con un compilador? En resumen cualquier programador pasa por esa
etapa.
Multiplataforma
Soporte para diversos lenguajes de programación
Integración con Sistemas de Control de Versiones
Reconocimiento de Sintaxis
Extensiones y Componentes para el IDE
Integration con Framework populares
Depurador
Importar y Exportar proyectos
Múltiples idiomas
Manual de Usuarios y Ayuda
19.¿Qué es Arduino?
Arduino es una plataforma de creación de electrónica de código abierto, la
cual está basada en hardware y software libre, flexible y fácil de utilizar para
los creadores y desarrolladores. Esta plataforma permite crear diferentes
tipos de microordenadores de una sola placa a los que la comunidad de
creadores puede darles diferentes tipos de uso. El hardware libre son los
dispositivos cuyas especificaciones y diagramas son de acceso público, de
manera que cualquiera puede replicarlos. Esto quiere decir que Arduino
ofrece las bases para que cualquier otra persona o empresa pueda crear sus
propias placas, pudiendo ser diferentes entre ellas, pero igualmente
funcionales al partir de la misma base. En pocas palabras el Arduino, una
placa con todos los elementos necesarios para conectar periféricos a las
entradas y salidas de un microcontrolador, y que puede ser programada
tanto en Windows como macOS y GNU/Linux. Un proyecto que promueve la
filosofía 'learning by doing', que viene a querer decir que la mejor manera de
aprender es cacharreando.
20.¿Qué lenguaje de programación se utiliza para programar en plataformas
Arduino?
Esto no quita que como proyecto con Arduino sea una pequeña maravilla y algo de
lo que presumir sin duda. Y una vez con la base, ya no hay límites para aprovechar
al máximo un sistema donde el protagonista es un brazo robótico .
Las zapatillas de Regreso al Futuro
No es el proyecto más práctico que vas a ver en esta selección pero sí el que más te
puede gustar realizar. Si alguna vez has soñado con las zapatillas de Regreso al
Futuro, Arduino te permite crearlas por ti mismo si añades motores. No son
muy llevables pero ¡qué demonios!, se atan solas y eso ya es más que suficiente.
Una chaqueta indicadora para ciclistas
Leah Buechley creo una versión de una placa Arduino especial para poder
implementar su idea: una chaqueta con luces para indicar la dirección que vamos a
tomar a los coches u otros ciclistas gracias al movimiento de nuestros brazos. Su
placa, llamada LilyPad está preparada especialmente para poder ser cosida e
integrada en prendas sin que las mismas resulten incómodas.
No es muy discreta pero puede colar. Y le des uso como espía o no, solo con ponerte manos
a la obra para crear este vaso de café con cámara ya es toda una aventura que seguro que
disfrutarás. Y todo un reto poder meter los componentes en un espacio tan reducido.
La cámara espía se vale de un módulo acelerómetro que detecta cuando giramos una parte
del vaso de café para activar el disparo y listo, una foto sin que nadie se hay (casi) dado
cuenta.
Que ni Samsung ni Apple ni ninguna otra marca te diga cómo debe ser tu reloj
avanzado. ¿Lo quieres en formato despertador? Pues dicho y hecho. Bueno, hecho
todavía no. Te toca seguir el tutorial de Make para que en un fin de semana puedas
acabar un proyecto donde los eventos de tu Google Calendar harán saltar
los avisos y alarmas de un reloj que puedes personalizar como quieras.
Con la omnipresente placa Arduino, en este caso nos sirve la más básica, una
conexión USB con el ordenador y dos pequeños programas (uno para comprobar el
email entrante y otro para activar la notificación), conseguimos crear un sistema de
aviso de nuevo email que puede componerse de un simple LED, un altavoz o lo que
queramos.
¿Qué es un arduino?
https://arduino.cl/que-es-arduino/
¿Qué es un algoritmo?
http://ing.unne.edu.ar/pub/informatica/Alg_diag.pdf