• Title/Summary/Keyword: Programming language

Search Result 1,155, Processing Time 0.026 seconds

A Survey of Automatic Code Generation from Natural Language

  • Shin, Jiho;Nam, Jaechang
    • Journal of Information Processing Systems
    • /
    • v.17 no.3
    • /
    • pp.537-555
    • /
    • 2021
  • Many researchers have carried out studies related to programming languages since the beginning of computer science. Besides programming with traditional programming languages (i.e., procedural, object-oriented, functional programming language, etc.), a new paradigm of programming is being carried out. It is programming with natural language. By programming with natural language, we expect that it will free our expressiveness in contrast to programming languages which have strong constraints in syntax. This paper surveys the approaches that generate source code automatically from a natural language description. We also categorize the approaches by their forms of input and output. Finally, we analyze the current trend of approaches and suggest the future direction of this research domain to improve automatic code generation with natural language. From the analysis, we state that researchers should work on customizing language models in the domain of source code and explore better representations of source code such as embedding techniques and pre-trained models which have been proved to work well on natural language processing tasks.

Design of Teaching·Learning Model for Programming Language Education (프로그래밍 언어 교육을 위한 교수·학습 모델 설계)

  • Kang, Hwan Soo
    • Journal of Digital Contents Society
    • /
    • v.13 no.4
    • /
    • pp.517-524
    • /
    • 2012
  • This paper deals with the design of teaching learning model for programming language education. Various courses related to programming language education have opened at the university having many academic majors. In the meantime, a variety of programming languages have been developed, many integrated development environments of programming language have also been developed for users to make a program easily. But it is difficult for many novice learners to learn programming language still, likewise it is difficult for many teachers to teach the introduction course of programming language. In this paper, we have designed a teaching learning model based on scholastic achievements and blended learning for programming language education. The teaching learning model designed in this study was applied to a course opened in the second semester of 2011. According to the course evaluation result, the teaching learning model for programming language has shown to be an effective for novice learner.

Teaching-Learning Model for Programming Language Learning with Two-Step Feedback

  • Kwon, Boseob
    • Journal of the Korea Society of Computer and Information
    • /
    • v.22 no.8
    • /
    • pp.101-106
    • /
    • 2017
  • In this paper, we propose a new teaching-learning model with two-step feedback on programming language learning, which is a basic preliminary learning for programming. Programming learning is aimed at improving problem solving skills and thinking by experiencing problem solving through programming. For programming, the learner must know how to work with the computer and what to do with it. To do this, concrete thinking should be established and described in an accurate programming language. In recent, most studies have focused on the effects of programming learning and have not studied the effects of education on language itself. Therefore, in this study, the teaching-learning model for programming language education is presented and applied to the field, and the results are compared with the existing instructional-teaching model.

Development of a C-Language Learning Tool using Console Wrapper (Console Wrapper를 활용한 C언어 학습도구 개발)

  • Hwang, Giu-Duck;Choi, Sook-Young
    • Journal of Digital Convergence
    • /
    • v.7 no.3
    • /
    • pp.113-122
    • /
    • 2009
  • The majority of programming education in the learning place attaches importance more to grammar, memorization of the imperative sentence and explanation of the program language itself than the specific way to use the target language. In addition, it is mainly used to teach theoretical knowledge based on the text. Consequently, current programming education has not interested learners in the programming learning and has not improved their ability in programming problems of the real world. We therefore developed a learning tool of C-language, which is based on the Console Wrapper. The purpose of proposing the learning tool was to make the programming education break from the typical theoretical learning and to let learners be interested in the programming education. By using the dynamic screen instead of the static console screen, the learners could enjoy learning the program. As a result of this study, we could know that the programming education using our learning tool is more effective than the typical C language programming education.

  • PDF

Clinical Comparative Analysis of Characteristics of Computer Programming Languages and their Development Environments for Basic Programming Education (기초적인 프로그래밍 교육을 위한 컴퓨터 언어의 특성 및 개발 환경의 임상적 비교 분석)

  • Kang, Dae-Ki
    • Journal of Engineering Education Research
    • /
    • v.15 no.3
    • /
    • pp.66-71
    • /
    • 2012
  • In this paper, we try to explore basic factors that defines easy-to-learn programming language and easy-to-learn development environments for novice students who have not been exposed to computer programming language education. For these purpose, we investigate and analyze computer programming languages that are widely used in industrial environments, and present the summary and analyzed results. From the experimental results, most novice programmers understand computer programming languages in terms of procedural programming languages rather than in terms of functional programming languages or object oriented programming languages. Furthermore, we have found that, for effective education of basic level programming languages, factors of development environments are much more important than factors of programming paradigms that the computer programming languages are based on.

An Integrated C Programming Environment for Novices Based on Visuals (프로그래밍 초보자를 위한 비주얼 기반의 C 프로그래밍 통합 환경)

  • Kim, Haeng-Im;Park, Eun-Kyoung;Kim, Hyun-Ju;Bae, Jong-Min
    • The Journal of Korean Association of Computer Education
    • /
    • v.16 no.6
    • /
    • pp.111-120
    • /
    • 2013
  • Programming novices have various difficulties when they learn C language for the first time. Novices have a large burden for understanding of a C language grammar, and have a tendency to focus on the grammar rather than problem solving. Moreover, it requires programming domains to arouse student's interest for software development. This paper presents a programming environment for C languages education focusing on a problem solving. To this end, this paper defines Tiny-VPL that is a simple visual programming language for NXT robot programming and presents robot programming environment using Tiny-VPL. This paper also presents an environment for NXT robot programming using Mini-C language which is a subset of C language. For the purpose of helping to understand the C syntax and semantics, the visual and interactive conversion system of Tiny-VPL to Mini-C is provided. Our programming environment can arouse student's interest through robot programming and can be used effectively for C language education focusing on problem solving with graphical and interactive conversion of the visual language Tiny-VPL to the textual language Mini-C.

  • PDF

The Effect of teaching Scratch in introductory programming course (프로그래밍입문 수업에서 스크래치 활용 효과분석)

  • Park, JungShin;Cho, SeokBong
    • Journal of Digital Convergence
    • /
    • v.10 no.9
    • /
    • pp.449-456
    • /
    • 2012
  • The college students who have relatively weak academic background feel more difficult in learning programming language grammars and programming skills in introductory course. At the end of semester, most of students had the negative attitude to programming and only a few students could write the programs for the given problems because they spent most of time to learn grammars instead of learning problem solving skills and logics. In this study, we propose to use Scratch in introductory programming course to help students to understand grammars and problem solving skills. It's necessary to educate first-time programmers how to solve the problems before they learn grammars of the programming language in their first programming language course. This paper shows that Scratch allows students not only to learn problem solving skills in programming but also to motivate students themselves in the class.

A Concise Korean Programming Language "Sprout" (간결한 한글 프로그래밍 언어 "새싹")

  • Cheon, Junseok;Kang, Dohun;Kim, Gunwoo;Woo, Gyun
    • Journal of KIISE
    • /
    • v.42 no.4
    • /
    • pp.496-503
    • /
    • 2015
  • Most programming languages are designed based on English. It becomes another barrier in learning programming languages in non-English speaking country. If a programming language is presented using a native language, the education cost of programming will be much cheaper and the programming itself can be much more fun. However, designing the programming languages based on native languages has not been much focused or published up to now. It is partly because the evolution of popular programming languages is so fast, and partly because the efficiency of programs is much stressed than the source code. But, the designing of programming languages based on native language is not a small issue, especially if we reflect on the education of programming. In fact, there have been significant efforts reported in the Korean programming languages so far, but it has not practically been used in the education. This paper introduces yet another Korean programming language, namely Sprout, which is concise and can be easily learned by beginners. To demonstrate the conciseness of Sprout, we have performed two experiments on Sprout. Firstly, we compared the sizes of the programs in Sprout with those in former Korean programming languages. Secondly, we compared the size of Sprout, the language itself, with those of popular programming languages such as C and Python. According to the experiments, Sprout programs are more concise to 10% on average than those in former Korean languages. Furthermore, Sprout itself is more compact to 24% on average than other popular programming languages.

Present State of Programming Language Education and Suggestions for Its Improvement (프로그래밍 언어 교육현황과 개선제안)

  • Rheem, Jae-Yeol
    • The Journal of Korean Institute for Practical Engineering Education
    • /
    • v.3 no.1
    • /
    • pp.56-61
    • /
    • 2011
  • As IT technology improves, software is being more and more important. Industry demands higher level of programming ability from university graduates. As a result, programming related courses already take higher possession of electronics department curricula. But even though the environment likewise computer laboratory is improved as much, and professors have tried to enhance the quality of their lectures and educational results, still programming education does not match the demand of our society and industry. In this paper, we introduce the overview of programming education in electronics department, KUT and discuss problems in programming language education especially for the 1st year students, since programming education to the 1st year university students becomes one of the most important part as it deals with fundamentals on programming language and we suggest its improvement directions in regards with students, teaching materials, professors, class size, and class hours.

  • PDF

A Study on the Kernel Supports for a Distributed Programming language (분산 프로그래밍 언어의 kernel에 관한 연구)

  • Kim, Young-Seok;Lee, Kwang-Hui;An, Sun-Shin
    • Proceedings of the KIEE Conference
    • /
    • 1987.07b
    • /
    • pp.1133-1136
    • /
    • 1987
  • In designing and implementing of a distributed system, a programming language which can describe and implement the various interactions between distributed processes in distributed systems is indispensible. High level language constructs such as concurrency. process synchronization between distributed processes and mutually exclusive access to common data could be built in a distributed programming language under the proper support of a language kernel. In this paper, we studied the language constructs a distributed programming language must have and specified the kernel supports necessary in implementing that high level language constructs.

  • PDF