## 3 Data and Methods
\begin{table}
\begin{tabular}{l l l} \hline \hline
**Variable** & **Type** & **Description** \\ \hline PROG & Categorical & Programme code (20 levels). \\ P\_TYPE & Dichotomous & Indicates the programme duration. \\ DPT & Categorical & Indicates which department manages the programme. \\ PREF & Categorical & Preference order of the programme in application process. \\ PSU\_SCI & Integer & Score in Science admission test. \\ PSU\_LAN & Integer & Score in Language admission test. \\ PSU\_MAT & Integer & Score in Maths admission test. \\ PSU\_GPA & Integer & Normalised high-school grade point average. \\ PSU\_RAN & Integer & Normalised ranking score. \\ PSU\_AVG & Integer & Weighted average admission score. \\ FEE\_EX & Dichotomous & Indicates if the student has been granted the fee-exemption benefit. \\ SCHOOL & Categorical & Type of high school of origin (municipal, private, or subsidised). \\ QUINTILE & Categorical & Family income quintile at entrance. \\ PREC\_HDI & Real & Human development index of the student’s municipality \\  & & of residence. \\ CAL & Real & Final grade after taking Calculus I for the first time \([1.0,7.0]\). \\ PHY & Real & Final grade after taking Physics I for the first time \([1.0,7.0]\). \\ ALG & Real & Final grade after taking Algebra I for the first time \([1.0,7.0]\). \\ MET & Real & Final grade after taking Study Methods for the first time \([1.0,7.0]\). \\ INT & Real & Final grade after taking Introduction to Engineering for the first time \([1.0,7.0]\). \\ GPA & Real & Grade point average after the first semester \([1.0,7.0]\). \\ L\_THEO & Categorical & Lecturer with whom the student took the theory part of FCYP. \\ L\_LAB & Categorical & Lecturer with whom the student took the laboratory part of FCYP. \\ CLASS & Dichotomous & Indicates if a student passed the theory component of FCYP. \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Variables in the complete data set. From 2022 onward, the course suffered major modifications as the institution shortened the 6-year programmes to 5 years and, as a consequence, courses (including FCYP) were adjusted accordingly. It is also worth noting that observations corresponding to students who met the following criteria were excluded:  
1. Passed the course in extra-ordinary instances, such as intensive courses (theory courses conducted between semesters that replace the final theory grade) or special exams (additional sufficiency exams that allow students to improve their final theory grade). 2. Were repeating the course after a previous failure. 3. Entered their study programme before the observation period. 4. Were not studying an engineering programme (e.g., the College programme). 5. Had an incomplete record. The response variable (CLASS) is the final status (namely, pass or fail) for the theory part of the course, which students are required to pass independently from the laboratory component. After applying the exclusion criteria, the data set comprises 2372 complete records, with 1191 belonging to the \"Pass\" outcome and 1181 to the \"Fail\" outcome. It is important to note that the \"Pass\" outcome was defined as the positive class. The data preparation considered the elimination of variables that are linear combinations of other variables and of strongly associated variables. Association was tested using different statistic tests, with a significance level of 0.05, depending on variable types:  
* Pearson correlation test for two numeric variables. * Independent samples t-test (or Wilcoxon rank sums if conditions are not met) for a dichotomous and a numeric variable. * Independent samples ANOVA (or Kruskal-Wallis if conditions are not met) for a numeric and a categorical variable with more than two levels. * \(\chi^{2}\) association test for two categorical variables. Next, Recursive Feature Elimination (RFE) [45] was used on the remaining variables to select the best predictors, with MLR, RFs, and XGB (without hyper-parameter tuning) as base methods.