Designed for courses in Computer Science or Computer Engineering, this comprehensive text introduces students to the primary constructs of contemporary programming language concepts and provides them with the tools necessary to critically analyze and assess existing and future programming languages. Programming Languages and Paradigms covers the four major programming paradigms as outlined in the ACM/IEEE Computer Science curriculum guidelines (imperative, functional, logical, and object-oriented) and presents each paradigm within two chapters. The first chapter covers the paradigm's focus language in detail and then investigates how this language answers the eight fundamental questions of language design. The second chapter provides a detailed treatment of the language's more advanced features and further includes coverage of other well-known languages of the paradigm. Most chapters end with a case study that provides students with a larger application to be solved using the target language for the paradigm. The organization of Programming Languages and Paradigms provides students with a good balance between practical, hands-on programming experience in the paradigm and the design issues associated with the paradigm, providing them with a solid foundation for understanding the fundamental concepts of programming languages.