45 research outputs found

    MatlabTA: A Style Critiquer For Novice Engineering Students

    Get PDF
    Novice programmers, considered to be those who have yet to understand the fundamentals of programming, exist in both engineering and computing fields. Within computing, various resources exist to help novice programmers understand fundamentals and style guidelines such as WebTA, a code critique program that gives Java students feedback about their error and style issues. There is, however, a gap in automated code critique for MATLAB, a programming language that is popular in the engineering community. When it comes to MATLAB, there are not many programs that help novices understand their errors, and even fewer that help them understand style guidelines. To help assist these engineering novices, I created a program called MatlabTA. Based on feedback from Engineering Fundamentals instructors on the most common errors they encounter in student code, MatlabTA exists to give novices more intuitive feedback for a few of the most common MATLAB errors, along with providing them different style guidelines for different MATLAB antipatterns such as inconsistent tabbing and function output variable matching. This report will provide an overview of the process in developing MatlabTA, along with examples of the different outputs the application produces

    Teaching C/C ++ programming using a multimedia system with videos

    Get PDF
    The C programming language is widely used in computer and industrial engineering. Because of that, such programming language is also widely used as a language to teach programming to industrial engineering students. In Spain, many universities use this language compulsory in the first year, or even in higher courses. Our experience shows that learning computer programming in four months is an arduous task, but curricula require it. Such learning process is also tough by the fact that many students cannot attend classes regularly and, even if they attend, sometimes the class is no longer at the level they require. In this work we develop a series of files in "presentation" format (.ppsx) and videos that allow students to see several explanations about the most complicated programming C topics: functions, arrays, structures, strings, arrays with structures, etc. This multimedia material includes explanations (voice-over), and animations with examples. Students can watch and listen to the explanations whenever and wherever they want (tablet, PC, phone…). Surveys made to students reveal that it is also interesting for students who regularly attend classes, and they prefer to use this course material only at home, outside of regular classes.El lenguaje de programación C se utiliza mucho en informática e ingeniería industrial. Por tanto, dicho lenguaje de programación también se utiliza mucho como lenguaje para enseñar programación a estudiantes de ingeniería industrial. En España, muchas universidades usan este lenguaje de forma obligatoria durante el primer año, o incluso en cursos superiores. Nuestra experiencia indica que aprender programación de computadoras en cuatro meses es una tarea ardua, pero los currículos lo requieren. Tal proceso de aprendizaje también es difícil por el hecho de que muchos estudiantes no pueden asistir a clases regularmente e, incluso si asisten, a veces la clase ya no está en el nivel que requieren. En este trabajo desarrollamos una serie de archivos en formato de "presentación" (.ppsx) y videos que permiten a los estudiantes ver varias explicaciones sobre los temas de programación C más complicados: funciones, matrices, estructuras, cadenas, matrices con estructuras, etc. El material multimedia incluye explicaciones (voz en off) y animaciones con ejemplos. Los estudiantes pueden ver y escuchar las explicaciones cuando y donde quieran (tableta, PC, teléfono, etc.). Las encuestas realizadas revelan que también es interesante para los estudiantes que asisten regularmente a clases, y que prefieren usar este material del curso solo en casa, fuera de las clases regulares

    Beyond Automated Assessment: Building Metacognitive Awareness in Novice Programmers in CS1

    Get PDF
    The primary task of learning to program in introductory computer science courses (CS1) cognitively overloads novices and must be better supported. Several recent studies have attempted to address this problem by understanding the role of metacognitive awareness in novices learning programming. These studies have focused on teaching metacognitive awareness to students by helping them understand the six stages of learning so students can know where they are in the problem-solving process, but these approaches are not scalable. One way to address scalability is to implement features in an automated assessment tool (AAT) that build metacognitive awareness in novice programmers. Currently, AATs that provide feedback messages to students can be said to implement the fifth and sixth learning stages integral to metacognitive awareness: implement solution (compilation) and evaluate implemented solution (test cases). The computer science education (CSed) community is actively engaged in research on the efficacy of compile error messages (CEMs) and how best to enhance them to maximize student learning and it is currently heavily disputed whether or not enhanced compile error messages (ECEMs) in AATs actually improve student learning. The discussion on the effectiveness of ECEMs in AATs remains focused on only one learning stage critical to metacognitive awareness in novices: implement solution. This research carries out an ethnomethodologically-informed study of CS1 students via think-aloud studies and interviews in order to propose a framework for designing an AAT that builds metacognitive awareness by supporting novices through all six stages of learning. The results of this study provide two important contributions. The first is the confirmation that ECEMs that are designed from a human-factors approach are more helpful for students than standard compiler error messages. The second important contribution is that the results from the observations and post-assessment interviews revealed the difficulties novice programmers often face to developing metacognitive awareness when using an AAT. Understanding these barriers revealed concrete ways to help novice programmers through all six stages of the problem-solving process. This was presented above as a framework of features, which when implemented properly, provides a scalable way to implicitly produce metacognitive awareness in novice programmers

    "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers

    Full text link
    Recent developments in deep learning have resulted in code-generation models that produce source code from natural language and code-based prompts with high accuracy. This is likely to have profound effects in the classroom, where novices learning to code can now use free tools to automatically suggest solutions to programming exercises and assignments. However, little is currently known about how novices interact with these tools in practice. We present the first study that observes students at the introductory level using one such code auto-generating tool, Github Copilot, on a typical introductory programming (CS1) assignment. Through observations and interviews we explore student perceptions of the benefits and pitfalls of this technology for learning, present new observed interaction patterns, and discuss cognitive and metacognitive difficulties faced by students. We consider design implications of these findings, specifically in terms of how tools like Copilot can better support and scaffold the novice programming experience.Comment: 26 pages, 2 figures, TOCH

    Evaluation of a Frame-based Programming Editor

    Get PDF
    Frame-based editing is a novel way to edit programs, which claims to combine the benefits of textual and block-based programming. It combines structured ‘frames’ of preformatted code, designed to reduce the burden of syntax, with ‘slots’ that allow for efficient textual entry of expressions. We present an empirical evaluation of Stride, a frame-based language used in the Greenfoot IDE. We compare two groups of middle school students who worked on a short programming activity in Greenfoot, one using the original Java editor, and one using the Stride editor. We found that the two groups reported similarly low levels of frustration and high levels of satisfaction, but students using Stride progressed through the activity more quickly and completed more objectives. The Stride group also spent significantly less time making purely syntactic edits to their code and significantly less time with non-compilable code

    Cheat Sheet for Teaching Programming with Comics: Through the Lens of Concept-Language-Procedure Framework

    Full text link
    Comics is emerging as a popular medium for providing visual explanations of programming concepts and procedures. Recent research into this medium opened the door to new opportunities and tools to advance teaching and learning in computing. For instance, recent research on coding strip, a form of comic strip with its corresponding code, led to a new visual programming environment that generates comics from code and experience report detailing various ways coding strips can be used to benefit students' learning. However, how comics can be designed and used to teach programming has not yet been documented in a concise, accessible format to ease their adoption. To fill this gap, we developed a cheat sheet that summarizes the pedagogical techniques and designs teachers can use in their teaching. To develop this cheat sheet, we analyzed prior work on coding strip, including 26 coding strips and 30 coding strip design patterns. We also formulated a concept-language-procedure framework to delineate how comics can facilitate teaching in programming. To evaluate our cheat sheet, we presented it to 11 high school CS teachers at an annual conference for computer studies educators and asked them to rate its readability, usefulness, organization, and their interest in using it for their teaching. Our analysis suggests that this cheat sheet is easy to read/understand, useful, well-structured, and interests teachers to further explore how they can incorporate comics into their teaching
    corecore