CS 3520 — Programming in C++

4 semester hoursUndergraduateLectureusually offered: fall, spring, summertypical days: MBostonOnlineOnlineTraditional

Examines how to program in C++ in a robust and safe manner. Reviews basics, including scoping, typing, and primitive data structures. Discusses data types (primitive, array, structure, class, string); addressing/parameter mechanisms (value, pointer, reference); stacks; queues; linked lists; binary trees; hash tables; and the design of classes and class inheritance, emphasizing single inheritance. Considers the instantiation of objects, the trade-offs of stack vs. heap allocation, and the design of constructors and destructors. Emphasizes the need for a strategy for dynamic memory management. Addresses function and operator overloading; templates, the Standard Template Library (STL), and the STL components (containers, generic algorithms, iterators, adaptors, allocators, function objects); streams; exception handling; and system calls for processes and threads.

Prerequisites

Offering history

TermSectionsEnrolledCapacityFullOpen seats/section
Fall 2023213514692%5.5
Spring 20241565897%2.0
Summer A 2024210417460%35.0
Fall 2024111212590%13.0
Spring 202517575100%0.0
Summer A 202517310073%27.0
Summer B 20251357348%38.0
Fall 202519911586%16.0
Spring 20261959897%3.0

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 59% · T 23% · W 17% · Th 43% · F 14%

Common patterns: MR (29% of sections), async (18% of sections), TF (14% of sections), M (13% of sections), MW (12% of sections), TR (9% of sections) — in patterns, R means Thursday

Professors

Fall

Spring

Summer A

Summer B

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

Unlocks

CS 4150, CS 4850

Courses that list CS 3520 in their prerequisites.

Links

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