(The syllabus can be downloaded as a pdf.)Next offered: Fall 2018
Explores the main features of modern, high-level, general purpose programming languages from the user (programmer) point of view. Provides students with an opportunity to use non-imperative programming paradigms, such as object-oriented, functional, and logical, and to learn how specific features of such languages can be used efficiently in solving programming problems. Prereq: CS520.
Everything that is computable can be computed using very few basic building blocks, like assignments, conditionals, loops and recursion. In practice, however, modern, high-level programming languages offers a profusion of features that help implement large, complex pieces of software: support for object-oriented, functional, concurrent and distributed programming, modularity, types, exception handling, pattern matching, etc. This course explores the advanced features of modern programming languages from a user’s standpoint, by illustrating their use through practical examples and programming assignments.
Five programming assignments (50%), multiple quizzes (30%) and one exam (20%).
Minimum score for each grade: A: 90, A–: 87, B+: 83, B: 80, B–: 77, C+: 73, C: 70, C–: 67, D+: 63, D: 60, D–: 57.