Note: The exam format, topics, and scoring method may slightly change from time to time.
The CSPA Composite Score is out of 1600. There are three components to it:
The CSPA has three sections (A, B, C). Section A is multiple choice and covers up to six subjects (ML, FE, OPS, ARCH, DB, and SEC). Section B is coding combined with a subjective essay section. Section C is short coding answers and covers technical fundamentals (CORE).
You receive a scaled subscore between 100 and 400 points for each of the specialty topics.
Subscores are calibrated according to the Dreyfus model:
Your composite score is the sum of your CORE subscore, your FS subscore, and your highest subscore among the six subject topics. The chosen topic becomes your subject emphasis, which designates an area of notable strength or focus. This is denoted as a suffix to your numeric composite score.
This means that CORE makes up half of your composite score, and FS and your subject emphasis make up the other half. Your composite score ranges from 400 to 1600.
Section A has 100 to 120 multiple choice questions and can cover all topics except for CORE: so ML, FE, OPS, ARCH, DB, and SEC. This means there are about 15 to 20 multiple choice questions for each of the six topics. It's just an average, so sometimes there might be 10 or 22, or even 5 questions per topic. Additionally, some questions may cover more than one topic. In these cases, the question counts toward all subscores it covers.
To calculate the subscore, we filter for questions that belong to the topic, and then sum up the raw points. We also filter out any disqualified questions. We then calculate the maximum number of the raw points possible, and then scale from 100 to 400 using a linear map, rounding to the nearest ten. (Any negative raw score is increased to 0 before scaling.) This is your scaled subscore. We do this for all six or so subject topics.
An example calculating a subscore, say for OPS:
|Number of questions||Raw points||Scaled subscore|
|Total Questions||21||43 earned out of 63 possible||310OPS|
In this example, you earned 45 - 2 = 43 raw points out of a possible 63. Scaling the 43 raw points from the range [0,63] to [100,400] yields a scaled score of 305.02. Rounding to the nearest ten gives you a final subscore of 310 out of 400.
Note the lowest possible raw score is -1 * 21 = -21 raw points, but we use the range [0,63] instead of [-21,63] so that any negative raw score maps to a scaled subscore of 100.
The essay and code section (FS) is graded using a clearly defined rubric that assigns points when you meet the criteria. Each question has its own rubric, and we have a set of human graders for this section.
Section C has short coding questions where you are expecting to submit code -- a function, class definition, or other code. The number of raw points possible for each question varies and is weighted based its difficulty. Additionally each question is associated with a predefined automated test suite that runs test cases against your code.
Your raw points for a question is the proportion of test cases passed multiplied by the possible raw points for the question. We then sum your raw points, and then scale it from 100 to 400 using a linear map.
|Question||Test cases passed||Possible raw points (weight)||Earned raw points||Subscore|
In this example, you earned 258.38 out of a possible 290 raw points. Scaling the raw points from the range [0,290] to [200,800] yields a scaled score of 367.285. Rounding to the nearest ten gives you a final CORE subscore of 370 out of 400.