Course description:

15-123 [9 units]
This course is designed to provide a substantial exposure to the C programming language and the Unix programming environment for students with prior programming experience but minimal exposure to C. Features of the C language that are emphasized include arrays, structs and unios, dynamic memory allocation (malloc and free), pointers, pointer arithmetic, and casting. Data structures that are emphasized include lists and hash tables. Students will develop a sense of proper programming style in the C idiom, and will be exposed to cross-platform portability issues. Students will learn to use tools such as emacs/vi, make, and gdb to assist them in the design, testing and debugging of their programs. Students will learn about regular expression and grep and will be able to use a scripting language such as Perl to solve simple problems. This course serves as the prerequisite for 15-213.