· Develop clear, readable, well-documented and well-designed programs in the C Programming Language. · Develop software in the Unix/Linux using tools such as gcc, gdb, and make. · Locate and interpreting “man pages” applicable to application-level system programming. · Use the POSIX/Unix API to system functions to manage process and sessions as well as use signals and pipes for inter-process communication. · Understanding how synchronization might become problematic in light of concurrency. · Understand how to communicate and cooperate with a project partner.