Search results for: programming language C#
4556 Attitudes toward Programming Languages Based on Characteristics
Authors: Mohammad Shokoohi-Yekta, Hamid Mirebrahim
Abstract:
A body of research has been devoted to investigating the preferences of computer programmers. These researches used various questionnaires to find out what programming language is most popular among programmers. The problem with such research is that the programmers are usually familiar with only a few languages; therefore, disregarding a number of other languages which might have characteristics that match their preferences more closely. To overcome such a problem, we decided to investigate the preferences of programmers in regards to the characteristics of languages, which help us to discover the languages that include the most characteristics preferred by the users. We conducted a user study to measure the preferences of programmers on different characteristics of programming languages and then tried to compare existing languages in the areas of application, Web and system programming. Overall, the results of our study indicated that the Ruby programming language has the highest preference score in the two areas of application and Web, and C++ has the highest score in the system area. The results of our study can also help programming language designers know the characteristics they should consider when developing new programming languages in order to attract more programmers.Keywords: object orientation, programming language design, programmers' preferences, characteristic
Procedia PDF Downloads 4964555 Implementation of a Serializer to Represent PHP Objects in the Extensible Markup Language
Authors: Lidia N. Hernández-Piña, Carlos R. Jaimez-González
Abstract:
Interoperability in distributed systems is an important feature that refers to the communication of two applications written in different programming languages. This paper presents a serializer and a de-serializer of PHP objects to and from XML, which is an independent library written in the PHP programming language. The XML generated by this serializer is independent of the programming language, and can be used by other existing Web Objects in XML (WOX) serializers and de-serializers, which allow interoperability with other object-oriented programming languages.Keywords: interoperability, PHP object serialization, PHP to XML, web objects in XML, WOX
Procedia PDF Downloads 2354554 Design Of An Arduino Shield For New Generation Microcontroller Training
Authors: Boubacar Niang, Denis Raulin
Abstract:
This paper presents the design of a dedicated board for learning and programming with ATMEL AVR new generation micro controller’s family. This board designed as a "shield" for the Arduino Uno allows us to focus on the design and programming of basic micro controller functionalities in high level language with a considerable time saving because of dealing with additional components is not required.Keywords: Arduino, microcontroller, programming, language
Procedia PDF Downloads 5824553 Programming Language Extension Using Structured Query Language for Database Access
Authors: Chapman Eze Nnadozie
Abstract:
Relational databases constitute a very vital tool for the effective management and administration of both personal and organizational data. Data access ranges from a single user database management software to a more complex distributed server system. This paper intends to appraise the use a programming language extension like structured query language (SQL) to establish links to a relational database (Microsoft Access 2013) using Visual C++ 9 programming language environment. The methodology used involves the creation of tables to form a database using Microsoft Access 2013, which is Object Linking and Embedding (OLE) database compliant. The SQL command is used to query the tables in the database for easy extraction of expected records inside the visual C++ environment. The findings of this paper reveal that records can easily be accessed and manipulated to filter exactly what the user wants, such as retrieval of records with specified criteria, updating of records, and deletion of part or the whole records in a table.Keywords: data access, database, database management system, OLE, programming language, records, relational database, software, SQL, table
Procedia PDF Downloads 1864552 Jointly Learning Python Programming and Analytic Geometry
Authors: Cristina-Maria Păcurar
Abstract:
The paper presents an original Python-based application that outlines the advantages of combining some elementary notions of mathematics with the study of a programming language. The application support refers to some of the first lessons of analytic geometry, meaning conics and quadrics and their reduction to a standard form, as well as some related notions. The chosen programming language is Python, not only for its closer to an everyday language syntax – and therefore, enhanced readability – but also for its highly reusable code, which is of utmost importance for a mathematician that is accustomed to exploit already known and used problems to solve new ones. The purpose of this paper is, on one hand, to support the idea that one of the most appropriate means to initiate one into programming is throughout mathematics, and reciprocal, one of the most facile and handy ways to assimilate some basic knowledge in the study of mathematics is to apply them in a personal project. On the other hand, besides being a mean of learning both programming and analytic geometry, the application subject to this paper is itself a useful tool for it can be seen as an independent original Python package for analytic geometry.Keywords: analytic geometry, conics, python, quadrics
Procedia PDF Downloads 2914551 Learning Programming for Hearing Impaired Students via an Avatar
Authors: Nihal Esam Abuzinadah, Areej Abbas Malibari, Arwa Abdulaziz Allinjawi, Paul Krause
Abstract:
Deaf and hearing-impaired students face many obstacles throughout their education, especially with learning applied sciences such as computer programming. In addition, there is no clear signs in the Arabic Sign Language that can be used to identify programming logic terminologies such as while, for, case, switch etc. However, hearing disabilities should not be a barrier for studying purpose nowadays, especially with the rapid growth in educational technology. In this paper, we develop an Avatar based system to teach computer programming to deaf and hearing-impaired students using Arabic Signed language with new signs vocabulary that is been developed for computer programming education. The system is tested on a number of high school students and results showed the importance of visualization in increasing the comprehension or understanding of concepts for deaf students through the avatar.Keywords: hearing-impaired students, isolation, self-esteem, learning difficulties
Procedia PDF Downloads 1444550 Modeling Revolution Shell Structures by MATLAB Programming-Axisymmetric and Nonaxisymmetric Shells
Authors: Hamadi Djamal, Labiodh Bachir, Ounis Abdelhafid, Chaalane Mourad
Abstract:
The objective of this work is setting numerically operational finite element CAXI_L for the axisymmetric and nonaxisymmetric shells. This element is based on the Reissner-Mindlin theory and mixed model formulation. The MATLAB language is used for the programming. In order to test the elaborated program, some applications are carried out.Keywords: axisymmetric shells, nonaxisymmetric behaviour, finite element, MATLAB programming
Procedia PDF Downloads 3144549 A Common Automated Programming Platform for Knowledge Based Software Engineering
Authors: Ivan Stanev, Maria Koleva
Abstract:
A common platform for automated programming (CPAP) is defined in details. Two versions of CPAP are described: Cloud-based (including the set of components for classic programming, and the set of components for combined programming) and KBASE based (including the set of components for automated programming, and the set of components for ontology programming). Four KBASE products (module for automated programming of robots, intelligent product manual, intelligent document display, and intelligent form generator) are analyzed and CPAP contributions to automated programming are presented.Keywords: automated programming, cloud computing, knowledge based software engineering, service oriented architecture
Procedia PDF Downloads 3414548 A Survey of Grammar-Based Genetic Programming and Applications
Authors: Matthew T. Wilson
Abstract:
This paper covers a selection of research utilizing grammar-based genetic programming, and illustrates how context-free grammar can be used to constrain genetic programming. It focuses heavily on grammatical evolution, one of the most popular variants of grammar-based genetic programming, and the way its operators and terminals are specialized and modified from those in genetic programming. A variety of implementations of grammatical evolution for general use are covered, as well as research each focused on using grammatical evolution or grammar-based genetic programming on a single application, or to solve a specific problem, including some of the classically considered genetic programming problems, such as the Santa Fe Trail.Keywords: context-free grammar, genetic algorithms, genetic programming, grammatical evolution
Procedia PDF Downloads 1864547 Context Detection in Spreadsheets Based on Automatically Inferred Table Schema
Authors: Alexander Wachtel, Michael T. Franzen, Walter F. Tichy
Abstract:
Programming requires years of training. With natural language and end user development methods, programming could become available to everyone. It enables end users to program their own devices and extend the functionality of the existing system without any knowledge of programming languages. In this paper, we describe an Interactive Spreadsheet Processing Module (ISPM), a natural language interface to spreadsheets that allows users to address ranges within the spreadsheet based on inferred table schema. Using the ISPM, end users are able to search for values in the schema of the table and to address the data in spreadsheets implicitly. Furthermore, it enables them to select and sort the spreadsheet data by using natural language. ISPM uses a machine learning technique to automatically infer areas within a spreadsheet, including different kinds of headers and data ranges. Since ranges can be identified from natural language queries, the end users can query the data using natural language. During the evaluation 12 undergraduate students were asked to perform operations (sum, sort, group and select) using the system and also Excel without ISPM interface, and the time taken for task completion was compared across the two systems. Only for the selection task did users take less time in Excel (since they directly selected the cells using the mouse) than in ISPM, by using natural language for end user software engineering, to overcome the present bottleneck of professional developers.Keywords: natural language processing, natural language interfaces, human computer interaction, end user development, dialog systems, data recognition, spreadsheet
Procedia PDF Downloads 3104546 Cutting Plane Methods for Integer Programming: NAZ Cut and Its Variations
Authors: A. Bari
Abstract:
Integer programming is a branch of mathematical programming techniques in operations research in which some or all of the variables are required to be integer valued. Various cuts have been used to solve these problems. We have also developed cuts known as NAZ cut & A-T cut to solve the integer programming problems. These cuts are used to reduce the feasible region and then reaching the optimal solution in minimum number of steps.Keywords: Integer Programming, NAZ cut, A-T cut, Cutting plane method
Procedia PDF Downloads 3634545 WhatsApp as Part of a Blended Learning Model to Help Programming Novices
Authors: Tlou J. Ramabu
Abstract:
Programming is one of the challenging subjects in the field of computing. In the higher education sphere, some programming novices’ performance, retention rate, and success rate are not improving. Most of the time, the problem is caused by the slow pace of learning, difficulty in grasping the syntax of the programming language and poor logical skills. More importantly, programming forms part of major subjects within the field of computing. As a result, specialized pedagogical methods and innovation are highly recommended. Little research has been done on the potential productivity of the WhatsApp platform as part of a blended learning model. In this article, the authors discuss the WhatsApp group as a part of blended learning model incorporated for a group of programming novices. We discuss possible administrative activities for productive utilisation of the WhatsApp group on the blended learning overview. The aim is to take advantage of the popularity of WhatsApp and the time students spend on it for their educational purpose. We believe that blended learning featuring a WhatsApp group may ease novices’ cognitive load and strengthen their foundational programming knowledge and skills. This is a work in progress as the proposed blended learning model with WhatsApp incorporated is yet to be implemented.Keywords: blended learning, higher education, WhatsApp, programming, novices, lecturers
Procedia PDF Downloads 1724544 An Empirical Study of the Effect of Robot Programming Education on the Computational Thinking of Young Children: The Role of Flowcharts
Abstract:
There is an increasing interest in introducing computational thinking at an early age. Computational thinking, like mathematical thinking, engineering thinking, and scientific thinking, is a kind of analytical thinking. Learning computational thinking skills is not only to improve technological literacy, but also allows learners to equip with practicable skills such as problem-solving skills. As people realize the importance of computational thinking, the field of educational technology faces a problem: how to choose appropriate tools and activities to help students develop computational thinking skills. Robots are gradually becoming a popular teaching tool, as robots provide a tangible way for young children to access to technology, and controlling a robot through programming offers them opportunities to engage in developing computational thinking. This study explores whether the introduction of flowcharts into the robotics programming courses can help children convert natural language into a programming language more easily, and then to better cultivate their computational thinking skills. An experimental study was adopted with a sample of children ages six to seven (N = 16) participated, and a one-meter-tall humanoid robot was used as the teaching tool. Results show that children can master basic programming concepts through robotic courses. Children's computational thinking has been significantly improved. Besides, results suggest that flowcharts do have an impact on young children’s computational thinking skills development, but it only has a significant effect on the "sequencing" and "correspondence" skills. Overall, the study demonstrates that the humanoid robot and flowcharts have qualities that foster young children to learn programming and develop computational thinking skills.Keywords: robotics, computational thinking, programming, young children, flow chart
Procedia PDF Downloads 1464543 Examining Relationship between Programming Performance, Programming Self Efficacy and Math Success
Authors: Mustafa Ekici, Sacide Güzin Mazman
Abstract:
Programming is the one of ability in computer science fields which is generally perceived difficult by students and various individual differences have been implicated in that ability success. Although several factors that affect programming ability have been identified over the years, there is not still a full understanding of why some students learn to program easily and quickly while others find it complex and difficult. Programming self-efficacy and mathematic success are two of those essential individual differences which are handled as having important effect on the programming success. This study aimed to identify the relationship between programming performance, programming self efficacy and mathematics success. The study group is consisted of 96 undergraduates from Department of Econometrics of Uşak University. 38 (39,58%) of the participants are female while 58 (60,41%) of them are male. Study was conducted in the programming-I course during 2014-2015 fall term. Data collection tools are comprised of programming course final grades, programming self efficacy scale and a mathematics achievement test. Data was analyzed through correlation analysis. The result of study will be reported in the full text of the study.Keywords: programming performance, self efficacy, mathematic success, computer science
Procedia PDF Downloads 5004542 Creation of an Integrated Development Environment to Assist and Optimize the Learning the Languages C and C++
Authors: Francimar Alves, Marcos Castro, Marllus Lustosa
Abstract:
In the context of the teaching of computer programming, the choice of tool to use is very important in the initiation and continuity of learning a programming language. The literature tools do not always provide usability and pedagogical dynamism clearly and accurately for effective learning. This hypothesis implies fall in productivity and difficulty of learning a particular programming language by students. The integrated development environments (IDEs) Dev-C ++ and Code :: Blocks are widely used in introductory courses for undergraduate courses in Computer Science for learning C and C ++ languages. However, after several years of discontinuity maintaining the source code of Dev-C ++ tool, the continued use of the same in the teaching and learning process of the students of these institutions has led to difficulties, mainly due to the lack of update by the official developers, which resulted in a sequence of problems in using it on educational settings. Much of the users, dissatisfied with the IDE Dev-C ++, migrated to Code :: Blocks platform targeting the more dynamic range in the learning process of the C and C ++ languages. Nevertheless, there is still the need to create a tool that can provide the resources of most IDE's software development literature, however, more interactive, simple, accurate and efficient. This motivation led to the creation of Falcon C ++ tool, IDE that brings with features that turn it into an educational platform, which focuses primarily on increasing student learning index in the early disciplines of programming and algorithms that use the languages C and C ++ . As a working methodology, a field research to prove the truth of the proposed tool was used. The test results and interviews with entry-level students and intermediate in a postsecondary institution gave basis for the composition of this work, demonstrating a positive impact on the use of the tool in teaching programming, showing that the use of Falcon C ++ software is beneficial in the teaching process of the C and C ++ programming languages.Keywords: ide, education, learning, development, language
Procedia PDF Downloads 4424541 Application of De Novo Programming Approach for Optimizing the Business Process
Authors: Z. Babic, I. Veza, A. Balic, M. Crnjac
Abstract:
The linear programming model is sometimes difficult to apply in real business situations due to its assumption of proportionality. This paper shows an example of how to use De Novo programming approach instead of linear programming. In the De Novo programming, resources are not fixed like in linear programming but resource quantities depend only on available budget. Budget is a new, important element of the De Novo approach. Two different production situations are presented: increasing costs and quantity discounts of raw materials. The focus of this paper is on advantages of the De Novo approach in the optimization of production plan for production company which produces souvenirs made from famous stone from the island of Brac, one of the greatest islands from Croatia.Keywords: business process, De Novo programming, optimizing, production
Procedia PDF Downloads 2204540 A User-Directed Approach to Optimization via Metaprogramming
Authors: Eashan Hatti
Abstract:
In software development, programmers often must make a choice between high-level programming and high-performance programs. High-level programming encourages the use of complex, pervasive abstractions. However, the use of these abstractions degrades performance-high performance demands that programs be low-level. In a compiler, the optimizer attempts to let the user have both. The optimizer takes high-level, abstract code as an input and produces low-level, performant code as an output. However, there is a problem with having the optimizer be a built-in part of the compiler. Domain-specific abstractions implemented as libraries are common in high-level languages. As a language’s library ecosystem grows, so does the number of abstractions that programmers will use. If these abstractions are to be performant, the optimizer must be extended with new optimizations to target them, or these abstractions must rely on existing general-purpose optimizations. The latter is often not as effective as needed. The former presents too significant of an effort for the compiler developers, as they are the only ones who can extend the language with new optimizations. Thus, the language becomes more high-level, yet the optimizer – and, in turn, program performance – falls behind. Programmers are again confronted with a choice between high-level programming and high-performance programs. To investigate a potential solution to this problem, we developed Peridot, a prototype programming language. Peridot’s main contribution is that it enables library developers to easily extend the language with new optimizations themselves. This allows the optimization workload to be taken off the compiler developers’ hands and given to a much larger set of people who can specialize in each problem domain. Because of this, optimizations can be much more effective while also being much more numerous. To enable this, Peridot supports metaprogramming designed for implementing program transformations. The language is split into two fragments or “levels”, one for metaprogramming, the other for high-level general-purpose programming. The metaprogramming level supports logic programming. Peridot’s key idea is that optimizations are simply implemented as metaprograms. The meta level supports several specific features which make it particularly suited to implementing optimizers. For instance, metaprograms can automatically deduce equalities between the programs they are optimizing via unification, deal with variable binding declaratively via higher-order abstract syntax, and avoid the phase-ordering problem via non-determinism. We have found that this design centered around logic programming makes optimizers concise and easy to write compared to their equivalents in functional or imperative languages. Overall, implementing Peridot has shown that its design is a viable solution to the problem of writing code which is both high-level and performant.Keywords: optimization, metaprogramming, logic programming, abstraction
Procedia PDF Downloads 854539 A Fuzzy Programming Approach for Solving Intuitionistic Fuzzy Linear Fractional Programming Problem
Authors: Sujeet Kumar Singh, Shiv Prasad Yadav
Abstract:
This paper develops an approach for solving intuitionistic fuzzy linear fractional programming (IFLFP) problem where the cost of the objective function, the resources, and the technological coefficients are triangular intuitionistic fuzzy numbers. Here, the IFLFP problem is transformed into an equivalent crisp multi-objective linear fractional programming (MOLFP) problem. By using fuzzy mathematical programming approach the transformed MOLFP problem is reduced into a single objective linear programming (LP) problem. The proposed procedure is illustrated through a numerical example.Keywords: triangular intuitionistic fuzzy number, linear programming problem, multi objective linear programming problem, fuzzy mathematical programming, membership function
Procedia PDF Downloads 5654538 Sensitivity Analysis in Fuzzy Linear Programming Problems
Authors: S. H. Nasseri, A. Ebrahimnejad
Abstract:
Fuzzy set theory has been applied to many fields, such as operations research, control theory, and management sciences. In this paper, we consider two classes of fuzzy linear programming (FLP) problems: Fuzzy number linear programming and linear programming with trapezoidal fuzzy variables problems. We state our recently established results and develop fuzzy primal simplex algorithms for solving these problems. Finally, we give illustrative examples.Keywords: fuzzy linear programming, fuzzy numbers, duality, sensitivity analysis
Procedia PDF Downloads 5644537 JaCoText: A Pretrained Model for Java Code-Text Generation
Authors: Jessica Lopez Espejel, Mahaman Sanoussi Yahaya Alassan, Walid Dahhane, El Hassane Ettifouri
Abstract:
Pretrained transformer-based models have shown high performance in natural language generation tasks. However, a new wave of interest has surged: automatic programming language code generation. This task consists of translating natural language instructions to a source code. Despite the fact that well-known pre-trained models on language generation have achieved good performance in learning programming languages, effort is still needed in automatic code generation. In this paper, we introduce JaCoText, a model based on Transformer neural network. It aims to generate java source code from natural language text. JaCoText leverages the advantages of both natural language and code generation models. More specifically, we study some findings from state of the art and use them to (1) initialize our model from powerful pre-trained models, (2) explore additional pretraining on our java dataset, (3) lead experiments combining the unimodal and bimodal data in training, and (4) scale the input and output length during the fine-tuning of the model. Conducted experiments on CONCODE dataset show that JaCoText achieves new state-of-the-art results.Keywords: java code generation, natural language processing, sequence-to-sequence models, transformer neural networks
Procedia PDF Downloads 2834536 Lego Mindstorms as a Simulation of Robotic Systems
Authors: Miroslav Popelka, Jakub Nožička
Abstract:
In this paper we deal with using Lego Mindstorms in simulation of robotic systems with respect to cost reduction. Lego Mindstorms kit contains broad variety of hardware components which are required to simulate, program and test the robotics systems in practice. Algorithm programming went in development environment supplied together with Lego kit as in programming language C# as well. Algorithm following the line, which we dealt with in this paper, uses theoretical findings from area of controlling circuits. PID controller has been chosen as controlling circuit whose individual components were experimentally adjusted for optimal motion of robot tracking the line. Data which are determined to process by algorithm are collected by sensors which scan the interface between black and white surfaces followed by robot. Based on discovered facts Lego Mindstorms can be considered for low-cost and capable kit to simulate real robotics systems.Keywords: LEGO Mindstorms, PID controller, low-cost robotics systems, line follower, sensors, programming language C#, EV3 Home Edition Software
Procedia PDF Downloads 3734535 Refining Scheme Using Amphibious Epistemologies
Authors: David Blaine, George Raschbaum
Abstract:
The evaluation of DHCP has synthesized SCSI disks, and current trends suggest that the exploration of e-business that would allow for further study into robots will soon emerge. Given the current status of embedded algorithms, hackers worldwide obviously desire the exploration of replication, which embodies the confusing principles of programming languages. In our research we concentrate our efforts on arguing that erasure coding can be made "fuzzy", encrypted, and game-theoretic.Keywords: SCHI disks, robot, algorithm, hacking, programming language
Procedia PDF Downloads 4254534 Improving Student Programming Skills in Introductory Computer and Data Science Courses Using Generative AI
Authors: Genady Grabarnik, Serge Yaskolko
Abstract:
Generative Artificial Intelligence (AI) has significantly expanded its applicability with the incorporation of Large Language Models (LLMs) and become a technology with promise to automate some areas that were very difficult to automate before. The paper describes the introduction of generative Artificial Intelligence into Introductory Computer and Data Science courses and analysis of effect of such introduction. The generative Artificial Intelligence is incorporated in the educational process two-fold: For the instructors, we create templates of prompts for generation of tasks, and grading of the students work, including feedback on the submitted assignments. For the students, we introduce them to basic prompt engineering, which in turn will be used for generation of test cases based on description of the problems, generating code snippets for the single block complexity programming, and partitioning into such blocks of an average size complexity programming. The above-mentioned classes are run using Large Language Models, and feedback from instructors and students and courses’ outcomes are collected. The analysis shows statistically significant positive effect and preference of both stakeholders.Keywords: introductory computer and data science education, generative AI, large language models, application of LLMS to computer and data science education
Procedia PDF Downloads 574533 Literacy in First and Second Language: Implication for Language Education
Authors: Inuwa Danladi Bawa
Abstract:
One of the challenges of African states in the development of education in the past and the present is the problem of literacy. Literacy in the first language is seen as a strong base for the development of second language; they are mostly the language of education. Language development is an offshoot of language planning; so the need to develop literacy in both first and second language affects language education and predicts the extent of achievement of the entire education sector. The need to balance literacy acquisition in first language for good conditioning the acquisition of second language is paramount. Likely constraints that includes; non-standardization, underdeveloped and undeveloped first languages are among many. Solutions to some of these include the development of materials and use of the stages and levels of literacy acquisition. This is with believed that a child writes well in second language if he has literacy in the first language.Keywords: first language, second language, literacy, english language, linguistics
Procedia PDF Downloads 4504532 Programming without Code: An Approach and Environment to Conditions-On-Data Programming
Authors: Philippe Larvet
Abstract:
This paper presents the concept of an object-based programming language where tests (if... then... else) and control structures (while, repeat, for...) disappear and are replaced by conditions on data. According to the object paradigm, by using this concept, data are still embedded inside objects, as variable-value couples, but object methods are expressed into the form of logical propositions (‘conditions on data’ or COD).For instance : variable1 = value1 AND variable2 > value2 => variable3 = value3. Implementing this approach, a central inference engine turns and examines objects one after another, collecting all CODs of each object. CODs are considered as rules in a rule-based system: the left part of each proposition (left side of the ‘=>‘ sign) is the premise and the right part is the conclusion. So, premises are evaluated and conclusions are fired. Conclusions modify the variable-value couples of the object and the engine goes to examine the next object. The paper develops the principles of writing CODs instead of complex algorithms. Through samples, the paper also presents several hints for implementing a simple mechanism able to process this ‘COD language’. The proposed approach can be used within the context of simulation, process control, industrial systems validation, etc. By writing simple and rigorous conditions on data, instead of using classical and long-to-learn languages, engineers and specialists can easily simulate and validate the functioning of complex systems.Keywords: conditions on data, logical proposition, programming without code, object-oriented programming, system simulation, system validation
Procedia PDF Downloads 2204531 The Primitive Code-Level Design Patterns for Distributed Programming
Authors: Bing Li
Abstract:
The primitive code-level design patterns (PDP) are the rudimentary programming elements to develop any distributed systems in the generic distributed programming environment, GreatFree. The PDP works with the primitive distributed application programming interfaces (PDA), the distributed modeling, and the distributed concurrency for scaling-up. They not only hide developers from underlying technical details but also support sufficient adaptability to a variety of distributed computing environments. Programming with them, the simplest distributed system, the lightweight messaging two-node client/server (TNCS) system, is constructed rapidly with straightforward and repeatable behaviors, copy-paste-replace (CPR). As any distributed systems are made up of the simplest ones, those PDAs, as well as the PDP, are generic for distributed programming.Keywords: primitive APIs, primitive code-level design patterns, generic distributed programming, distributed systems, highly patterned development environment, messaging
Procedia PDF Downloads 1904530 Mathematical Programming Models for Portfolio Optimization Problem: A Review
Authors: Mazura Mokhtar, Adibah Shuib, Daud Mohamad
Abstract:
Portfolio optimization problem has received a lot of attention from both researchers and practitioners over the last six decades. This paper provides an overview of the current state of research in portfolio optimization with the support of mathematical programming techniques. On top of that, this paper also surveys the solution algorithms for solving portfolio optimization models classifying them according to their nature in heuristic and exact methods. To serve these purposes, 40 related articles appearing in the international journal from 2003 to 2013 have been gathered and analyzed. Based on the literature review, it has been observed that stochastic programming and goal programming constitute the highest number of mathematical programming techniques employed to tackle the portfolio optimization problem. It is hoped that the paper can meet the needs of researchers and practitioners for easy references of portfolio optimization.Keywords: portfolio optimization, mathematical programming, multi-objective programming, solution approaches
Procedia PDF Downloads 3464529 Architecture of a Preliminary Course on Computational Thinking
Authors: Mintu Philip, Renumol V. G.
Abstract:
An introductory programming course is a major challenge faced in Computing Education. Many of the introductory programming courses fail because student concentrate mainly on writing programs using a programming language rather than involving in problem solving. Computational thinking is a general approach to solve problems. This paper proposes a new preliminary course that aims to develop computational thinking skills in students, which may help them to become good programmers. The proposed course is designed based on the four basic components of computational thinking - abstract thinking, logical thinking, modeling thinking and constructive thinking. In this course, students are engaged in hands-on problem solving activities using a new problem solving model proposed in this paper.Keywords: computational thinking, computing education, abstraction, constructive thinking, modelling thinking
Procedia PDF Downloads 4554528 Understanding the Programming Techniques Using a Complex Case Study to Teach Advanced Object-Oriented Programming
Authors: M. Al-Jepoori, D. Bennett
Abstract:
Teaching Object-Oriented Programming (OOP) as part of a Computing-related university degree is a very difficult task; the road to ensuring that students are actually learning object oriented concepts is unclear, as students often find it difficult to understand the concept of objects and their behavior. This problem is especially obvious in advanced programming modules where Design Pattern and advanced programming features such as Multi-threading and animated GUI are introduced. Looking at the students’ performance at their final year on a university course, it was obvious that the level of students’ understanding of OOP varies to a high degree from one student to another. Students who aim at the production of Games do very well in the advanced programming module. However, the students’ assessment results of the last few years were relatively low; for example, in 2016-2017, the first quartile of marks were as low as 24.5 and the third quartile was 63.5. It is obvious that many students were not confident or competent enough in their programming skills. In this paper, the reasons behind poor performance in Advanced OOP modules are investigated, and a suggested practice for teaching OOP based on a complex case study is described and evaluated.Keywords: complex programming case study, design pattern, learning advanced programming, object oriented programming
Procedia PDF Downloads 2204527 Improving Mathematics and Engineering Interest through Programming
Authors: Geoffrey A. Wright
Abstract:
In an attempt to address shortcomings revealed in international assessments and lamented in legislation, many schools are reducing or eliminating elective courses, applying the rationale that replacing "non-essential" subjects with core subjects, such as mathematics and language arts, will better position students in the global market. However, there is evidence that systematically pairing a core subject with another complementary subject may lead to greater overall learning in both subjects. In this paper, we outline the methods and preliminary findings from a study we conducted analyzing the influence learning programming has on student mathematical comprehension and ability. The purpose of this research is to demonstrate in what ways two subjects might complement each other, and to better understand the principles and conditions that encourage what we call lateral transfer, the synergistic effect that occurs when a learner studies two complementary subjects.Keywords: programming, engineering, technology, complementary subjects
Procedia PDF Downloads 356