Query: Teaching machines to code

title: Teaching Machines to Code Neural Markup Generation with Interpretable Attention
abstract: We present a neural transducer model with visual attention that learns to generate LATEX markup of a real world math formula given its image. Applying sequence modeling and transduction techniques that have been very successful across modalities such as natural language, image, handwriting, speech and audio; we construct an image to markup model that learns to produce syntactically and semantically correct LATEX markup code over 150 words long and achieves a BLEU score of 89% improving upon the previous state of art for the Im2Latex problem. We also demonstrate with heat map visualization how attention helps in interpreting the model and can pinpoint (localize) symbols on the image accurately despite having been trained without any bounding box data.

title: Teaching Machines to Code: Neural Markup Generation with Visual Attention
abstract: We present a neural transducer model with visual attention that learns to generate LaTeX markup of a real world math formula given its image. Applying sequence modeling and transduction techniques that have been very successful across modalities such as natural language, image, handwriting, speech and audio; we construct an image to markup model that learns to produce syntactically and semantically correct LaTeX markup code over 150 words long and achieves a BLEU score of 89% improving upon the previous state of art for the Im2Latex problem. We also demonstrate with heat map visualization how attention helps in interpreting the model and can pinpoint (detect and localize) symbols on the image accurately despite having been trained without any bounding box data.

title: Teaching machines to understand data science code by semantic enrichment of dataflow graphs
abstract: Your computer is continuously executing programs, but does it really understand them? Not in any meaningful sense. That burden falls upon human knowledge workers, who are increasingly asked to write and understand code. They deserve to have intelligent tools that reveal the connections between code and its subject matter. Towards this prospect, we develop an AI system that forms semantic representations of computer programs, using techniques from knowledge representation and program analysis. To create the representations, we introduce an algorithm for enriching dataflow graphs with semantic information. The semantic enrichment algorithm is undergirded by a new ontology language for modeling computer programs and a new ontology about data science, written in this language. Throughout the paper, we focus on code written by data scientists and we locate our work within a larger movement towards collaborative, open, and reproducible science.

title: Coding for Middle Schoolers: Next Generation Programming Languages for Children Are Taking Up Where Logo Left off and Teaching Young Students How to Code to Learn
abstract: Forty years ago, when large mainframe computers roamed the earth, few experts gave much thought to how these mammoth machines could be used for education, and fewer still about how they could help young learners create, explore, and learn through technology. At the time, highly trained programmers still worked in inaccessible languages that mainly processed numbers. But all that changed with a turtle. In 1967, MIT professor Seymour Papert and colleagues developed Logo, an early language for children. Its main innovation? A small robot the turtle that students as early as fourth grade could program to move or rotate. For the first time, kids got instant feedback and a physical response to their commands to create something using technology. While Logo's use spread in the 1970s, programming never achieved the influence that Papert had envisioned. It wasn't considered a viable educational tool certainly not for students in middle grades or younger until schools had routine access to computers. Even now, at a time when computers are pervasive in everyday life, many educators still question the value of children becoming articulate in the language of technology programming. But as STEM and Common Core concepts with their emphasis on math, science, and critical thinking skins begin to shift curricula across the K 12 spectrum, coding in class is sparking renewed interest. "We really need to broaden, to rethink what it means to be fluent in today's society," says Mitch Resnick, the LEGO Papert Professor of Learning Research at MIT. "The ability to program, the ability to code, is an important part of being 'fluent' today. In the same way that learning to read opens up opportunities for many other things, and learning to write gives you a new way to express yourself and seeing the world, we see that coding is the same." In schools where programming is taught, it often acts as a stand alone class or as part of an after school program. According to Susan Einhorn, the chair of the management team that runs Papert's company LCSI, part of the reason programming hasn't seen greater Integration is that there is no consensus about where it fits within the educational curriculum. The lack of qualified computer science teachers and educators comfortable enough with technology to teach programming particularly at the middle school level is another barrier, as is resistance to a class that looks more like fun then substance. "Just because something's fun doesn't make it easy. Seymour would describe it as 'herd fun," Einhom says. "We learn through hard fun. We have to stop seeing learning as rote. It is an active, participatory thing. When you're engaged in something, then you learn the most because you are exploring it." Papert also contends that people learn better when they're engaged in creating something that is personally meaningful to them. To that end, MicroWorlds, LCSI's current iteration of Papert's programming language for children, encourages curiosity and experimentation beyond the precise syntax and complex character strings demanded by languages like Java and C+ With MicroWorlda and and other languages like it, students can drag and drop commands and test their creations without miring themselves in the minutiae of syntax, which can be confusing for both students end teachers. The strategy isn't new it was all part of Papert's educational philosophy developed in the time of Logo. "'Constructionism' was a term invented by Seymour Papert," says Einhorn. "It means that, if you're constructing something externally, you help build that knowledge within your head, so that it's not just abstract. You're also gaining new ideas about how the world works and new understanding." Coding to Learn Like Papert, MIT professor Resnick has learned the value of keeping kids interested while teaching them the fundamentals of technology.  In 1989, he cofounded Computer Clubhouse.

title: Understanding Notional Machines through Traditional Teaching with Conceptual Contraposition and Program Memory Tracing
abstract: A correct understanding about how computers run code is mandatory in order to effectively learn to program. Lectures have historically been used in programming courses to teach how computers execute code, and students are assessed through traditional evaluation methods, such as exams. Constructivism learning theory objects to students' passiveness during lessons, and traditional quantitative methods for evaluating a complex cognitive process such as understanding. Constructivism proposes complimentary techniques, such as conceptual contraposition and colloquies. We enriched lectures of a "Programming II" (CS2) course combining conceptual contraposition with program memory tracing, then we evaluated students' understanding of programming concepts through colloquies. Results revealed that these techniques applied to the lecture are insufficient to help students develop satisfactory mental models of the C+ notional machine, and colloquies behaved as the most comprehensive traditional evaluations conducted in the course.

title: Easy sculpting: A pilot study in teaching CNC machining to students from disparate backgrounds without learning G CODE
abstract: There is a growing interest in educating advanced manufacturing to a larger population, especially graduates of STEMfields, without a need for an advanced engineering background. Application of CAD/CAM software in teaching designand manufacturing skills is common, though it often relies on users' knowledge of machine language, e.g. knowing how towrite G code to work with CNC machines, in addition to fundamentals of process planning. A CAM software calledSculptPrint was used to familiarize three high school level students without any background in manufacturing with CNCmachines. With simulations of automatically generated machining paths, the students were taught basic manufacturingconcepts in process planning and fixturing in a semester long timeframe. The students fabricated three axisymmetric partswhen the software generated G code was exported to a CNC lathe. The participants created a set of tutorials and surveysthat would be used to teach sophomores in mechanical engineering at Georgia Tech concepts of CNC machining andprocess planning and evaluate their understanding of choosing manufacturing processes, and process planning inmachining specifically. Examples of questions are provided to demonstrate the pertinent machining concepts that theparticipants learned. The ultimate goal of this research is to help target learners to have a better understanding of choosingbetween additive and subtractive manufacturing for parts with specific geometries in addition to other prototypingconstraints such as cost and time.

title: TEACHING TYRE TESTING AND MODELLING TO UNDERGRADUATE MECHANICAL ENGINEERING STUDENTS
abstract: Tyre characterization is an important step for full vehicle dynamic simulation: main tyre companies have their own testing machines based on rotating drums or flat beds, while special vehicles are used for tyre testing on real tracks with various road conditions (wet, dry, smooth, harsh. The use of these experimental data, during a vehicle dynamics simulation performed with a multibody code, is allowed by means of several tools, such as data interpolation, physical or empirical tyre models. Many tyre models, with different degrees of complexity, have been proposed in literature: among them we can cite, because of their widespread use, Pacejka formulas. These well known formulas present various degrees of load interaction capabilities that, generally, can be switched on/off in Multibody codes used for vehicle simulations. Usually, these programs come with a set of example files, based on these formulas, that describe tyres with various sizes (for cars ranging from city to sport) and that can be used at academic level to perform full vehicle simulations. To foresee the behaviour of such models is not easy and the simple calculation of formula outputs with plenty of graphs is not completely satisfactory; it is more intuitive discover the tyre characteristics using a testing procedure similar to the experimental setups. To this aim a virtual model of a testing machine with serial architecture has been built using MSC Adams. Users of this virtual testing environment, in our case undergraduate Mechanical Engineering students of a course on Vehicle Dynamics at Bergamo University, can obtain quite easily tyre characteristics, varying both test rig settings (camber, slip angle, vertical load and driving torque) as well as acting on tyre models parameters (for example scale factors of Pacejka formulas) Students can also appreciate the differences in tyre behaviour that arise when various load case combinations are activated. Students, that already have some background in Multibody Dynamics, appreciated this approach and after a very short training on the lab they were able to proceed by themselves with a better understanding of tyre characteristics.

title: Teaching Manufacturing Technology through 'Learning by Doing' Approach
abstract: Machining processes have many parameters that affect the performance, accuracy and the surface quality of the finished product. It is the responsibility of the teaching instructor to give the necessary understanding and ability to use the knowledge in the various manufacturing process such as shaping, moulding, material removal process, advanced machining techniques and additive manufacturing process to get them readily employable in the local industries. In order to enhance the student understanding of the course, the delivery methodology and the assessment strategies were designed to include practical workshop sessions. In these session, the students were trained on basic skills to operate conventional lathe and milling machines. The students were then exposed to witness the effects of various cutting parameters on the surface finish and tool life produced in different workpiece materials. The students were also exposed to G&M code generation for CNC machining, Solidworks modelling for 3D printing. The results were significantly better and the students were enthusiastic and fully engaged with the work. This paper describes all these in detail, the method of assessment, the results and the students' feedback.

title: A new MATLAB and octave interface to a popular magnetics finite element code
abstract: FEMM (Finite Element Method Magnetics) is a free, open source, high quality 2D finite element modelling tool extremely popular in academia for both research and teaching, particularly in the field of electrical machine design. However, FEMM suffers from being tied to the Microsoft Windows platform, and having a slow interface to external programs. This paper presents a successful project to extract the core algorithms from FEMM, make them cross platform and compile them into a set of libraries and command line programs. In addition the creation of a new Matlab and Octave interface with direct access to the libraries is described with an example of its use. The libraries use only the C+ standard template libraries for maximum portability. For students and researchers, the tools can be used without knowledge of C+ but for more advanced students and those who might want to add further improvements, the code has also been substantially reorganised for clarity. The new C+ toolbox is referred to as "xfemm" and the interface "mfemm"

title: THE POWER OF GAME DEVELOPMENT IN LEARNING: WHY IS GAME DEVELOPMENT GOOD LEARNING MACHINES?
abstract: Many researchers, for example J.P. Gee, have been pointing out for years that game playing can give good learning. When school topics is Gamified we tap into the most important and established learning theories such as, Problem Based Learning, Situated Learning, Social Identity, Experiential Learning (learning by doing and learning just in time) and more. While this alone argues for using game playing in learning, we can add to this list. These days, children not only play games, but also modify them from early age, and this can be beneficial also in school. Letting the children do their own game development broadens the learning perspective even further and opens up new possibilities. Game development underpins creativity and let the children work with arts, design, animation and storytelling. It also develops technical skills such as programming, system thinking and requires basic understanding of mathematics and physics. And teaching the theoretical science while they are about to code it for their game is way more interesting and effective. And of course, it does so while the children have fun the children hardly notice the learning because they are making games. Game development also invites informal learning into the classroom. If the children present their game ideas on the Internet and in game forums, they also get new highly skilled peers, from all over the world. This will also teach them language and cooperation, digital skills and competition, tradition and culture. Internet these days reflects all aspects of the real world. The children build on skills they already have [1] most of them have been playing games or developed them in their spare time or even before they started in school. Which is mandatory for good learning  In Hedmark University of Applied Sciences (HUAS) we have used game development in teaching for almost 10 years, both for game students and teachers, and this presentation will give some examples on how to implement this in practice. HUAS has a complete game development tracks since 2003, and is now one of the biggest and most complete game educations in Scandinavia with 250 game students. HUAS also have various teacher educations and have the latest years also given teacher education in using and development games for learning.