CS 3100 — Program Design and Implementation 2

4 semester hoursUndergraduateLectureNUpath ADNUpath NDusually offered: fall, springtypical days: MBostonOakland, CATraditional

Builds on foundations introduced in CS 2100 to examine program design at increasing scales of complexity. Reviews abstraction, encapsulation, inheritance, and interfaces in statically typed object-oriented languages. Presents a comparative approach to software design patterns and paradigms, including object-oriented and functional programming. Offers students an opportunity to obtain a deeper understanding of the principles of program design including interface design, test-driven development, graphical design notations, reusable software components, and open-source ecosystems. Illustrates the impact of design-time decisions on software correctness including accessibility, changeability, performance, reusability, and privacy. Students collaborate throughout the semester to design and implement a large software project.

Prerequisites

Corequisites (same term)

Offering history

TermSectionsEnrolledCapacityFullOpen seats/section
Fall 2025346948098%3.7
Spring 2026642146191%6.7

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 65% · T 29% · W 30% · Th 36% · F 0%

Common patterns: M (35% of sections), MWR (30% of sections), T (29% of sections), R (6% 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 3650, CS 4130, CS 4150, CS 4160, CS 4180, CS 4220, CS 4300, CS 4360, CS 4400, CS 4500, CS 4520, CS 4530, CS 4545, CS 4550, CS 4610, CS 4973, CS 4991, CS 4992, CY 4973, DS 4300, DS 4973, MUST 4600

Courses that list CS 3100 in their prerequisites.

Links

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