cognitive assessment and training support system for special
Transcription
cognitive assessment and training support system for special
COGNITIVE ASSESSMENT AND TRAINING SUPPORT SYSTEM FOR SPECIAL CHILDREN YAP EE HAN UNIVERSITI TEKNOLOGI MALAYSIA ii UNIVERSITI TEKNOLOGI MALAYSIA DECLARATION OF THESIS / UNDERGRADUATE STUDY PAPER AND COPYRIGHT Author’s full name : YAP EE HAN Date of birth : 23 JUNE 1987 Title : COGNITIVE ASSESSMENT AND TRAINING SUPPORT SYSTEM FOR SPECIAL CHILDREN Academic Session : 2009/2010 I declare that this thesis is classified as: √ CONFIDENTIAL (Contains confidential information under the Official Secret Act 1972)* RESTRICTED (Contains restricted information as specified by the organisation where research was done)* OPEN ACCESS I agree that my thesis to be published as online open access (full text) I acknowledged that Universiti Teknologi Malaysia reserves the right as follows: 1. The thesis is the property of Universiti Teknologi Malaysia. 2. The Library of Universiti Teknologi Malaysia has the right to make copies for the purpose of research only. 3. The Library has the right to make copies of the thesis for academic exchange. Certified by: SIGNATURE 870623-07-5180 (NEW IC NO. /PASSPORT NO.) Date: 25 APRIL 2010 NOTES : * SIGNATURE OF SUPERVISOR DR. RUBITA SUDIRMAN NAME OF SUPERVISOR Date: 25 APRIL 2010 If the thesis is CONFIDENTIAL or RESTRICTED, please attach with the letter from the organisation with period and reasons for confidentiality or restriction. Date: 7 MAY 2009 MAY 2009 Date : 7 iii “I/We hereby declare that I/we have read the contents of the thesis and to my/our opinion, the contents of the thesis have fulfilled the scope and quality as required to award the Bachelor‟s Degree of Electrical Engineering (Medical Electronics)”. Signature : .................................................... Name of Supervisor I : Dr. Rubita Sudirman Date : 25 April 2010 Signature : .................................................... Name of Supervisor II : Assoc. Prof. Ir. Dr. –Ing. Eko Supriyanto Date : 25 April 2010 iv COGNITIVE ASSESSMENT AND TRAINING SUPPORT SYSTEM FOR SPECIAL CHILDREN YAP EE HAN Submitted to the Faculty of Electrical Engineering in partial fulfillment of the requirements for the award of the Bachelor of Electrical Engineering (Medical Electronics) Faculty of Electrical Engineering Universiti Teknologi Malaysia APRIL 2010 v I declare that this thesis entitle “Cognitive Assessment and Training Support System for Special Children” is the result of my own research except as cited in the reference. This thesis has not been accepted for any degree and is not concurrently submitted in candidature of any other degree. Signature : …………………………………. Name : YAP EE HAN Date : 25 APRIL 2010 vi Dedicated, in thankful appreciation for support, encouragement and understandings to my beloved family, lecturers and friends. vii ACKNOWLEDGEMENT First of all, I would like to express my heartily gratitude to my supervisor, Dr. Rubita Sudirman and my co-supervisor, Assoc. Prof. Ir. Dr. –Ing. Eko Supriyanto for their full guidance, patience and enthusiasm given throughout the progress of this study. My appreciation also goes to my beloved family who has been so tolerant and supports me all these years. Thanks for their encouragement, love and emotional supports that they had given to me. I would also like to thank Medical Electronics Laboratory assistant, Mr. Haikal, and others who are not mentioned for their co-operations, guidance and helps in this study. Nevertheless, my great appreciation dedicated to my best friends MK Tan, YO Tan, Pang, KS Tan, and SEP member‟s batch 2006 and those that involve directly or indirectly with this study. Without you all, it is impossible for me to accomplish this study. Thank you very much. viii ABSTRACT Special children are children who experienced learning difficulties. Some of their disabilities are Down syndrome, autism, global delay, epilepsy and slow learner. In this study, the special children are referring to children with Down syndrome. Early intervention program is a systematic program with therapy, exercises, and activities which designed to help special children. Cognitive development is the construction of thought processes, including thinking, problem solving, concept understanding, and decision-making, from childhood through adolescence to adulthood. It is one of the most important skills that have to be developed for Down syndrome children. This study is focused mainly on development of the cognitive ability support system. The aim is to help them improving their logical thinking and memory skills. In brief, this study is about the development of software system for the cognitive ability. This includes the implementation of the radio frequency identification (RFID) reader and graphical user interface. The complete system is then test to ensure the accuracy of result, user acceptability and reliability of the system. The results show that the system can generate result in graphical form and training for improving the cognitive ability of the children. In conclusion, the system can be used in order to help trainers/parents to train children with Down syndrome. ix ABSTRAK Kanak-kanak istimewa adalah anak-anak yang mengalami kesulitan belajar. Kebanyakan dari mereka cacat Down syndrome, autism, global delay, sawan dan pelajar lambat. Dalam kajian ini, kanak-kanak istimewa merujuk kepada anakanak dengan sindrom Down. Program intervensi awal adalah program sistematik dengan terapi, latihan dan aktiviti yang dirancang untuk membantu kanak-kanak istimewa. Pembangunan kognitif adalah pembangunan proses berfikir, termasuk berfikir, penyelesaian masalah, pemahaman konsep dan membuat keputusan, dari zaman kanak-kanak sampai remaja hinggalah dewasa. Ini adalah salah satu kemahiran penting yang harus dipupuk kepada anak-anak sindrom Down. Keutamaan kajian ini tertumpu kepada pembangunan sistem sokongan kemampuan kognitif untuk kanak-kanak istimewa. Ini adalah untuk membantu mereka dalam meningkatkan pemikiran logik dan kemahiran fikiran. Secara singkat, projek ini adalah tentang pengembangan sistem perisian untuk melatih kemampuan kognitif. Ini termasuk pelaksanaan pembaca radio frequency identification (RFID) dan antara muka pengguna grafik. Sistem lengkap kemudian menguji untuk memastikan ketepatan keputusan, penerimaan pengguna dan kebolehpercayaan sistem. Keputusan kajian menunjukkan bahawa sistem dapat menghasilkan keputusan dalam bentuk grafik dan latihan untuk meningkatkan kemampuan kognitif anak-anak. Sebagai kesimpulan, sistem boleh digunakan untuk membantu pelatih atau orang tua untuk melatih anak-anak dengan sindrom Down. x TABLE OF CONTENTS CHAPTER 1 2 TITLE PAGE DECLARATION OF THESIS ii DEDICATION iii ACKNOWLEDGEMENT vii ABSTRACT viii ABSTRAK ix TABLE OF CONTENTS x LIST OF TABLES xiii LIST OF FIGURES xiv LIST OF APPENDICES xvi INTRODUCTION 1 1.1 Background 1 1.2 Problem Statement 2 1.3 Objectives of Study 3 1.4 Scope of Study 3 1.5 Work Flow 3 1.6 Gantt Chart 5 1.7 Thesis Outline 6 LITERATURE REVIEW 7 2.1 Down Syndrome 7 2.2 Cause of Down Syndrome 7 2.3 Characteristics of Down Syndrome 9 2.4 Early Intervention (EI) 11 xi 3 4 2.5 Cognitive Assessment 12 2.6 Cognitive Development 12 2.7 Radio-frequency Identification (RFID) 13 2.8 Comparison between RFID and Barcode 14 2.9 Visual C# 15 METHODOLOGY 19 3.1 Introduction 19 3.2 Project Flow 19 3.3 Work Breakdown 20 3.4 Group of Activities 21 DESIGN AND IMPLEMENTATION 23 4.1 Introduction 23 4.2 System Configuration 23 4.2.1 Computer-Based Processing Unit 24 4.2.2 RFID-Based Input Unit 25 4.2.3 Driver for RFID reader 26 Software Implementation 28 4.3.1 Software Algorithm 28 4.3.2 Programming in Visual C# 29 Implementation of Cognitive Ability Support System 30 4.4.1 Cognitive Ability Menu 31 4.4.2 Assessment and Training Tools 31 4.4.3 Cognitive Ability Support System 32 4.3 4.4 5 6 RESULT AND ANALYSIS 35 5.1 Introduction 35 5.2 Result in Graphical Form and Training Table 35 5.3 User Acceptability Test 37 5.4 User Data Management 42 CONCLUSION AND RECOMMENDATION 44 6.1 44 Conclusion xii 6.2 Recommendation 45 REFFERENCES 46 APPENDICES A-E 48 xiii LIST OF TABLES TABLE NO. TITLE PAGE 1.1 Gantt chart of the study schedule for semester 1 5 1.2 Gantt chart of the study schedule for semester 2 5 2.1 Comparison between RFID and barcode 15 3.1 Groups of activities in Cognitive Module 22 5.1 User acceptability test 38 xiv LIST OF FIGURES FIGURE NO. TITLE PAGE 1.1 Work flow of Study 4 2.1 Normal Set of Chromosomes 8 2.2 Trisomy 21 8 2.3 Percentage of children and families who received each early intervention service 11 2.4 A basic RFID System 14 2.5 New form for C# 16 2.6 Toolbox for C# 17 2.7 Properties of C# 18 2.8 Project window 18 3.1 Work flow of the program 20 3.2 Work breakdown of the program 21 4.1 System configuration of cognitive ability support system 24 4.2 Computer-based processing units 24 4.3 RFID Reader IDR-232 25 4.4 Software algorithm 28 4.5 Source code for GUI application 29 4.6 GUI application for assessment menu 30 xv 4.7 Toys for training 31 4.8 Cards with RFID tags 32 4.9 Training of computer based 32 4.10 GUI for cognitive ability support system 33 4.11 Children Data Form 33 4.12 Assessment form for choosing child name 34 4.13 List of assessment in Assessment Form 34 5.1 Result in graphical form 36 5.2 Training Table 36 5.3 Choosing training from the tab provided 37 5.4 Previous display 38 5.5 Current display with different background picture 38 5.6 Displays with small font size 39 5.7 Display with font size adjusted 39 5.8 Contents of the display 40 5.9 Example of user-friendly application 40 5.10 Simple language used within the application 41 5.11 Source code for children data management 42 5.12 Children data that has been successful saved in database 5.13 Source code for updating assessment and training data 5.14 42 43 Database for updating assessment and training data 43 xvi LIST OF APPENDICES APPENDIX A TITLE Instruction Manual for Cognitive Assessment and Training Support System B Manual for RFID Reader IDR-232 C Source Code for Cognitive Assessment and Training Support System D Cognitive Assessment Menu E Cognitive Training Menu CHAPTER 1 INTRODUCTION 1.1 Background Down syndrome is set of mental and physical symptoms that result from having an extra copy of chromosome 21. It is one of the most common genetic birth defects, affecting approximately from one in 600 to one in 1,000 babies. According to National Down Syndrome Society, there are more than 350,000 individuals with Down syndrome. The chance of a woman having a child with Down syndrome increases as she getting older. A child with Down syndrome may have upward slant to the eyes, small ears that may fold over slightly at the top and flat facial features, with a small nose. Their mouth may be small, making the tongue appear large. Some babies with Down syndrome have short necks and small hands with short fingers. The child or adult with Down syndrome is often short and has unusual looseness of the joints. People with Down syndrome experience delays of cognitive and physical development, but the effect is usually mild to moderate. Research has shown that educational and therapeutic interventions such as early intervention services can 2 greatly benefit learners with Down syndrome. In the other words, supports and early planning are often necessary to facilitate employment and community life. Early intervention is a systematic program of therapy, exercises and activities designed to help children with Down syndrome. The most common early intervention services is use to cover physiotherapy, occupational therapy, speech therapy and special educational help. Early intervention may focus on the child alone or on the child with the family. Early Intervention should begin any time shortly after birth, and usually continue until school. Currently, early intervention program is not widely implemented in Malaysia due to some problems such as limited centres and experience trainers, lack of assessment and training tools, and the EIP is highly dependent on trainers manually. In order to solve the problems, ELISSA (Early Intervention Support System for Special Children) smart doll was designed. ELISSA consists of six modules which are cognitive, language, fine motor, and gross motor, social emotional and self help modules. For the current ELLISA, the cognitive module is still new and incomplete. Thus, the cognitive module is insufficient and uneffective. 1.2 Problem Statement There are some development delays on Down syndrome which are cognitive, fine motor, gross motor and speech. Although there are few modules in ELLISA, but some of the module is incomplete. However, it is important to complete all the modules so that it can be use to help children with Down syndrome to complete their early intervention program with more effective and sufficient. One of the incomplete modules is cognitive assessment and training. This module is insufficient and ineffective for the training. Thus, a new module of cognitive assessment is required to improve the current module and to make it more efficient. 3 1.3 Objectives of Project There are two objectives to achieve in this study. The first objective is to develop an algorithm and software system for cognitive assessment and training for special children. Besides that, the second objective is to provide an effective training guidance for cognitive development of special children. 1.4 Scope of Project There are several scope have been outlined for this study. The scope of this study includes the age of special children, the concentration of the study and the programming language. This study is limited for special children from 0 to 6 years old and it is concentrate fully on the cognitive assessment and training. Other than that, the programming language used is Visual C# programming. The software system will be implemented in ELLISA smart doll. 1.5 Work Flow The summary of the work flow of this study is simplified into block diagram as shown in Figure 1.1. The starting point of this study is literature review. This is continuously done throughout the study. After having an overview of the data related to assessment and training of cognitive ability, the suitable data is selected based on the scope and limitation of the study. Software implementation begins with algorithm for the assessment and training for cognitive ability and continues with the graphical user interface (GUI). The software and the GUI are integrated for testing and optimization of the system. 4 The Gantt chart of the study is included in section 1.6. Table 1.2 and Table 1.3 show the detail of Gantt chart of work done with the time spending on it for two semesters. Literature review Collecting data of assessment and training for cognitive ability Software Implementation Software Integration Testing and Optimization Presentation and Demo Report Writing Figure 1.1 Work flow of the study 5 1.6 Gantt Chart Table 1.1 Gantt chart of the study schedule for semester 1 Task Study on available support system (ELISSA) including function, hardware and software related to cognitive assessment and training Collect data of assessment and training method for cognitive ability Develop an algorithm to do assessment and training for cognitive ability Learn Visual C# programming Thesis writing 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Presentation Table 1.2 Gantt chart of the study schedule for semester 2 Task Realization of hardware and components required for assessment and training Software implementation Testing and optimization of the system Thesis writing Presentation Demo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 1.7 Thesis Outline This thesis is a report of a final year study with title “Cognitive Assessment and Training Support System for Special Children”. There are five chapters included in this thesis and they are explained in detail. Chapter 1 explain about the information of the study background, problem statement, objectives, scope of work, work flow, Gantt chart and thesis content. There is an overview of the study and also the significant of the study described in this chapter. Chapter 2 consists of the related literature to this study. The detailed of the topic will be explained in this chapter. The details include early intervention program, RFID tags, and fundamental of programming the software. Chapter 3 is about the design and implementation. The design and implementation steps are explain in detail in this chapter. Chapter 4 consists of the information about the results and discussion. Lastly, chapter 5 summarizes the study and some conclusions are drawn. Future work suggestions are also included in this chapter. CHAPTER 2 LITERATURE REVIEW 2.1 Down Syndrome Down syndrome is a chromosomal disorder caused by an error in cell division that results in an extra 21st chromosome. Each year approximately 3,000 to 5,000 children are born with this chromosome disorder. There are about 250,000 families in the United States who are affected by Down syndrome [1]. The only factor known to affect the probability of having a baby with Down syndrome is maternal age [2]. That is, to those mother who less than 30 years old, the probability to get a children with Down syndrome is one in 1,000 pregnancies. For mothers who are 44 years old and above, the result of getting a child with Down syndrome is one in 35 pregnancies. Adults with Down syndrome usually have life expectancy about 55 years, though average lifespan varies. 2.2 Cause of Down Syndrome Human body is made up of cells and all cells contain of chromosome. Human cells normally have 46 chromosomes which can be arranged in 23 pairs as shown in 8 Figure 2.1. In Down syndrome, 95% of all cases of Down syndrome are caused by one cell that has two 21st chromosomes instead of one, so the resulting fertilized egg has three 21st chromosomes [3]. The scientific name for this chromosomal disorder is called trisomy 21 as shown in Figure 2.2. Figure 2.1 Normal set of chromosomes Figure 2.2 Trisomy 21 In reproduction, the egg cell of the mother and the sperm cell of the father start up with 46 chromosomes. These 46 chromosomes are divided in half where egg cells and the sperm cells then end up with 23 chromosomes each. When a sperm with 23 chromosomes fertilizes with an egg with 23 chromosomes, the baby ends up with a complete set of 46 chromosomes, which is half from the father and half from the mother. 9 A fertilized egg that contains chromosome pairs from 1 to 22 and the XX pair will develop into a female while a fertilized egg that will develop into a male contains chromosome pairs 1 through 22, and the XY pair. The fertilized egg may have the right number of chromosomes, but, due to an error in chromosome division early in embryonic development, some cells acquire an extra chromosome 21 [3]. The children with Down syndrome basically have 47 chromosomes due to the presence of an extra chromosome 21. The extra chromosome in trisomy 21 could either originate in the mother or the father. Most often, however, the extra chromosome is coming from the mother [1]. 2.3 Characteristics of Down Syndrome People with Down syndrome possess some unique characteristics that are common among and specific to people with the condition [5]. The characteristics of people with Down syndrome can be divided into three categories which are physical; medical; and cognitive or developmental, behavioral and interpersonal. There are about 100 identified characteristics of Down syndrome [4]. Not every people with Down syndrome have all the characteristics; some may only have a few, and some may show most of the characteristics of Down syndrome. Although some of the physical characteristics of Down syndrome may be seen in people without the condition, a combination of certain physical traits is often a fairly easily recognizable indication to parents and physicians that a child has the condition [5]. The most common facial characteristics of Down syndrome are a flattened appearance to face, a high and broad forehead, an upward slant to the eye, a narrow slit to the eyes, small ears and mouth, and short neck. They have a small, depression near the nose with slightly flattened bridge across. Their arms and legs are short with short fingers and toes and there is a large space between the first and second toe. If six to ten of the above characteristics are present, the diagnosis of Down syndrome can be reasonably assumed, however a karyotype test (a test to identify and evaluate the size, shape, and number of chromosomes in a sample of 10 body cells) should be performed even if a few of the physical characteristics are present, basically they are coupled with any of the medical or cognitive characteristics. Along with these physical characteristics, people with Down syndrome may have a wide range of health problems. Some of the common medical characteristics of Down syndrome are congenital heart defects, gastrointestinal disorders, respiratory problems, childhood leukemia and increased susceptibility to infection [4]. The most serious of the medical characteristics is cardiac abnormalities. Proper cardiac monitoring of people with Down syndrome is imperative, and should begin after the child is born, or the condition is identified. Medications and lifelong cardiac are not uncommon in children with Down syndrome. In some cases, a heart surgery may be indicated. People with Down syndrome have a higher risk of inflection because they have a depressed immune system. Other medical problems are vision and hearing problems, epilepsy, skin problems (skin becomes coarse and dry as they grow older), gastrointestinal problems (including the anatomical abnormalities such as annular pancreas), and thyroid problems. There is an extremely wide disparity among people with Down syndrome in the issues of cognitive or developmental delay [5]. Many people with Down syndrome attend school and work with little or no assistance; participate in decisions that affect them, and contribute to society in many wonderful ways. Others require more help and may either attend special education classes or school for the developmentally delayed. Impulse control can depress in people with Down syndrome and to another behavioral characteristic, which is a strong attention to food and eating, and a resulting tendency toward overweight. The limitation of food intake can present a particular problem for people with Down syndrome and for their caregivers. 11 2.4 Early Intervention (EI) Early intervention applies to children of school age or younger who are discovered to have or be at risk of developing disabilities that may affect their development. There are three primary reasons for early intervention that are to enhance the child's development, to provide support and assistance to the family, and to maximize the child's and family's benefit to society. Early intervention services also have a significant impact on the parents and siblings of young child. Only through early identification and appropriate programming, children can develop their potential [12]. The most frequently services provided were speech/language therapy, special instruction, occupational therapy, developmental monitoring, and physical therapy. Figure 2.3 shows the percentage of children and families who received each early intervention services. Figure 2.3 Percentage of children and families who received each early intervention service [12] 12 2.5 Cognitive Assessment Cognitive assessment is a scientific attempt to study cognition and measure human behavior [13]. Measurement of human behavior involves giving the participant an opportunity to “behave” and measuring it. A measurement tool should be reliable and valid, sensitive, safe and should offer the assessor full control over the data collection process. Allowing the participant “to behave” involves the presentation of stimuli which trigger recordable reactions by the participant [14]. Many classic, paper-pencil cognitive assessment tests offer very limited stimuli, little freedom to behave and low ecological validly (that is, little relevance to normal, everyday human behavior in the real world) [15]. 2.6 Cognitive Development Development is the continuous progressive change in the organism. Psychologists have analyzed it from the different aspects which include physical, mental, social, emotional, and moral development. Mental development means development of perception, memory, imagination, thinking, reasoning intellect, and many modern psychologists call these as cognitive development. Cognitive development is defined as thinking, problem solving, concept understanding; information processing and overall intelligence [10]. Adaptation is the main basis of cognitive development. Jean Piaget states that there are five fundamental stages of cognitive development of a child. The stages are stage of sensory-motor thinking, pre-conceptual stage, and stage of institutive thought, stage of concrete operation, and stage of formal operation. From birth up to the stage of two years is the stage of sensory-motor actions. Sensation caused by sound is a common experience to a child and makes him utilize his power of thinking. The second stage is called pre-conceptual stage where child can form some pre-concepts based on his past experiences. Pre-conceptual stage takes a complete change with a purpose of placing the base of concepts on solid foundations and 13 making them practical and more expanded. The next stage is called stage of intuitive thought. This stage expands from 4 to 8 years old. The difficulties of thinking which exists at pre-conceptual stage get eliminated and active realistic thoughts develop. The next stage of cognitive development expands from 8 to 11 years, and this stage is called period of concrete operation. When the children make synthesis in the fundamental thoughts, their active or rational thinking begins. A child, when he reaches at the stage of concrete operation, forms concepts facing realities. The last stage of cognitive development is the period of formal operation which from 11 to 15 years. At this stage, the thoughts of a child are not controlled by his practical experiences or personal observation but acquire power of abstract thinking. 2.7 Radio-Frequency Identification (RFID) Radio-Frequency Identification (RFID) is a generic term that is used to describe a system which transmits the identity in the form of a unique serial number wirelessly, using radio waves. This is a technology that allows automatic identification of objects, animals or people by incorporating a small electronic device that consists of a small chip and an antenna. Data is stored on the chip and be "read" by wireless devices, called RFID readers. The chip typically is capable of carrying 2,000 bytes of data or less. A basic RFID system consists of three components which are an antenna or coil, a transceiver with decoder and a transponder (RF tag) electronically programmed with unique information as shown in Figure 2.4. The antenna puts out radio-frequency signals in a relatively short range. The RF radiation does two things which are provides a means of communicating with the transponder (the RFID tag) and provides the RFID tag with the energy to communicate in the case of passive RFID tags. RFID tags do not need to contain batteries, and can remain usable for very long periods of time. 14 Figure 2.4 A basic RFID system The antenna from the RFID system emits radio signals to activate the tag and to read and write data to it. The RFID reader emits radio waves in ranges of anywhere from one inch to 100 feet or more, depending upon its power output and the radio frequency used. When an RFID tag passes through the electromagnetic zone, it detects the reader's activation signal. The reader decodes the data encoded in the tag's integrated circuit (silicon chip) and the data is passed to the host computer for processing. RFID tags divided into two types which are active and passive RFID tags. Active RFID tags have their own power source usually by a battery while the passive RFID tags do not require batteries but it operate using power from the RFID transceiver. The advantage of using active RFID tags is that the reader can be much farther away and still get the signal. Even though some of these devices are built to have up to a 10 year life span, they have limited life spans. Passive RFID tags can be much smaller, inexpensive and have a virtually unlimited life span, but do not have good range. Passive tags typically store between 32 and 128 bits of data and are Read-Only while active tags can store up to 1MB of data and are typically rewritable. 2.8 Comparison between RFID and Barcode Table 2.1 below describe the differences between RFID and barcode in terms of direct line of sight, range of read, read rates, read or write and their price. 15 Table 2.1 Comparison between RFID and barcode RFID Barcode Direct line of sight Do not require a direct line of sight to either active RFID tags or passive RFID tags. Require a direct line of sight to the printed barcode Printed barcode must be exposed on the outside of the product. Range of read Can be read at much greater distances. Pull information from a tag at distances up to 300 feet. Range to read is much less. Pull information no more than fifteen feet. Read rates Much faster. Read rates of forty or more tags per second are possible. More time-consuming. May take seconds to read an individual tag. Usually take a halfsecond or more to successfully complete a read. Read/write Can be read/write. Alter as much of the information as the tag design will allow. No read/write. Cannot add to the information written on a printed barcode. Price More expensive. 2.9 Cheaper. Visual C# Visual C# (C Sharp) is a new language introduced by Microsoft along with Visual Studio and their goal is to provide the ease of working with Visual Basic with the flexibility and power of the Java and C++ languages. The syntax of C# is similar to Java and C++ to make it easy for creating a graphical user interface (GUI). C# is fully object-oriented, compatible with many other languages using the .NET Framework. This book incorporates the object-oriented concepts throughout, as well as the syntax and terminology of the language [16]. 16 C# is designed to allow the programmer to develop applications that run under Windows and/or in a Web browser without the complexity generally associated with programming. The programmer can design a screen that holds standard elements such as buttons, check boxes, radio buttons, text boxes, and list boxes. Each of these objects operates as expected, producing a “standard” Windows or Web user interface [16]. There are three primary steps involved in building a Visual C# graphical user interface (GUI): 1. Draw the user interface. 2. Assign properties to controls. 3. Attach code to controls. The form window (Figure 2.5) is central to developing Visual C# application. It is where the application is to be drawn. Figure 2.5 New form for C# The toolbox (Figure 2.6) contains the tools that will be used in the application. 17 Figure 2.6 Toolbox of C# The Properties Window (Figure 2.7) is used to establish initial property values for objects. The Combo box at the top of the window lists all objects in the current form. Under this box are the available properties for the currently selected object. Figure 2.7 Properties of C# 18 The Project Window (Figure 2.8) displays a list of all forms and modules making up the application. A view of the Form or Code windows (window containing the actual basic coding) also can be obtained from the Study window. Figure 2.8 Project window The user interface is „drawn‟ in the form window. To place controls on a form, double-click the tool in the toolbox and it is created with a default size on the form. You can then move it or resize it. CHAPTER 3 METHODOLOGY 3.1 Introduction In this chapter, it will discuss about the methodology of the study. It will include the flow of the study and the work breakdown. Apart of that, there will be a group of activities for the cognitive assessment and training that have to use in the program. 3.2 Project Flow The implementations of the study are summarized in figure 3.1. First, identify the problem and state the specification of the study. Then, collect the information for the program development. After that, develop the algorithm for the cognitive assessment and training support system. The testing and implementation will be done after develop the algorithm for the support system. Lastly, the system will be improved after analysis on the result. 20 Identify problem/ specification of the project Collect information to approaching the project development Develop cognitive assessment and training support system including the algorithm Testing and implement cognitive ability support system System optimization, improvement and analysis on result Figure 3.1 Work Flow of the program 3.3 Work Breakdown The study has been divided into individual components in a hierarchical structure, known as the work breakdown structure. The component divided into software implementation, RFID reader implementation, and support system implementation. The study will be easily done based on the work breakdown. 21 Cognitive ability support system RFID reader implementation Software Implementation Find for appropriate RFID reader Find for appropriate RFID tags Solve for assessment & training method of cognitive ability Solve for RFID driver Get input from RFID reader Support system implementation Execute assessment & training for cognitive ability Analysis on individual EIP generator and its database Solve for database Analysis on other testing Make database for cognitive ability Define the algorithm Figure 3.2 Work breakdown of the program 3.4 Group of Activities The activities in the cognitive module in ELISSA are chosen from Hawaii and Denver by occupational trainer for special children. This module has been divided into several groups such as perception, concentration, logical thinking and memory. Table 3.1 shows the groups of activities in cognitive module. This is one of 22 the easier ways for the trainers or parents to give training for the child. By dividing the activities in separate groups, the trainers or parents can recognize where the weakness part of the child is and can give concentration of training to the child. Table 3.1 Groups of activities in cognitive module Group Number COGNITIVE 33001 PERCEPTION 33002 CONCENTRATION 33003 LOGICAL THINKING 33004 MEMORY CHAPTER 4 DESIGN AND IMPLEMENTATION 4.1 Introduction This chapter discusses more on design and implementation of cognitive assessment and training support system. There is a brief description on the support system design configuration with RFID-based input unit system. Besides that, this chapter also described about the Visual C# software implementation. Lastly, it will discuss about the implementation of cognitive support system. 4.2 System Configuration Figure 4.1 shows the configuration of the support system that is going to be designed. The design provides a simple and conductive method for cognitive assessment and training support system. This system can be done by interaction between RFID reader, tags, a trainer and children. RFID reader is a medium to communicate between the trainer and children and reader is used for instrument based training and user identification. Graphical User Interface (GUI) is designed using Visual C# programming language. The monitor will be used for execute assessment and training for children. 24 Figure 4.1 4.2.1 System configuration of cognitive ability support system Computer-based Processing Unit The support system design will be implemented using Visual C# as the programming tool. The input of the system will be the user data and the output will be assessment / training display and table training. This can be described in Figure 4.2. Figure 4.2 Computer-based processing units 25 4.2.2 RFID-based Input Unit Radio Frequency Identification (RFID) device is part of cognitive ability support system. It is used as the input unit for the computer processing unit. This RFID device can detect or read RFID tags (input) and the data input will be sent to the processing unit to evaluate results such as results for assessment and training of cognitive ability. Figure 4.3 shows the type of RFID reader used. Communication port Power source Figure 4.3 RFID Reader IDR-232 Reader IDR-232 has been designed with capabilities and features of: • Low cost solution for reading passive RFID transponder tags. • 9600 baud RS232 serial interface (output only). • Fully operation with 5VDC power supply. • Buzzer as sound indication of activity. • Bi-color LED for visual indication of activity. • Standard RS232 serial cable for communication port • USB power source from laptop. • 0 - 2 cm reading range. 26 • 0.1s response time. • Operating frequency: 125kHz • RFID tags used : MIFARE card The connection of the RFID reader must be connecting to desktop/ laptop for power supply and the communication line must be connect to serial port of the computer. After providing power through USB power source, the LED will be in YELLOW color. High level language (Visual C# programming language) which can access to serial port is used to develop program for IDR-232 on the computer. 4.2.3 Driver for RFID reader IDR-232 is basically connected to desktop or laptop through communication line. In order to get the input reading of RFID tags, the reader is connected to the Hyper Terminal (software) with appropriate configured settings. In visual c# implementation, this RFID reader can be connected by a driver in the form of visual c# source code. This driver is called using System.IO.Ports. It is part the loadable device driver interface. Below shows the source code for the connection of RFID reader through Visual c#: public void startRecognition() { tagsActivated = true; isTagTrue = new Boolean[tagIDNow.Length]; for (int i = 0; i < isTagTrue.Length; i++) isTagTrue[i]=false; readTag = ""; if (serialPort1.IsOpen) serialPort1.Close(); serialPort1.PortName = "COM6"; 27 serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.ReceivedBytesThreshold = 5; serialPort1.Open(); timernow = 0; timer1.Start(); } private void serialPort1_DataReceived(object System.IO.Ports.SerialDataReceivedEventArgs e) { //if read RX = 0 then new card RxString = serialPort1.ReadExisting(); if (RxString.Equals("0")) { readTag = RxString; } else { readTag = RxString; if (readTag.Length == 10) { this.Invoke(new EventHandler(DisplayText)); readTag = ""; } } } sender, 28 4.3 Software Implementation 4.3.1 Software Algorithm The algorithm of the cognitive ability support system can be seen through the flow chart below. There are three main parts for cognitive ability support system. First include user data which consists of input storage and update data. Second is the assessment generation and lastly report and training. Figure 4.4 Software algorithms 29 4.3.2 Programming in visual C# Visual C# programming is used to be an easy reference for interfacing with the user of the cognitive ability support system. Figure 4.5 shows part of visual C# programming language that has been developed for GUI application of cognitive assessment as shown in Figure 4.6. Figure 4.5 Source code for GUI application 30 Figure 4.6 4.4 GUI applications for assessment menu Implementation of Cognitive Ability Support System This part is important in order to make sure that the support system can give an efficient impact for special children. The method of assessment and training for special children in cognitive ability is to locate the level of the children and give appropriate training to them. In order to train the children effectively, this support system use images which special children can see or identify in real situation. The support system will assess and train the children in cognitive ability by using related cards with RFID tags and also other training tools. 31 4.4.1 Cognitive Ability Menu The concept of the cognitive ability support system is generally to train children for their logical thinking and memory skills. Once they have learn this, they will be able to communicate and can memorized things happen around them in daily life. The cognitive ability menu divided into two parts, which is menu for assessment and menu for training. The menu of assessment menu consists of 113 assessments that needed the trainer or parent the answer in order to know the level of the children accurately. While the menu for training consists of 39 trainings with description which can cover all the important skills that needed for cognitive ability such as perception, logical thinking and so on. 4.4.2 Assessment and Training Tool Special children are normally preferred to colours, pictures, and toys. In order to make this support system more interactive, there are three types of tools used in this cognitive ability support system, some of them include RFID tags. 1) Toys for training (e.g. ball) Figure 4.7 Toys for training 2) Pictures with RFID tag 32 Figure 4.8 Cards with RFID tags 3) Training (computer based) Figure 4.9 Training of computer based 4.4.3 Cognitive Ability Support System This support system is design with simple and attractive interface as shown in Figure 4.10. It has been designed with a necessary log in page in order to ensure that the children data is secure from being access by others. The display of GUI application also has interactive sound display to interact with the children. 33 Figure 4.10 GUI for cognitive ability support system The trainers/parents are required to fill in the children data form (Figure 4.11) before they can proceed to the assessment part. The data of the children are saved in Microsoft Access so that the trainers/parents do not need to fill in the children data every time they log in. Figure 4.11 Children Data Form 34 The trainers/parents will proceed to Assessment form after they click on the “Save” button. At assessment form, the trainers/parents have to choose the children name as shown in Figure 4.12 to start the assessment. This can make sure that every child has done the assessment and the result will be generated in graphical form. Figure 4.12 Assessment form for choosing child name After the trainers/parents click on the “START ASSESSMENT” button, they will go to assessment list as shown in Figure 4.13. The trainers/parents have to rate the children ability regarding to the name of assessment by clicking yes or no and also by using cards with RFID tags. Figure 4.13 List of assessment in Assessment Form CHAPTER 5 RESULT AND ANALYSIS 5.1 Introduction In this chapter, the results are discussed after the assessment of cognitive assessment and training support system. Then, user acceptability testing is done to find out the feedback of the trainers regarding the usage of this support system. Last but not least, an analysis on user database management testing are also been made. 5.2 Result in Graphical Form and Training Table After trainers done the assessment, the result in graphical form will show as in Figure 5.1. The result shows the level of achievement of the children in each particular group. The graph shows the result of the children in each group. 36 Figure 5.1 Result in graphical form The training table will be shown as in Figure 5.2 after the trainers proceed to the next part by clicking the “Next” button. Training table is design to help or as a guidance for new trainers to train the children. Figure 5.2 Training Table 37 The training table consists of date and time that suitable for the trainers to train the children. The trainers can determine which group of training should be given to the children from the graph and then choose the suitable training table. After choosing the suitable training, the trainers can start the training by clicking on the tab provided or follow the sequence of the program. The training will start after the trainers clicking on the button “Training” in the suggested training table form. Figure 5.3 5.3 Choosing training from the tab provided User Acceptability Test Table 5.1 below shows the user acceptability test that have been done on the display of the layout, font size of the contents, contents are stated clearly, use friendly application, language is easy to understand, transaction time to detect RFID card and also sound display. 38 Table 5.1 Events User acceptability test User’s Feedback Display of the Layout Figure 5.4 Previous display Figure 5.5 Current display with different background picture User‟s feedback: The display in Figure 5.4 is not interesting and needs to be change. Solution: Display has been improved as shown in Figure 5.5. 39 Font size of the contents Figure 5.6 Display with small font size Figure 5.7 Display with font size adjustment User‟s feedback: The font size in Figure 5.6 is too small and needs to adjust. Solution: The font size has been improved as shown in Figure 5.7. 40 Contents are stated clearly Figure 5.8 Contents of the display User‟s feedback: The contents stated are very clear to be understood and followed (no adjustment needed). User-friendly application Figure 5.9 Example of user-friendly application User‟s feedback: The application is very user-friendly. For example, user can access any part in the program directly by clicking the buttons on the tab after they log in. 41 Language used are easily understood 1. Bring your pupil one of his/her toy. 2. Take another toy (his/her favorite toy) and offer to his/her. 3. Encourage him/her to reach for his/her favorite toy. Figure 5.10 Simple language used within the application User‟s feedback: The words and sentences used within the application are easily to be understood. It is helpful for trainers especially parents in order to use the counting skills support system effectively. Transaction User‟s feedback: The time for RFID detection is quite fast. time to detect Reading response is generally 0.01s. RFID card Sound display User‟s feedback: Sound display is satisfied. It has an interactive sound, effective for the implementation of counting skills support system. 42 5.4 User Data Management Figure 5.11 shows the source code for the children data management. Every time when a new child is register in this support system, the database will detect the information entered by the user. Figure 5.12 shows the children data that has been stored in database. When the information has been successful entered, the children can start assessment. Figure 5.11 Source code for children data management Figure 5.12 Children data that has been successful saved in database Note that in Figure 5.14, the database of cognitive ability can be easily updated by admin. 43 Figure 5.13 Source code for updating assessment and training data Figure 5.14 Database for updating assessment and training data CHAPTER 6 CONCLUSION AND RECOMMENDATION 6.1 Conclusion The cognitive assessment and training support system has been develop in order to help children with Down syndrome or in other word “special children” for improving the cognitive ability. The support system also used for user data management in Early Intervention Program. In this study, the cognitive ability is divided into four sub-groups which are perception, concentration, logical thinking, and memory. The system is mostly focus on the software development for the support system. The graph for each sub-group in cognitive ability has been developed after the assessment to show the level of achievement of the children. The advantages of this system are simple and conducive method for train children in cognitive ability, and helpful and efficient method to help Down syndrome parent. 45 6.2 Recommendation For future works, it would be beneficial to develop a support system that consists of more different skill, for example, for gross motor skill and fine motor skill. The system also should be designed to improve by using more RFID tags for more accurate result. 46 REFFERENCES 1. Siedfried M. Pueschel (1992). What is Down syndrome, Brown University. unpublished. 2. MediLexicon International Ltd (2010). Peter Crosta M.A.: What is Down syndrome? What causes Down syndrome? United Kingdom. 3. Len Leshin (2003). Trisomy 21: The story of Down syndrome Texas. unpublished. 4. Reshma Jirage (2008). Characteristics of Down Syndrome. US. unpublished. 5. K. Cauldwell (2006). Down syndrome Information: Characteristics of Down Syndrome. Boston, MA. unpublished. 6. Caroline Latham (2006). What is Cognitive Ability/ what are cognitive abilities? United Kingdom, unpublished. 7. Nikhil Swaminathan (2007). Cognitive Ability Mostly Developed Before Adolescence, NIH Study Says. American. unpublished. 8. E. Sharlin, Y. Itoh, B. A. Watson, Y. Kitamura, S. Sutphen, and L. Liu (2002). "Cognitive Cubes: A Tangible User Interface for Cognitive Assessment," in Human Factors in Computing Systems CHI 2002. Minneapolis, US: ACM, pp. 347-354. 9. Wadsworth, J. Barry (2003). Piaget's Theory of Cognitive and Affective Development: Foundations of Constructivism, 5th ed. Upper Saddle River, NJ: Allyn & Bacon. 10. Karnes, M. B., and R. C. Lee. Early Childhood (1978). VA: The Council for Exceptional Children. Reston. unpublished. 11. Kathleen Hebbeler, Donna Spiker, Don Bailey, Anita Scarborough, Sangeeta Mallik, Rune Simeonsson, Marnie Singer, Lauren Nelson (2007). Early intervention for infants and toddlers with disabilities and their families: participants, services, and outcomes. SRI International, California, pp.29-41. 12. Meichenbaum and R. Cameron (1981). "Issues in Cognitive Assessment: An Overview," in Cognitive Assessment, T. V. Merluzzi, C. R. Glass, and M. Genest, Eds. New York, USA: The Guilford Press. 13. A. A. Rizzo and J. G. Buckwalter (1997). "Virtual Reality and Cognitive Assessment and Rehabilitation: The State of the Art," in Virtual Reality in Neuro-Psycho-Physiology: Cognitive, Clinical and Methodological Issues in 47 Assessment and Rehabilitation, G. Riva, Ed. Amsterdam: IOS Press, pp. 123146. 14. Julia Bradley and Anita Millspaugh (2008). “Programming in Visual C# 2008” available at http://highered.mcgrawhill.com/sites/0073517216/information_center_view0/ 15. D. Patterson (1995). The integrated map of human chromosome 21. In Etiology and Pathogenesis of Down Syndrome, Wiley-Liss, p 43-55. 16. D. Hernandez and EMC Fisher (1996). Down syndrome genetics: unravelling a multifactorial disorder. Hum. mol. Genet., 5: 1411-1416. 48 Appendix A Instruction Manual for Cognitive Assessment and Training Support System 49 50 Figure A.1: Registration form 51 Figure A.2: Form children data 52 Figure A.3: Form assessment for choose child name Figure A.4: Form assessment 53 Figure A.5: Form assessment list 54 Figure A.6: Form report in graph 55 Figure A.7: Form table training 56 Figure A.8: Form training Figure A.9: Form start training 57 Figure A.10: Form training to show description Figure A.11: Form training to proceed to next page 58 Figure A.12: Form information 59 Appendix B Manual for RFID Reader IDR-232 60 61 62 63 64 65 66 67 68 69 Appendix C Source Code for Cognitive Assessment and Training Support System 70 //Source code for Main Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Media; namespace WindowsFormsApplication5 { public partial class FormMain : Form { private int childFormNumber = 0; public FormMain() { InitializeComponent(); } WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer(); private void ShowNewForm(object sender, EventArgs e) { Form childForm = new Form(); childForm.MdiParent = this; childForm.Text = "Window " + childFormNumber++; childForm.Show(); } private void OpenFile(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal); openFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"; if (openFileDialog.ShowDialog(this) == DialogResult.OK) { string FileName = openFileDialog.FileName; } } private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal); saveFileDialog.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"; if (saveFileDialog.ShowDialog(this) == DialogResult.OK) { string FileName = saveFileDialog.FileName; } } private void ExitToolsStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void CascadeToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.Cascade); } private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileVertical); } private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.TileHorizontal); } 71 private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e) { LayoutMdi(MdiLayout.ArrangeIcons); } private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e) { foreach (Form childForm in MdiChildren) { childForm.Close(); } } private void childrenDataToolStripMenuItem_Click(object sender, EventArgs e) { FormChildren childForm = new FormChildren(); childForm.MdiParent = this; childForm.Text = "Children Data"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void FormMain_Load(object sender, EventArgs e) { wplayer.URL = (@"C:\elissaData\ChuckBrown_SweetnessAndLight.mp3"); wplayer.controls.play(); } private void timeTableToolStripMenuItem_Click(object sender, EventArgs e) { FormReport childForm = new FormReport(); childForm.MdiParent = this; childForm.Text = "Graph"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void timeTableToolStripMenuItem1_Click(object sender, EventArgs e) { FormReport1 childForm = new FormReport1(); childForm.MdiParent = this; childForm.Text = "Time Table"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void assessmentAbilityToolStripMenuItem_Click(object sender, EventArgs e) { 72 Form1Assessment childForm = new Form1Assessment(); childForm.MdiParent = this; childForm.Text = "Assessment"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void perceptionToolStripMenuItem_Click(object sender, EventArgs e) { FormTraining childForm = new FormTraining(); childForm.MdiParent = this; childForm.Text = "Perception"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void concentrationToolStripMenuItem_Click(object sender, EventArgs e) { FormTraining1 childForm = new FormTraining1(); childForm.MdiParent = this; childForm.Text = "Concentration"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void logicalThinkingToolStripMenuItem_Click(object sender, EventArgs e) { FormTraining2 childForm = new FormTraining2(); childForm.MdiParent = this; childForm.Text = "Logical Thinking"; childForm.Show(); label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void memoryToolStripMenuItem_Click(object sender, EventArgs e) { FormTraining3 childForm = new FormTraining3(); childForm.MdiParent = this; childForm.Text = "Memory"; childForm.Show(); 73 label1.Visible = false; label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } private void helpMenu_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("c:\\elissaData\\Help.pdf"); } private void generalInformationToolStripMenuItem_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("c:\\elissaData\\GeneralInfo.pdf"); } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "username") { if (textBox2.Text == "password") { FormChildren childForm = new FormChildren(); childForm.MdiParent = this; childForm.Text = "Children Data"; childForm.Show(); label6.Visible = false; label4.Visible = false; label2.Visible = false; label3.Visible = false; textBox1.Visible = false; textBox2.Visible = false; label5.Visible = false; button1.Visible = false; button2.Visible = false; } else if (textBox2.Text.Length > 0) { label5.Visible = true; label5.Text = "Password Wrong"; } else { label5.Visible = true; label5.Text = "Non-Password Entered"; } } else if (textBox1.Text.Length > 0) { label5.Visible = true; label5.Text = "Username Wrong"; } else { label5.Visible = true; label5.Text = "Non-Username Entered"; } } private void button2_Click(object sender, EventArgs e) { System.Windows.Forms.Application.Exit(); } } } //Source code for Children Data Form using System; using System.Collections.Generic; using System.ComponentModel; 74 using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication5 { public partial class FormChildren : Form { public FormChildren() { InitializeComponent(); setListBox(); } private void setListBox() { listBox1.Items.Clear(); this.tablechilddataTableAdapter1.Fill(elissadbDataSet.tablechilddata); foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows) { listBox1.Items.Add(thedata[1]); } listBox1.Refresh(); } private void button1_Click(object sender, EventArgs e) { if ((String)gendercomboBox1.SelectedItem == null) { MessageBox.Show("No new child data registered", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Form1Assessment childForm = new Form1Assessment(); childForm.MdiParent = this.MdiParent; childForm.Text = "Assessment"; childForm.Show(); } else { this.tablechilddataTableAdapter1.Insert(childName.Text, childBirthplace.Text, childBirthdate.Value, (string)gendercomboBox1.SelectedItem, childNickname.Text, (string)languagecomboBox2.SelectedItem, (string)handcomboBox3.SelectedItem ); setListBox(); Form1Assessment childForm = new Form1Assessment(); childForm.MdiParent = this.MdiParent; childForm.Text = "Assessment"; childForm.Show(); } } private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { int ItemsSelected = listBox1.SelectedIndex; this.tablechilddataTableAdapter1.Fill(elissadbDataSet.tablechilddata); foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows) { if ((int)thedata[0] == ItemsSelected + 1) { idTextBox.Text = Convert.ToString(thedata[0]); childName.Text = (String)(thedata[1]); childBirthplace.Text = (String)(thedata[2]); childBirthdate.Value = Convert.ToDateTime(thedata[3]); String genderText = (String)thedata[4]; if (genderText.Equals("Male")) gendercomboBox1.SelectedIndex = 0; else gendercomboBox1.SelectedIndex = 1; childNickname.Text = (String)thedata[5]; 75 String languageText = (String)thedata[6]; if (languageText.Equals("Malay")) languagecomboBox2.SelectedIndex = 0; else if (languageText.Equals("Chinese")) languagecomboBox2.SelectedIndex = 1; else if (languageText.Equals("Tamil")) languagecomboBox2.SelectedIndex = 2; else languagecomboBox2.SelectedIndex = 3; String dominanthandText = (String)thedata[7]; if (dominanthandText.Equals("Left")) handcomboBox3.SelectedIndex = 0; else handcomboBox3.SelectedIndex = 1; } } } } } //Source Code for Assessment Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml; namespace WindowsFormsApplication5 { public partial class Form1Assessment : Form { // Xml tag for node, e.g. 'node' in case of <node></node> private const string XmlNodeTag = "node"; // Xml attributes for node e.g. <node text="Cognitive" tag="" // imageindex="1"></node> private const string XmlNodeTextAtt = "text"; private const string XmlNodeTagAtt = "tag"; private const string XmlNodeImageIndexAtt = "imageindex"; private int childAge; private int childID; private int assessmentID; private int GroupCount; private int GroupID; private int TrainingIDNow; private String[] tagIDNow; private String RxString; private int timernow; Boolean tagsActivated; private String readTag; private Boolean[] isTagTrue; public Form1Assessment() { InitializeComponent(); button3.Visible = true; button3.Enabled = true; label1.Visible = false; label2.Visible = false; label3.Visible = false; label4.Visible = false; label5.Visible = true; label6.Visible = false; this.tablechilddataTableAdapter.Fill(elissadbDataSet.tablechilddata); FillChildCombo(); } public void FillChildCombo() { foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows) { comboBox1.Items.Add(thedata[1] + ";" + thedata[0]); 76 } } public void DeserializeTreeView(TreeView treeView, string fileName) { XmlTextReader reader = null; GroupCount = 0; try { // disabling re-drawing of treeview till all nodes are added treeView.BeginUpdate(); reader = new XmlTextReader(fileName); TreeNode parentNode = null; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == XmlNodeTag) { TreeNode newNode = new TreeNode(); bool isEmptyElement = reader.IsEmptyElement; // loading node attributes int attributeCount = reader.AttributeCount; if (attributeCount > 0) { for (int i = 0; i < attributeCount; i++) { reader.MoveToAttribute(i); SetAttributeValue(newNode, reader.Name, reader.Value); } } // add new node to Parent Node or TreeView if (parentNode != null) { GroupCount++; parentNode.Nodes.Add(newNode); } else //GroupCount++; treeView.Nodes.Add(newNode); // making current node 'ParentNode' if its not empty if (!isEmptyElement) parentNode = newNode; } } // moving up to in TreeView if end tag is encountered else if (reader.NodeType == XmlNodeType.EndElement) { if (reader.Name == XmlNodeTag) parentNode = parentNode.Parent; } else if (reader.NodeType == XmlNodeType.XmlDeclaration) { //Ignore Xml Declaration } else if (reader.NodeType == XmlNodeType.None) return; else if (reader.NodeType == XmlNodeType.Text) parentNode.Nodes.Add(reader.Value); } } finally { // enabling redrawing of treeview after all nodes are added treeView.EndUpdate(); reader.Close(); } } private void SetAttributeValue(TreeNode node, string propertyName, string value) { if (propertyName == XmlNodeTextAtt) 77 { node.Text = value; } else if (propertyName == XmlNodeImageIndexAtt) { node.ImageIndex = int.Parse(value); } else if (propertyName == XmlNodeTagAtt) { node.Tag = value; } } private void GenerateAssessment(String filenames) { listBox1.Items.Clear(); XmlTextReader reader = null; try { reader = new XmlTextReader("C:\\elissaData\\" + filenames + ".xml"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == XmlNodeTag) { bool isEmptyElement = reader.IsEmptyElement; int attributeCount = reader.AttributeCount; if (attributeCount > 0) { String texts = ""; String ages = ""; String ids = ""; String tags = ""; for (int i = 0; i < attributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "text") texts = reader.Value; if (reader.Name == "ages") ages = reader.Value; if (reader.Name == "id") ids = reader.Value; if (reader.Name == "tags") tags = reader.Value; } if (Convert.ToInt32(ages) >= (childAge - 3) && Convert.ToInt32(ages) >= childAge) listBox1.Items.Add(ids + ";" + ages + ";" + texts + ";" + tags); } } } } if (reader != null) reader.Close(); } finally { // enabling redrawing of treeview after all nodes are added reader.Close(); } } private void button3_Click(object sender, EventArgs e) { button1.Visible = true; button2.Visible = true; button3.Visible = false; button3.Enabled = false; comboBox1.Visible = false; comboBox1.Enabled = false; label1.Visible = true; label2.Visible = true; label3.Visible = true; label4.Visible = true; label5.Visible = false; 78 label6.Visible = true; this.startAssessment(); } private void countAge() { String childSelected = (String)comboBox1.SelectedItem; char[] seps = { ';' }; String[] datas = childSelected.Split(seps); DateTime childBirth = DateTime.Now; childID = Convert.ToInt32(datas[1]); foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows) { if (Convert.ToInt32(thedata[0]) == Convert.ToInt32(datas[1])) childBirth = Convert.ToDateTime(thedata[3]); } // cache the current time DateTime now = DateTime.Today; // today is fine, don't need the timestamp from now // get the difference in years int years = now.Year - childBirth.Year; int Months = now.Month - childBirth.Month; childAge = (years * 12) + Months; } private void startAssessment() { if ((String)comboBox1.SelectedItem == null) { MessageBox.Show("No selection of child is being made", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Form1Assessment childForm = new Form1Assessment(); childForm.MdiParent = this.MdiParent; childForm.Text = "Children Data"; childForm.Show(); } else countAge(); assessmentID = 0; GroupID = 0; DeserializeTreeView(treeView1, "C:\\elissaData\\Cognitive.xml"); treeView1.Refresh(); treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0]; treeView1.SelectedNode.ForeColor = Color.Red; String filenames = treeView1.Nodes[0].Nodes[GroupID].Text; GenerateAssessment(filenames); NextAssessment(10); } private void Form1Assessment_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'elissadbDataSet1.tabletrainingresult' table. You can move, or remove it, as needed. this.tabletrainingresultTableAdapter.Fill(this.elissadbDataSet.tabletrainingresult); // TODO: This line of code loads data into the 'elissadbDataSet1.tablechilddata' table. You can move, or remove it, as needed. this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata); } private void button1_Click(object sender, EventArgs e) { if (tagsActivated) EndRecognition(); NextAssessment(1); } private void button2_Click(object sender, EventArgs e) { if (tagsActivated) EndRecognition(); NextAssessment(0); } private void NextAssessment(int AnswerIs) { //record AnswerIs as the result where Group id is GroupID and Assessment ID is assessmentID //assessmentID++; 79 if (AnswerIs<=10) this.tabletrainingresultTableAdapter.Insert(TrainingIDNow, childID, 5, AnswerIs, DateTime.Now); // this.tabletrainingresultTableAdapter.Update(elissadbDataSet.tabletrainingresult); if (assessmentID < listBox1.Items.Count) { listBox1.SelectedIndex = assessmentID; String nameAssessment = (String)listBox1.Items[assessmentID]; char[] sepss = { ';' }; String[] dataAss = nameAssessment.Split(sepss); TrainingIDNow = Convert.ToInt32(dataAss[0]); label1.Text = dataAss[2]; if (!dataAss[3].Equals("0")) { char[] sepsss = { '_' }; tagIDNow = dataAss[3].Split(sepsss); startRecognition(); } assessmentID++; } else { if (GroupID <= GroupCount-1) { assessmentID = 0; GroupID++; if (GroupID == GroupCount) { FormReport childForm = new FormReport(); childForm.MdiParent = this.MdiParent; childForm.Text = "Graph"; childForm.Show(); } else { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[GroupID]; treeView1.SelectedNode.ForeColor = Color.Red; String filenames = treeView1.Nodes[0].Nodes[GroupID].Text; GenerateAssessment(filenames); NextAssessment(10); } } } } public void startRecognition() { tagsActivated = true; isTagTrue = new Boolean[tagIDNow.Length]; for (int i = 0; i < isTagTrue.Length; i++) isTagTrue[i]=false; readTag = ""; if (serialPort1.IsOpen) serialPort1.Close(); serialPort1.PortName = "COM6"; serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.ReceivedBytesThreshold = 5; serialPort1.Open(); timernow = 0; timer1.Start(); } private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { RxString = ""; int waitLoop; for (waitLoop = 1000; waitLoop > 0; waitLoop--) RxString += serialPort1.ReadExisting(); if (RxString.Equals("0")) { readTag = RxString; } else { readTag = RxString; if (readTag.Length == 10) { this.Invoke(new EventHandler(DisplayText)); 80 readTag = ""; } } } private void DisplayText(object sender, EventArgs e) { for (int i = 0; i < tagIDNow.Length; i++) { if (readTag.Equals(tagIDNow[i])) { label4.Text = "TRUE with " + readTag; isTagTrue[i] = true; } } } public void EndRecognition() { this.timer1.Stop(); this.timer1.Enabled = false; timernow = 0; } private void timer1_Tick(object sender, EventArgs e) { if (timernow<=60) { label3.Text = Convert.ToString(timernow); timernow++; Boolean isTrue = true; for (int i = 0; i < isTagTrue.Length; i++) isTrue = isTrue & isTagTrue[i]; if (isTrue) { EndRecognition(); NextAssessment(2); } } else { EndRecognition(); NextAssessment(0); } } private void jumptoreport() { FormReport childForm = new FormReport(); childForm.MdiParent = this.MdiParent; childForm.Text = "Graph"; childForm.Show(); } } } //Source Code for Graph Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Telerik.Charting; using System.Xml; namespace WindowsFormsApplication5 { public partial class FormReport : Form { List<AssessmentNode> theAssessment; List<ResultNode> resultChild; private const string XmlNodeTag = "node"; private const string XmlNodeTextAtt = "text"; 81 private const string XmlNodeTagAtt = "tag"; String datetimeAss; public FormReport() { InitializeComponent(); } private void comboBox1_SelectedValueChanged(object sender, EventArgs e) { CogB.Checked = true; } public void generateChart(String Titles) { //graph properties radChart1.Clear(); ChartSeries series1 = new ChartSeries(Titles); series1.Items.Clear(); radChart1.AddChartSeries(series1); radChart1.PlotArea.XAxis.Clear(); radChart1.PlotArea.XAxis.AutoScale = false; radChart1.PlotArea.YAxis.MaxValue = 100.00; foreach (ResultNode thenode in resultChild) { radChart1.PlotArea.XAxis.AddItem((String)thenode.assTime.ToShortDateString()); Double itemvalue = (Convert.ToDouble(thenode.assResult)); series1.AddItem(itemvalue); } radChart1.Refresh(); } public String getAssessment(int thisAssID) { String thetextass = ""; foreach (AssessmentNode thenode in theAssessment) { if (thenode.assID == thisAssID) thetextass = thenode.assText; } return thetextass; } private void GenerateAssessment(String filenames) { theAssessment = new List<AssessmentNode>(); XmlTextReader reader = null; try { reader = new XmlTextReader("c:\\elissaData\\" + filenames + ".xml"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == XmlNodeTag) { bool isEmptyElement = reader.IsEmptyElement; int attributeCount = reader.AttributeCount; if (attributeCount > 0) { String texts = ""; String ages = ""; String ids = ""; String voices = ""; for (int i = 0; i < attributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "text") texts = reader.Value; if (reader.Name == "ages") ages = reader.Value; if (reader.Name == "id") ids = reader.Value; if (reader.Name == "voices") voices = reader.Value; } 82 AssessmentNode thisnode = new AssessmentNode(); thisnode.assText = texts; thisnode.assID = Convert.ToInt32(ids); theAssessment.Add(thisnode); } } } } if (reader != null) reader.Close(); } finally { // enabling redrawing of treeview after all nodes are added reader.Close(); } } private void RadioButton_CheckedChanged(object sender, EventArgs e) { String thistext = ""; if (CogB.Checked) thistext = "Perception"; else if (CogC.Checked) thistext = "Concentration"; else if (CogD.Checked) thistext = "Logical Thinking"; else thistext = "Memory"; GenerateAssessment(thistext); resultChild = new List<ResultNode>(); this.tabletrainingresultTableAdapter.Fill(this.elissadbDataSet.tabletrainingresult); DataRowView thisrow = (DataRowView)comboBox1.SelectedItem; int childIDselect = (int)thisrow[0]; DateTime tempAssDate = DateTime.Now.Date; datetimeAss = ""; int resultTotal = 0; foreach (DataRow thedata in this.elissadbDataSet.tabletrainingresult.Rows) { int childIDdata = (int)thedata["childid"]; int tidData = (int)thedata["tid"]; String textdata = getAssessment(tidData); if ((childIDdata == childIDselect) && !textdata.Equals("")) { DateTime dateAss = (DateTime)thedata["Date"]; if (tempAssDate.CompareTo(dateAss.Date) != 0) { tempAssDate = dateAss.Date; ResultNode newResult = new ResultNode(); newResult.assID = 0; newResult.assResult = resultTotal; newResult.assTime = dateAss.Date; resultChild.Add(newResult); } else { resultTotal = resultTotal + (int)thedata["result"]; } } } generateChart(thistext); } private void btnNext_Click(object sender, EventArgs e) { FormReport1 childForm = new FormReport1(); childForm.MdiParent = this.MdiParent; childForm.Text = "Table Training"; childForm.Show(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { CogB.Checked = true; 83 } private void FormReport_Load_1(object sender, EventArgs e) { // TODO: This line of code loads data into the 'elissadbDataSet.tablechilddata' table. You can move, or remove it, as needed. this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata); this.comboBox1.DataSource = this.elissadbDataSet.tablechilddata; this.comboBox1.DisplayMember = "FullName"; this.comboBox1.Refresh(); } } } //Source Code for Training Table Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication5 { public partial class FormReport1 : Form { public FormReport1() { InitializeComponent(); } private void btnPerception_Click(object sender, EventArgs e) { btnPerception.BackColor = SystemColors.ActiveCaption; btnMemory.BackColor = SystemColors.Control; btnConcentration.BackColor = SystemColors.Control; btnLogicalThinking.BackColor = SystemColors.Control; picBxTraining.Load("PerceptionTT.png"); } private void btnConcentration_Click(object sender, EventArgs e) { picBxTraining.Load("ConcentrationTT.png"); btnPerception.BackColor = SystemColors.Control; btnMemory.BackColor = SystemColors.Control; btnConcentration.BackColor = SystemColors.ActiveCaption; btnLogicalThinking.BackColor = SystemColors.Control; } private void btnLogicalThinking_Click(object sender, EventArgs e) { picBxTraining.Load("LogThiTT.png"); btnPerception.BackColor = SystemColors.Control; btnMemory.BackColor = SystemColors.Control; btnConcentration.BackColor = SystemColors.Control; btnLogicalThinking.BackColor = SystemColors.ActiveCaption; } private void btnMemory_Click(object sender, EventArgs e) { picBxTraining.Load("MemoryTT.png"); btnPerception.BackColor = SystemColors.Control; btnMemory.BackColor = SystemColors.ActiveCaption; btnConcentration.BackColor = SystemColors.Control; btnLogicalThinking.BackColor = SystemColors.Control; } private void btnTraining_Click(object sender, EventArgs e) { btnPerception.BackColor = SystemColors.Control; btnMemory.BackColor = SystemColors.Control; btnConcentration.BackColor = SystemColors.Control; btnLogicalThinking.BackColor = SystemColors.Control; btnTraining.BackColor = SystemColors.ActiveBorder; 84 FormTraining childForm = new FormTraining(); childForm.MdiParent = this.MdiParent; childForm.Text = "Perception"; childForm.Show(); } } } //Source Code for Training Form using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Xml; namespace WindowsFormsApplication5 { public partial class FormTraining : Form { private const string XmlNodeTag = "node"; // Xml attributes for node e.g. <node text="Cognitive" tag="" // imageindex="1"></node> private const string XmlNodeTextAtt = "text"; private const string XmlNodeTagAtt = "tag"; private const string XmlNodeImageIndexAtt = "imageindex"; private int childAge; private int childID; private int assessmentID; private int GroupCount; private int GroupID; private int TrainingIDNow; private String[] tagIDNow; private String RxString; private int timernow; Boolean tagsActivated; private String readTag; private Boolean[] isTagTrue; public FormTraining() { InitializeComponent(); button3.Visible = true; button3.Enabled = true; label1.Visible = false; label2.Visible = false; label3.Visible = false; label4.Visible = false; label5.Visible = true; button1.Visible = false; button2.Visible = false; pictureBox1.Visible = false; this.tablechilddataTableAdapter.Fill(elissadbDataSet.tablechilddata); FillChildCombo(); } public void FillChildCombo() { foreach (DataRow thedata in elissadbDataSet.tablechilddata.Rows) { comboBox1.Items.Add(thedata[1] + ";" + thedata[0]); } } public void DeserializeTreeView(TreeView treeView, string fileName) { XmlTextReader reader = null; GroupCount = 0; try { // disabling re-drawing of treeview till all nodes are added treeView.BeginUpdate(); 85 reader = new XmlTextReader(fileName); TreeNode parentNode = null; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == XmlNodeTag) { TreeNode newNode = new TreeNode(); bool isEmptyElement = reader.IsEmptyElement; // loading node attributes int attributeCount = reader.AttributeCount; if (attributeCount > 0) { for (int i = 0; i < attributeCount; i++) { reader.MoveToAttribute(i); SetAttributeValue(newNode, reader.Name, reader.Value); } } //add new node to Parent Node or TreeView if (parentNode != null) { GroupCount++; parentNode.Nodes.Add(newNode); } else treeView.Nodes.Add(newNode); // making current node 'ParentNode' if its not empty if (!isEmptyElement) parentNode = newNode; } } // moving up to in TreeView if end tag is encountered else if (reader.NodeType == XmlNodeType.EndElement) { if (reader.Name == XmlNodeTag) parentNode = parentNode.Parent; } else if (reader.NodeType == XmlNodeType.XmlDeclaration) { //Ignore Xml Declaration } else if (reader.NodeType == XmlNodeType.None) return; else if (reader.NodeType == XmlNodeType.Text) parentNode.Nodes.Add(reader.Value); } } finally { // enabling redrawing of treeview after all nodes are added treeView.EndUpdate(); reader.Close(); } } private void SetAttributeValue(TreeNode node, string propertyName, string value) { if (propertyName == XmlNodeTextAtt) { node.Text = value; } else if (propertyName == XmlNodeImageIndexAtt) { node.ImageIndex = int.Parse(value); } else if (propertyName == XmlNodeTagAtt) { node.Tag = value; } } private void GenerateAssessment(String filenames) 86 { listBox1.Items.Clear(); XmlTextReader reader = null; try { reader = new XmlTextReader("C:\\elissaData\\" + filenames + ".xml"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == XmlNodeTag) { bool isEmptyElement = reader.IsEmptyElement; int attributeCount = reader.AttributeCount; if (attributeCount > 0) { String texts = ""; String ages = ""; String ids = ""; String tags = ""; String tag = ""; for (int i = 0; i < attributeCount; i++) { reader.MoveToAttribute(i); if (reader.Name == "text") texts = reader.Value; if (reader.Name == "ages") ages = reader.Value; if (reader.Name == "id") ids = reader.Value; if (reader.Name == "tags") tags = reader.Value; if (reader.Name == "tag") tag = reader.Value; } listBox1.Items.Add(ids + ";" + ages + ";" + texts + ";" + tags + ";" + tag); } } } } if (reader != null) reader.Close(); } finally { // enabling redrawing of treeview after all nodes are added reader.Close(); } } private void button3_Click_1(object sender, EventArgs e) { button1.Visible = true; button2.Visible = true; button3.Visible = false; button3.Enabled = false; comboBox1.Visible = false; comboBox1.Enabled = false; label1.Visible = true; label2.Visible = true; label3.Visible = false; label4.Visible = true; label5.Visible = false; button1.Visible = true; button2.Visible = true; pictureBox1.Visible = true; this.startAssessment(); } private void startAssessment() { //count Age of children assessmentID = 0; GroupID = 0; 87 DeserializeTreeView(treeView1, "C:\\elissaData\\Cognitive1.xml"); treeView1.Refresh(); treeView1.SelectedNode = treeView1.Nodes[0].Nodes[0]; treeView1.SelectedNode.ForeColor = Color.Red; String filenames = treeView1.Nodes[0].Nodes[GroupID].Text; GenerateAssessment(filenames); NextAssessment(10); } private void Form1Assessment_Load(object sender, EventArgs e) { this.tablechilddataTableAdapter.Fill(this.elissadbDataSet.tablechilddata); } private void NextAssessment(int AnswerIs) { assessmentID++; if (assessmentID < listBox1.Items.Count) { listBox1.SelectedIndex = assessmentID; String nameAssessment = (String)listBox1.Items[assessmentID]; char[] sepss = { ';' }; String[] dataAss = nameAssessment.Split(sepss); TrainingIDNow = Convert.ToInt32(dataAss[1]); label2.Text = dataAss[2]; label3.Text = dataAss[4]; if (!dataAss[3].Equals("0")) { char[] sepsss = { '_' }; tagIDNow = dataAss[3].Split(sepsss); startRecognition(); } } else { if (GroupID <= GroupCount - 1) { assessmentID = 0; GroupID++; if (GroupID == GroupCount) { FormTraining1 childForm = new FormTraining1(); childForm.MdiParent = this.MdiParent; childForm.Text = "Concentration"; childForm.Show(); } else { treeView1.SelectedNode = treeView1.Nodes[0].Nodes[GroupID]; treeView1.SelectedNode.ForeColor = Color.Red; String filenames = treeView1.Nodes[0].Nodes[GroupID].Text; GenerateAssessment(filenames); NextAssessment(10); } } } } public void startRecognition() { tagsActivated = true; isTagTrue = new Boolean[tagIDNow.Length]; for (int i = 0; i < isTagTrue.Length; i++) isTagTrue[i]=false; readTag = ""; if (serialPort1.IsOpen) serialPort1.Close(); serialPort1.PortName = "COM6"; serialPort1.BaudRate = 9600; serialPort1.DataBits = 8; serialPort1.ReceivedBytesThreshold = 5; serialPort1.Open(); timernow = 0; timer1.Start(); } 88 private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { RxString = serialPort1.ReadExisting(); if (RxString.Equals("0")) { readTag = RxString; } else { readTag = RxString; if (readTag.Length == 10) { this.Invoke(new EventHandler(DisplayText)); readTag = ""; } } } private void DisplayText(object sender, EventArgs e) { for (int i = 0; i < tagIDNow.Length; i++) { if (readTag.Equals(tagIDNow[i])) { isTagTrue[i] = true; } } } public void EndRecognition() { this.timer1.Stop(); this.timer1.Enabled = false; timernow = 0; } private void button2_Click_1(object sender, EventArgs e) { if (tagsActivated) EndRecognition(); NextAssessment(1); } private void button1_Click(object sender, EventArgs e) { label3.Visible = true; button1.Visible = false; pictureBox1.Visible = true; } private void timer1_Tick(object sender, EventArgs e) { if (timernow <= 60) { label4.Text = Convert.ToString(timernow); timernow++; Boolean isTrue = true; for (int i = 0; i < isTagTrue.Length; i++) isTrue = isTrue & isTagTrue[i]; if (isTrue) { EndRecognition(); NextAssessment(2); } } else { EndRecognition(); NextAssessment(0); } } } } 97 Appendix D Cognitive Assessment Menu 98 1) Perception Show anticipatory excitement Reacts to disappearance of slowly moving object Inspects own hands Plays with owns hands, feet, fingers, toes Show interest in sounds of objects Reacts to various sensations such as extremes in temperature and taste Shows understanding of color Identifies self in mirror Identifies one body part Identifies three body parts Gives one out of many Completes three four piece puzzle 2) Concentration Listen to voice for 30 seconds Shows active interest in person/object for at least 1 minute Turns eyes and head to sound of hidden voice Localize sound with eyes Anticipates visually the trajectory of a slowly moving object Plays 2-3 minutes with a single toy Follows trajectory of fast moving object Looks at pictures one minute when named Listens selectively to familiar words 3) Logical thinking Begins play with rattle Continues a familiar activity by initiating movements involved Reaches for second object purposefully Hand regard no longer present Works for desired, out of reach object 99 Follows trajectory of fast moving object Plays with paper Touches toy or adults hand to restart an activity Plays peek a boo Slides toy or object on surface Imitates familiar gesture Retains two of three objects offered Response to simple requests with gestures Retains two and reaches for 3rd object Overcomes obstacle to obtain object Retrieves object using other materials Drops objects systematically Guides action on toy manually Throws objects Uses locomotion to regain object Knows what no-no means and reacts Removes round piece from form board Takes ring stack apart Response to simple requests with gestures Demonstrates drinking from cup Unwraps a toy Moves to rhythms Pulls string horizontally to obtain toy Stacking rings Imitates several new gestures Hands toy back to adult Looks at place where ball rolls out of sight Understands pointing Pulls string vertically to get toy 100 Makes detours to retrieve objects Help turn pages Matches objects Indicates two objects from group of familiar objects Brings objects from another room on requests Turns two or three pages at a time Understands most nouns objects Points to several clothing items on request Attempts and then succeed in activating mechanical toy Solves simple problems using tools Uses play dough and paints Pastes on one side Paints within limits of paper Obey two part commands Plays with water and sand Pastes on appropriate side Demonstrates awareness of class routines Identify rooms in own house Understands complex and compound sentences Understands the concept of one Demonstrates use of object Identifies clothing items for different occasions Finds detail in favorite picture book Engages in simple make believe activities Selects pictures involving actions words Knows own sex or sex of others Understands many actions verbs Understands more adjectives Understand concept of two 101 Identifies longer stick Understand all common verbs, adjective and some prepositions 4) Memory Enjoys repeating newly learned activity Localize tactile stimulation by touching the same spot Finds hidden object using screen Finds hidden object under three superimposed screens Hidden displacement one screen Recognize several people in addition to immediate family Hidden placement two screens Hidden placement 3 screens Hidden placement two screens alternately Recognize and points to four animal pictures Matches sounds to animals Rights familiar picture Matches objects to picture Sorts objects Recognizes self in photograph Series of hidden displacement under 1st screen Remembers where objects belong Points to 5-7 pictures of familiar objects/people Matches sounds to picture of animals Matches shapes Matches colors Matches identical simple pictures of objects Identifies objects with their use Identifies body parts with their function Matches similar pictures of objects Sorts shapes 103 Appendix E Cognitive Training Menu 104 1) Perception Training Reacts to disappearance of slowly moving object Shows understanding of color Identifies self in mirror Identifies one body part Identifies three body parts Gives one out of many Completes three four piece puzzle Description 1. Seat pupil on floor. 2. Introduce noise of moving object. 3. Repeat if necessary. 4. Tell pupil “Turn toward the moving object.” 1. Seat pupil on the floor. 2. Introduce RED, GREEN, BLUE color cards to pupil. 3. Tell pupil, “This is RED card.” when showing the RED card. 4. Point to other card and ask. “What is this color?” 5. Repeat procedures until pupil can tell the color of the cards. 1. Sit in front of a large mirror or use hand mirror. 2. Point to you in mirror and say, “That‟s me.” 3. Ask, “Who else in the mirror?” 4. Point to pupil‟s image in mirror and ask again if he does not give correct response. 5. Tell pupil, “You are in the mirror” if he still gives incorrect response and have him point to himself and say,”I am in the mirror” or “I am” 6. Reward. 7. Repeat procedures until pupil says, “I am in the mirror.” 1. Decide what body part you will teach and choose an activity song about some or all of those parts. 2. Seat pupil on floor. 3. Begin lesson by naming body part. 4. Say, “Point to your” or “Put your finger on your” and repeat body part just name and identified. 5. Give pupil time to respond. 6. Carry identification skills even further by asking, “What is this?” as you point to or show that body part. 1. Decide what body parts you will teach and choose an activity song about some or all of those parts. 2. Seat pupil on floor. 3. Begin lesson by naming body parts. 4. Say, “Point to your” or “Put your finger on your” and repeat body part just name and identified. 5. Give pupil time to respond. 6. Return occasionally to already learn body parts to reinforce that learning. 7. Carry identification skills even further by asking, “What is this?” as you point to or show that body parts. 1. Seat pupil on floor. 2. Put all the toys around pupil. 3. Take a ball and tell pupil, “This is a ball” and mix it with other toys. 4. Let pupil play around 5 minutes. 5. Ask pupil “Can pass me the ball?” 6. Repeat procedures until pupil pass the ball to you. 1. Seat pupil on floor. 2. Show pupil the puzzle of an object, person or animal with three to four related pieces. 3. Then mix the puzzle. 4. Teach pupil complete the puzzle. 5. Mix it again and this time let pupil complete it by himself. 105 2) Concentration Training Listen to voice for 30 seconds Plays 2-3 minutes with a single toy Looks at pictures one minute when named Description 1. Take pupil to quiet area. 2. Tell pupil to turn and look at you when you speak. 3. Say, “Look at me.” 4. Keep on speaking for 30 minutes and let the pupil look at you all the time you speak. 5. Repeat if pupil does not look at you for 30 seconds. 1. Take pupil to quiet area. 2. Give a toy to pupil. 3. Tell pupil play with the toy for 2-3 minutes. 4. Let pupil play alone at the area. 5. Repeat if the pupil does not play with the toy for 2 -3 minutes. 1. Seat pupil on floor. 2. Show pupil the picture of an animal. 3. Tell pupil, “Look at the picture when I named it.” 4. Let pupil play for 1 minute then say, “Can you look at the picture of an animal?” 5. Calculate the time until 1 minute pupil look at the picture. 6. Repeat procedures if pupil cannot concentrate for 1 minute. 3) Logical thinking Training Reaches for second object purposefully Follows trajectory of fast moving object Retains two of three objects offered Overcomes obstacles to obtain object Knows what no-no means and reacts Demonstrates drinking from cup Description 1. Bring your pupil one of his/her toy. 2. Take another toy (his/her favorite toy) and offer to him/her. 3. Encourage him/her to reach for his/her favorite toy. 1. Pick an airplane toy and attract your pupil student to see the toy. 2. Move the airplane toy and get your pupil‟s attention to the trajectory of the „moving‟ airplane toy. 1. Offer your pupil 3 toys and let him/her play with the toy for a while. 2. Request for one toy from your pupil and wait for his response. 3. If he/she gives more than 1 toy, give back all the toys to him/her and tell him/her that you only want 1 toy from him/her and ask your pupil to keep the other 2 toys. 1. Put your child‟s favorite toy a meter away from your child. 2. Then, put a few puzzle blocks in between your child and his/her favorite toy. 3. Encourage your child to reach for his/her favorite toy. 1. When your child reaches a hot/dangerous item, say „nono‟ to him and pose a strict face. 2. Explain to your child that the item is dangerous and he/she should not touch the item 3. Repeat the word „no-no‟ again if your child continues to approach hot /dangerous items. 1. Obtain small cup and fill half way with pupil‟s favorite drink. 106 Looks at place where ball rolls out of sight Matches objects Indicates two objects from group of familiar objects Points to several clothing items on request 2. 3. 4. 1. 2. 3. 4. 1. 2. 3. 4. 1. 2. 3. 4. 5. 6. 1. 2. 3. 4. Understands the concept of one 1. 2. 3. 4. Demonstrates use of object Identifies clothing items for different occasions 1. 2. 3. 4. 1. 2. 3. 4. 5. Knows own sex or sex of others Understand concept of two 1. 2. 3. 4. 5. 1. 2. 3. 4. Seat pupil and bend his head slightly Downward. Tell pupil he can drink some of liquid. Ask him to hold the cup and drink some of the liquid. Seat pupil on floor. Introduce noise of ball. Repeat if necessary. Tell pupil “Turn toward the ball.” Cut 12 cards 2 each of 6 different objects. Shuffle the cards. Tell pupil to match the cards with same objects. Check and show him where card belongs if he misplaces it and have him try again. Seat pupil on floor. Put all the toys and two balls around pupil. Take a ball and tell pupil, “This is a ball” and mix it with other toys. Let pupil play around 5 minutes. Ask pupil “Can pass me all the balls?” Repeat procedures until pupil pass the balls to you. Cut out pictures displaying different clothes( e.g. dress, pyjamas) Discuss pictures to ensure pupil understand all the clothes. Ask pupil point to the picture when u named it. Repeat procedures until pupil can point to all of the pictures. Cut out pictures with different numbers of pupil‟s favorite object. Discuss pictures with pupil and explain every card has how many number of object. Ask pupil to show the card with 1 object. Repeat procedures until pupil can understand concept of one. Obtain small bowl and fill with pupil‟s favorite cake. Seat pupil and bend his head slightly Downward. Tell pupil he can eat some of cake. Ask him to hold the fork and eat some of the cake. Cut out pictures displaying obvious activities( e.g. sport) Discuss pictures to ensure pupil understands activities considers in each. Ask pupil t show the picture when you ask questions. Ask, “When you want to go out, which cloth will you wear?” Repeat procedures until pupil can answer the entire question correctly. Cut out 6 pictures of boys and girls. Discuss pictures with pupil to ensure he understand the meaning of boy and girl. Ask, “Is this a boy or girl?” for each pictures. Ask pupil to show a picture of his own sex. Repeat procedures until pupil can do it well. Cut out pictures with different numbers of pupil‟s favorite object. Discuss pictures with pupil and explain every card has how many number of object. Ask pupil to show the card with 2 objects. Repeat procedures until pupil can understand concept of two. 107 4) Memory Training Recognize several people in addition to immediate family Recognize and points to four animal pictures Matches objects to picture Sorts objects Recognizes self in photograph Points to 5-7 pictures of familiar objects/people Matches sounds to picture of animals Matches shapes Matches colors Matches identical simple pictures of objects Identifies objects with their use Description 1. Cut pictures of people (e.g. father, mother). 2. Discuss pictures with pupil to ensure he understand who is inside the pictures. 3. Ask pupil point to the picture when named. 4. Repeat procedures until pupil gets all correct. 1. Cut pictures of animals (e.g. cat, dog). 2. Discuss pictures with pupil to ensure he understand what animal is inside the pictures. 3. Ask pupil point to the picture when named. 4. Repeat procedures until pupil gets all correct. 1. Cut out pictures of the toys. 2. Put toys around pupil. 3. Ask pupil take out the toy when you show him the picture. 4. Repeat procedures until pupil can match all the toys with pictures. 1. Cut 12 cards 4 each of 3 different objects. 2. Shuffle the cards. 3. Tell pupil to match the cards with same objects. 4. Check and show him where card belongs if he misplaces it and have him try again. 1. Use picture of pupil. 2. Show pupil her picture immediately saying, “Look, that‟s you.” and say her name. 3. Show another picture of pupil. 4. Ask, “Who is in the picture?” 5. Repeat procedures until pupil recognize himself in the picture. 1. Cut pictures of people (e.g. father, mother). 2. Discuss pictures with pupil to ensure he understand who is inside the pictures. 3. Ask pupil point to the picture when named. 4. Repeat procedures until pupil gets all correct. 1. Cut out pictures of the animals. 2. Record sound of animals. 3. Play the recording and teach pupil the animal with that sound. 4. Ask pupil show the picture of animal when you play again the recording. 5. Repeat procedures until pupil can match all the sounds with pictures of animals. 1. Cut 12 cards 2 each of 6 different shapes. 2. Shuffle the cards. 3. Tell pupil to match the cards with same shapes. 4. Check and show him where card belongs if he misplaces it and have him try again. 1. Cut 12 cards 2 each of 6 different colors. 2. Shuffle the cards. 3. Tell pupil to match the cards with same colors. 4. Check and show him where card belongs if he misplaces it and have him try again. 1. Cut 12 cards 2 each of 6 different objects. 2. Shuffle the cards. 3. Tell pupil to match the cards with same objects. 4. Check and show him where card belongs if he misplaces it and have him try again. 1. Cut pictures of several objects. 108 2. 3. Identifies body parts with their function 4. 1. 2. 3. Matches similar pictures of objects Sorts shapes 4. 1. 2. 3. 4. 1. 2. 3. 4. Tell pupil the use of the object by showing him the pictures. Ask pupil name the object and it functions when show him the picture. Repeat procedures until pupil gets all correct. Cut pictures of several body parts. Tell pupil the use of the body parts by showing him the pictures. Ask pupil name the body part and it functions when show him the picture. Repeat procedures until pupil gets all correct. Cut 12 cards 2 each of 6 different objects. Shuffle the cards. Tell pupil to match the cards with same objects. Check and show him where card belongs if he misplaces it and have him try again. Cut 12 cards 4 each of 3 different shapes. Shuffle the cards. Tell pupil to match the cards with same shapes. Check and show him where card belongs if he misplaces it and have him try again.