everything.study
6.087

Practical Programming in C

Undergraduate · Historical course

January IAP 2010

Topics

  • Introduction. Writing, compiling, and debugging C programs. Hello world.
  • Variables and datatypes, operators.
  • Control flow. Functions and modular programming. Variable scope. Static and global variables.
  • More control flow. Input and output.
  • Pointers and memory addressing. Arrays and pointer arithmetic. Strings. Searching and sorting algorithms.
  • User-defined datatypes, structs, unions, bitfields. Memory allocation. Linked lists, binary trees.
  • Pointers to pointers, pointer and string arrays, multidimensional arrays. Stacks and queues.
  • Void and function pointers. Hash tables.
  • External libraries. B-trees, priority queues.
  • C standard library: stdio.h, ctype.h, stdlib.h, assert.h, stdarg.h, time.h
  • Dynamic memory allocation, malloc and valgrind, garbage collection.
  • Multithreading and concurrency.
  • Multithreaded programming. Sockets and asynchronous I/O.
  • Linux inter process communication.

Readings

  • Kernighan, Brian, and Dennis Ritchie. The C Programming Language . 2nd ed. Upper Saddle River, NJ: Prentice Hall, 1988. ISBN: 9780131103627.
    Listed reading
Sources