Programming Design Paradigm
This course provides an intensive tour of programming and design.
It exposes students to different ways of thinking of a software problem and designing robust solutions using a mix of programming design paradigms (for instance, by discussing and comparing object-oriented and functional design paradigms).
The course concentrates on object-oriented program design and the design of abstractions that support the design of reusable software and libraries.
Students will learn how to explain and defend their design and programming decisions to their peers. In this sense, this course trains students to see programming as a “people’s discipline”