A fast and effective design and implementation of online programming drills

Research output: Chapter in Book / Conference PaperConference Paperpeer-review

Abstract

We present a student drill system for the C++ programming language, supporting the online delivery and automatic marking. We propose to mainly use sufficient number of random numbers to evaluate symbolic expressions, statements, or functions, while applying sparingly pattern templates to match certain specific syntax or programming structures. A systematic scheme of emulation vs user code, along with the introduction of the "essential equality" of the numerical values, is shown to allow program marking to be readily formulated. By effectively detecting and barring potentially dangerous code segments in the student programs, the auto-marking can be safely achieved on a regular web server. Our online drill system will also monitor the execution of the student code so that it can be forced to terminate under undesirable circumstances like an infinite loop. The aim is to provide an effective and fast implementable C++ drill system that is sufficiently robust for the general students of programming fundamentals.
Original languageEnglish
Title of host publicationProceedings of the 2012 International Conference on Frontiers in Education: Computer Science & Computer Engineering: FECS 2012: July 16-19 2012, Las Vegas, Nevada, USA
PublisherCSREA Press
Pages314-320
Number of pages7
ISBN (Print)1601322127
Publication statusPublished - 2012
EventInternational Conference on Frontiers in Education: Computer Science and Computer Engineering -
Duration: 16 Jul 2012 → …

Conference

ConferenceInternational Conference on Frontiers in Education: Computer Science and Computer Engineering
Period16/07/12 → …

Keywords

  • computer programming
  • programming drills
  • secure code execution
  • C++ (computer language)

Fingerprint

Dive into the research topics of 'A fast and effective design and implementation of online programming drills'. Together they form a unique fingerprint.

Cite this