101 research outputs found
Critiquing Antipatterns In Novice Code
Students in introductory computer science courses, are learning to program. Indeed, most students perceive that learning to code is the central topic explored in the courses. Students spend an enormous amount of time struggling to learn the syntax and understand semantics of a particular language. Instructors spend a similar amount of time reading student code and explaining the meaning of the cryptic error messages displayed by compilers. Messages provided by compilers are intended to give feedback on the adherence of one’s code to the language specification and conventions. Unfortunately, these message are geared towards experts who have a clear understanding of the language syntax and semantics and a deep model of what comprises a program and how a program is developed. These students are novices who lack fundamental understanding of the structure of a program and have no basic mental model of how a program works. Novices make different kinds of mistakes than experts. Instructors need to spend a lot of time simply assisting novices in using compilers and understanding their output. In addition to mastering the syntax and semantics of their first programming language, novices are exposed to the question of what constitutes good design. Instructors can identify virtuous design choices and articulate areas of improvement. But contact time with students is limited, and waiting for in-person feedback or replies to personal messages can be a critical delay. Novices, still struggling to use the compiler, have not yet developed the sophisticated analytical processes employed by experts and this is reflected in their design choices and the kinds of mistakes they make. When a novice approaches an instructor with a question, the instructor must often provide a balanced critique that assists the student with understanding both the structure and the design aspects of their own code. My research has focused on whether we can identify examples of early programming antipatterns that have arisen from our teaching experience, and describe different ways of detecting them automatically. Novice students may produce code that is close to a correct solution but contains syntactic errors; code critiquers attempt to salvage the promising portions of the students submission and suggest repairs in ways more meaningful than typical compiler error messages. Alternatively, a student misunderstanding may result in well-formed code that passes unit tests yet contains clear design flaws; through additional analysis, code critiquers can detect and flag these flaws. Finally, certain types of antipatterns can be anticipated and flagged by the instructor, based on the context of the course and the programming activity; code critiquers allow for customizable critique triggers and messages. This dissertation presents several key contributions to our understanding of novice misconceptions and their representation, diagnosis and repair using antipatterns. My research focuses on identifying antipatterns and detecting them in novice code, then using this information to provide the student with a meaningful critique of their work. I have developed WebTA, a tool to critique student programs in introductory computer science courses. WebTA is used to teach students test-driven agile development methods through small cycles of teaching, coding integrated with testing, and immediate feedback.Through the use of WebTA in introductory computer science courses since 2014, I have amassed a significant corpus of novice programmer submission data. Lastly, I have compiled a library of antipatterns found in novice code
It Seemed Like a Good Idea at the Time (Hindsight is 2020)
Charles Kettering reportedly quipped: “99% of success is built on failure”. Yet, those failures rarely see the light of day, as publications naturally focus on successful innovations rather than the many failures that preceded them. The academic community is poorer as a result, as we are all left to re-create the same failures independently, rather than learning from one another. In this panel, we offer an opportunity to “celebrate failure”, by presenting four separate case studies of computing education initiatives that “seemed like a good idea at the time”, but ended up being spectacular failures. The presenters will discuss their “good ideas”, the disappointing results, and (most importantly) the lessons learned! Our goal is to foster a supportive community where failure is celebrated rather than criticized. We hope to laugh and learn together from these experience reports
Work in Progress: The RICA Project: Rich, Immediate Critique of Antipatterns in Student Code
Rich, relevant, and immediate student feedback is a core ingredient supporting effective student learning. Feedback is particularly important for introductory computing courses where novice programmers are still learning the basic syntax and semantics of a programming language. Our project is aimed at detecting poor solutions to common problems, termed antipatterns, in student code and providing feedback that guides the student to better solutions. This paper discusses the first year of the project, specifically, the development of a Code Critiquer to detect antipatterns in student code and generate appropriate feedback. This important first step sets-up the project to advance knowledge about novice antipatterns and their detection. The use of these antipatterns and code critiquers in future classroom interventions will help the project improve our understanding of student learning, retention, and self-efficacy
Directing Incoming CS Students to an Appropriate Introductory Computer Science Course
Full Paper. Research. We discuss possible ways to direct students to right level of introductory programming. While many schools offer college preparatory or advanced placement courses in computing, there is still, unfortunately, a large part of the "college-ready" population that has no opportunity to learn computing at all before they arrive. Regulation of CS education at the state/province or national level is still rare (but growing). Thus incoming students possess a wide range of skills and knowledge. When coupled with increasing enrollments, this diversity of experience can result in courses having large numbers of both absolute beginners and seasoned coders. Such courses are difficult to teach, intimidate novice students, and bore those with more experience. This can result in low engagement and retention.Unlike mathematics and language arts, introductory courses in CS vary widely from one institution to another in both conceptual material and programming language used. A standard point of entry to college mathematics is a calculus course, with some students instead starting earlier with pre-calculus or an algebra refresher, and others starting out in the second-term calculus course. There is rarely a concern about student skill being hidden by notational or other language differences, because the language of mathematics is close to universal. Similarly, freshman language arts courses in reading and/or writing assume a certain level of skill and maturity of comprehension and expressiveness in the target language; otherwise remedial courses are provided.We investigate placement of incoming first year students into appropriate introductory computer science courses at higher education institutions where there is more than one choice of first course. The goal is to determine the best way to decide which first course would be the most helpful for each student
Recommended from our members
Concepts Used to Analyze and Determine Rock Slope Stability for Mining & Civil Engineering Applications
Slope stability plays an important role in rock engineering. During the design, construction and post design phases of rock slope stability, engineers and geologists need to pay close attention to the rock conditions within the rock slope to prevent slope failures, protect employees and maintain economic profit. This dissertation is based on a general four step procedure to construct and maintain rock slope stability with confidence. These four steps include field investigations, material testing and rock strength database, slope modelling and slope monitoring. The author provides past, present and alternatives methods for each step for the introduced slope stability procedure. Specific topics within each step are investigated displaying results, recommendations and conclusions. Step one involves data collection during field investigations for rock slope design. Orientation of rock core during drilling programs has become extremely pertinent and important for slope stability and underground mining operations. Orientation is needed to provide essential data to describe the structure and properties of discontinuities encountered during the design process to understand favourable and unfavourable conditions within a rock slope and underground openings. This chapter examines and discusses the limitations and benefits of four methods of obtaining borehole discontinuity orientations from drilling programs including clay-imprint, ACT I, II, III Reflex, EZY-MARK, and OBI/ABI Televiewer systems. Results, recommendations and conclusions are provided in this study. During step two to maintain rock slope stability, a rock strength database was created and used to correlate and compare RQD values to rock abrasion, shear strength and other rock characterization methods. Rock abrasion plays a significant role in geotechnical design, tunneling operations and the safety of foundations from scour; however, rock abrasion can be used to develop higher confidence in important parameters such as RQD and hardness. More rock abrasivity research is needed to provide a more accurate and compatible method for all subsurface material properties used in mining and civil engineering projects. This report will provide simple correlations relating abrasion resistance to RQD, UCS, Geological Strength Index (GSI) and Rock Mass Rating (RMR) of metamorphic rock. Results, discussions and conclusions are provided. Step 3 to determine rock slope stability entails utilizing computer modeling to predict failure conditions and wear rock mass properties. Computer modeling and slope monitoring for rock slopes have become essential to assess factor of safety (FOS) values to predict slope instability and estimate potential failure. When utilizing computer models, the limit equilibrium method (LEM) provides FOS values according to force and moment equilibrium; the shear strength reduction (SSR) technique calculates FOS using stress- and deformation-based analyses. Currently, both methods are prevalent in the engineering industry and applied by geotechnical engineers to analyze and determine stability in rock slopes for mining and civil engineering projects. Slope modeling techniques are then used to observe slope conditions and predict when slope failure may occur (FOS = 1.0). Comparison, results and conclusions are presented. Lastly, the dissertation (step 4: slope monitoring) will investigate past studies of FOS comparisons, review calculation methods and provide procedures and results using remote sensing data. The main objective of the dissertation is to provide engineers with essential information needed to ensure high confidence in factor of safety predictions and how alternative methods can be utilized. Recommendations, future research and conclusions regarding FOS and slope monitoring are provided within the dissertation
Sensitivity analysis of iterative adjoint technique for microstrip circuits optimization
10.1002/mop.22204Microwave and Optical Technology Letters493607-609MOTL
Le droit au respect de la vie privée : les restrictions justifiées par les nécessités de l'information
Le droit au respect de la vie privée est un droit reconnu à tous. Le consentement protège de façon efficace les particuliers contre toute ingérence dans leur vie privée. Cependant, des individus ordinaires peuvent se voir mêlés, volontairement comme involontairement, à des événements d'actualité. Dans ce cas, le consentement des particuliers est présumé en raison des nécessités de l'information. Ce mémoire démontre de quelles façons, les individus concernés peuvent - ou pas - protéger leur droit au respect de la vie privée et leur droit à l'image tout en établissant diverses comparaisons entre le droit belge et le droit français.La diffusion de ce mémoire n'est pas autorisée par l'institutio
- …