CS 5004 — Object-Oriented Design

4 semester hoursGraduateLectureusually offered: fall, springtypical days: TArlington, VABostonMiami, FLOakland, CAOnlinePortland, MaineSan Francisco, CASeattle, WASilicon Valley, CAVancouver, CanadaHybridLive CastOnlineTraditional

Presents a comparative approach to object-oriented programming and design. Discusses the concepts of object, class, metaclass, message, method, inheritance, and genericity. Reviews forms of polymorphism in object-oriented languages. Contrasts the use of inheritance and composition as dual techniques for software reuse—forwarding vs. delegation and subclassing vs. subtyping. Offers students an opportunity to obtain a deeper understanding of the principles of object-oriented programming and design, including software components, object-oriented design patterns, and the use of graphical design notations such as UML (unified modeling language). Illustrates basic concepts in object-oriented design with case studies in application frameworks and by writing programs in Java.

Prerequisites

Corequisites (same term)

Offering history

TermSectionsEnrolledCapacityFullOpen seats/section
Fall 2023714924561%13.7
Spring 20241759779076%11.4
Fall 202479920449%15.0
Spring 20251331850064%14.0
Fall 202567016542%15.8
Spring 20261019438251%18.8

Snapshots from scheduled scrapes — not live seat availability. "Full" can exceed 100% when sections over-enroll.

Meeting times

Share of recent sections by weekday: M 25% · T 52% · W 7% · Th 11% · F 4%

Common patterns: T (50% of sections), M (24% of sections), R (9% of sections), W (6% of sections), async (5% of sections), F (2% of sections) — in patterns, R means Thursday

Professors

Fall

Spring

Percentages are each professor's average share of the season's enrolled students in recent terms.

Unlocks

CS 5400, CS 5500, CS 6510, CS 7980

Courses that list CS 5004 in their prerequisites.

Links

Official catalog (CS course descriptions) · Student reviews on RateMyHusky · All CS courses · Plan it at numap.app