VLDB 2026 Research / reviewers in the wild / expert
Igor dos Santos Montagner
dblp:155/3274
· DBLP profile ↗
14ranked-venue papers
9as first author
8since 2021 · last 2026
0000-0002-5706-764XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Human-computer interaction and ubiquitous computing · 10 · 5 first-author · 8 since 2021Graphics, computer vision, multimedia, augmented reality and games · 3 · 3 first-authorArtificial intelligence and machine learning · 2 · 2 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Using LLM to Autograde Diagrams
Rafael Corsi Ferrão, Igor dos Santos Montagner, Mariana Silva, Craig B. Zilles |
ITiCSE (2) | 2 |
| 2025 | Exploring Different Specifications Grading PoliciesabstractAlternative grading practices, such as specifications grading, have been reported to increase student engagement, decrease instructor workload, and ensure a minimum mastery of all course topics. However, there are also reports of decreased student learning and there have been few comparisons between different policies. In this experience report, we explore the effects of adopting different types of specifications grading systems in a project-based Embedded Systems course taught at a South American institution. We tested three different grading policies for exams in three different course offerings, varying both the number of times mastery needed to be demonstrated and whether exams specified two (pass/fail) or five (I, D, C, B, A) proficiency levels. For each policy, we list potential problems we were trying to address and evaluate how the change impacted the course. We use a mixed-methods approach to do a retrospective analysis, focusing on three aspects: (i)exam attendance and pass rates,(ii) grades on labs and projects and, (iii) student perceptions. We find that attendance remains high and pass rates increase with the pass/fail model. Also, lab and project grades decrease after students receive a passing grade in the first exam, indicating a possible decrease in engagement with the course. In terms of student perception, students described a mix of procrastination, low engagement with the course, and a desire to learn and create a challenging project. Finally, we discuss how we believe these findings could be used to increase engagement and learning. Igor dos Santos Montagner, Rafael Corsi Ferrão, Craig B. Zilles, Mariana Silva |
SIGCSE (1) | 1 |
| 2024 | Learn by Example in a Modern Embedded System CourseabstractLearning by example is a widely used technique in programming education and is explored in embedded systems courses. This demonstration introduces an active learning methodology whereby students begin with exercises featuring example codes and then proceed to develop their own code base. This personally developed code is subject to an automated validation system that ensures its correctness, both in functionality and code quality. Consequently, students acquire a code base of their own creation, serving as a reference for devising solutions to real-world problems. Rafael Corsi Ferrão, Igor dos Santos Montagner, Rodolfo Azevedo |
ITiCSE (2) | 2 |
| 2024 | Embedded-check a Code Quality Tool for Automatic Firmware VerificationabstractDeveloping embedded microcontroller code is a complex task, especially for undergrad students new to this area. These students often make high-level conceptual mistakes beyond the scope of commercial standards like MISRA-C. These conceptual errors need to be checked manually through code feedback, a process that is time-consuming, error-prone, and does not scale well with an increasing number of students and/or assignments. In this paper, we present an embedded-check an automated tool that can detect common and critical errors students make when learning to code firmware. A set of 13 rules (baremetal and FreeRTOS) was devised based on our experience from several years of teaching Embedded systems. To validate our tool, we compared its results with manual code review of N=99 projects from the last 3 course offerings. We furthered our analysis by running our tool on N=1132 coding lab submissions that did not receive manual feedback and were used as part of classroom activities. We found that the top-3 errors flagged in the projects were already present when students completed the lab activities. We found that (i) our tool also identified all issues discovered during manual code feedback, (ii) our tool detected issues in 86% of student submissions, whereas manual code feedback only flagged 28% of the submissions as problematic, and (iii) 94.3% of students made some code quality error on individual assignments. Within this results, we believe that our tool can have a significant impact when used both as an formative assessment tool to support learning and as a learning analytics tool to improve teaching. Rafael Corsi Ferrão, Igor dos Santos Montagner, Mariana Silva, Craig B. Zilles, Rodolfo Azevedo |
ITiCSE (1) | 2 |
| 2024 | Evaluating Mastery-oriented Grading in an Intensive CS1 CourseabstractAllowing students to re-attempt assessments has been shown to be effective in traditional university-level courses in improving student mastery of course content. In this paper, we analyse an intensive programming introductory experience, where first semester university students' full load is a single semester-long course that teaches the basics of programming and software engineering. We study its use of mastery-based grading: offering five (formative) low-stakes quizzes (with retakes), each focused on a single topic, and five (summative) higher-stakes exams that assess all learning objectives. Our research questions are: (i) ''Do second chances help students to increase their performance over time in intensive courses?''; and (ii) ''Are second chances effective in reducing stress/mental load/weight of assessments in intensive courses?''. We find that (i) offering second chances on quizzes decreases the number of students at risk of failing before the first exam; (ii) students' proficiency in coding tasks (as measured by exam grades) improve during the semester; and (iii) that our schedule reduces anxiety and mental load for students, but only after students take the first chance. Igor dos Santos Montagner, Rafael Corsi Ferrão, Andrew T. N. Kurauchi, Mariana Silva, Craig B. Zilles |
SIGCSE (1) | 1 |
| 2023 | Moving Beyond VHDL in Introductory Computer Architecture Courses: An Exploration of MyHDL as a Modern AlternativeabstractIn this Innovative Practice Full Paper we analyze the impact of using modern Hardware Description Languages (HDL) on introductory computer architecture courses. More specifically, we study whether the choice of HDL influences students' ability to i) draw a diagram from an HDL code; and ii) describe a circuit shown in diagram form using an HDL. Using HDL in digital logic courses has been explored in the past by many other authors. However, few studies have examined how this affects students' learning experiences. In both our experience and previous literature, traditional HDLs such as VHDL are difficult to test and debug, resulting in students writing solutions that do not work and students (and faculty) struggling to identify the problem. Although more modern and easier-to-use HDLs, such as MyHDL, have emerged as proven alternatives to VHDL in the last decade, their use in education has not yet been explored. In particular, MyHDL provides several advantages compared to VHDL: (i) it provides a higher level of abstraction; (ii) it includes a built-in simulation feature that simplifies the process of debugging and verifying hardware; (iii) it uses Python, allowing students to use familiar editors and coding environments; and (iv) it generates VHDL code that can be synthesized to FPGAs. Through this study, we provide insights into the impact of different HDL languages on some aspects of a computer architecture course. We conducted an A/B test comparing the use of two HDL languages, MyHDL and VHDL, over the course of a semester in two similar undergraduate disciplines. MyHDL was used in the second semester of a computer science course (N =26), while VHDL was used in a third-semester computer engineering course (N=34). For both groups, this was their first experience with computer architecture, and the courses shared the same materials, assignments, group work, and schedules. Both courses are based on the Nand To Tetris book [1]. Our findings reveal no significant difference between students who used VHDL and those who utilized MyHDL. Both groups, with comparable foundational knowledge in digital systems and similar misconceptions, demonstrated equivalent performance in describing hardware from HDL, analyzing the hardware's functionality, and creating simple hardware from a given problem. Based on our results, we conclude that employing MyHDL as an HDL in introductory computer architecture courses could be a viable alternative to traditional HDL languages. MyHDL not only delivers similar student performance outcomes but also provides easier-to-use tools that are closer to what students are accustomed to. Rafael Corsi Ferrão, Igor dos Santos Montagner, Renan Trevisoli Doria |
FIE | 2 |
| 2022 | How much C can students learn in one week? Experiences teaching C in advanced CS coursesabstractIn this paper Innovative Practice Full Paper we analyze the results of the application of a Concept Inventory for introductory C programming when teaching C for students in advanced CS courses and propose improvements based on misconceptions found and student perceptions. Even though Python is now the most used language for introductory courses, many advanced CS courses, such as Operating Systems and Em-bedded Computing, still benefit from using the C language. Thus, instructors now face a new challenge: teaching C to students who are already proficient in a higher-level language. Since this must be done in addition to their existing course, it is necessary to (i) be fast; and (ii) assure that students learned enough to be successful in the courses. An approach described in previous work was to concentrate all courses that benefit from using C (Computer Systems, Embedded Computing and Programming Challenges) in a single semester and joining their classes for the first week of the semester. This resulted in promising preliminary results, but lacked a more rigorous assessment in order to draw more meaningful conclusions. Concept Inventories (CI) can be used to both assess how many students have accurate knowledge of the subject but also to identify common pitfalls and misconceptions. In this work we combine three years of experiences in teaching C in advanced CS courses with data from the application of an Introductory C programming CI. We have received 109 responses from three consecutive offerings, detailing student performance in seven key areas. Satisfactory performance was obtained in Parameter use and scope, Iteration, Recursion, Structures and Pointers. Variable Scope and Boolean Expressions were the most challenging areas. We analyze the most common misconceptions and relate them to the material and students’ previous experiences. A questionnaire answered by students (N=56) at the end of the activity is analyzed in order to understand the level of affinity of students with the C language before the course and their perceptions about it, we noticed that most students have not had contact with the language before and feel motivated to learn C. To verify the knowledge in the language on a practical project, we analyzed the first big delivery of code that they have to do after two weeks the end of the course , through the analysis of the students codes (N=58) we can measure that many students use more advanced resources of the language that were not seen in the course or taught officially by other courses, indicating that they were able to learn enough of the language to go it alone in more complex matters. Rafael Corsi Ferrão, Igor dos Santos Montagner, Ricardo Caceffo, Rodolfo Azevedo |
FIE | 2 |
| 2022 | Learning professional software development skills by contributing to Open Source projectsabstractThis Innovative Practice Full Paper describes Open Development, a Software Engineering advanced course that focuses on building practical development skills by contributing to Free/Libre and Open Source Software (FLOSS). Software Engineering is a broad area that spans many different topics, such as testing, software quality and development methodologies. Typically, entire courses are developed to explore each topic in depth. However, effective participation in real software projects requires the simultaneous application of a wide range of skills and focusing exclusively on each skill one at a time may not be sufficient for students to be able to apply them all in sync. Participation in FLOSS projects offers a unique opportunity to obtain and develop such skills, as many projects follow industry best practices for all contributions and provide documentation to help new contributors.We present the Open Development’s design in alignment to Student Centered Learning and the GAPA (Goals, Activities, Projects, Assessment) framework. We also analyze student contributions from the last three offerings (N=50), studying characteristics such as type of contribution (test, bug fix or new feature), complexity of the code, approval ratio and project size. The design and outcomes of the course are validated by examining Student Evaluations conducted by the institution’s Teaching and Learning Office. Students from all offerings (N=34) strongly agree that "This course’s contents will help me in a future job or internship". Combined with accepted contributions to well-known projects such as Pandas, Matplotlib and Pygame, we conclude that Open Development fulfils the objective of providing practical software development skills. Igor dos Santos Montagner, Andrew T. N. Kurauchi |
FIE | 1 |
| 2019 | An experience with peer assessment in the context of a Computer Systems courseabstractIn this paper, situated in the Research-to-Practice Category, we describe a Work in Progress on the application of Peer Assessment in the context of a Computer Science course. Peer Assessment has been studied both as way of generating learning experiences and as a way of improving the efficiency and accuracy of the feedback loop. We report on this paper the execution of a Peer Assessment activity on a Computer Systems course. After solving an one-hour quiz containing easy to moderate questions, students received a set of detailed grading instructions and were asked to grade a colleague's quiz. We borrow concepts from rubric design to create informative grading instructions that relate parts of the student's answers to the learning objectives of the quiz. Students received support from the instructor on how to grade but not on their grading. We validated our experience by analysing student perception using a questionnaire and by comparing student assigned grades to instructor assigned ones. Encouraging results were found to support both the learning and the grading aspects, although sample size (N=20) did not allow more complex statistical analysis to be performed. We also analyzed the in-class execution of the activity, listing successes and points of improvement. Igor dos Santos Montagner |
FIE | 1 |
| 2019 | Teaching C programming in context: a joint effort between the Computer Systems, Embedded Computing and Programming Challenges coursesabstractIn this Innovative Practice Category Full Paper we describe a one-week introduction to the C language, designed as a joint effort between three advanced courses of a Computer Engineering curriculum: “Computer Systems”, “Embedded Development”, and “Programming Challenges”. Most of the recent discussions on Programming Languages and Learning has been centered around which languages are best suited for introductory courses, with Python and Java arising as the most popular choices. However, many important subjects, such as operating systems, embedded programming, and dynamically allocated data structures require knowledge of lower level programming languages. We describe in this paper an intensive and integrated activity where we teach the C programming language in the first week of three courses. Differently from previous approaches, our objective is not to train proficient C developers in the least amount of time. Instead, we present just enough of C so that students can focus on the concepts of the courses instead of syntax or tooling. At the end of the week, students take a quiz focused on reading and writing elementary C programs. Preliminary analysis of the results are encouraging with respect to learning goals. We also present an analysis of the planning and execution of the activity. Igor dos Santos Montagner, Rafael Corsi Ferrão, Eduardo Marossi, Fábio J. Ayres |
FIE | 1 |
| 2017 | Staff removal using image operator learningabstractStaff removal is an image processing task that aims to facilitate further analysis of music score images. Even when restricted to images in specific domains such as music score recognition, solving image processing problems usually requires the design of customized algorithms. To cope with image variabilities and the growing amount of data, machine learning based techniques emerge as a natural approach to be employed in image processing problems. In this sense, image operator learning methods are concerned with estimating, from sample pairs of input-output images of a transformation, a local function that characterizes the image transformation. These methods require the definition of some parameters, including the local information to be considered in the processing which is defined by a window. In this work we show how to apply the image operator learning technique to the staff line removal problem. We present an algorithm for window determination and show that it captures visual information relevant for staff removal. We also present a reference window set to be used in cases where the training set is not sufficiently large. Experimental results obtained with respect to synthetic and handwritten music scores under varying image conditions show that the learned image operators are comparable with especially designed state-of-the-art heuristic algorithms. Igor dos Santos Montagner, Nina Sumiko Tomita Hirata, Roberto Hirata Jr. |
Pattern Recognit. | 1 |
| 2016 | NILC: A two level learning algorithm with operator selectionabstractMachine learning is a very promising way of solving some image processing tasks. However, existing approaches fails at integrating feature selection within the learning task. This paper introduces a new two stage learning algorithm called near infinitely linear combination (NILC) that performs at the same time variable selection and error minimization. Empirical evidence reported on different document processing tasks shows that our approach significantly outperforms existing approaches. Igor dos Santos Montagner, Nina Sumiko Tomita Hirata, Roberto Hirata Jr., Stéphane Canu |
ICIP | 1 |
| 2014 | Learning to remove staff lines from music score imagesabstractThe methods for removal of staff lines rely on characteristics specific to musical documents and they are usually not robust to some types of imperfections in the images. To overcome this limitation, we propose the use of binary morphological operator learning, a technique that estimates a local operator from a set of example images. Experimental results in both synthetic and real images show that our approach can adapt to different types of deformations and achieves similar or better performance than existing methods in most of the test scenarios. Igor dos Santos Montagner, Roberto Hirata Jr., Nina Sumiko Tomita Hirata |
ICIP | 1 |
| 2014 | A Machine Learning Based Method for Staff RemovalabstractStaff line removal is an important pre-processing step to convert content of music score images to machine readable formats. Many heuristic algorithms have been proposed for staff removal and recently a competition was organized in the 2013 ICDAR/GREC conference. Music score images are often subject to different deformations and variations, and existing algorithms do not work well for all cases. We investigate the application of a machine learning based method for the staff removal problem. The method consists in learning multiple image operators from training input-output pairs of images and then combining the results of these operators. Each operator is based on local information provided by a neighborhood window, which is usually manually chosen based on the content of the images. We propose a feature selection based approach for automatically defining the windows and also for combining the operators. The performance of the proposed method is superior to several existing methods and is comparable to the best method in the competition. Igor dos Santos Montagner, Roberto Hirata Jr., Nina Sumiko Tomita Hirata |
ICPR | 1 |