Metadata
Title
17-514   Principles of Software Construction: Objects, Design, and Concurrency
Category
courses
UUID
81c7c77a6bd94ae7b99a13bc88ed3520
Source URL
https://cee.engineering.cmu.edu/education/course-descriptions/17-514.html
Parent URL
https://cee.engineering.cmu.edu/education/graduate/courses.html
Crawl Time
2026-03-25T05:03:01+00:00
Rendered Raw Markdown

17-514   Principles of Software Construction: Objects, Design, and Concurrency

Source: https://cee.engineering.cmu.edu/education/course-descriptions/17-514.html Parent: https://cee.engineering.cmu.edu/education/graduate/courses.html

Software engineers today are less likely to design data structures and algorithms from scratch and more likely to build systems from library and framework components. In this course, students engage with concepts related to the construction of software systems at scale, building on their understanding of the basic building blocks of data structures, algorithms, and program and computer structures. The course covers technical topics in four areas: (1) concepts of design for complex systems, (2) object-oriented programming, (3) static and dynamic analysis for programs, and (4) concurrency. At the conclusion of this course, students will have substantial experience building medium-sized software systems in Java. WAITLIST PROCESSING: Students with an SE minor will be considered first, followed by grade, and order you are on the waitlist.

Instructor: Jonathan Aldrich, Charles Garrod, Jeremy Lacomis, Claire Le Goues