Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Jorge Salgado Miranda

Si lo que te interesa es practicar con ejercicios estas en el lugar correcto. Al pasar a los ejercicios aprenderemos buenas practicas y tips para programar de una manera mas eficiente que te servirán para cualquier lenguaje de programación posterior con la ayuda de Visual Studio Code Y CLion.

¿Qué es C?

Read more

Si lo que te interesa es practicar con ejercicios estas en el lugar correcto. Al pasar a los ejercicios aprenderemos buenas practicas y tips para programar de una manera mas eficiente que te servirán para cualquier lenguaje de programación posterior con la ayuda de Visual Studio Code Y CLion.

¿Qué es C?

C es el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C, se ha producido porque este lenguaje no está prácticamente asociado a ningún sistema operativo, ni a ninguna máquina, en especial. Ésta es la razón fundamental, por la cual C, es conocido como el lenguaje de programación de sistemas, por excelencia.

Ventajas de C:

  • El lenguaje C es poderoso y flexible, con órdenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.

  • C se utiliza por programadores profesionales para desarrollar software en la mayoría de los modernos sistemas de computadora.

  • Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.

  • Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación

En este curso Aprenderás:

Elementos Básicos

Operaciones y Expresiones

Estructuras de Selección

Estructuras de Control con Bucles

La librería String.h

Funciones

Arreglos con Listas y Tablas

Estructuras

Apuntadores

Manejo de Archivos

Cadenas

Headers

Proyecto (Contabilizar gastos)

Memoria Estática vs Memoria Dinámica

Asignación Dinámica de memoria

Algoritmos de Ordenamiento

Algoritmos de Búsqueda

CLion

Refuerzo Antes de Estructura de datos

Introducción a las Estructuras de datos

Estructuras de datos dinámicas Lineales

Implementación de la Pila (usando Arreglos)

Implementación de la Cola (usando Arreglos)

Teoría de Listas

Repaso Listas Ligadas

Lista Simplemente Enlazada

Lista Ligada Simplemente Enlazada

Lista Ligada Circular

Lista Ligada Doble

Lista Ligada Circular Doble

Pilas

Colas

Arboles

Grafos

Libros recomendados para fortalecer lo Aprendido

Enroll now

What's inside

Learning objectives

  • Elementos básicos
  • Operaciones y expresiones
  • Estructuras de selección
  • Estructuras de control con bucles
  • La libreria string.h
  • Funciones
  • Arreglos con listas y tablas
  • Estructuras
  • Apuntadores
  • Manejo de archivos
  • Cadenas
  • Headers
  • Proyecto (contabilizar gastos)
  • Memoria estática vs memoria dinámica
  • Asignación dinámica de memoria
  • Algoritmos de ordenamiento
  • Algoritmos de búsqueda
  • Clion
  • Refuerzo antes de estructura de datos
  • Introducción a las estructuras de datos
  • Estructuras de datos dinámicas lineales
  • Implementación de la pila (usando arreglos)
  • Implementación de la cola (usando arreglos)
  • Teoría de listas
  • Lista simplemente enlazada
  • Repaso listas ligadas
  • Lista ligada simplemente enlazada
  • Lista ligada circular
  • Lista ligada doble
  • Lista ligada circular doble
  • Pilas
  • Colas
  • Arboles
  • Grafos
  • Libros recomendados para fortalecer lo aprendido
  • Curso gratis
  • Show more
  • Show less

Syllabus

Introducción
Importante
Antes de Empezar el Curso
¿Cómo Calificar el Curso?
Read more

Examen para corroborar lo aprendido en la sección de Elementos Básicos

En este examen reforzaras lo aprendido de Operadores y expresiones básicas

Examen para fortalecer lo aprendido en la sección de Estructuras de Selección

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Begins with the fundamentals of C, which provides a solid foundation for novice programmers to grasp core programming concepts and build a strong base for future learning
Covers static versus dynamic memory allocation, which is essential for writing efficient and robust C programs and understanding how memory is handled at a lower level
Explores fundamental data structures like stacks, queues, linked lists, trees, and graphs, which are crucial for efficient data organization and problem-solving in computer science
Includes numerous exercises and a project to contabilizar gastos, which allows learners to apply their knowledge and develop practical programming skills through hands-on experience
Utilizes Visual Studio Code and CLion, which are modern integrated development environments that provide debugging tools and other features that enhance the coding experience
Requires learners to download Dev C++ or CodeBlocks, which may present a barrier to entry for some learners who may not have access to these tools or the technical skills to install them

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Programación c desde cero a estructuras de datos

Según los estudiantes, este curso ofrece una base muy sólida en programación en C, ideal para quienes parten desde cero. Muchos elogian la claridad del instructor y la gran cantidad de ejercicios prácticos que ayudan a consolidar el aprendizaje de temas fundamentales como variables, estructuras de control y funciones. La sección de estructuras de datos es vista como un punto fuerte, cubriendo listas, pilas, colas, árboles y grafos, aunque algunos señalan que el paso a estos temas puede ser un poco desafiante si no se practica lo suficiente. La inclusión de un proyecto final es apreciada por permitir aplicar los conocimientos.
Permite aplicar conocimientos.
"El proyecto de contabilizar gastos fue una excelente forma de poner en práctica todo."
"Me gustó el proyecto final, integra varios temas del curso."
"El proyecto es un buen cierre para consolidar lo aprendido."
"Es muy útil tener un proyecto práctico al final."
Temas avanzados bien cubiertos.
"La sección de estructuras de datos es muy completa, cubre desde listas hasta árboles y grafos."
"Es excelente que el curso llegue a cubrir temas como árboles y grafos."
"Aprender la implementación de pilas y colas fue muy útil."
"La parte de listas ligadas es muy detallada y bien explicada."
La enseñanza del profesor es muy efectiva.
"El profesor explica de manera muy clara y concisa, fácil de seguir."
"Me gustó mucho la metodología del instructor, hace que temas complejos sean comprensibles."
"El profesor tiene una gran pasión por enseñar y se nota."
"Sus explicaciones son detalladas y va directo al grano."
Ideal para practicar y consolidar.
"La cantidad de ejercicios es fantástica, realmente ayuda a practicar lo aprendido."
"Hay muchísimos ejercicios para cada tema, lo que es crucial en programación."
"Los ejercicios son variados y cubren bien los conceptos."
"Aprecio mucho los ejercicios propuestos, son clave para entender la teoría."
Excelente punto de partida para aprender C.
"Este curso es una excelente introducción a C, el instructor explica todo desde cero."
"Empecé sin saber nada de C y siento que he construido una base muy sólida."
"Ideal para principiantes. Cubre los fundamentos de manera clara."
"Me ha ayudado mucho a entender los conceptos básicos de programación en C."
Puede ser un desafío para algunos.
"El salto a apuntadores y estructuras de datos fue un poco abrupto para mí."
"Aunque la explicación es buena, la parte de estructuras de datos requiere mucha práctica extra."
"Sentí que la dificultad aumentó considerablemente al llegar a las estructuras dinámicas."
"Es necesario repasar mucho los temas de memoria y apuntadores antes de las estructuras."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Programación en C de Cero a Experto con Estructuras de Datos with these activities:
Repasar los Tipos de Datos en C
Refrescar los conceptos de tipos de datos en C para comprender mejor las operaciones y expresiones del curso.
Browse courses on Variables
Show steps
  • Revisar apuntes y ejemplos de código sobre tipos de datos básicos (int, float, char, etc.).
  • Resolver ejercicios sencillos de declaración y asignación de variables.
  • Investigar sobre la representación interna de los tipos de datos en la memoria.
Revisar 'El Lenguaje de Programación C' de Kernighan y Ritchie
Consultar el libro de Kernighan y Ritchie para profundizar en los conceptos del lenguaje C y resolver dudas.
Show steps
  • Leer los capítulos relevantes a los temas del curso (tipos de datos, funciones, punteros).
  • Resolver los ejercicios propuestos en el libro.
  • Comparar el código del libro con el propio código para identificar mejoras.
Ejercicios de Estructuras de Selección (IF, ELSE, SWITCH)
Practicar con ejercicios de estructuras de selección para dominar el flujo de control en C.
Show steps
  • Resolver ejercicios de IF/ELSE para diferentes condiciones lógicas.
  • Implementar menús interactivos usando la sentencia SWITCH.
  • Crear programas que validen entradas de usuario con estructuras de selección.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Revisar 'C: Guía de programación' de Herbert Schildt
Utilizar la guía de Schildt como complemento al curso para reforzar los conceptos y practicar con ejemplos.
View C++. on Amazon
Show steps
  • Leer los capítulos correspondientes a los temas del curso.
  • Ejecutar y modificar los ejemplos de código del libro.
  • Resolver los ejercicios propuestos y comparar las soluciones con las del libro.
Crear un Tutorial de Bucles en C
Crear un tutorial sobre bucles (WHILE, FOR, DO-WHILE) para solidificar la comprensión y ayudar a otros estudiantes.
Show steps
  • Escribir ejemplos de código claros y concisos para cada tipo de bucle.
  • Explicar las diferencias y casos de uso de cada bucle.
  • Incluir ejercicios resueltos y propuestos para practicar.
  • Publicar el tutorial en un blog o foro de programación.
Proyecto: Calculadora con Funciones en C
Desarrollar una calculadora que utilice funciones para realizar operaciones aritméticas, reforzando el concepto de modularidad.
Show steps
  • Definir funciones para suma, resta, multiplicación y división.
  • Crear una función principal que gestione la entrada y salida de datos.
  • Implementar un menú para seleccionar la operación deseada.
  • Añadir validación de errores (división por cero, entrada no numérica).
Contribuir a un Proyecto Open Source en C
Contribuir a un proyecto de código abierto escrito en C para ganar experiencia práctica y aprender de otros desarrolladores.
Show steps
  • Buscar un proyecto open source en C que te interese en GitHub o GitLab.
  • Leer la documentación del proyecto y familiarizarte con su código base.
  • Identificar un bug o una funcionalidad que puedas implementar.
  • Enviar un pull request con tu solución y recibir feedback de los mantenedores.

Career center

Learners who complete Programación en C de Cero a Experto con Estructuras de Datos will develop knowledge and skills that may be useful to these careers:
Desarrollador de Software Embebido
Un desarrollador de software embebido se encarga de crear el software que controla dispositivos electrónicos, desde electrodomésticos hasta sistemas automotrices. Este curso, al ofrecer una base sólida en el lenguaje C, un lenguaje fundamental en la programación de sistemas embebidos, ayuda a construir una base para esta carrera. Se aprende a trabajar con estructuras de datos y algoritmos, habilidades esenciales para optimizar el rendimiento y la eficiencia del software en entornos con recursos limitados, lo cual es común en sistemas embebidos. Además, el curso cubre el manejo de memoria y archivos, herramientas críticas para el desarrollo de software embebido robusto y confiable.
Ingeniero de Sistemas
Un ingeniero de sistemas diseña, implementa y gestiona la infraestructura tecnológica de una organización. Este curso resulta muy valioso, ya que C es un lenguaje de bajo nivel que proporciona un profundo entendimiento de cómo interactúan el hardware y el software, un conocimiento fundamental para los ingenieros de sistemas. El curso cubre temas como el manejo de memoria, la implementación de estructuras de datos, y algoritmos de ordenamiento y búsqueda, habilidades que te permiten optimizar el rendimiento de los sistemas y resolver problemas complejos. Además, el desarrollo de proyectos prácticos, como el de contabilizar gastos, ayuda a aplicar los conocimientos teóricos a situaciones reales, preparando a los estudiantes para los desafíos del mundo laboral. El ingeniero de sistemas se beneficiará del curso.
Programador de Videojuegos
Un programador de videojuegos se encarga de escribir el código que da vida a los juegos, desde la lógica del juego hasta la interacción con el usuario. El curso, al enseñar C, un lenguaje ampliamente utilizado en el desarrollo de videojuegos, ayuda a construir una base sólida para esta carrera. Se aprende a trabajar con estructuras de datos y algoritmos, habilidades esenciales para optimizar el rendimiento de los juegos, especialmente en áreas como la gestión de memoria y la detección de colisiones. Las estructuras de datos vistas en este curso, tales como pilas, colas, árboles y grafos, son aplicables al mundo del desarrollo de frameworks y motores de videojuegos.
Desarrollador de Compiladores
Un desarrollador de compiladores crea las herramientas que traducen el código fuente de un lenguaje de programación a código ejecutable por la máquina. El curso, al centrarse en C, un lenguaje fundamental en la creación de compiladores, ayuda a construir una base sólida para esta carrera. Al aprender el manejo de memoria y archivos, se puede comprender cómo se gestionan los recursos durante la compilación. Además, el estudio de estructuras de datos como pilas, colas y árboles, es esencial para la construcción de la tabla de símbolos y la optimización del código. El desarrollador de compiladores tendrá las herramientas para comprender la arquitectura de un compilador moderno.
Analista de Datos
Un analista de datos examina grandes conjuntos de datos para identificar tendencias, patrones y conocimientos que ayuden a la toma de decisiones en una organización. Este curso puede ser útil, ya que proporciona una base en programación y lógica algorítmica. El conocimiento de estructuras de datos y algoritmos de búsqueda y ordenamiento es valioso para procesar y analizar datos de manera eficiente. Asimismo, la capacidad de trabajar con archivos y manipular cadenas de texto puede ser útil para limpiar y transformar los datos antes de analizarlos. El analista de datos puede refinar sus habilidades con este curso.
Científico de datos
Un científico de datos utiliza técnicas estadísticas, aprendizaje automático y análisis de datos para extraer conocimiento y valor de grandes conjuntos de datos. Un científico de datos requiere una formación avanzada (maestría o doctorado). Sin embargo, este curso puede ser útil, ya que proporciona una base en programación y lógica algorítmica. El conocimiento de estructuras de datos y algoritmos de búsqueda y ordenamiento es valioso para procesar y analizar datos de manera eficiente. El curso ayudaría a construir una base con los conocimientos de C.
Ingeniero de redes
Un ingeniero de redes diseña, implementa y gestiona las redes de comunicación de datos de una organización. El conocimiento de C, un lenguaje utilizado en el desarrollo de software de red y protocolos de comunicación, puede ser útil. Se aprende a trabajar con archivos y a desarrollar programas que interactúan con el sistema operativo, habilidades que ayudarían a los ingenieros de redes a comprender mejor el funcionamiento de los sistemas de comunicación. Los conocimientos transmitidos por este curso pueden ser de utilidad para el ingeniero de redes.
Administrador de bases de datos
Un administrador de bases de datos se encarga de la gestión, mantenimiento y seguridad de las bases de datos de una organización. Si bien este curso no se centra directamente en la administración de bases de datos, el conocimiento de C puede ser útil para comprender cómo funcionan los sistemas de bases de datos a bajo nivel, incluyendo cómo se gestiona la memoria y cómo se implementan las estructuras de datos. Los conocimientos transmitidos por este curso pueden ser de utilidad para el administrador de bases de datos.
Consultor de Tecnología
Un consultor de tecnología asesora a las organizaciones sobre cómo utilizar la tecnología para alcanzar sus objetivos de negocio. Este curso, al proporcionar una base en programación y lógica algorítmica, puede ser útil para comprender los aspectos técnicos de las soluciones que se proponen a los clientes. El conocer los detalles de como se usa el lenguaje C, puede ayudar a la hora de trabajar con clientes de otras lenguas. El consultor de tecnología puede usar los conocimientos de este curso.
Especialista en Ciberseguridad
Un especialista en ciberseguridad protege los sistemas informáticos y las redes de una organización contra amenazas cibernéticas. Un especialista en ciberseguridad requiere una formación avanzada. Sin embargo, el curso enseña a trabajar con memoria, archivos y estructuras de datos, lo cual puede ser útil para comprender cómo funcionan los sistemas a bajo nivel y cómo se pueden explotar las vulnerabilidades. El curso, entonces, puede ayudar a construir una base sólida para esta carrera. El especialista en ciberseguridad reforzará su base con este curso.
Tester de Software
Un tester de software verifica la calidad del software mediante la ejecución de pruebas y la identificación de errores. El curso ofrece conocimientos sobre programación y estructuras de datos, lo cual ayuda a comprender cómo funciona el software y cómo identificar posibles puntos débiles. El conocimiento transmitido por este curso podría ser de utilidad para el tester de software.
Escritor Técnico
Un escritor técnico crea documentación clara y concisa para productos y servicios técnicos. Este curso puede ser útil, ya que proporciona una comprensión básica de los conceptos de programación, lo cual le permite comunicarse de manera más efectiva con los desarrolladores y comprender mejor los productos que está documentando. El escritor técnico puede encontrar utiles los conocimientos adquiridos en este curso.
Diseñador de Interfaz de Usuario
Un diseñador de interfaz de usuario crea interfaces intuitivas y fáciles de usar para aplicaciones y sitios web. Este curso puede ser útil, ya que proporciona una comprensión básica de cómo funciona el software, lo cual le permite crear diseños que sean factibles de implementar y que tengan en cuenta las limitaciones técnicas. El diseñador de interfaz de usuario puede encontrar los conocimientos del curso de valor.
Gerente de Proyectos de Tecnología
Un gerente de proyectos de tecnología supervisa la planificación, ejecución y finalización de proyectos tecnológicos. Si bien no es directamente relacionado con la gestión de proyectos, el curso le permite comunicarse de manera más efectiva con los miembros del equipo técnico y tomar decisiones más informadas. Los conocimientos de C podrían servir de complemento a sus conocimientos de gestión.
Representante de Ventas Técnicas
Un representante de ventas técnicas vende productos y servicios tecnológicos a clientes. Este curso puede ser útil, ya que proporciona una comprensión básica de la tecnología, que le permite comprender las necesidades de los clientes y presentar soluciones de manera más efectiva. El representante de ventas técnicas puede encontrar utiles los conocimientos adquiridos en este curso.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Programación en C de Cero a Experto con Estructuras de Datos.
Este libro es la referencia clásica para aprender C. Escrito por los creadores del lenguaje, proporciona una explicación concisa y completa de todas las características de C. Es especialmente útil para comprender los fundamentos del lenguaje y las mejores prácticas de programación. Este libro es comúnmente usado como un libro de texto en instituciones académicas.
Save
Este libro ofrece una guía práctica y accesible para aprender C. Contiene numerosos ejemplos de código y ejercicios resueltos que facilitan la comprensión de los conceptos. Es especialmente útil para estudiantes que buscan una introducción clara y paso a paso al lenguaje. Este libro es más valioso como lectura adicional que como referencia actual.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser