This book takes up where C Programming - A Beginner's Course leaves off. It assumes you have a working knowledge of basic programming concepts such as variables, constants, assignment, selection (if..else) and looping (while, for). It also assumes you are comfortable with writing functions and working with arrays. If you are not, it is recommended that you study C Programming - A Beginner's Course before tackling the material in this book. As in the first book, the emphasis is not on teaching the C language, per se, but rather, on using C to teach concepts that any budding programmer should know. The major topics covered are sorting, searching, merging, structures, pointers, linked lists, stacks, queues, recursion and random numbers.