2,650 research outputs found

    Classifying and recognizing students' sorting algorithm implementations in a data structures and algorithms course

    Get PDF
    We discuss an instrument for recognizing and classifying algorithms (Aari) in terms of whiteboxtesting. We examined freshmen students' sorting algorithm implementations in a datastructures and algorithms course in two rounds: at the beginning of the course before thestudents received any instruction on sorting algorithms, and after taking lectures on sortingalgorithms. We evaluated the performance of Aari with the implementations of each roundseparately. The results show that the sorting algorithms (in Java), which Aari has been trainedto recognize (Insertion sort, Selection sort, Bubble sort, Quicksort and Mergesort), arerecognized with an average accuracy of about 90%. When considering all the submitted sortingalgorithm implementations (including the variations of the standard algorithms), Aari achievedan overall accuracy being 71% and 81% for the first and second round, respectively. The manual analysis of the implementations revealed that students have manymisconceptions related to sorting algorithms. For example, they include unnecessary swaps intheir Insertion or Selection sort implementations. Based on the data, we present acategorization of these types of variations. We also discuss how these categories can be used toimprove education of sorting methods, and to further develop Aari as a white-box testing tool,which gives feedback to the students on their inappropriate solutions and asks them to correctthe problem; something black-box testing is not capable of doing

    Automatic Algorithm Recognition Based on Programming Schemas and Beacons - A Supervised Machine Learning Classification Approach

    Get PDF
    In this thesis, we present techniques to recognize basic algorithms covered in computer science education from source code. The techniques use various software metrics, language constructs and other characteristics of source code, as well as the concept of schemas and beacons from program comprehension models. Schemas are high level programming knowledge with detailed knowledge abstracted out. Beacons are statements that imply specific structures in a program. Moreover, roles of variables constitute an important part of the techniques. Roles are concepts that describe the behavior and usage of variables in a program. They have originally been introduced to help novices learn programming. We discuss two methods for algorithm recognition. The first one is a classification method based on a supervised machine learning technique. It uses the vectors of characteristics and beacons automatically computed from the algorithm implementations of a training set to learn what characteristics and beacons can best describe each algorithm. Based on these observed instance-class pairs, the system assigns a class to each new input algorithm implementation according to its characteristics and beacons. We use the C4.5 algorithm to generate a decision tree that performs the task. In the second method, the schema detection method, algorithms are defined as schemas that exist in the knowledge base of the system. To identify an algorithm, the method searches the source code to detect schemas that correspond to those predefined schemas. Moreover, we present a method that combines these two methods: it first applies the schema detection method to extract algorithmic schemas from the given program and then proceeds to the classification method applied to the schema parts only. This enhances the reliability of the classification method, as the characteristics and beacons are computed only from the algorithm implementation code, instead of the whole given program. We discuss several empirical studies conducted to evaluate the performance of the methods. Some results are as follows: evaluated by leave-one-out cross-validation, the estimated classification accuracy for sorting algorithms is 98,1%, for searching, heap, basic tree traversal and graph algorithms 97,3% and for the combined method (on sorting algorithms and their variations from real student submissions) 97,0%. For the schema detection method, the accuracy is 88,3% and 94,1%, respectively. In addition, we present a study for categorizing student-implemented sorting algorithms and their variations in order to find problematic solutions that would allow us to give feedback on them. We also explain how these variations can be automatically recognized

    Creation and Implementation of the Innovation-Based Learning Framework: A Learning Analytics Approach

    Get PDF
    To meet the national and international call for creative and innovative engineers, many engineering departments and classrooms are striving to create more authentic learning spaces where students are actively engaging with design and innovation activities. For example, one model for teaching innovation is Innovation-Based Learning (IBL) where students learn fundamental engineering concepts and apply them to an innovation project with the goal of producing value outsidethe classroom. The model has been fairly successful, but questions still remain about how to best support students and instructors in open-ended innovation spaces. To answer these questions, learning analytics and educational data mining (LA/EDM) techniques were used to better understand student innovation in IBL settings. LA/EDM is a growing field with the goal of collecting and interpreting large amounts of educational data to support student learning. In this work, five LA/EDM algorithms and tools were developed: 1) the IBL framework which groups student actions into illustrative categories specific to innovation environments, 2) a classifier model that automatically groups student text into the categories of the framework, 3) classifier models that leverage the IBL framework to predict student success, 4) clustering models that group students with similar behavior, and 5) epistemic network analysis models that summarize temporal student behavior. For each of the five algorithms/tools, the design, development, assessment, and resulting implications are presented. Together, the results paint a picture of the affordances and challenges of teaching and learning innovation. The main insights gained are how language and temporal behavior provide meaningful information about students? learning and innovation processes, the unique challenges that result from incorporating open-ended innovation into the classroom, and the impact of using LA/EDM tools to overcome these challenges

    Comparative Study of C, Java, C# and Jython

    Get PDF
    Comparing programming languages is a common topic among programmers and software developers. With the recent changes in programming standards and continual upgrades in hardware design, many new programming languages are being developed, while existing ones are currently going through several enhancements in terms of design and implementation. In this research, we present a comparative study of four programming languages, C, Java, C#, and Jython, with respect to the following criteria: memory consumption, CPU utilization, and execution time. Each test was performed in a distributed system using TCP sockets with 1, 2, 4 and 8 clients, and on a symmetric multiprocessing system

    Parallel Counting Sort: A Modified of Counting Sort Algorithm

    Get PDF
    Sorting is one of a classic problem in computer engineer. One well-known sorting algorithm is a Counting Sort algorithm. Counting Sort had one problem, it can’t sort a positive and negative number in the same input list. Then, Modified Counting Sort created to solve that’s problem. The algorithm will split the numbers before the sorting process begin. This paper will tell another modification of this algorithm. The algorithm called Parallel Counting Sort. Parallel Counting Sort able to increase the execution time about 70% from Modified Counting Sort, especially in a big dataset (around 1000 and 10.000 numbers)

    Evolving decision trees for the categorization of software

    Get PDF
    Current manual techniques of static reverse engineering are inefficient at providing semantic program understanding. An automated method to categorize applications was developed in order to quickly determine pertinent characteristics. Prior work in this area has had some success, but a major strength of the approach detailed in this thesis is that it produces heuristics that can be reused for quick analysis of new data. The method relies on a genetic programming algorithm to evolve decision trees which can be used to categorize software. The terminals, or leaf nodes, within the trees each contain values based on selected features from one of several attributes: system calls, byte N-grams, opcode N-grams, registers, opcode collocation, cyclomatic complexity, and bonding. The evolved decision trees are reusable and achieve average accuracies above 90% when categorizing programs based on compiler origin, authorship, and versions. Developing new decision trees simply requires more labeled datasets and potentially different feature selection algorithms for other attributes, depending on the data being classified. The genetic programming algorithm used to evolve the decision trees was compared against C4.5, a classic decision tree technique.In all experiments, the genetic programming approach outperformed C4.5. This thesis is an extension and expansion of the work published in the Computer Forensics in Software Engineering workshop at COMPSAC 2014 - the Annual 38th IEEE International Conference on Computer Software and Applications. This thesis is also being prepared as a journal article to be submitted for publication. --Abstract, page iii

    Restructuring for Mathematical Power: Techniques for Teaching Thinking in Algebra

    Get PDF
    Recent critiques of mathematics education have resulted in proposals to restructure learning and teaching for mathematical power. The new vision pictures the classroom as a community of learners where mathematics come alive as a useful tool in our technological society. However, many high school mathematics teachers are struggling to understand and implement the fundamental instructional change inherent in the vision. Written from the perspective of a high school teacher for experienced high school mathematics teachers, this thesis attempts to bridge vision and practice. To clarify the vision, current literature on reform in mathematics education is synthesized into a framework of eight instructional targets. Four of the targets focus on student behavior indicative of mathematical power: deep understanding of concepts and schemas, mathematical thinking, communication about mathematics and a positive disposition toward mathematics. The other four targets focus on the instructional setting: student-centered tasks, a variety of work formats, mathematical tools and assessment alternatives. Suggestions for each target help teachers generate ideas for implementation. The framework is based on seven learning principles synthesized from current research: 1) knowledge is constructed: 2) all students can grapple with complex ideas; 3) conceptual learning is effective; 4) prior knowledge influences learning; 5) learning is a social act; 6) change in cognitive structure is a goal of teaching; and 7) students must be actively engaged to learn. To implement the vision, the recommended strategy for experienced teachers is to expand their repertoire of instructional methods by focusing on teaching thinking. Guidelines for a model of thinking, levels of curriculum planning and relevant issues in cognitive education are incorporated into a lesson plan model. As tactical examples of the implementation strategy, three techniques designed to develop ;the thinking processes of classifying, pattern finding and concept formation are modeled using Algebra I content. The presentation of the techniques is structured to emphasize general instructional decisions made by the teacher in order to enhance transfer to particular classrooms. Two underlying convictions are: experienced teachers attempting reform must focus on the process of instruction; and successful reform depends on teacher reflection leading to ownership of the vision
    • …
    corecore