Introducción a la programación en C
Aprenda los fundamentos esenciales de la programación
Lo que serás capaz de hacer
Esta especialización desarrolla sólidos fundamentos de programación para alumnos que desean resolver problemas complejos escribiendo programas informáticos. A través de cuatro cursos, aprenderá a desarrollar algoritmos de forma sistemática y a leer y escribir el código C para implementarlos. Esto le preparará para seguir una carrera en el desarrollo de software o en otros campos computacionales. La finalización con éxito de esta Specializations será considerada por admisiones como una demostración de su habilidad y mejorará su solicitud de máster en la Escuela Pratt de Ingeniería de Duke.
Temario
UNIDAD 1 - Introducción · 22 leccionesFundamentos de programación - UNIDAD 1 - Introducción
Fundamentos de programación - UNIDAD 1 - Introducción
- Por qué debería aprender a programar
- Programación: Primero planificar, luego codificar
- Visión general de los siete pasos
- Algoritmos
- Paso a paso por un algoritmo
- Informar de un problema con el curso
- Cómo escribir un programa con los siete pasos
- Paso 1: Trabaje usted mismo un ejemplo
- Paso 2: Anote lo que acaba de hacer
- Paso 3: Generalice sus pasos
- Paso 4: Pruebe su algoritmo
- Comprobación de un algoritmo para una secuencia numérica
- Pasos 1-4
- Un patrón de cuadrados
- Un patrón de cuadrados
- Comprobación de un patrón de cuadrados
- Dibujar un rectángulo
- Punto más cercano
- Generalización del punto más cercano
- Práctica de algoritmos
- Algoritmos
- Próximos pasos
UNIDAD 2 - Código de lectura · 37 leccionesFundamentos de programación - UNIDAD 2 - Código de lectura
Fundamentos de programación - UNIDAD 2 - Código de lectura
- Por qué debería aprender a leer código
- Declarar una variable
- Asignación de una variable
- Declarar y asignar una variable
- Expresiones con operadores comunes
- Ejemplos de expresiones
- Variables y expresiones
- Uso de funciones para la abstracción
- Anatomía de una función
- Cómo evaluar una función
- Ejecución de llamadas a funciones
- Alcance
- Funciones
- Impresión
- Ejemplo de impresión
- Impresión
- Declaraciones condicionales
- Operadores lógicos
- If/Else
- Ejecución de If/Else
- Interruptor/Caja
- Ejecución del interruptor/caso
- Taquigrafía
- Declaraciones condicionales
- Bucles de repetición
- Bucles While
- Bucles While
- Bucles While
- Bucles Do/While
- Bucles For
- Bucles For y While equivalentes
- Ejecución de bucles anidados
- Continuar y romper
- Ejecución de Continuar
- Bucles
- Significado superior
- Código de lectura
UNIDAD 3 - Tipos · 32 leccionesFundamentos de programación - UNIDAD 3 - Tipos
Fundamentos de programación - UNIDAD 3 - Tipos
- Introducción a los tipos
- Números binarios
- Mirando bajo el capó
- Decimal, hexadecimal y binario
- Tipos de datos básicos
- char
- int
- flotante y doble
- Impresión redux
- Tipos y formato de salida
- Tipos de datos básicos
- Las expresiones tienen tipos
- Conversión de tipo
- Fundición
- Conversión de tipo
- Desbordamiento y subdesbordamiento
- Las expresiones tienen tipos
- "No-números"
- Cuerdas
- Imágenes
- Sonido y vídeo
- Todo es un número
- "No-números"
- Estructuras
- Estructura para un rectángulo
- Typedef
- Usos de Typedef
- Tipos enumerados
- Tipos enumerados
- Tipos de datos complejos y personalizados
- Tipos
- Un estudiante de ingeniería de software de Duke sobre la importancia de la planificación
UNIDAD 4 - Proyecto · 5 leccionesFundamentos de programación - UNIDAD 4 - Proyecto
Fundamentos de programación - UNIDAD 4 - Proyecto
- Importancia de escribir un algoritmo específico
- Ejemplo de algoritmo PB&J con retroalimentación
- Introducción a la clasificación
- Escribir un algoritmo de ordenación
- Comparta su experiencia de aprendizaje
UNIDAD 5 - Código de escritura · 34 leccionesEscribir, ejecutar y corregir código en C - UNIDAD 5 - Código de escritura
Escribir, ejecutar y corregir código en C - UNIDAD 5 - Código de escritura
- Introducción a la escritura de código
- Planificación
- Informar de un problema con el curso
- Revisando el paso 1
- Revisando el paso 2
- Paso 3: Generalizar los valores
- Paso 3: Repeticiones
- Paso 3: Comportamiento condicional
- Revisando el paso 4
- Intersección de dos rectángulos
- Revisión de los pasos 1-4
- Traducción al código
- Traducción de los componentes del algoritmo
- Traducir el algoritmo de intersección a código
- Código de Intersección Rectángulo Completo
- Diseño descendente y componibilidad
- Estrellas Ejemplo
- Paso 5 Conceptos
- Introducción al entorno de programación
- Introducción al entorno de programación
- Instrucciones para los alumnos que actualizan desde una versión anterior del curso
- Asignación 00_hello
- Soluciones a algunos problemas comunes
- Conceptos básicos de UNIX
- Más comandos UNIX
- Edición de archivos con Emacs
- Emacs
- Asignación 01_manzana
- Git
- Más sobre Git
- [Referencia opcional] Ayúdenme a arreglar...
- Asignación 02_code1
- Asignación 03_código2
- Próximos pasos
UNIDAD 6 - Compilación y ejecución · 30 leccionesEscribir, ejecutar y corregir código en C - UNIDAD 6 - Compilación y ejecución
Escribir, ejecutar y corregir código en C - UNIDAD 6 - Compilación y ejecución
- Ahora necesitamos compilar
- Visión general de la compilación
- Proceso de compilación
- Preprocesamiento
- Compilación de
- "Hola Mundo"
- Asignación 04_compilar
- La planificación es primordial
- Generalizar isPrime
- Traducir isPrime a código
- Obtener ayuda: man Páginas
- Comparación de resultados con diff
- Asignación 05_cuadrados
- Más información sobre macros y archivos de cabecera
- El compilador real
- Errores del compilador
- Montaje
- Enlace
- Proceso de compilación
- Herramienta de compilación: make
- Haga
- Compilar con un Makefile
- Opciones de maquillaje más sofisticadas
- Ejecutar su programa
- valgrind
- Opciones del compilador
- Make y Valgrind
- Prototipo: Prueba práctica de la asignación 06
- Asignación 06_rect
- Asignación 07_jubilación
UNIDAD 7 - Pruebas y depuración · 27 leccionesEscribir, ejecutar y corregir código en C - UNIDAD 7 - Pruebas y depuración
Escribir, ejecutar y corregir código en C - UNIDAD 7 - Pruebas y depuración
- Probar significa encontrar fallos
- Pruebas de caja negra
- Desarrollo basado en pruebas
- Consejos prácticos para diseñar casos de prueba
- Pruebas de caja blanca
- Generación de casos de prueba
- Afirma
- Revisión de códigos
- Revisión de códigos
- Pruebas
- Asignación 08_pruebas
- Asignación 09_pruebas2
- Paso 7: Depuración
- El método científico
- ¿Acepta o rechaza su hipótesis?
- Depuración
- Encontrar problemas con Valgrind
- Introducción a gdb
- Primeros pasos con gdb
- Investigar el estado de su programa
- Control de la ejecución
- Recopilación de información con gdb
- Puntos de vigilancia
- Señales
- gdb
- Asignación 10_gdb
- Consejos de un estudiante de ingeniería de software de Duke: ¡No se rinda!
UNIDAD 8 - Proyecto · 6 leccionesEscribir, ejecutar y corregir código en C - UNIDAD 8 - Proyecto
Escribir, ejecutar y corregir código en C - UNIDAD 8 - Proyecto
- Introducción al proyecto Poker
- Hoja de ruta del proyecto de póquer
- Asignación c2prj1_cards
- Reglas del póquer
- Asignación c2prj2_testing
- Comparta su experiencia de aprendizaje
UNIDAD 9 - Punteros · 24 leccionesPunteros, matrices y recursión - UNIDAD 9 - Punteros
Punteros, matrices y recursión - UNIDAD 9 - Punteros
- Introducción a los punteros, las matrices y la recursión
- Canje ingenuo
- Informar de un problema con el curso
- Conceptos básicos sobre punteros
- Fotos
- Punteros
- Punteros Conceptualmente
- Intercambio revisitado
- Canje corregido
- El entorno de programación de prácticas
- Asignación 11_read_ptr1
- Punteros bajo el capó
- La visión de un programa sobre la memoria
- Intercambio con Hardware
- NULL
- Punteros en hardware
- Punteros a estructuras
- De punteros a punteros
- const
- Punteros a tipos sofisticados
- Aliasing
- Aritmética de punteros
- Utilice herramientas de comprobación de memoria
- Asignación 12_read_ptr2
UNIDAD 10 - Matrices · 17 leccionesPunteros, matrices y recursión - UNIDAD 10 - Matrices
Punteros, matrices y recursión - UNIDAD 10 - Matrices
- Motivación de la criptografía
- Declaración e inicialización de matrices
- Acceso a una matriz
- Acceso a matrices con aritmética de punteros
- Acceso a matrices con indexación de punteros
- Fundamentos de las matrices
- Pasar matrices como parámetros
- Escribir código con matrices
- Índice del elemento más grande
- Punto más cercano Paso a paso
- Asignación 13_read_arr1
- Punteros colgantes
- Punteros colgantes
- Tamaño de la matriz
- Asignación 14_array_max
- Asignación 15_tests_subseq
- Asignación 16_subseq
UNIDAD 11 - Usos de los punteros · 26 leccionesPunteros, matrices y recursión - UNIDAD 11 - Usos de los punteros
Punteros, matrices y recursión - UNIDAD 11 - Usos de los punteros
- Literales de cadena
- Cadenas mutables
- Igualdad de cadenas
- Comparar dos cadenas
- Copia de cadenas
- Copiar una cadena
- Conversión de cadenas a ints
- Funciones de la biblioteca estándar
- Asignación 17_read_arr2
- Asignación 18_reverse_str
- Introducción
- Declaración
- Indexación
- Inicializando
- Matriz de punteros
- Incompatibilidad
- Representaciones incompatibles
- Matriz de cadenas
- Asignación 19_bits_arr
- Asignación 20_rot_matrix
- Conceptos básicos sobre punteros de función
- Funciones de clasificación
- Punteros de función
- Desbordamiento de búfer
- Ataques a cadenas de formato
- Peligros para la seguridad
UNIDAD 12 - Recursión · 21 leccionesPunteros, matrices y recursión - UNIDAD 12 - Recursión
Punteros, matrices y recursión - UNIDAD 12 - Recursión
- Introducción a la recursión
- Lectura de código recursivo
- Ejecución manual del factorial recursivo
- Lectura recursiva
- Principios de escritura de código recursivo
- Escribir Factorial Recursivamente
- Traducir el factorial recursivo a código
- Escribir Fibonacci recursivamente
- Traducir Fibonacci recursivo a código
- ¿Es lenta la recursión?
- Duplicación del cálculo en Fibonacci
- Asignación 21_read_rec1
- Recursión de cola
- Ejecución de la implementación recursiva de cola de Factorial
- Equivalencia de la recursión de cola y la iteración
- Recursión mutua
- Ejecución de isOdd e isEven mutuamente recursivos
- Asignación 22_tests_power
- Asignación 23_power_rec
- (Optativo) Teoría de la recursión
- Consejos de un antiguo alumno de Ingeniería de Software de Duke: Resuelva problemas del mundo real
UNIDAD 13 - Proyecto · 6 leccionesPunteros, matrices y recursión - UNIDAD 13 - Proyecto
Punteros, matrices y recursión - UNIDAD 13 - Proyecto
- Si no ha realizado el Curso 2...
- Construir una cubierta
- Asignación c3prj1_deck
- Evaluación de una mano
- Asignación c3prj2_eval
- Comparta su experiencia de aprendizaje
UNIDAD 14 - Módulo 1: Interacción con el usuario y el sistema · 29 leccionesInteracción con el sistema y gestión de la memoria - UNIDAD 14 - Módulo 1: Interacción con el usuario y el sistema
Interacción con el sistema y gestión de la memoria - UNIDAD 14 - Módulo 1: Interacción con el usuario y el sistema
- Por qué necesitamos la interactividad y gestionar la memoria
- El entorno de programación de prácticas
- Asignación 24_read_arr3
- Informar de un problema con el curso
- Introducción al sistema operativo
- Errores de las llamadas al sistema
- El sistema operativo
- Argumentos de la línea de comandos
- Tratamiento de opciones complejas
- El puntero de entorno
- Creación de procesos
- Argumentos de la línea de comandos y creación de procesos
- Abrir un archivo
- Lectura de un archivo
- Lectura de un archivo con fgetc
- Abrir archivos y fgetc
- Lectura de un archivo con fgets
- Lectura de un archivo con fgets
- Lectura de un archivo con fread
- Lectura de encryption.c
- Asignación 25_break_encr
- Escribir en archivos
- Escribir en un archivo
- Archivos de cierre
- Cerrar un archivo
- Otras interacciones
- Redacción y cierre de expedientes
- Asignación 26_pruebas_matriz_entrada
- Asignación 27_matriz_entrada
UNIDAD 15 - Módulo 2: Asignación dinámica · 34 leccionesInteracción con el sistema y gestión de la memoria - UNIDAD 15 - Módulo 2: Asignación dinámica
Interacción con el sistema y gestión de la memoria - UNIDAD 15 - Módulo 2: Asignación dinámica
- Motivación de la asignación dinámica
- malloc
- Llamada simple a malloc
- Arreglar initArray
- Estructuras más complejas
- Copia superficial frente a copia profunda
- malloc
- gratis
- Mecánica de libre
- Fugas de memoria
- Código con una fuga de memoria
- Una analogía de la asignación dinámica de memoria
- Problemas comunes con el libre
- Tres problemas comunes cuando se utiliza gratis
- gratis
- reasignar
- Llamada a reasignar
- reasignar
- getline
- Lectura de un archivo con getline
- Combinar getline y realloc
- getline
- Memcheck de Valgrind
- Valores no inicializados
- Lecturas y escrituras no válidas
- Valgrind con GDB
- Cuestiones de asignación dinámica
- memcheck.h
- Otras herramientas Valgrind
- Memcheck de Valgrind
- Asignación 28_fix_vg_encr
- Asignación 29_outname
- Asignación 30_clasificar_líneas
- Tarea 31_buscaminas
UNIDAD 16 - Módulo 3: Programar en grande · 27 leccionesInteracción con el sistema y gestión de la memoria - UNIDAD 16 - Módulo 3: Programar en grande
Interacción con el sistema y gestión de la memoria - UNIDAD 16 - Módulo 3: Programar en grande
- Introducción
- Analogía con la escritura
- Abstracción
- El límite de siete artículos
- Abstracción jerárquica
- Abstracción
- Legibilidad
- Función Tamaño
- Nombrar
- Formateo
- Comentarios y documentación
- Legibilidad
- Consideraciones sobre el equipo
- Git
- Versiones anteriores
- Colaboración
- Múltiples versiones del presente
- Leer más
- Descripción del problema
- Planificación de listas
- Planificación del algoritmo de alto nivel
- Escritura y prueba de readInput
- Finalización del programa
- Programas aún mayores
- Asignación 32_kvs
- Asignación 33_cuentas
- Asignación 34_poner_juntos
UNIDAD 17 - Módulo 4: Proyecto de póquer · 5 leccionesInteracción con el sistema y gestión de la memoria - UNIDAD 17 - Módulo 4: Proyecto de póquer
Interacción con el sistema y gestión de la memoria - UNIDAD 17 - Módulo 4: Proyecto de póquer
- Proyecto Poker: Parte final
- Asignación c4prj1_deck
- Asignación c4prj2_input
- Asignación c4prj3_finish
- Comparta su experiencia de aprendizaje
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $4,990 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
17 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
47 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Duke University.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 17 unidades · 382 lecciones · 192 h
- 12 meses de acceso
- 47 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $4,990 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Duke University; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


