CS101 Introduction to Computing (3-0-0-6)
Introduction to Computers: the von Neumann architecture, low/high level language, compiler, interpreter, loader, linker, operating system, flowchart, programming environment.
Concepts of programming (using C): Data types, variables, operators, expressions, statements, control structures, functions, parameter passing, recursion, arrays and pointers, records (structures), memory management, files.
Program development lifecycle. Algorithms, efficiency, correctness, implementation, verification, assertions, pre/post conditions, invariants, testing.
Fundamental data structures: arrays, stacks, queues, linked lists. Searching and sorting. Introduction to object-oriented programming.
 A. Kelly and I. Pohl, A Book on C, 4th Edition, Pearson Education, 1999.
 Y. N. Patt and S. J. Patel, Introduction to Computing Systems: From Bits and Gates to C and Beyond, 2nd Edition, McGraw Hill, 2004.
 B. Kernighan and D. Ritchie, The C Programming Language, 4th Edition, Prentice Hall of India, 1988.
 M. A. Weiss, Data Structures and Algorithm Analysis in C, 2nd Edition, Pearson, 2002.
 R. G. Dromey, How to Solve it by Computer, 1st Edition, Pearson Education, 2008.