VLDB 2026 Research / reviewers in the wild / expert
Candido Cabo
dblp:56/11512
· DBLP profile ↗
10ranked-venue papers
10as first author
4since 2021 · last 2023
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Human-computer interaction and ubiquitous computing · 10 · 10 first-author · 4 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Focus on Early Misconceptions in the Use of Variables and the Assignment Operator to Facilitate Progress in Learning Computer ProgrammingabstractThe purpose of this research-to-practice work-in-progress paper is to identify students' early misconceptions in the use of variables and assignment operators in a first-year computer programming course using Python. About half of first-year students taking computer programming courses have difficulty understanding the use of variables and the assignment operator. The majority of those students will not make adequate progress to learning advanced control flow structures like selection, repetition or the use of functions. To correct early misconceptions and make adequate progress in learning computer programming students should be able to: 1) translate a word problem into input/output requirements; 2) recognize the correct syntax of statements using variables and the assignment operator; 3) develop mental models of how the assignment operator works; 4) identify and interpret data types; 5) evaluate arithmetic expressions. We expect that early focus on achieving those learning objectives will prevent or correct early misconceptions and facilitate progress in learning computer programming. Candido Cabo |
FIE | 1 |
| 2023 | Developing and Documenting Problem-Solving Strategies for Computer Programming Before Code WritingabstractThe purpose of this research-to-practice work-in-progress paper is to help students formalize the development and documentation of problem-solving strategies for computer programming, before attempting code writing, in a first course on Java programming. This approach could be beneficial: 1) for instructors to gain insight on students' problem-solving mental processes and to improve the evaluation of students' programming skills; 2) for students to develop an awareness of the process of developing problem-solving strategies, so they can reflect on their progress through the process of writing computer programs. We have adapted general problem-solving strategies developed in different areas of engineering and computer science to teaching computer programming. The process of developing and documenting computer programming strategies includes the following steps: 1) understanding the problem; 2) identifying/recalling similar problems; 3) developing strategies to solve the problem; 4) implementing a prototype as a computer program. Candido Cabo |
FIE | 1 |
| 2021 | Matthew Effects in Learning Computer Programming ConceptsabstractIn this research to practice full paper we quantified whether student progress in learning computer programming concepts in a Java course is consistent with the Matthew effect, that is, if early success (or failure) in the acquisition of concepts/skills begets later success (or failure) in the acquisition of more concepts/skills. We found that 63% of students had difficulty understanding basic programs involving the assignment operator and a sequence of statements. The inability of students to understand assignment and sequencing proved to be a substantial obstacle to student progress in learning more advanced flow control and data structures concepts like selection, repetition loops and arrays. About 66% of students who succeeded in assignment/sequencing also succeeded in selection structures. On the other hand, about 34% of the students who did not succeed in assignment/sequencing succeeded in selection structures. About 77% of the students who succeeded in assignment/sequencing and selection also succeed in repetition. Students who did not succeed in both assignment/sequencing and selection had lower percentage of success in repetition: 39% when they succeeded only in selection; 61% when they succeeded only in assignment/sequencing; 38% when they failed in both assignment/sequencing and selection. The same trends were observed when analyzing performance in student understanding of arrays. In conclusion: 1) student performance in computer programming concepts taught early in the course affects performance in computer concepts taught later in the semester; 2) The ability of students to understand concepts involving a sequence of statements is a good early predictor of success/failure in understanding more advanced concepts like selection, repetition and arrays; 3) Matthew effects are at play in learning computer programming: early success (or failure) in understanding basic computer programming concepts begets later success (or failure) in understanding more advanced computer programming concepts. Candido Cabo |
FIE | 1 |
| 2021 | Use of Machine Learning to Identify Predictors of Student Performance in Writing Viable Computer Programs with Repetition Loops and MethodsabstractThe goal of this research to practice full paper is to identify which computer programming concepts/skills predict students' ability to write viable programs using repetition loops and custom methods in Java. We developed machine learning models (logistic regression and decision trees with Scikit-Learn) to predict student performance in writing computer programs. High scores in feature importance analysis of the concepts/skills used as inputs to the models were considered important for predicting the output (i.e., performance in writing viable programs using loops and methods). We found that: 1) The ability to write programs with repetition and methods relies on an adequate understanding of several previous pre-requisite concepts/skills; 2) The relative importance of the pre-requisite concepts/skills varies, but adequate understanding of selection structures, which is typically taught early in the semester, is critical for students to be able to write viable computer programs using repetition loops and methods later in the semester; 3) Machine learning models can be used as predictors of student ability to write viable computer programs; 4) The transparency and interpretability of white-box models, like logistic regression and decision trees, allows students and teachers to identify which pre-requisite concepts/skills need to be emphasized and reinforced to increase performance on a target concept/skill. Candido Cabo |
FIE | 1 |
| 2019 | Student Progress in Learning Computer Programming: Insights from Association AnalysisabstractIn this research to practice full paper we quantified progress in the ability of first-year students (n=54) to solve problems using computer programming control structures with different levels of complexity like sequencing, selection (if/else) and repetition (for/while). Students used both a flowchart interpreter and Python to write programs. We found that 70% of students could solve problems involving a sequence of statements (i.e. without the use of selection or repetition) using a flowchart interpreter or Python. The majority of the students who could not solve sequencing problems were not successful at solving problems involving selection and repetition (69% using flowcharts and 94% using Python). On the other hand, of the students who could solve sequencing problems 45% (flowchart) and 71% (Python) were able to solve problems involving selection and repetition. Therefore, the ability to solve problems involving a sequence of statements is a good early predictor of success/failure in solving problems with more complicated control structures like selection and repetition. Success in solving computer programming problems depends on the tool used for ~37% of students. Therefore, the ability of students to transfer problem solving abilities between tools (from flowcharting to Python) is not automatic. Candido Cabo |
FIE | 1 |
| 2019 | Fostering Problem Understanding as a Precursor to Problem-Solving in Computer ProgrammingabstractIn this research to practice full paper we quantified student understanding of computer programming problems, and correlated it with their ability to write viable computer programs. To quantify problem understanding, students were asked to generate adequate input/output combinations for the problem. About 45% of students demonstrated a complete understanding of the problem. The remaining students (55%) showed inconsistencies in their understanding of programming problems. After the problem understanding assessment, students were asked to solve the problems by writing computer programs using Python. About 88% of the students with complete understanding of a problem could solve it with a Python program. In contrast, the vast majority of students who did not completely understand the problem (67%) were not able to write working computer programs. Surprisingly, ~ 33% of students with partial understanding of problems were able to write viable computer programs. We conclude that the challenges to write viable Python computer programs start with the failure to understand the problem. Helping students develop strategies to understand a problem correctly may help them writing viable computer programs that solve the problem. Candido Cabo |
FIE | 1 |
| 2018 | Effectiveness of Flowcharting as a Scaffolding Tool to Learn PythonabstractThis Research to Practice Full Paper evaluates the effectiveness of flowcharting as a scaffolding tool to learn a programming language like Python in the setting of an urban institution that serves mostly underrepresented minority students. We found that the abilities of students to solve problems using flowcharts is a good predictor of their ability to solve problems with Python (r-squared = 0.68). This means that the majority of students who perform well using flowcharts will perform well in Python. A majority of students found flowcharting easier than Python (63%), and reported that flowcharting helped them understand how to write programs in Python (73%). However, flowcharting is not a magic bullet for learning programming because about 31% of students have difficulty solving problems with a flowcharting tool (and Python). We also found that the ability of students to read code is not highly correlated with their ability to write code in Python. In conclusion: 1) For a majority of students flowcharting is an effective scaffolding tool to learn Python; 2) The ability to read and trace code is not predictive of the ability of students to solve problems and write viable programs in Python. Candido Cabo |
FIE | 1 |
| 2018 | Promoting Students' Social Interactions Results in an Improvement in Performance, Class Attendance and Retention in First Year Computing CoursesabstractThis Innovative Practice Full Paper presents the impact of Learning Communities (LC) on student retention, class attendance and performance outcomes in first-year computing courses. LCs are a group of students who enroll in two or more courses, generally in different disciplines that are linked together by a common theme, in an academic semester. Our results show that when first-year students take computing courses as part of a LC, retention rates increase and students perform significantly better. We also found that LCs promote class attendance and that students' academic and social interactions with classmates may play a critical role in the improvement of student performance observed in LC students. Candido Cabo, Ashwin Satyanarayana |
FIE | 1 |
| 2018 | Building a Community of First Year Students Improves Student Retention and Performance in Computing Courses: (Abstract Only)abstractFirst-year, college-level computing courses are gateway courses with low passing rates, resulting in student attrition and transfers out of computer science degrees. Learning Communities (LC) are a group of students who enroll in two or more courses, generally in different disciplines that are linked together by a common theme, in an academic semester. LCs capture and combine two important parts of college life: education and student cooperation. At our institution we have implemented a LC linking three first-year courses (Introduction to Computer Systems, CS0; Problem Solving with Computer Programming, CS1; and English Composition I) for over five years. In this study, we empirically show the pedagogical impact of LCs on student academic retention and performance outcomes in first-year computing courses (CS0 and CS1). We compared performance, attendance and study habits of students taking the computer courses as part of a LC (LC group) with students taking the same courses outside the LC (nLC group). Our results show that when first-year students take computing courses as part of the LC, retention rates increase and students perform significantly better. For example, student performance in three basic programming skills (sequence, selection and repetition) increases significantly from 66% (nLC; n = 146) to 82% (LC; n = 112) when students take the CS1 course as part of a LC. We also found that LCs promote class attendance and that the nature of students' relationships with classmates may play a critical role in the improvement of student performance observed in LC students. Candido Cabo, Ashwin Satyanarayana |
SIGCSE | 1 |
| 2014 | Synergies between writing stories and writing programs in problem-solving coursesabstractFirst-year problem-solving and computer programming courses are gateway courses with low passing rates, resulting in student attrition and transfers out of computer science degrees. Our urban institution serves mostly under-represented minority students, typically an at-risk population given their minimal previous programming experience and weak mathematical background. We offer a computer problem-solving course (PS) to prepare students in computing and engineering majors for a rigorous first programming course (CSI). Given a change in programming learning context from a programming language to the 3D programming environment Alice, the pass rate increased by 8% points (from 70% to 78%). The higher pass rate in the Alice PS course does not result in a weaker preparation of students for the subsequent CSI course. Moreover, teaching the Alice PS course as part of an interdisciplinary learning community linked to a first course in English composition with strong narrative components further increases student performance and retention. This intentional interdisciplinary approach to problem solving allows students to purposefully connect and integrate knowledge and skills from across the disciplines, developing synergies between writing stories and writing computer programs. Candido Cabo, Reneta Lansiquot |
FIE | 1 |