{"id":22568366,"url":"https://github.com/vanstrouble/basic-programming-lsia-class","last_synced_at":"2025-03-28T13:43:53.949Z","repository":{"id":184861463,"uuid":"672590049","full_name":"vanstrouble/basic-programming-lsia-class","owner":"vanstrouble","description":"All homeworks, projects and stuffs of Basic Programming LSIA class | UG","archived":false,"fork":false,"pushed_at":"2023-07-30T16:28:00.000Z","size":14990,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T14:14:02.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vanstrouble.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-30T15:45:41.000Z","updated_at":"2024-08-07T04:07:46.000Z","dependencies_parsed_at":"2023-07-30T17:30:05.533Z","dependency_job_id":null,"html_url":"https://github.com/vanstrouble/basic-programming-lsia-class","commit_stats":null,"previous_names":["vanstrouble/basic-lsia-class","vanstrouble/basic-programming-lsia-class"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanstrouble%2Fbasic-programming-lsia-class","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanstrouble%2Fbasic-programming-lsia-class/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanstrouble%2Fbasic-programming-lsia-class/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanstrouble%2Fbasic-programming-lsia-class/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vanstrouble","download_url":"https://codeload.github.com/vanstrouble/basic-programming-lsia-class/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246041444,"owners_count":20714138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T00:12:54.932Z","updated_at":"2025-03-28T13:43:53.928Z","avatar_url":"https://github.com/vanstrouble.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Programación básica\n\n## Definición de “Programación”\n\nLa programación es el proceso de crear instrucciones que una computadora puede seguir para llevar a cabo una tarea específica. Consiste en escribir código en un lenguaje de programación que se traduce en instrucciones comprensibles por la computadora.\n\n## Conceptos básicos\n\n- **Algoritmo**\n\nEs una serie de pasos o instrucciones que resuelven un problema o realizan una tarea específica. Los algoritmos son la base de la programación y se utilizan para diseñar soluciones.\n\n**Lenguaje de programación**\n\nEs un conjunto de reglas y símbolos utilizados para escribir programas informáticos. Algunos ejemplos populares de lenguajes de programación son Python, Java, C++, JavaScript, entre otros.\n\n- **Variables**\n\nSon contenedores utilizados para almacenar valores en la memoria de un programa. Puedes asignar un valor a una variable y luego utilizarla en tu código. Por ejemplo, **`edad = 25`**.\n\n- **Tipos de datos**\n\nRepresentan el tipo de información que se puede almacenar en una variable. Algunos tipos de datos comunes incluyen números enteros (int), números de punto flotante (float), cadenas de texto (str), booleanos (bool), listas, diccionarios, entre otros.\n\n- **Estructuras de control**\n\nPermiten controlar el flujo de ejecución en un programa. Algunas estructuras de control comunes son las instrucciones condicionales (if-else) y los bucles (for, while) que te permiten tomar decisiones y repetir tareas según ciertas condiciones.\n\n- **Funciones**\n\nEs un bloque de código que realiza una tarea específica. Puedes definir tus propias funciones y reutilizarlas en diferentes partes de tu programa. Las funciones ayudan a organizar y modularizar el código.\n\n- **Depuración**\n\nEs el proceso de encontrar y corregir errores en el código. Es común que los programadores encuentren errores mientras desarrollan sus programas y la depuración es una habilidad importante para resolver problemas y mejorar el rendimiento del software.\n\n## Buenas prácticas de programación\n\n- **Nomenclatura descriptiva:**\n\nUtilizar nombres significativos para las variables, funciones y clases, de modo que reflejen su propósito y función en el programa. Evitar nombres ambiguos o demasiado cortos.\n\n- **Indentación y espaciado consistente:**\n\nAplicar una indentación consistente para mejorar la legibilidad del código. Utilizar espacios en blanco adecuados para separar bloques de código y operadores.\n\n- **Comentarios claros y concisos:**\n\nIncluir comentarios en el código para explicar su lógica, su funcionamiento y cualquier otra información relevante. Los comentarios deben ser claros, concisos y utilizarse de manera efectiva para facilitar la comprensión del código.\n\n- **Modularización y reutilización de código:**\n\nDividir el código en funciones y módulos más pequeños y coherentes para facilitar la comprensión y la reutilización. Evitar la duplicación de código y buscar oportunidades para crear funciones genéricas y reutilizables.\n\n- **Manejo adecuado de errores y excepciones:**\n\nImplementar mecanismos de manejo de errores y excepciones para capturar y manejar errores de manera adecuada. Proporcionar mensajes de error claros y útiles para facilitar la depuración.\n\n- **Documentación del código:**\n\nProporcionar documentación clara y concisa que explique el propósito y la funcionalidad del código. Utilizar comentarios o herramientas de generación de documentación para crear documentación legible y actualizada.\n\n- **Pruebas unitarias:**\n\nEscribir pruebas unitarias para verificar el correcto funcionamiento de partes individuales del código. Las pruebas unitarias ayudan a detectar y corregir errores de forma temprana y garantizan que los cambios posteriores no introduzcan regresiones.\n\n- **Adherencia a estándares de estilo:**\n\nSeguir un estándar de estilo de codificación consistente, como PEP 8 en el caso de Python, para mantener la consistencia y facilitar la lectura del código.\n\n## Lectura recomendada\n\n### Introducción a la programación\n\n\u003ca href=\"Docs/01 Introducción a la programación/1988 - Tremblay - Introducción a las Ciencias de la Computacion enfoque algoritmico, Chapter2.pdf\" download\u003e1988 - Tremblay - Introducción a las Ciencias de la Computacion enfoque algoritmico, Chapter 2\u003c/a\u003e\n\n\u003ca href=\"Docs/01 Introducción a la programación/2004 - Concepts, Techniques, and Models of Computer Programming.pdf\" download\u003e2004 - Concepts, Techniques, and Models of Computer Programming\u003c/a\u003e\n\n\u003ca href=\"Docs/01 Introducción a la programación/2014 - Stevanovic - Advanced C and C Compiling, Chapter 2.pdf\" download\u003e2014 - Stevanovic - Advanced C and C Compiling, Chapter 2\u003c/a\u003e\n\n### Control de flujo\n\n\u003ca href=\"Docs/02 Control de flujo/2020 - Szuhay - Learning C Programming, Chapter 6,7.pdf\" download\u003e2020 - Szuhay - Learning C Programming, Chapter 6, 7\u003c/a\u003e\n\n### Elementos del lenguaje de programación\n\n\u003ca href=\"Docs/03 Elementos del lenguaje de programación/2020 - Szuhay - Learning C Programming, Chapter 4,5.pdf\" download\u003e2020 - Szuhay - Learning C Programming, Chapter 4, 5\u003c/a\u003e\n\n### Punteros\n\n\u003ca href=\"Docs/Punteros/2013 - Reese - Understanding and Using C Pointers, Chapter 1,2.pdf\" download\u003e2013 - Reese - Understanding and Using C Pointers, Chapter 1, 2\u003c/a\u003e\n\n---\n\n## Personajes históricos de la programación\n\n- Ada Lovelace\n\nMatemática británica del siglo XIX, es considerada la primera programadora de la historia. Trabajó en colaboración con Charles Babbage en la máquina analítica, un dispositivo mecánico de propósito general que se considera precursor de las computadoras modernas. Ada Lovelace escribió lo que se considera el primer algoritmo destinado a ser procesado por una máquina, lo que la convierte en una figura fundamental en la historia de la programación.\n\n- Alan Turing\n\nMatemático y científico de la computación británico que hizo contribuciones fundamentales al campo de la computación y la inteligencia artificial. Durante la Segunda Guerra Mundial, Turing trabajó en descifrar los códigos de la máquina Enigma utilizada por las fuerzas alemanas. Sus trabajos teóricos sentaron las bases de la ciencia de la computación y el concepto de una \"máquina universal\" capaz de realizar cualquier cálculo lógico.\n\n- Grace Hopper\n\nCientífica de la computación estadounidense conocida por su trabajo en el desarrollo del primer compilador, un programa que traduce el código fuente escrito en lenguaje de programación a código de máquina ejecutable. Hopper también fue pionera en el desarrollo del lenguaje de programación COBOL, utilizado ampliamente en aplicaciones empresariales.\n\n- Dennis Ritchie y Ken Thompson\n\nSon conocidos por desarrollar el lenguaje de programación C y el sistema operativo UNIX en los laboratorios Bell a principios de la década de 1970. El lenguaje C se convirtió en un lenguaje fundamental en el desarrollo de sistemas operativos y aplicaciones de bajo nivel, y UNIX sentó las bases para muchos sistemas operativos modernos.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanstrouble%2Fbasic-programming-lsia-class","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvanstrouble%2Fbasic-programming-lsia-class","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanstrouble%2Fbasic-programming-lsia-class/lists"}