- C in a Nutshell, 2nd Edition, Peter Prinz, Tony Crawford, O'Reilly Media, 2015.
- Grokking Algorithms An illustrated guide for programmers and other curious people, Aditya Y. Bhargava, Manning publishing.
- Como compilar y correr programas.
- Escribiendo un programa.
- Comparando con otros lenguajes de programación.
- Compilando y ejecutando un programa en C.
- El entorno de programación en Linux
- El shell.
- Sistema de archivos.
- Programas de Linea de comandos.
- Parando o interrupiendo programas.
- Corriendo tus programas.
- Redirigiendo entradas y salidas.
- Pequeños script de Bash.
- Conociendo algunos editores
- Usando EL EDITOR nano.
- Usando gedit.
- Otros editores: sublime Text, vim, etc.
- Herramientas de Compilación
- Herramientas de depuración
- Depuración en general.
- El depurador GNU gdb.
- Estrategias de depuración.
- Aplicaciones de gdb.
-
Optimización del rendimiento.
-
Introducción a las versiones de control
- Introducción Git y Github.
- Otras versiones de control
- El Lenguaje de Programación C.
- Estructura de un programa en C
- Tipos de datos númericos.
size_t
yptrdiff_t
- Tipos de dato punto flotante.
- Precedencia de operadores.
- Estilo de Programación.
- Variables.
- Entradas y Salidas.
- Declaraciones y Estructuras de Control.
- Funciones.
- Punteros.
- Cadenas.
- Tipos de datos estructurados:
struct
,unions
,Enums
- Uso de
typedef
. - Macros.
- Versión preliminar del libro de C de Jens Gustedt: Modern C.
- Libro online de C de Zed A. Shaw.
- Lecturas del curso Effective Programming in C and Unix de Carnegie Mellon .
- Notas sobre C
- Algunas notas de Make.
- Una introducción a los punteros.
- Articulo sobre punteros.
- Linux y otros lenguajes.
- Tutorial de Valgrind.
- Ejemplos del uso de Make.
- Pasos que recorre un programa en C, hasta que llega a ser un ejecutable en Linux.
- Compiladores.
- Inteprete vs compilador.
- Linker.
- Punteros en C y C++.
- GDB.
- Como evitar la fuga de memoria (Memory Leak).
- Depuracion en c/c++.
- El arte perdido del empaquetado en C.
Git es un sistema de control de versiones de gran potencia y versatilidad en el manejo de un gran número de archivos de código fuente a a través del desarrollo no lineal, es decir vía la gestión rápida de ramas y mezclado de diferentes versiones.
Para poder revisar y aprender los comandos necesarios de Git, puedes darle una ojeada al excelente tutorial de CodeSchool o a la guía de Roger Dudle para aprender Git.
Github es una plataforma de desarrollo colaborativo de software utilizado para alojar proyectos (muchos proyectos importantes como paquetes de R, Django, el Kernel de Linux, se encuentran alojados ahí) utilizando Git y el framework Ruby on Rails.
Podemos instalar Git en Ubuntu utilizando el administrador de paquetes Apt
:
c-lara@Lara:~$sudo apt-get update
c-lara@Lara:~$sudo apt-get install git
Make es una herramienta para actualizar, en forma optimizada y automática, los diversos archivos de programas que integran un proyecto de software. Las reglas de actualización se escriben en un archivo de texto llamado usualmente makefile
o Makefile
.
La actualización se invoca dando el comando
make
que ejecuta las reglas del archivo makefile recompilando sólo las partes que han sido modificadas desde la última compilación, y enlaza los módulos en código objeto construyendo el ejecutable.
Minted es un paquete que permite formatear y resaltar código fuente en LaTeX. Para ejecutar este paquete en Latex, se realiza de la siguiente manera
- Supongamos que tenemos un archivo
Solucion-dir_1.tex
, para producir el archivoSolucion-dir_1.pdf
se realiza en consola lo siguiente
c-lara@Lara:~$pdflatex -shell-escape Solucion-dir_1
Mayor información de Minted en el artículo Code Highlighting with minted.