¿Cuáles son los ejemplos de la vida real que pueden explicar los conceptos informáticos?

Esta es una pregunta extremadamente amplia porque la informática en sí misma es una disciplina muy amplia con numerosos conceptos. Las respuestas dependerán del concepto que desee comprender. Pero lo que es más importante, la mayoría de los problemas en informática, especialmente en estudios de algoritmos, se basan en problemas del mundo real y sus soluciones también.

Desde la llegada de un nuevo tipo de metodología de programación llamada Programación Orientada a Objetos (OOP), la base misma de la programación es representar el mundo real en una forma virtual, simulando la vida real. En OOP hacemos esto definiendo el problema con una colección de objetos que interactúan entre sí, de la misma manera que lo harían en el mundo real. Esto simplifica enormemente el proceso, haciéndolo mucho más intuitivo. Por ejemplo, si está tratando de hacer un juego sobre autos de carreras, la forma más sensata de hacerlo sería definir un OBJETO llamado “Auto” que tenga ciertas propiedades (potencia de caballos, torque, etc.), y ese objeto puede tener múltiples INSTANCIAS, como “Ferrari” y “Porsche”, y luego escribe funciones que operan en esos objetos, como “acelerar” o “steer_right”, que cambia el estado de los objetos con los que interactúa.

Las tres piedras angulares de la filosofía OOP son la abstracción, la herencia y el polimorfismo, y cada uno de estos conceptos puede explicarse, y con mayor frecuencia, con ejemplos del mundo real. La abstracción, por ejemplo, es mirar un problema en varios niveles de detalle. En el nivel más amplio, puede ver la imagen completa, ignorando detalles intrascendentes, para que su cerebro no se sobrecargue con información irrelevante. Luego tomas una parte de la imagen, haces zoom y ves un mayor nivel de detalle. Esto es como Google Maps. Cuando te alejas por completo en GMaps, puedes ver el mundo entero. Gradualmente, al acercarse, el área que ve se vuelve más pequeña y más detallada, al principio solo ve los países y sus capitales, luego los estados y luego las ciudades individuales. Finalmente, cuando acercas la vista a la calle, puedes ver todas y cada una de las casas. Los programadores usan este tipo de abstracción en la fase de diseño del software. Primero, mapean las partes importantes del software (por ejemplo, para un servicio de correo electrónico basado en la web como GMail, la interfaz de usuario, la base de datos donde se almacenan los correos electrónicos y los datos de inicio de sesión, y obtener esos datos de manera segura son todos subsistemas). Luego observan cada subsistema con mayor detalle y discuten cómo implementarlo. El subsistema incluso se puede subdividir tantas veces como sea necesario para facilitar el proceso.

La herencia es bastante obvia de entender. Un miembro de una determinada clase de objetos tiene algunas propiedades que son comunes a todos los miembros de esa clase, además de ciertas propiedades únicas propias, y este concepto puede extenderse infinitamente. Por ejemplo, todos los humanos son mamíferos, pero los humanos tienen ciertas características biológicas únicas que nos distinguen de los monos o ballenas. Por otro lado, aunque tanto mi padre como yo somos humanos y tenemos ese conjunto común de características humanas, cada uno de nosotros también tenemos un conjunto de propiedades que nos hacen diferentes entre nosotros y, de hecho, únicos entre la clase de humanos. Hacemos uso de este concepto en OOP para evitar la repetición del código (reutilización del código y propiedad importante del buen código). Por ejemplo, tanto el Ferrari como el Porsche tendrán cuatro ruedas, un acelerador, una caja de cambios. Todas estas funciones se pueden escribir una vez y se aplican a los automóviles en general, y tanto Ferrari como Porsche HERECEN estas funciones. Pero el Porsche tal vez tenga un turbocompresor, que es exclusivo del Porsche, escribimos esta función por separado para el Porsche.

El polimorfismo es un concepto bastante incomprendido incluso entre los ingenieros informáticos, pero tomando un ejemplo del mundo real, considere a cualquier persona normal. Esa persona tal vez tenga una familia, amigos y un trabajo. Se comporta como cónyuge, padre, progenie, amigo o compañero de trabajo, dependiendo de con quién interactúa en ese momento. Él / ella es la misma persona, pero desempeña diferentes roles, adopta muchas formas, que es literalmente la traducción de la palabra polimorfismo; muchas formas. Este concepto se usa en OOP para, nuevamente, reducir el código. Por ejemplo, suponga que está construyendo una pantalla de selección de automóvil en su juego de carreras, desea presentar al usuario todos los automóviles para que él elija. Puede haber 5 Ferraris diferentes, 3 Porsches diferentes y otros además. Puede mostrar muy bien todos los Ferrari primero, luego todos los Porsches y luego los demás, o simplemente puede tratar a cada uno como un miembro de su clase principal, es decir, “Autos”, y mostrar todos los autos. Me doy cuenta de que las personas que no están familiarizadas con la codificación tal vez no vean el problema aquí, pero es difícil ser más claro sin explicar realmente los conceptos básicos de la codificación y las expresiones escritas, lo que alargará esta respuesta a una longitud aún más monstruosa de lo que ya es. .

Otro concepto puede ser la multitarea. Casi todos los sistemas operativos, incluso en los teléfonos inteligentes de hoy, admiten la multitarea. Las computadoras tienen un procesador, que hace toda la computación real. Por lo general, un procesador solo puede realizar una operación a la vez (existen núcleos duales o cuádruples o procesadores con aún más núcleos que pueden realizar 2 o 4 o más operaciones a la vez). El tiempo que le toma al procesador realizar una operación se llama ciclo de reloj del procesador. Cuanto mayor es la frecuencia de un procesador, más ciclos de reloj tiene en un segundo y, por lo tanto, tiene una mayor potencia de cálculo. Pero esto es problemático porque solo un programa puede ejecutarse a la vez.

Esta es una de las razones por las que necesitamos un sistema operativo (SO). Cuando inicia su computadora, un pequeño programa llamado cargador de arranque carga su sistema operativo. Desde entonces hasta que apague su máquina, el sistema operativo siempre se está ejecutando. Todo el hardware de la máquina está controlado por el sistema operativo. Cuando inicia un nuevo programa, por ejemplo Word, el sistema operativo crea un nuevo proceso. Cada proceso tiene algo llamado un bloque de control de proceso (PCB) que contiene toda la información sobre ese proceso. Ahora imagine que está ejecutando 10 procesos simultáneamente. El sistema operativo hace una cola de los PCB de los diversos procesos. Lleva el proceso a la cabeza de la cola y asigna la cantidad requerida de potencia / recursos informáticos (tiempo de CPU, memoria, etc.) al proceso durante un período de tiempo específico. Luego, el sistema operativo mueve el proceso al final de la cola (no siempre depende de algo llamado algoritmo de programación) y permite que se ejecute el siguiente proceso en la cola y así sucesivamente. Esto es como un debate. El moderador le da a cada orador la oportunidad de presentar su caso, y una vez que ha hablado, debe esperar su próximo turno antes de volver a hablar. Finalmente, todos pueden decir todo lo que quisieran decir.

More Interesting

¿Pueden las máquinas cometer errores?

¿Cuáles son los principales aspectos del aprendizaje automático que utiliza Microsoft y cómo se aplican realmente?

¿Cómo explicarías la diferencia entre el aprendizaje automático y el aprendizaje profundo a un niño de 13 años?

¿Vale la pena ir a una conferencia sin publicación?

¿Son útiles las soluciones de aprendizaje automático?

¿Por qué es importante encontrar tantos números primos como sea posible o tantos dígitos de pi como sea posible?

¿Cuál es una buena explicación de la nueva Transformada de Fourier Rápida y Escasa del MIT para personas no técnicas?

¿Cómo puedo actualizar el BIOS de una computadora? ¿Cuáles son algunas indicaciones de que el BIOS necesita una actualización?

¿Cuáles son las ventajas de usar la utilidad 'screen' de Unix sobre múltiples pestañas de terminal?

¿Cómo resumiría las ideas centrales del aprendizaje automático y el aprendizaje profundo?

Si pudiéramos programar los quarks y todo lo que pueden hacer, y decir, el poder de procesamiento y la memoria disponible está cerca del infinito, ¿podríamos crear otra variación del universo, o lo que la gente llama un universo paralelo?

¿Qué es OLAP (procesamiento analítico en línea) y para qué se utiliza?

¿Durante cuánto tiempo se seguirá aplicando la Ley de Moore?

¿Cuáles son los pros y los contras de ir a la UC Santa Cruz para la informática? ¿Cómo pesa UCSC en comparación con otras universidades en términos de CS y empleo después de la universidad?

Cómo ganar experiencia en Machine Learning