This course provides an introduction to problem solving, analysis and design of
small-scale computational systems. Solutions will be implemented using a
procedural programming language. This course is targeted at students wishing
to combine studies in computer science with studies in other disciplines.
This course examines the basic principles of the major programming language
paradigms, focusing on functional and logic programming. Concepts discussed
include recursion, control structures, functional forms, lazy
evaluation, type checking, and backtracking.