Having successfully completed this course, the student will be able to:
1) Apply advance C programming techniques such as pointers, dynamic memory allocation, structures to developing solutions for particular problems;
2) Design and implement abstract data types such as linked list, stack, queue and tree by using C as the programming language using static or dynamic implementations;
3) Analyze, evaluate and choose appropriate abstract data types and algorithms to solve particular problems;
4) Design and implement C programs that apply abstract data types.