Calendar · Lecture Notes
MIT OpenCourseWare
Practical Programming in C
Art: Palmer, Edward, 1803-1872, Figures 113-123. Plate Electrical Machines, 1840 · Public domain
- Instructors
- Daniel Weller, Sharat Chikkerur
- Term
- January IAP 2010
- Level
- Undergraduate
- What's inside
- 12 problem sets · 9 solutions · 1 lecture note · 19 other files · 4 web pages
- Materials open
- MIT OCW
About this course
Source: MIT OpenCourseWare 6.087 Practical Programming in C, January IAP 2010, Daniel Weller, Sharat Chikkerur — original course page on ocw.mit.edu ↗. License: CC BY-NC-SA 4.0. Study order: MIT's own listing order, section by section. Taken from MIT's published course files, downloaded from ocw.mit.edu on September 23, 2026. How RedLectern is built.
Materials are grouped the way MIT organized them. A verified, course-wide order has not been established here.
Has MIT solutions
Before you start
Prerequisites are not listed here. Check MIT's own syllabus for this course.
How this course was organized
What's here, and what isn't
- MIT's own materials here did not support a verified, course-wide order, so they are grouped by section instead.
Not included here
3 items from the source could not be safely included:
- Referenced in a table, but without MIT's own verified order, so it isn't used to claim a sequence. (3 items)
Materials by section
Grouped by section, as MIT organized them. Not sequenced or ordered.
Lecture Notes
14 files
Labs
- Lab 1: Game of Life Download
- Lab 1: Game of life (ZIP) Download
- Lab 1: Game of life Solutions (ZIP) Download
- Lab 2: Data compression Download
- Lab 2: Data compression (ZIP) Download
- Final Project Download
Assignments
20 problem sets
- Problem Set 1 Download
- Problem Set 1 — Solutions Download
- Problem Set 2 Download
- Problem Set 2 — Solutions Download
- Problem Set 3 Download
- Problem Set 3 (ZIP) Download
- Problem Set 3 — Solutions Download
- Problem Set 4 Download
- Problem Set 4 — Solutions Download
- Problem Set 5 Download
- Problem Set 5 — Solutions Download
- Problem Set 6 Download
- Problem Set 6: Part 1 — Solutions Download
- Problem Set 6: Part 2 Download
- Problem Set 6: Part 2 (ZIP) Download
- Problem Set 6: Part 2 (ZIP) Download
- Problem Set 6: Part 2 — Solutions Download
- Problem Set 7 Download
- Problem Set 7 (ZIP) Download
- Problem Set 7 Solutions Download
Course outline
Calendar · Lecture Notes
Lecture 2: Variables and datatypes, operators.
Calendar · Lecture Notes
Lecture 3: Control flow. Functions and modular programming. Variable scope. Static and global variables.
Calendar · Lecture Notes
Lecture 4: More control flow. Input and output.
Calendar · Lecture Notes
Lecture 5: Pointers and memory addressing. Arrays and pointer arithmetic. Strings. Searching and sorting algorithms.
Calendar · Lecture Notes
Lecture 6: User-defined datatypes, structs, unions, bitfields. Memory allocation. Linked lists, binary trees.
Calendar · Lecture Notes
Lecture 7: Pointers to pointers, pointer and string arrays, multidimensional arrays. Stacks and queues.
Calendar · Lecture Notes
Lecture 8: Void and function pointers. Hash tables.
Calendar · Lecture Notes
Lecture 9: External libraries. B-trees, priority queues.
Calendar · Lecture Notes
Lecture 10: C standard library: stdio.h, ctype.h, stdlib.h, assert.h, stdarg.h, time.h
Calendar · Lecture Notes
Lecture 11: Dynamic memory allocation, malloc and valgrind, garbage collection.
Calendar · Lecture Notes
Lecture 12: Multithreading and concurrency.
Calendar · Lecture Notes
Lecture 13: Multithreaded programming. Sockets and asynchronous I/O.
Calendar · Lecture Notes
Lecture 14: Linux inter process communication.
MIT OpenCourseWare, Daniel Weller, Sharat Chikkerur, 6.087 Practical Programming in C, January IAP 2010.
License: CC BY-NC-SA 4.0 · Edition: January IAP 2010 · Open the original course on OCW ↗
Organized by RedLectern, independent of MIT and not endorsed by MIT.
Per-resource rights are recorded on each resource; All-Rights-Reserved items are link-only, never mirrored.
