Course overview
Introduction to C for C++ programmers. UNIX tools; design philosophy, command line options, combining programs using pipes and I/O redirection. File systems and memory. Profiling tools, binary tools, debugging tools. Basic shell scripting. Build tools. Signal and handling, synchronous and asynchronous I/O. Introduction to threads and concurrency. Timers and their uses.
Course learning outcomes
- Write and debug programs in C
- Write and debug scripts in Bash
- Understand how C programs and Unix-based operating systems interface at a low level
- Understand low level programming constructs such as pipes, threads, interrupts and sockets
- Understand how the Unix command shell processes commands
- Understand how the Unix file systems stores information
- Apply the above to solving programming problems.