CSCI 4223. Principles of Programming Languages. 3 Credits.
Fundamental concepts underlying design of programming languages. Detailed study of functional and object-oriented computational models. Types, evaluation, abstraction, control flow, modules, mutation, laziness, polymorphism, subtyping, inheritance. Practice learning new languages. Students cannot receive credit for both CSCI 4223 taken while an undergraduate and CSCI 6223 taken while a graduate student. Students in the combined BS/MS program cannot receive credit for both CSCI 4223 and CSCI 6223. Prerequisites: CSCI 1311 and CSCI 2113. (Spring, odd years).