# BarCode

A barcode (also spelled bar code) is a method of representing data in a visual, machine-readable form. Initially, barcodes represented data by varying the widths and spacings of parallel lines. These barcodes, now commonly referred to as linear or one-dimensional (1D), can be scanned by special optical scanners, called barcode readers. Later, two-dimensional (2D) variants were developed, using rectangles, dots, hexagons and other geometric patterns, called matrix codes or 2D barcodes, although they do not use bars as such. 2D barcodes can be read or deconstructed using application software on mobile devices with inbuilt cameras, such as smartphones.
The barcode was invented by Norman Joseph Woodland and Bernard Silver and patented in the US in 1951. The invention was based on Morse code that was extended to thin and thick bars. However, it took over twenty years before this invention became commercially successful. An early use of one type of barcode in an industrial context was sponsored by the Association of American Railroads in the late 1960s. Developed by General Telephone and Electronics (GTE) and called KarTrak ACI (Automatic Car Identification), this scheme involved placing colored stripes in various combinations on steel plates which were affixed to the sides of railroad rolling stock. Two plates were used per car, one on each side, with the arrangement of the colored stripes encoding information such as ownership, type of equipment, and identification number. The plates were read by a trackside scanner, located for instance, at the entrance to a classification yard, while the car was moving past. The project was abandoned after about ten years because the system proved unreliable after long-term use.
Barcodes became commercially successful when they were used to automate supermarket checkout systems, a task for which they have become almost universal. The Uniform Grocery Product Code Council had chosen, in 1973, the barcode design developed by George Laurer. Laurer's barcode, with vertical bars, printed better than the circular barcode developed by Woodland and Silver. Their use has spread to many other tasks that are generically referred to as automatic identification and data capture (AIDC). The very first scanning of the now-ubiquitous Universal Product Code (UPC) barcode was on a pack of Wrigley Company chewing gum in June 1974 at a Marsh supermarket in Troy, Ohio.QR codes, a specific type of 2D barcode, have recently become very popular.
Other systems have made inroads in the AIDC market, but the simplicity, universality and low cost of barcodes has limited the role of these other systems, particularly before technologies such as radio-frequency identification (RFID) became available after 1995.

## Learning Task

* (Product ID) Explain why the concept of a machine readable unique identifier can be used to create a bill at a supermarket. It is possible to encode a price of the product in the BarCode? Why is BarCode not used for encoding the price of a product in the barcode?
* (Comparison QR-Code) Explore the concept of an QR Code and compare the features of an QR code with the features of a BarCode. What are the differences and similarities of QR Code and BarCode?
* (Create your own BarCodes) Create your own barcodes with Javascript libraries in a Web interface e.g. with Johan Lindells Javascript library JsBarcode
* (Barcodes in Learning Resources)
* (Optical Mark Recognition - OMR) Explore the concept of optical mark recognition (OMR) program with the Open Source Software SDAPS. SDAPS is written in python and it is able to use barcodes on the paper and pencil questionnaire that is scanned later and automatically processed the answers of the students. Explain how barcodes can be used to create an individual test for all students that is processed with an integrated workflow from creating tailored questionnaires for all students and automated assessment for the answers e.g. in a spreadshet program or with R. How can you use KnitR for an individual report for all students?
* (Learner Analytics) Explain how a barcode can be used for individualized learner analytics by provision of
** individualized tasks,
** individualized helps,
** individualized reports,
    Is it possible to assure privacy of learner analytics data with a randomly assigned unique barcode to learners with providing the identity of the learner? (e.g. learner 8129387198312 is back in the learning enviroment, provide the missing task X and provide help Y to the learner because he/she responded well to previous support settings)