Supporting students in C++ programming courses with automatic program style assessment (original) (raw)
Related papers
Software Development Using C++: Beauty-and-the-Beast
Issues in Informing Science and Information Technology, 2014
Good programming style plays an important role in producing better software. Good style makes source code easy to read and to understand. This will usually reduce programming errors and simplify maintenance. We discuss popular style practices in C++ software development. Then we present a software program we have developed called UglyCode. UglyCode can be used by instructors to demonstrate the effect of various programming style options on code readability. This software converts "beautiful" C++ source code into "beastly" versions that exaggerate bad programming style. Specific examples to illustrate the use of UglyCode are shown. With UglyCode, programming style effects can be viewed interactively by showing the results when style features are changed in existing code.
Program style analysis: a natural by-product of program compilation
Communications of the ACM, 1986
Analyzing program style may be properly considered an integral part of program compilation—as successfully implemented in two style-analysis tools for Fortran 77: AUTOMARK and ASSESS. The authors look forward to the day when all major language compilers routinely provide a standard style-analysis vector for users to interpret as they see fit.
Usage Analysis in Tutors for C++ Programming
2005
Abstract. We have developed and deployed several web-based tutors for C++ programming concepts. We have been remotely collecting usage data from these tutors, and analyzing them for the benefit of the students, the teachers and ourselves. In this paper, we will describe the tutors, the types of data collected, and the types of analysis we perform on the data for the benefit of the various constituencies: students, instructors and the designers of problems.
Analysis of Students’ Feedback on C++ Programming Assessment Using an Online Survey
International Journal of Innovative Research and Development, 2020
Introduction Nowadays, higher institutions collect student opinions at the end of every class or examination in order to assess course content, method of teaching, special skill for the effectiveness of the learning process. The data collection is mostly done through the institution's survey. These surveys are characterized as tedious, wide in scope and time-consuming. Hence there is a need for simple, subject-based and comprehensive (Hanan (2019). The author also expressed the significance of educational data mining in the enhancement of learning outcomes, instruction and learning effectiveness. Based on these reasons, this study intended to investigate the opinions of the first-year student of School of Computing, Universiti Teknologi Malaysia on learning C++ programming. Enderson et al., (2014) used first-year engineering courses based on student feedback with the aim of producing a framework that will ease the analysis of the workload of first-year engineering student due to the difficulty and time consumption in the manual analysis of the data from online surveys. However, the scope of the research is wide in scope and not specific in the subject area. For example, programming assessment of a course. In my own opinion, specific issues on a course may not be captured in the survey late alone to be addressed. Therefore, an online survey is needed for computational analysis. 1.1. Problem Background Universiti Teknologi Malaysia, School of Computing offered programming courses such as programming technique I (SCSJ1013) and programming technique II(SCSJ1023) for the first-year students. The courses provide students with both practical and theoretical knowledge of C++ programming in topics like C++ concepts, association, aggregation and composition. Students from various discipline in the School of Computing register for these courses as part of the
Automatic Code Generation for C and C++ Programming
2021
1,2,3 Student, Dept. of Information Technology Engineering , M.G.M College Of Engineering and Technology, Maharashtra, India 4 Asst Prof. Dept. of Information Technology Engineering , M.G.M College Of Engineering and Technology, Maharashtra, India ---------------------------------------------------------------------***-------------------------------------------------------------------Abstract – A flowchart can be a graphic diagram representation of programming logic. Some shapes and connectors represent the different types of actions or steps in a process. A flowchart is a very important tool in the planning phase in a program development cycle. Programmers can use it to design and develop an algorithm of a program. Moreover, a flowchart is also very effective for visual learners to write and comprehend algorithms in computer programming courses. This paper aims to provide a tool that serves as an automatic code generator using a structured Flowchart. The tool is composed of basic f...
Implementation of Lexical Analysis on Assignment Statements in C++ Programming Language
International Journal of Scientific Research in Science, Engineering and Technology, 2020
A compiler is a computer program that translates computer code written in one programming language (the source language) into another language (the target language). The name compiler is primarily used for programs that translate source code from a high-level programming language to a lower level language [7]. The three main processes of compilation are lexical analysis, syntax analysis and semantic analysis. A compiler has two components, front-end and back-end. Front-end portion of a compiler has to do to main tasks lexical analysis and syntax analysis. On the lexical analysis, input source code are scanned and tokenized into various tokens [6]. In the system, front-end portion of the compiler, lexical analysis is used. There are many token elements in C++ programming language. In this system, line break token, white space tokens (space and tab) and operators (+,-,*,/,=,+= and so on) are used as token elements for the assignment statements of C++ source program. This system is taken all the assignment statements of C++ program as input. Of course, the extracted assignment statements may be literals or values assignment statement (e.g. x=3; or pi= 3.142;), variable assignment statement (e.g. x=y; or x=z;) and expression assignment statement (e.g. a=b+c; or x=y*z; or a=b*(c+d); and produced symbol table, step by step recognized table by using finite state automata and lexeme table.
An Assessment of C++ as an Introductory Teaching Language
This report looks back on 8 years of experience of using C++ as the initial language introducing programming to undergraduate and graduate students. The aims of the report are to explain the teaching approaches taken and to address questions that anyone considering adopting a similar language (including Java) might like answers to. 1. Why switch language? Choosing a programming language to use in University courses that are introducing imperative programming has always been an interesting task. In the 1970s the approach taken by many Departments/Schools of Computer Science (CS) was to design their own programming language and then to implement the compiler and run-time system. Subsequently, the need for more standardisation has prevailed, permitting (re)use of learning materials such as books and software, and avoiding the need for compiler implementation effort. Nowadays, a choice has to be made from the "standard" languages that are available. In the 1980s Pascal (and it...
Investigation of Value Trace Problem for C++ Programming Self-study of Novice Students
International Journal of Information and Education Technology, 2022
Presently, C++ programming has been taught in many universities around the world as the first object-oriented programming language for undergraduate students to start studying programming concepts and computer architecture. However, many of them may struggle in studying C++ programming due to the nature in the formal language. Thus, hands-on self-study tools can be effective. In previous, we have developed Java programming learning assistant system (JPLAS) for assisting self-study of Java programming. JPLAS offers the value trace problem (VTP) for novice students to study Java programming through code reading study. In a VTP instance, actual values of important variable or standard output messages in a given source code are questioned, where the correctness of each answer is checked through string matching. In this paper, we investigate the effectiveness of VTP for hands-on self-study of C++ programming by novice students. We generated 37 VTP instances for basic grammar concepts using source codes in textbooks or websites for C++ programming, and asked 46 students in three universities in three countries to solve them using the answer interface for JPLAS. The results suggest that most of the students are satisfactory, but some students need cares at early programming study stage.
Use of Automatic Code Assessment Tools in the Programming Teaching Process
2020
The teaching of programming process is essential to prepare students for the development of computer applications and software solutions. During the last decade, a variety of tools facilitating automatic validation of programming code have been developed. In this context, authors start to analyze and studying some tools with this potential and a possible use with pedagogical purposes. For the last three years a study has been carried out related with the implementation of VPL (Virtual Programming Lab) a plug-in developed specifically for Moodle (Modular Object-Oriented Dynamic Learning Environment) on a Java-based programming discipline during the Informatics Engineering degree of the Informatics Engineering Department (DEI) from the School of Engineering of Polytechnic Institute of Porto (ISEP/P.PORTO). This paper will present how VPL was introduced and some results of this experiment before the implementation in the learning process of another tool (Mooshak) as a real-time automat...