Course Number:CS G107
Credit Hours: 4
Course Title: Program Design Paradigms

Course Description: Introduces modern program design paradigms. Starts with functional program design, introducing the notion of a design recipe. The latter consists of two parts: a task organization (ranging from the description of data to the creation of a test suite) and a data-oriented approach to the organization of programs (ranging from atomic data to self-referential data definitions and functions as data). The course then progresses to object-oriented design, explaining how it generalizes and contrasts with functional design. In addition to studying program design, students also have an opportunity to practice pair-programming and public code review techniques, as found in industry today.

Fall Offering: EveryLab/Coreq 1: CS G108

Spring Offering: EveryLab/Coreq 2:

Summer Offering: Lab/Coreq Remarks:

Summer 1 Offering: Prerequisite 1:

Summer 2 Offering: Prerequisite 2:

Cross-Listed Course 1: Prerequisite 3:

Cross-Listed Course 2: Prerequisite 4:

Cross-Listed Course 3: Prerequisite 5:

Cross-Listed Course 4: Prereq Remarks: MS students only.

Cross-Listed Course 5: Repeatable: N

Additional Information: