Please enable JavaScript.
Coggle requires JavaScript to display documents.
Conceptos básicos de la programación. - Coggle Diagram
Conceptos básicos de la programación.
Software de sistemas: Conjunto de programas que actúan como intermediado entre el usuario, las aplicaciones y hardware de un usuario
caracteristicas
no tiene propósito especifico
Gestiona recursos como la CPU, almacenamiento etc.
Es esencial para el funcionamiento de la computadora
proporciona interfaz entre el hardware y el usuario
Tipos de sistemas
Utilidades del sistemas
Antivirus, limpiadores de disco, compresores de archivos etc.
Firmware
BIOS/UEFI en una placa base
Controladores de dispositivos (drivers)
Un diver de NVIDIA para tarjeta grafica
Hiperservidores
VMware, VirtualBox, Hyper-V
Sistemas operativos(IOS)
Windows, macOS, Linux, Android, IOS
Bootloaders(gestores de arranque)
GRUB(Usado en muchas distribuidores de Linux
Funciones
Gestión de dispositivos
Seguridad
Gestión de archivos
Interfaz del usuario
Gestión de memoria
Gestión de procesos
Software de aplicación: Es un tipo de software diseñado para realizar tareas especificas para el usuario.
Características
No esencial para el arranque
la computadora funciona a nivel de sistema operativo
Tareas especificas
procesar texto, comunicarse, etc.
:Depende del software de sistemas
necesita de un sistema operativo para poder ejecutarse
Enfocado al Usuario
Esta hecho para personas con pocos conocimientos técnicos
Tipos de software de aplicación
Software de Comunicación
Editores de Multimedia
Clientes de Correo
Software de Negocios
Navegadores Web
Software Educativo
Suite Ofimática
Videojuegos
Algoritmo: Conjunto de pasos definidos, ordenados y finitos que se siguen para resolver un problema o realizar una tarea
Caracteristicas
Finitud
Debe de terminar en algún momento (tener un fin)
Entrada(Input)
Puede recibir datos iniciales para procesar
Orden
Los pasos deben de seguir una secuencia logica
Salida(Output
Debe dar un resultado o solución
precisión:
Cada paso debe de estar de manera clara y sin ambigüedades
Efectividad
Cada paso debe de ser viable de ejecutar con los recursos disponibles
Algoritmos en programación
Condicionales: Tomar decisiones (if, else).
Bucles: repetir condición (for, while)
Secuencias: Ejecutar pasos en orden.
Tipos de algoritmos comunes
Algoritmos de ordenamiento: (quicksort, bubblessort)
Algoritmos recursivos: (calculo de factoriales)
Algoritmos de búsqueda: (búsqueda binarios)
Algoritmos voraces: Resuelven problemas tomando la mejor decisión
Representación
Seudocódigo: un lenguaje intermedio entre el natural y programación
Código en lenguaje de Programación: c++, python, java etc.
Diagrama de flujo: por medio de simbolos
Lenguaje natural: por medio de pasos
Programación: Proceso de tomar un algoritmo y traducirlo a un lenguaje de programación para crear un programa
Objetivo
Reconocimiento de patrones
Abstracción
Descomposición
Algoritmo
Conceptos
Estructura de control
If, Else, Elif
Bucles (loops)
Ford, While
Tipos de Datos
int(Entero), Str (texto), Bool (boleano)
Funciones
Def mi_funcion():
Variables
Edad=25, Nombre= "carlos"
Estructura de datos
listas = [1, 2, 3], Diccionarios = {"clave"}: {"valor"}
Importancia
Creación de software
Sistemas operativos, apps móviles, videojuegos, navegadores web
Innovación
Inteligencia artificial, Big data, internet de las cosas (loT), realidad virtual.
Resolución de problemas complejos
Simular el clima, optimizar rutas de entrega
Automatización
Procesar nominas, analizar miles de documentos
Lenguaje de Programa: Conjunto de reglas sintácticas y semánticas que permite a un programador escribir instrucciones para que una computadora las ejecute
Caracteristicas
Semánticas: (que hace cada comando)
Abstracción: (no necesita saber electrónica para programar)
Sintaxis: (como se escriben las instrucciones)
Propósito general especifico: (algunos lenguajes son versátiles y otros están diseñados para áreas concretas
Tipos de lenguajes
Según su nivel de Abstracción
Lenguaje de bajo nivel
Lenguaje maquina: (binarios, 0s y 1s) Ensamblador (usa mnemónicos)
Lenguaje de alto nivel
Python, Java, C++, JavaScript
Según su paradigma de programación
Funcional
Haskell, Erlang, Scala
Lógico
Prolog
Orientada a objetos (POO)
Java, C++, Python, C#
Multiparadigma
Python, JavaScript, C++
Imperactivo
C, Pascal
Ejemplos de Lenguajes
C#
Desarrollo de videojuegos, aplicaciones, canciones, Windows
C/C++
Sistemas operativos, motores de juegos, software de alto rendimiento
Java
Aplicaciones empresariales, Android, Sistemas grandes
PHP
Desarrollo web (wordPress, Laravel)
JavaScript
Desarrollo web y backend (Aplicaciones móviles)
SQL
no es un lenguaje de programación en general sino un lenguaje de consulta para gestionar y manipular bases de datos
Python
Ciencias de datos, IA, web backend, auto matización
Programa: Conjunto de instrucciones escritas en un lenguaje de programación que le indica a una computadora como realizar una tarea.
Caracteristicas
Ejecutable
Puede ser ejecutado por la computadora
Hecho de código
se crea escribiendo código fuente en un lenguaje de programación
Realiza una función
Esta diseñado para resolver un problema
Compresible para la maquina
Esta traducido a un lenguaje que el hardware puede interpretar (código binario o maquina)
Creación de un programa
Compilación/Interpretación
Este código fuente se traduce a lenguaje de maquina
Compilación: traduce todo el código de una vez a un archivo ejecutable
Interpretación: traduce y ejecuta el código linea por linea
Pruebas (Testing)
Se busca y corrigen errores
Implementación (codificación)
Se escribe el código fuente en un lenguaje de programación elegido
Despliegue (Deployment)
Se distribuye e instala el programa para que los usuarios finales lo usen
Diseño
Se crea algoritmos y se planifica la estructura del programa
Mantenimiento
Se actualiza el programa para corregir nuevos errores
Análisis y planificación
Se define el problema que el programa debe resolver
Tipos de programas
Programas del sistema
Sistemas operativo, controladores de dispositivos, utilidades de disco
Librerías o bibliotecas
NumPy (para cálculos en Python) React (para construir interfaces de usuarios en JavaScript)
Programas de aplicación (Apps)
Navegadores web (Chrome) , Editores de texto (Word) , Videojuegos (Minecraft) , Reproductor de musica (Spotyfy)
Scripts
Un Script en Python para renombrar 100 archivos por lotes (.bat) en Windows
Componentes
Archivos de datos
Documentación
Código fuente
Ejecutable
Traductor
Compilador: Un compilador es un traductor que toma el código fuente completo
Características
Velocidad
la traducción ya esta hecha
Detección de errores
Detecta los errores de sintaxis antes de la ejecución
Salida
Genera un archivo ejecutable (código-maquina)
portabilidad
se ejecuta específicamente en una plataforma (OS, hardware)
Entrada
Todo el programa (Archivo fuente completo)
Uso de memoroa
El ejecutable consume memoria, pero el compilador no se necesita despues
Interprete: Es un traductor que lee, traduce y ejecuta el código fuente linea por linea
Caracteristicas
Salida
No genera un archivo ejecutable
Velocidad
Ejecución mas lenta (Traduce sobre la marcha)
Entrada
Una linea o instrucciones a la vez
Detección de errores
Se detiene al primer error que encuentra durante la ejecucion
Uso de memoria
El interprete debe de estar residente en la memoria durante la ejecucion
Portabilidad
El código es portátil, funciona desde que haya un interprete