This paper presents a curriculum designed for a two semester foundation course for Computer Science majors. Our course distributes the widely accepted basic toolbox of algorithms and data structures over functional, logic and imperative programming. In this way the programming paradigm becomes a problem solving tool instead of a monolingual impediment to a wider view of problem solving patterns. A strong laboratory component is essential for the success of this approach.
/lp/association-for-computing-machinery/a-three-paradigm-first-course-for-cs-majors-CLMeT0GouL