Rodrigo Duran | Aalto University, School of Science (original) (raw)

Papers by Rodrigo Duran

Research paper thumbnail of Planning a Multi-institutional and Multi-national Study of the Effectiveness of Parsons Problems

Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 2

Research paper thumbnail of Notional Machines for Scratch and Python

Dagstuhl Seminar 19281: Notional Machines and Programming Language Semantics in Education, 2019

Research paper thumbnail of Towards a Common Instrument for Measuring Prior Programming Knowledge

Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, 2019

Computing education researchers and educators use a wide range of approaches for measuring studen... more Computing education researchers and educators use a wide range of approaches for measuring students' prior knowledge in programming. Such measurement can help adapt the learning goals and assessment tools for groups of learners at different skills levels and backgrounds. There seems to be no consensus on if and how prior programming knowledge should be measured. Traditional background surveys are often ad-hoc or non-standard, which do not allow comparison of results between different course contexts, levels, and learner groups. Moreover, surveys may yield inaccurate information and may not be useful due to lack of detail. In contrast, tests can provide much higher detail and accuracy than surveys about student knowledge or skills, but large-scale tests are typically very time-consuming or impractical to arrange. To bridge the gap between ad-hoc surveys and standardized tests, we propose and evaluate a novel self-evaluation instrument for measuring prior programming knowledge in introductory programming courses. This instrument investigates in higher detail typical course concepts in programming education considering the different levels of proficiency. Based on a sample of two thousand introductory programming course students, our analysis shows that the instrument is internally consistent, correlates with traditional background information metrics and identifies students of varying programming backgrounds. CCS CONCEPTS • Social and professional topics → Computer science education; Model curricula; Student assessment.

Research paper thumbnail of Parsons Problems and Beyond

Proceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education

Programming is a complex task that requires the development of many skills including knowledge of... more Programming is a complex task that requires the development of many skills including knowledge of syntax, problem decomposition, algorithm development, and debugging. Code-writing activities are commonly used to help students develop these skills, but the difficulty of writing code from a blank page can overwhelm many novices. Parsons problems offer a simpler alternative to writing code by providing scrambled code blocks that must be placed in the correct order to solve a problem. In the 16 years since their introduction to the computing education community, an expansive body of literature has emerged that documents a range of tools, novel problem variations and makes numerous claims of benefits to learners. In this work, we track the origins of Parsons problems, outline their defining characteristics, and conduct a comprehensive review of the literature to document the evidence of benefits to learners and to identify gaps that require exploration. To facilitate future work, we design empirical studies and develop associated resources that are ready for deployment at a large scale. Collectively, this review and the provided experimental resources will serve as a focal point for researchers interested in advancing our understanding of Parsons problems and their benefits to learners.

Research paper thumbnail of Through (Tracking) Their Eyes: Abstraction and Complexity in Program Comprehension

ACM Transactions on Computing Education, 2022

Previous studies on writing and understanding programs presented evidence that programmers beyond... more Previous studies on writing and understanding programs presented evidence that programmers beyond a novice stage utilize plans or plan-like structures. Other studies on code composition showed that learners have difficulties with writing, reading, and debugging code where interacting plans are merged into a short piece of code. In this article, we focus on the question of how different code-composition strategies and the familiarity with code affect program comprehension on a more abstract, i.e., algorithmic level. Using an eye-tracking setup, we explored how advanced students comprehend programs and their underlying algorithms written in either a merged or abutted (sequenced) composition of code blocks of varying familiarity. The effects of familiarity and code composition were studied both isolated and in combination. Our analysis of the quantitative data adds to our understanding of the behavior reported in previous studies and the effects of plans and their composition on the pr...

Research paper thumbnail of Modelador e simulador do sistema visual humano

Research paper thumbnail of Modeling and Simulation of the Human Eye

BIOMAT 2008, 2009

The computational modelling of the human eye has been wide studied for different sectors of the s... more The computational modelling of the human eye has been wide studied for different sectors of the scientific and technological community. One of the main reasons for this increasing interest is the possibility to reproduce eye optic properties by means of computational simulations, becoming possible the development of efficient devices to treat and to correct the problems of the vision. This work explores this aspect still little investigated of the modelling of the visual system, considering a computational sketch that make possible the use of real data in the modelling and simulation of the human visual system. Using corneal topography to collect real data from patients, a computational model of cornea is constructed and a set of simulations were build to ensure the correctness of the system and to investigate the effect of corneal abnormalities in retinal image formation.

Research paper thumbnail of Cognitive Load Theory in Computing Education Research: A Review

ACM Transactions on Computing Education

One of the most commonly cited theories in computing education research is cognitive load theory ... more One of the most commonly cited theories in computing education research is cognitive load theory (CLT), which explains how learning is affected by the bottleneck of human working memory and how teaching may work around that limitation. The theory has evolved over a number of decades, addressing shortcomings in earlier versions; other issues remain and are being debated by the CLT community. We conduct a systematic mapping review of how CLT has been used across a number of leading computing education research (CER) forums since 2010. We find that: the most common reason to cite CLT is to mention it briefly as a design influence; authors predominantly cite old versions of the theory; hypotheses phrased in terms of cognitive load components are rare; and only a small selection of cognitive load measures have been applied, sparsely. Overall, the theory’s evolution and recent themes in CLT appear to have had limited impact on CER so far. We recommend that studies in CER explain which ver...

Research paper thumbnail of Towards a Fine-grained Analysis of Complexity of Programming Tasks

Proceedings of the 2017 ACM Conference on International Computing Education Research

Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tas... more Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tasks and student's outcome. However, using these taxonomies have coarse granularity and programming tasks with very different demands could be equally classified at the same level. My research proposes a new framework using Neo-Piagetian stages of development based on the Model of Hierarchical Complexity (MHC) that enable formal definition and fine-grained evaluation of programming tasks nuances in paradigms, languages, and constructs. By empirically validating the model, I expect it to be a valuable tool to provide best practices to develop pedagogical approaches and tools.

Research paper thumbnail of Retention in 2017--18 higher education computing programs in the United States

ACM Inroads

T his paper builds on an earlier study of retention in U.S. computer science bachelor's programs ... more T his paper builds on an earlier study of retention in U.S. computer science bachelor's programs in the 2016-17 academic year. Focusing on the 2017-18 academic year, this paper presents and analyzes comprehensive U.S. student data for the six bachelor's and three associate's computing disciplines in which ACM has produced curriculum guidelines. Disaggregating data by gender, race/ethnicity, and type of institution, the 2017-18 student retention analyses in this paper help define national benchmarks that can benefit computing educators, researchers, and academic leaders in their efforts to address diversity and inclusion issues in their institutions and provide roadmaps for further investigation.

Research paper thumbnail of Towards a Fine-grained Analysis of Complexity of Programming Tasks

Proceedings of the 2017 ACM Conference on International Computing Education Research, 2017

Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tas... more Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tasks and student's outcome. However, using these taxonomies have coarse granularity and programming tasks with very different demands could be equally classified at the same level. My research proposes a new framework using Neo-Piagetian stages of development based on the Model of Hierarchical Complexity (MHC) that enable formal definition and fine-grained evaluation of programming tasks nuances in paradigms, languages, and constructs. By empirically validating the model, I expect it to be a valuable tool to provide best practices to develop pedagogical approaches and tools.

Research paper thumbnail of Cognitive Complexity of Comprehending Computer Programs

Research paper thumbnail of Computer Science in Online Gaming Communities

The culture of playing video games has evolved rapidly in the past decade. Presently, there are m... more The culture of playing video games has evolved rapidly in the past decade. Presently, there are many different types of online communities that have games or a particular game as their focus. Some games, in particular, can be used as a platform for introducing and discussing computer science concepts. We wanted to investigate how these online gaming communities and computer science are intertwined. We approached this by gathering user interaction data in two previous studies from which this article presents a more comprehensive synthesis. We found that the online gaming communities have rich interactions that relate to programming and computer science. Based on the qualitative analysis, we categorized these interactions in three themes: learning, programming experience, and community. In addition to the interaction analysis, we present four perspectives that we found particularly useful in analyzing these online communities: engagement, interactivity, exposure, and technical detail....

Research paper thumbnail of Study Major, Gender, and Confidence Gap: Effects on Experience, Performance, and Self-Efficacy in Introductory Programming

2020 IEEE Frontiers in Education Conference (FIE), 2020

The term Confidence Gap refers to the phenomenon of men being more confident in their ability to ... more The term Confidence Gap refers to the phenomenon of men being more confident in their ability to succeed in their studies and elsewhere. It is an acknowledged phenomenon both in Computer Science as well as STEM subjects at large, likely influencing students’ career path choices and selection of study major. In this work, we analyze data from multiple introductory programming courses. We do this by looking at the interaction of (1) students’ performance measured in terms of completed assignments, (2) self-reported confidence in the ability to succeed in the programming course, (3) major, and (4) gender. Aligned with prior research, we observe the existence of the Confidence Gap. At the same time, men and women who chose Computer Science as their major are more confident in their ability to succeed in their first programming course than their counterparts in other subjects.

Research paper thumbnail of Rules of Program Behavior

ACM Transactions on Computing Education

We propose a framework for identifying, organizing, and communicating learning objectives that in... more We propose a framework for identifying, organizing, and communicating learning objectives that involve program semantics. In this framework, detailed learning objectives are written down as rules of program behavior (RPBs). RPBs are teacher-facing statements that describe what needs to be learned about the behavior of a specific sort of programs. Different programming languages, student cohorts, and contexts call for different RPBs. Instructional designers may define progressions of RPB rulesets for different stages of a programming course or curriculum; we identify evaluation criteria for RPBs and discuss tradeoffs in RPB design. As a proof-of-concept example, we present a progression of rulesets designed for teaching beginners how expressions, variables, and functions work in Python. We submit that the RPB framework is valuable to practitioners and researchers as a tool for design and communication. Within computing education research, the framework can inform, among other things,...

Research paper thumbnail of Improving Global Participation in the SIGCSE Technical Symposium

Proceedings of the 51st ACM Technical Symposium on Computer Science Education

SIGCSE is a global organization with members from well over one hundred countries, but attendance... more SIGCSE is a global organization with members from well over one hundred countries, but attendance at SIGCSE conferences is not always reflective of membership as a whole. Attendance at the SIGCSE Technical Symposium is overwhelmingly from the United States, with more than 92% of all attendees in recent years having a U.S. affiliation. This panel, which includes members of the SIGCSE Board and the Symposium International Committee, will present the state of Symposium participation from outside the U.S. in an effort towards understanding what can be done to expand global participation in the Symposium. The panelists span the range from students to long-time faculty and together have computing education experience from seven countries across six continents. The panel will also solicit views from attendees on barriers to global Symposium participation and ways to improve non-U.S. participation in SIGCSE's flagship conference.

Research paper thumbnail of I know it when I see it

Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education

Research paper thumbnail of Measuring the Cognitive Load of Learning to Program: A Replication Study

United Kingdom & Ireland Computing Education Research conference.

Cognitive load (CL) on a learner's working memory has emerged as an influential concept in comput... more Cognitive load (CL) on a learner's working memory has emerged as an influential concept in computing education and beyond. CL is commonly divided in at least two components, intrinsic load (IL) and extraneous load (EL). We seek progress on two questions: (1) How can CL components be measured in the programming domain? (2) How should CL measurement deal with the "third component" of germane load (GL)? We replicate two studies: Morrison and colleagues' [49] evaluation of a questionnaire for self-assessing CL in programming, which is an adaptation of a generic instrument; and Jiang and Kalyuga's [24] study, which found support for a twocomponent measure of CL in language learning, with GL redundant. We crowd-sourced CL data using Morrison's questions at the end of a video tutorial on programming for beginners. A confirmatory factor analysis found strong support for a three-factor model, with factors matching the items intended to capture IL, EL, and GL, respectively. A two-factor model with IL-targeting and GL-targeting items combined gave a poorer fit. Our findings strengthen the claims of discriminant validity and internal reliability for Morrison's CL questionnaire for programming; construct validity for GL remains open, however. We affirm the need for further research on the twocomponent theory of CL and the sensitivity of CL self-assessments to contextual factors. CCS CONCEPTS • Social and professional topics → Computing education.

Research paper thumbnail of Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories

Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education

This working group asserts that Program Comprehension (ProgComp) plays a critical part in the pro... more This working group asserts that Program Comprehension (ProgComp) plays a critical part in the process of writing programs. For example, this paper is written from a basic draft that was edited and revised until it clearly presented our idea. Similarly, a program is written incrementally, with each step tested, debugged and extended until the program achieves its goal. Novice programmers should develop program comprehension skills as they learn to code so that they are able both to read and reason about code created by others, and to reflect on their code when writing, debugging or extending it. To foster such competencies our group identified two main goals: (g1) to collect and define learning activities that explicitly address key components of program comprehension and (g2) to define tentative theoretical learning trajectories that will guide teachers as they select and sequence those learning activities in their CS0/CS1/CS2 or K-12 courses. The WG has completed the first goal and laid down a strong foundation towards the second goal as presented in this report. After a thorough literature review, a detailed description of the Block Model is provided, as this model has been used with a dual purpose, to classify and present an extensive list of ProgComp tasks, and to describe a possible learning trajectory for a complex task, covering different cells of the Block Model matrix. The latter is intended to help instructors to decompose complex tasks and identify which aspects of ProgComp are being fostered.

Research paper thumbnail of Towards an Analysis of Program Complexity From a Cognitive Perspective

Proceedings of the 2018 ACM Conference on International Computing Education Research

Instructional designers, examiners, and researchers frequently need to assess the complexity of c... more Instructional designers, examiners, and researchers frequently need to assess the complexity of computer programs in their work. However, there is a dearth of established methodologies for assessing the complexity of a program from a learning point of view. In this article, we explore theories and methods for describing programs in terms of the demands they place on human cognition. More specifically, we draw on Cognitive Load Theory and the Model of Hierarchical Complexity in order to extend Soloway's plan-based analysis of programs and apply it at a fine level of granularity. The resulting framework of Cognitive Complexity of Computer Programs (CCCP) generates metrics for two aspects of a program: plan depth and maximal plan interactivity. Plan depth reflects the overall complexity of the cognitive schemas that are required for reasoning about the program, and maximal plan interactivity reflects the complexity of interactions between schemas that arise from program composition. Using a number of short programs as case studies, we apply the CCCP to illustrate why one program or construct is more complex than another, to identify dependencies between constructs that a novice programmer needs to learn and to contrast the complexity of different strategies for program composition. Finally, we highlight some areas in computing education and computing education research in which the CCCP could be applied and discuss the upcoming work to validate and refine the CCCP and associated methodology beyond this initial exploration.

Research paper thumbnail of Planning a Multi-institutional and Multi-national Study of the Effectiveness of Parsons Problems

Proceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 2

Research paper thumbnail of Notional Machines for Scratch and Python

Dagstuhl Seminar 19281: Notional Machines and Programming Language Semantics in Education, 2019

Research paper thumbnail of Towards a Common Instrument for Measuring Prior Programming Knowledge

Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, 2019

Computing education researchers and educators use a wide range of approaches for measuring studen... more Computing education researchers and educators use a wide range of approaches for measuring students' prior knowledge in programming. Such measurement can help adapt the learning goals and assessment tools for groups of learners at different skills levels and backgrounds. There seems to be no consensus on if and how prior programming knowledge should be measured. Traditional background surveys are often ad-hoc or non-standard, which do not allow comparison of results between different course contexts, levels, and learner groups. Moreover, surveys may yield inaccurate information and may not be useful due to lack of detail. In contrast, tests can provide much higher detail and accuracy than surveys about student knowledge or skills, but large-scale tests are typically very time-consuming or impractical to arrange. To bridge the gap between ad-hoc surveys and standardized tests, we propose and evaluate a novel self-evaluation instrument for measuring prior programming knowledge in introductory programming courses. This instrument investigates in higher detail typical course concepts in programming education considering the different levels of proficiency. Based on a sample of two thousand introductory programming course students, our analysis shows that the instrument is internally consistent, correlates with traditional background information metrics and identifies students of varying programming backgrounds. CCS CONCEPTS • Social and professional topics → Computer science education; Model curricula; Student assessment.

Research paper thumbnail of Parsons Problems and Beyond

Proceedings of the 2022 Working Group Reports on Innovation and Technology in Computer Science Education

Programming is a complex task that requires the development of many skills including knowledge of... more Programming is a complex task that requires the development of many skills including knowledge of syntax, problem decomposition, algorithm development, and debugging. Code-writing activities are commonly used to help students develop these skills, but the difficulty of writing code from a blank page can overwhelm many novices. Parsons problems offer a simpler alternative to writing code by providing scrambled code blocks that must be placed in the correct order to solve a problem. In the 16 years since their introduction to the computing education community, an expansive body of literature has emerged that documents a range of tools, novel problem variations and makes numerous claims of benefits to learners. In this work, we track the origins of Parsons problems, outline their defining characteristics, and conduct a comprehensive review of the literature to document the evidence of benefits to learners and to identify gaps that require exploration. To facilitate future work, we design empirical studies and develop associated resources that are ready for deployment at a large scale. Collectively, this review and the provided experimental resources will serve as a focal point for researchers interested in advancing our understanding of Parsons problems and their benefits to learners.

Research paper thumbnail of Through (Tracking) Their Eyes: Abstraction and Complexity in Program Comprehension

ACM Transactions on Computing Education, 2022

Previous studies on writing and understanding programs presented evidence that programmers beyond... more Previous studies on writing and understanding programs presented evidence that programmers beyond a novice stage utilize plans or plan-like structures. Other studies on code composition showed that learners have difficulties with writing, reading, and debugging code where interacting plans are merged into a short piece of code. In this article, we focus on the question of how different code-composition strategies and the familiarity with code affect program comprehension on a more abstract, i.e., algorithmic level. Using an eye-tracking setup, we explored how advanced students comprehend programs and their underlying algorithms written in either a merged or abutted (sequenced) composition of code blocks of varying familiarity. The effects of familiarity and code composition were studied both isolated and in combination. Our analysis of the quantitative data adds to our understanding of the behavior reported in previous studies and the effects of plans and their composition on the pr...

Research paper thumbnail of Modelador e simulador do sistema visual humano

Research paper thumbnail of Modeling and Simulation of the Human Eye

BIOMAT 2008, 2009

The computational modelling of the human eye has been wide studied for different sectors of the s... more The computational modelling of the human eye has been wide studied for different sectors of the scientific and technological community. One of the main reasons for this increasing interest is the possibility to reproduce eye optic properties by means of computational simulations, becoming possible the development of efficient devices to treat and to correct the problems of the vision. This work explores this aspect still little investigated of the modelling of the visual system, considering a computational sketch that make possible the use of real data in the modelling and simulation of the human visual system. Using corneal topography to collect real data from patients, a computational model of cornea is constructed and a set of simulations were build to ensure the correctness of the system and to investigate the effect of corneal abnormalities in retinal image formation.

Research paper thumbnail of Cognitive Load Theory in Computing Education Research: A Review

ACM Transactions on Computing Education

One of the most commonly cited theories in computing education research is cognitive load theory ... more One of the most commonly cited theories in computing education research is cognitive load theory (CLT), which explains how learning is affected by the bottleneck of human working memory and how teaching may work around that limitation. The theory has evolved over a number of decades, addressing shortcomings in earlier versions; other issues remain and are being debated by the CLT community. We conduct a systematic mapping review of how CLT has been used across a number of leading computing education research (CER) forums since 2010. We find that: the most common reason to cite CLT is to mention it briefly as a design influence; authors predominantly cite old versions of the theory; hypotheses phrased in terms of cognitive load components are rare; and only a small selection of cognitive load measures have been applied, sparsely. Overall, the theory’s evolution and recent themes in CLT appear to have had limited impact on CER so far. We recommend that studies in CER explain which ver...

Research paper thumbnail of Towards a Fine-grained Analysis of Complexity of Programming Tasks

Proceedings of the 2017 ACM Conference on International Computing Education Research

Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tas... more Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tasks and student's outcome. However, using these taxonomies have coarse granularity and programming tasks with very different demands could be equally classified at the same level. My research proposes a new framework using Neo-Piagetian stages of development based on the Model of Hierarchical Complexity (MHC) that enable formal definition and fine-grained evaluation of programming tasks nuances in paradigms, languages, and constructs. By empirically validating the model, I expect it to be a valuable tool to provide best practices to develop pedagogical approaches and tools.

Research paper thumbnail of Retention in 2017--18 higher education computing programs in the United States

ACM Inroads

T his paper builds on an earlier study of retention in U.S. computer science bachelor's programs ... more T his paper builds on an earlier study of retention in U.S. computer science bachelor's programs in the 2016-17 academic year. Focusing on the 2017-18 academic year, this paper presents and analyzes comprehensive U.S. student data for the six bachelor's and three associate's computing disciplines in which ACM has produced curriculum guidelines. Disaggregating data by gender, race/ethnicity, and type of institution, the 2017-18 student retention analyses in this paper help define national benchmarks that can benefit computing educators, researchers, and academic leaders in their efforts to address diversity and inclusion issues in their institutions and provide roadmaps for further investigation.

Research paper thumbnail of Towards a Fine-grained Analysis of Complexity of Programming Tasks

Proceedings of the 2017 ACM Conference on International Computing Education Research, 2017

Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tas... more Bloom's and SOLO taxonomies have been used to describe the complexity of computer science tasks and student's outcome. However, using these taxonomies have coarse granularity and programming tasks with very different demands could be equally classified at the same level. My research proposes a new framework using Neo-Piagetian stages of development based on the Model of Hierarchical Complexity (MHC) that enable formal definition and fine-grained evaluation of programming tasks nuances in paradigms, languages, and constructs. By empirically validating the model, I expect it to be a valuable tool to provide best practices to develop pedagogical approaches and tools.

Research paper thumbnail of Cognitive Complexity of Comprehending Computer Programs

Research paper thumbnail of Computer Science in Online Gaming Communities

The culture of playing video games has evolved rapidly in the past decade. Presently, there are m... more The culture of playing video games has evolved rapidly in the past decade. Presently, there are many different types of online communities that have games or a particular game as their focus. Some games, in particular, can be used as a platform for introducing and discussing computer science concepts. We wanted to investigate how these online gaming communities and computer science are intertwined. We approached this by gathering user interaction data in two previous studies from which this article presents a more comprehensive synthesis. We found that the online gaming communities have rich interactions that relate to programming and computer science. Based on the qualitative analysis, we categorized these interactions in three themes: learning, programming experience, and community. In addition to the interaction analysis, we present four perspectives that we found particularly useful in analyzing these online communities: engagement, interactivity, exposure, and technical detail....

Research paper thumbnail of Study Major, Gender, and Confidence Gap: Effects on Experience, Performance, and Self-Efficacy in Introductory Programming

2020 IEEE Frontiers in Education Conference (FIE), 2020

The term Confidence Gap refers to the phenomenon of men being more confident in their ability to ... more The term Confidence Gap refers to the phenomenon of men being more confident in their ability to succeed in their studies and elsewhere. It is an acknowledged phenomenon both in Computer Science as well as STEM subjects at large, likely influencing students’ career path choices and selection of study major. In this work, we analyze data from multiple introductory programming courses. We do this by looking at the interaction of (1) students’ performance measured in terms of completed assignments, (2) self-reported confidence in the ability to succeed in the programming course, (3) major, and (4) gender. Aligned with prior research, we observe the existence of the Confidence Gap. At the same time, men and women who chose Computer Science as their major are more confident in their ability to succeed in their first programming course than their counterparts in other subjects.

Research paper thumbnail of Rules of Program Behavior

ACM Transactions on Computing Education

We propose a framework for identifying, organizing, and communicating learning objectives that in... more We propose a framework for identifying, organizing, and communicating learning objectives that involve program semantics. In this framework, detailed learning objectives are written down as rules of program behavior (RPBs). RPBs are teacher-facing statements that describe what needs to be learned about the behavior of a specific sort of programs. Different programming languages, student cohorts, and contexts call for different RPBs. Instructional designers may define progressions of RPB rulesets for different stages of a programming course or curriculum; we identify evaluation criteria for RPBs and discuss tradeoffs in RPB design. As a proof-of-concept example, we present a progression of rulesets designed for teaching beginners how expressions, variables, and functions work in Python. We submit that the RPB framework is valuable to practitioners and researchers as a tool for design and communication. Within computing education research, the framework can inform, among other things,...

Research paper thumbnail of Improving Global Participation in the SIGCSE Technical Symposium

Proceedings of the 51st ACM Technical Symposium on Computer Science Education

SIGCSE is a global organization with members from well over one hundred countries, but attendance... more SIGCSE is a global organization with members from well over one hundred countries, but attendance at SIGCSE conferences is not always reflective of membership as a whole. Attendance at the SIGCSE Technical Symposium is overwhelmingly from the United States, with more than 92% of all attendees in recent years having a U.S. affiliation. This panel, which includes members of the SIGCSE Board and the Symposium International Committee, will present the state of Symposium participation from outside the U.S. in an effort towards understanding what can be done to expand global participation in the Symposium. The panelists span the range from students to long-time faculty and together have computing education experience from seven countries across six continents. The panel will also solicit views from attendees on barriers to global Symposium participation and ways to improve non-U.S. participation in SIGCSE's flagship conference.

Research paper thumbnail of I know it when I see it

Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education

Research paper thumbnail of Measuring the Cognitive Load of Learning to Program: A Replication Study

United Kingdom & Ireland Computing Education Research conference.

Cognitive load (CL) on a learner's working memory has emerged as an influential concept in comput... more Cognitive load (CL) on a learner's working memory has emerged as an influential concept in computing education and beyond. CL is commonly divided in at least two components, intrinsic load (IL) and extraneous load (EL). We seek progress on two questions: (1) How can CL components be measured in the programming domain? (2) How should CL measurement deal with the "third component" of germane load (GL)? We replicate two studies: Morrison and colleagues' [49] evaluation of a questionnaire for self-assessing CL in programming, which is an adaptation of a generic instrument; and Jiang and Kalyuga's [24] study, which found support for a twocomponent measure of CL in language learning, with GL redundant. We crowd-sourced CL data using Morrison's questions at the end of a video tutorial on programming for beginners. A confirmatory factor analysis found strong support for a three-factor model, with factors matching the items intended to capture IL, EL, and GL, respectively. A two-factor model with IL-targeting and GL-targeting items combined gave a poorer fit. Our findings strengthen the claims of discriminant validity and internal reliability for Morrison's CL questionnaire for programming; construct validity for GL remains open, however. We affirm the need for further research on the twocomponent theory of CL and the sensitivity of CL self-assessments to contextual factors. CCS CONCEPTS • Social and professional topics → Computing education.

Research paper thumbnail of Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories

Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education

This working group asserts that Program Comprehension (ProgComp) plays a critical part in the pro... more This working group asserts that Program Comprehension (ProgComp) plays a critical part in the process of writing programs. For example, this paper is written from a basic draft that was edited and revised until it clearly presented our idea. Similarly, a program is written incrementally, with each step tested, debugged and extended until the program achieves its goal. Novice programmers should develop program comprehension skills as they learn to code so that they are able both to read and reason about code created by others, and to reflect on their code when writing, debugging or extending it. To foster such competencies our group identified two main goals: (g1) to collect and define learning activities that explicitly address key components of program comprehension and (g2) to define tentative theoretical learning trajectories that will guide teachers as they select and sequence those learning activities in their CS0/CS1/CS2 or K-12 courses. The WG has completed the first goal and laid down a strong foundation towards the second goal as presented in this report. After a thorough literature review, a detailed description of the Block Model is provided, as this model has been used with a dual purpose, to classify and present an extensive list of ProgComp tasks, and to describe a possible learning trajectory for a complex task, covering different cells of the Block Model matrix. The latter is intended to help instructors to decompose complex tasks and identify which aspects of ProgComp are being fostered.

Research paper thumbnail of Towards an Analysis of Program Complexity From a Cognitive Perspective

Proceedings of the 2018 ACM Conference on International Computing Education Research

Instructional designers, examiners, and researchers frequently need to assess the complexity of c... more Instructional designers, examiners, and researchers frequently need to assess the complexity of computer programs in their work. However, there is a dearth of established methodologies for assessing the complexity of a program from a learning point of view. In this article, we explore theories and methods for describing programs in terms of the demands they place on human cognition. More specifically, we draw on Cognitive Load Theory and the Model of Hierarchical Complexity in order to extend Soloway's plan-based analysis of programs and apply it at a fine level of granularity. The resulting framework of Cognitive Complexity of Computer Programs (CCCP) generates metrics for two aspects of a program: plan depth and maximal plan interactivity. Plan depth reflects the overall complexity of the cognitive schemas that are required for reasoning about the program, and maximal plan interactivity reflects the complexity of interactions between schemas that arise from program composition. Using a number of short programs as case studies, we apply the CCCP to illustrate why one program or construct is more complex than another, to identify dependencies between constructs that a novice programmer needs to learn and to contrast the complexity of different strategies for program composition. Finally, we highlight some areas in computing education and computing education research in which the CCCP could be applied and discuss the upcoming work to validate and refine the CCCP and associated methodology beyond this initial exploration.