CMSC631

Program Analysis and Understanding

Prerequisite: CMSC330; or students who have taken courses with comparable content may contact the department; or permission of instructor. Techniques for static analysis of source code and modern programming paradigms. Analysis techniques: data flow analysis, program dependence graphs, program slicing, abstract interpretation. The meaning of programs: denotational semantics, partial evaluation. Advanced treatment of abstraction mechanisms: polymorphic types, operation overloading, inheritance, object-oriented programming and ML-like programming languages.

Fall 2025

2 reviews
Average rating: 5.00

Past Semesters

2 reviews
Average rating: 5.00

2 reviews
Average rating: 5.00

2 reviews
Average rating: 5.00

0 reviews
Average rating: N/A

2 reviews
Average rating: 5.00

0 reviews
Average rating: N/A

0 reviews
Average rating: N/A

During the Spring 2020 and Spring 2021 semesters, students could choose to take some of their courses pass-fail mid-semester which skews grade data aggregated across multiple semesters.

Average GPA of 3.49 between 271 students*

CMSC631 Grade Distribution+-051015202530354045505560657075% of studentsABCDFWother
A-: 14.02%
A: 36.53%
A+: 23.62%
B-: 2.21%
B: 4.8%
B+: 7.01%
C+: 0.37%
D: 0.37%
F: 1.85%
W: 5.9%
other: 3.32%
* "W"s are considered to be 0.0 quality points. "Other" grades are not factored into GPA calculation. Grade data not guaranteed to be correct.