Programming, Data Structures and Algorithms in C