This course dwells on syntax and semantics specification, discussion and comparison of basic programming styles and their underlying paradigms, such as imperative, functional, logic, and object oriented programming, data types, subprograms, runtime stack, parameter passing methods, exception handling.