Overview of programming languages: History of programming languages, Brief survey of programming paradigms (Procedural languages, Object-oriented languages, Functional languages, Declarative – non-algorithmic languages, Scripting languages), the effects of scale on programming methodology; Language Description: Syntactic 75 Structure (Expression notations, abstract Syntax Tree, Lexical Syntax, Grammars for Expressions, Variants of Grammars), Language Semantics (Informal semantics, Overview of formal semantics, Denotation semantics, Axiomatic semantics, Operational semantics); Declarations and types: The concept of types, Declaration models (binding, visibility, scope, and lifetime), Overview of type-checking, Garbage collection; Abstraction mechanisms: Procedures, function, and iterations as abstraction mechanisms, Parameterization mechanisms (reference vs. value), Activation records and storage management, Type parameters and parameterized types, Modules in programming languages; Object oriented language paradigm; Functional and logic language paradigms. Language definition structure