INCITE - INtegrated Components for Interactive TEaching


Published on

Report for Imagine Cup 2007, round two, section Embedded Devel.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

INCITE - INtegrated Components for Interactive TEaching

  1. 1. 1 “Politehnica” University Bucharest Faculty of Automatic Control and Computes INtegrated Components for Interactive TEaching Team P.U.B.42 : Răzvan TĂTĂROIU Dragoş SBÎRLEA Vlad Alexandru GEORGESCU Alexandru BADEA Mentor: Prof. Nicolae ŢĂPUŞ
  2. 2. 2 1. Executive Summary Many of us have probably noticed the decreasing interest that students are showing towards traditional teaching methods and the increasing attention they are paying to new technologies such as computer games and the Web. This has also been a serious research subject for sociologists. Studies show that students frequently lose attention during class after as little as 15 minutes [1], [2]. This directly leads to poor attendance, poor grades and poor achievement. Research cites „boredom and lack of motivation for learning” and „school teaching/learning strategies seen as boring” as some of the leading causes of school dropouts [4]. Periodic polls conducted by the Texas Education Agency show that lack of attendance due to disinterest is by far the leading cause of school dropout in that state, and this situation is general [3]. Moreover, others have conducted studies on the economic impact of school dropout and student underachievement in general. Consequences for the individual include lowered skill levels, unemployment and personal disatisfaction. On a larger scale, these reflect into decreased productivity levels, lower taxation revenue and lower consumption. On the global market, this can impact a country’s competitivity [4]. Other costs, both economic and social, come from increased crime rate due to unemployment and drug abuse [4], [5]. It is thus clear that a solution needs to be found to increase students’ interest in school and their attention during class. Social scientists suggest that an interactive approach to teaching is effective in keeping the students focused [2]. They suggest hands-on, team-based activities, as well as adapting the curriculum to individual student needs. INCITE is a system designed to facilite this through the use of modern technology. It builds upon young students’ interest in computers and „gadgets”, inciting them to discover a new way of learning. The traditional chalk, blackboard, notebooks and test sheets are upgraded to their digital counterparts. These are networked together and run educational software which often receives a game-like disguise. This becomes a strong motivation for young students to interact, learn and share information. Another problem we address is that of students with disabilities. Because of their great difficulty integrating in normal classrooms, many of them simply drop out of school [4]. INCITE was designed with accessibility in mind. By using specially designed hardware instead of the normal interfaces, and because it supports adaptive teaching and evaluation, the system narrows the gap between students with disabilities and their peers and helps them integrate and succeed. Last but not least, INCITE is designed to make educational technology accessible to the less wealthy, by making full use of low-cost components with efficient software. It requires little maintanence and has low setup costs.
  3. 3. 3 2. System Overview 2.1 Components INCITE is designed primarily for use in a classroom, where it becomes a captivating environment for learning. Its main components are: o the eBox 2300 is a mobile, lightweight PC running interactive educational software on top of a customized Windows CE image. Each teacher receives an eBox , and each classroom is fitted with a screen and a projector that the teacher connects their eBox to. o the Handheld Devices are small, highly mobile, customized terminals given to each student, as well as the teacher. They connect to the eBox via Bluetooth and feature a small screen, 6 buttons and a laser pointer. They allow student interaction and collaboration. The laser pointers can be concurrently used on the projector screen, where they are detected by the eBox via a webcam and function much like mouse pointers, complete with click and drag, replacing traditional chalk. o the Central Server hosts the systems’ remotely accessible components: o main database, containing student records and other administrative data o course files that are prepared by teachers and downloaded to the eBox before class; also accessible by students from home o students’ virtual notebooks, in the form of a weblog for each student and for each class. These blogs include results and conclusions drawn from class activity, as well as snapshots of the class screen. These maintain a degree of interactivity while embedded in the web browser. The students can take audio notes via their handhelds at any time during class and post them on their blogs. 2.2 Innovation INCITE is designed primarily as a lesson enhancement system. It integrates well into the existing educational system and follows current trends such as collaborative learning, engaged learning, adaptive testing, while adding innovative features. Other systems designed to provide technology-enhanced school learning simply lack the advanced collaborative features, high degree of interactivity, mobility, flexibility and accessibility that INCITE integrates.
  4. 4. 4 INCITE allows and encourages every student to take active part in the lesson and bring their tangible contribution to the class’ “work in progress” that gets published online. This allows an opening of the educational process, so that teachers can themselves learn from each others’ experience and improve their teaching methods and lessons plans. Students can also share conclusions and discuss their understanding of the lessons, leading to higher learning efficiency. INCITE provides this without the unjustifiably high costs of providing each student and teacher with a powerful computer, such as other projects suggest. INCITE upgrades the traditional chalk and blackboard to a much more flexible medium that allows information persistence, ease of use, interactivity and concurrency. The infrastructure allows simultaneous laser or button use by multiple students. INCITE doesn’t need a dedicated classroom. Any space that can host a projector can instantly become a virtual learning environment. Thanks to the system’s high degree of mobility, it can even be taken out to field trips. Mobile projectors are available, but even if one is not used, the system still retains its other features. INCITE is designed to facilitate integration of students with disabilities in normal classes. The only additional cost is that of customizing the handheld devices for various disabilities. For instance, a student with motor disability may be unable to write by hand in a standard classroom. But they may be able to press some large, conveniently-spaced buttons or take audio notes, which would open up a whole new world of opportunity for them. INCITE is not curriculum-specific. It can be applied to teach any subject and allows the teacher liberty in choosing a lesson plan and managing their class. INCITE eases administrative tasks such as taking attendance, resulting in more useful lesson time. 2.3 Usage Below we summarize a typical usage scenario. Before class, the teacher prepares materials using a PC and stores them on the server. A web interface is provided to make editing possible inside a browser. If the classroom does not have network access, at least the teachers’ lounge should, so the teacher downloads the relevant materials to the eBox. At the beginning of the class, the teacher connects the eBox to the projector and places the webcam on the desk. As the students enter the classroom, their handhelds connect to the eBox, which takes attendance automatically and downloads their homework. The lesson may start with a classic presentation with slides, but the teacher can drag objects, underline text or even make written annotations using their handheld laser. Students can take audio notes and post them on their blogs via their own handhelds.
  5. 5. 5 If this were a Physics class, the teacher may start an interactive mechanical simulation, and may ask two students to study the collision of two balls launched under different angles. Then a third student would be asked to draw an additional obstacle in the simulation. All this is done with the lasers. For younger students, an educational puzzle game can be run. Three or four students would move the pieces on the screen trying to form an image relevant to the class, such as a certain animal in its natural habitat, or a country’s map. The teacher would then ask questions about that and develop upon the subject. The system has great potential during Art classes, where its dynamic, graphical nature can be exploited to the fullest, allowing the creation of collaborative works to be shared and later discussed online. This is not limited to static drawings, but also animations. Motion-sensitive, color-changing “jelly” objects can be embedded in the drawing. The whole creation process of the work can be recorded and played back online. At some point, the teacher may want to give the students a test, in order to evaluate their comprehension. Instead of the traditional paper tests that have to be hand-graded, INCITE offers a more friendly, efficient and flexible solution. The teacher will select a single- or multiple-choice quiz to be issued by the eBox to the students’ handhelds, with the questions and answers randomized. The time allocated to each question, or to the whole test, can be adjusted. The students answer each question displayed on their screen by pushing the corresponding button(s). The tests are graded and the results are recorded automatically. In order to stimulate collaboration as well as competition, the teacher may decide to let students form teams and consult with each other within a team. If some students constantly perform better than others, in general or in a particular area, the teacher may enable adaptive testing, in which the eBox computes an optimum set of questions for each student, depending on their activity and grading history. Ad-hoc testing may also be performed, where the teacher does not prepare the questions in advance, but rather speaks them out and presses the correct answer on their own handheld when the time for the current question expires. The eBox also centralizes and grades the students’ answers. At the end of the lesson, the students receive comments from the teacher regarding their previous homework, as well as the text for the next one, on their handhelds. After this, the teacher takes the eBox to the teachers’ lounge and connects it to the network, uploading materials created during class, such as blog entries containing activity snapshots, to the server. These snapshots are not simple images, but contain interactive objects and associated audio comments. This recorded activity has a contribution to each student’s grade at the end of the semester, and also facilitates information and experience sharing. Each student’s blog is a virtual notebook, and the class’ blog is a record of their learning experience. After class, students can review the notes they took on their blog, as well as the recorded lesson on the class blog. They can post additional comments and homework on their blog. This offers unprecedented ease of access to information and facilitates reviewing. It also
  6. 6. 6 enables distance learning and helps students who skipped a class keep up-to-date, although this behavior is not encouraged. INCITE’s high degree of mobility can be exploited during field trips, where its ability to assist with written or audio materials, quiz administration and grading, and offline note taking, works even without a projector. For example, lessons can be held in nature, and information can be presented on the handhelds during museum trips. 2.4 Cost and Feasibility Analysis INCITE’s main target are schools. Much effort has been put into reducing the production, deployment and maintenance costs, such that governments and sponsors can implement INCITE even in developing countries. It is hoped that through better education we can help these areas develop more rapidly and increase the standard of living. A cost evaluation is given below. System Costs Maintenance Costs Total Cost eBox 2300: $120 Battery replacement: For a school with 25 classes Software licenses: $50 eBox: $20 Webcam: $30 Handhelds: $2 * 25 = $50 Acquisition and installation Handhelds: $24 each Total: $70 / year $20,000 * 25 students = $600 Handheld replacement: $600/10 years = $60 / year Maintenance Total: $800 per classroom eBox replacement: $3,450 / year $120/15 years = $8 / year Hardware costs are estimated based on prices published on manufacturer or retail store websites. Stated handheld cost is that of the actual prototype built with off-the-shelf parts. In mass production, when acquiring large quantities, all hardware costs are expected to be significantly lower than stated here. The following items are included in the school’s inventory in many cases; otherwise they also need to be acquired:  Projector (fixed): $400 or Projector (mobile): $700  Server: $1000 INCITE’s deployment is easy, as most communication is wireless and most components are mobile. Synchronization between the eBoxes and server can be done at a single point, in the teachers’ lounge for instance, eliminating the need for wiring the building. A perceivable weakness of the system is the reduced set of features the handhelds offer when compared to a laptop or PDA. Those additional features however bring little educational value for their high cost. The system can be implemented either by the schools themselves on their own budgets, or with the help of sponsors. In view of the fact that better education creates more valuable employees, INCITE is an investment in the future.
  7. 7. 7 To put INCITE’s benefit-to-cost ratio into perspective, let’s note for example that in 2000, the Romanian government bought 500 000 desktop computers for use in schools [6]. Although we did not find published information about the cost, we can estimate it to around $300 million. Most of these computers however are used to teach limited aspects such as word processing and basic programming. As an integrated system, INCITE can help students learn a much wider variety of subjects more efficiently, at a fraction of the cost. Some governments are having trouble implementing modern teaching systems because of their high cost. INCITE’s moderate price comes as an opportunity, compared to other solutions that involve assigning each student one piece of equipment. An excellent opportunity for INCITE can be found in our country Romania and in neighboring Bulgaria. These countries have recently joined the European Union, which is offering grants for regional development, including education. [7] 2.5 Design Methodology We chose Lean Product Development as the design methodology, coupled with Agile Development practices. Lean Product Development emphasizes product quality as a design focus point, encouraging well-thought design decisions. It discourages over-production (waste), urging the designers to concentrate on a set of essential features at each stage of development. As the Lean methodology isn’t a specifically iterative approach, it is well complemented by the Agile practices. Agile is very well suited for this project, which involves a small team, a pressing deadline, the need to have a working prototype at all times, and repeated changes as the system is being refined. Due to the limited capabilities of the hardware, our project needed repeated performance testing and subsequent design adjustments in order to maintain acceptable response time without compromising other aspects of the user experience. This, coupled with the need to adjust according to user feedback during repeated testing, favors an Agile methodology. 2.6 Planning and Team Organization We identified three milestones and worked in two rotating pairs to achieve each one of them: 1. Digital blackboard implementation  1-A eBox webcam driver with pointers  1-B eBox educational software framework 2. Complete virtual classroom  2-A handheld devices, communication protocol  2-B eBox interactive lesson
  8. 8. 8 3. Web integration  3-A management infrastructure (web services, databases)  3-B web front-end (interactive blogs, teaching resources) Completion Jan,15 March,15 May,15 Team Member 1-A 1-B 2-A 2-B 3-A 3-B Dragos ● ● ● Vlad ● ● ● Razvan ● ● ● Alex ● ● ● At present, the first feature-complete version of INCITE is ready. More work is scheduled regarding performance improvements, scalability, adaptability, user interface enhancements and actual educational content. These enhancements will be driven by performance data and user feedback obtained through testing and by consulting education specialists. All code was developed by pair programming, which led to higher code quality and reduced debugging time. Pairs were assigned based primarily on team members’ specialization and were reassigned upon completion of each milestone in order to assure a continuous, flowing development. Thus, each member has working knowledge of the whole system, which helps achieve good component integration. Code is collectively owned, which facilitates review and further improves collaboration. The team keeps in touch at all times and collaborates using instant messaging, a mailing list and a wiki. Weekly face-to-face meetings are also held to perform live testing and discuss the current status and further development. 3. Implementation and Engineering Considerations 3.1 Design Objectives In order to develop a competitive product, we designed INCITE with the following objectives in mind: - User-friendliness. INCITE should have an intuitive user interface and require minimal prior technical knowledge. Teachers should not require extensive training, and students should be able to use the interfaces in a short amount of time. Any subject should be equally easy to teach using INCITE. - Accessibility. Hardware and software interfaces should be easy and cheap to customize according to a large variety of special needs. - Safety. Chance of eye injury due to lasers should be minimized. - Security. The system should protect personal information and prevent identity theft. Additional attention should be paid to securing student records.
  9. 9. 9 - Performance. The system should be able to run all applications in real-time. All animations and interactions should be fluid. At least 30 users should be supported. - Reliability. INCITE should have a high uptime and low failure rate. In case of failure, maintenance should be quick and easy. - Cost. To make INCITE an attractive package, a low cost per feature is essential. - Mobility. INCITE should be easy to set up and move to any location. - Extensibility. INCITE software should be easily updateable. 3.2 System Architecture INCITE is based on the following components: the eBox 2300, the handheld devices and the central server. eBox 2300 At the center of the system is the eBox 2300 VESA PC. It is a low-cost embedded system that has all the necessary hardware requirements for INCITE’s purpose: adequate computing power, permanent storage, graphical capabilities, Ethernet connectivity, USB support and audio support. The eBox comes in a thin, lightweight, portable package. Fit for industrial use, the eBox 2300 has a robust, fanless design and is more reliable than consumer devices such as laptops, which can have failure rates as high as two per year [9], especially under heavy use. A battery can be fitted to enhance mobility. The eBox runs a custom Windows CE 6.0 image (built with Platform Builder), which includes: - the .NET Compact Framework 2.0, used by the INCITE applications - wired LAN and Bluetooth PAN support for network and handheld connectivity - Internet Explorer 6 for Web access, particularly to the central server - Windows Media Player, Windows Media Audio, MP3 and MP4 support for multimedia content - DirectDraw, for graphical applications - Local Authentication Sub-System, to prevent unauthorized use - OBEX support, for Bluetooth Object Exchange In addition to these components, the following were developed: - webcam driver with laser recognition - INCITE Virtal Classroom application - sample educational applications utilizing INCITE technology
  10. 10. 10 Laser recognition A webcam driver was developed for Windows CE 6.0. The driver has an image capture mode that is slow due to hardware limitations, and a real-time laser pointer recognition mode. In order to minimize USB image transfer time and image processing time on the eBox, a feature present on most webcams is creatively used. The gamma correction function allows adjustments in the light level response curve and is normally used to improve an image’s dynamic range. On many webcams this is done by the camera hardware and is controlled by the driver on the host computer. By programming the gamma function to a step instead of a smooth curve, and adjusting sensor exposure time, we can isolate the laser pointers from the rest of the image, resulting in a black frame with small white spots. As images are usually sent to the computer via USB using JPEG compression, this method allows very small, fast transfers. Decompression performed on the eBox also becomes faster, as there is much less information in the frames than in usual pictures and the algorithm is optimized to take advantage of this specific frame structure. This is very important, as most eBox processor time should be dedicated to the actual applications, allowing us to meet the objectives of performance and low hardware cost. Identifying the pointers’ positions is simply a matter of translating the spots’ coordinates from image to screen using a pre-adjusted transformation. The adjustment is easily performed from the management application once the camera is set up and consists of pointing a laser to the four corners of the projected image. Clicking is implemented by dimming the laser spot for the duration of 1.5 frames to ensure the event is caught. A possible problem is when two laser spots meet and overlap, which can cause their corresponding software cursors to interchange. This risk is mitigated by tracking each pointer’s moving direction and speed over the last few frames and assuming these variables have a finite rate of change, due to mechanical inertia. INCITE Virtual Classroom Application The INCITE Virtual Classroom (IVC) is the main application that runs on the eBox and acts as a control center from where the teacher manages all aspects of their lesson. It has the following functionality: - Handheld communication: the IVC back-end manages the Bluetooth connection with the handheld devices and exposes high-level functionality to the rest of the application. - Server communication: whenever a network connection is available, the IVC tries to connect to the central server in order to upload any new materials created during class, or other pending data. It will also download materials from the server at the
  11. 11. 11 teacher’s request, such as new applications, presentations, multimedia files prepared beforehand. - Student record management: the IVC authenticates each student’s handheld device versus the student database, takes automatic attendance and uploads everyone’s assigned grades to the server. It also displays student information and activity history at the teacher’s request. - Test administration and grading: the IVC allows the teacher to give students tests on their handhelds. It also centralizes the results and issues grades. - Data storage and tagging: materials created by the teacher and students (such as audio annotations via the handhelds, application snapshots or test results) are stored alongside metadata which identifies the author and the object it is related to. These will be later uploaded. - Web integration: the IVC facilitates the posting of stored materials on the students’ blogs or on the class blog. - Container for educational applications: the IVC hosts third-party educational applications, as well as the sample applications. These are compiled as loadable modules (dynamic-link libraries). The IVC provides these applications with a unified, managed interface to the students’ handheld devices. Summarized IVC application framework The IVC uses the eBox display (projector) as an output device, but can also use the teacher’s handheld device when the above is occupied. Input can be via normal keyboard and mouse, or via the teacher’s handheld through a simplified, menu-driven interface.
  12. 12. 12 Educational Applications INCITE provides a framework for educational application development. Applications using INCITE technology are able to offer a high degree of interactivity and ample opportunities for collaboration. To demonstrate this, a set of “samples” is provided. With each of them, the emphasis is on multiple students interacting with the application simultaneously and collaborating to achieve a goal. Mechanical Simulator allows students to insert simple mechanical objects in a simulation and impart motion on them. The objects have differing shapes and properties (density, elasticity). Puzzle allows an image to be selected by the teacher and transformed into a puzzle of selectable complexity. The image is assumed to have relevance towards the subject being taught. Shown are a photo of Puzzle running on the eBox, and a screenshot of a blog entry embedding the same interactive Puzzle.
  13. 13. 13 Canvas allows students to create a virtual painting. Students can select from a range of brushes and can apply digital effects. The IVC and sample applications are written in C# and use the .NET Compact Framework 2.0. The sample applications use DirectDraw Mobile for graphical output. Handheld devices The handheld devices are designed to be user-friendly, lightweight, low-cost, and fit for mass-production. They are built around a microcontroller and employ a graphical LCD screen, a Bluetooth module, a microphone and a laser pointer. A small RAM is used for temporary file storage, and a SD card slot is provided for optional mass storage. They are powered by rechargeable batteries. Their software implements Bluetooth communication (including file transfer via Object Exchange), a menu-driven command interface, support for test taking, and a simple document viewer. Each handheld has a unique serial number that is associated in the server database with the student or teacher to whom it is assigned. This allows automated attendance taking, and in a future version may allow student tracking. Central Server The central server hosts the following: - an SQL Server 2005 database that holds student records and blog contents - an ASP.NET 2.0 Web Service that the eBox uses for synchronization - an ASP.NET 2.0 role-based website that allows: viewing student grades, uploading and downloading class materials, and accessing the blogs. Implementation was facilitated by the following ASP.NET 2.0 features: Master Pages, Themes, Web Parts, as well as the new security model. Atlas, Microsoft’s AJAX implementation, provides enhanced user experience. 3.3 Testing INCITE was repeatedly tested upon completion of each feature. In order to measure performance in a realistic environment, the system was tested in a number of classrooms at our faculty, with differing positioning and under various lighting conditions. Except for
  14. 14. 14 very high light levels such as direct sunlight, the laser recognition worked as expected. Four laser pointers were used. In accordance with initial performance goals, a frame rate of 10fps was achieved for laser detection and for graphical output, which provides acceptable motion fluidity. It was verified that handheld batteries do not need recharging for the duration of a normal school day. Bluetooth connectivity worked as expected with the 2 handheld prototypes we currently have. Traffic data indicates that the system is able to scale up to the required 30 devices. Web service connectivity and operation, as well as database functionality, were tested by simulating a number of lessons. 3.4 System limitations As a low-cost system, INCITE had to be designed with some compromises. Following the Lean Product Development methodology, a reduced number of well-implemented features was preferred over a large number of poorly-functioning or partially- implemented ones. Care was exercised not to degrade the user experience and focus was put on those features which bring the most educational value. Educational applications running on the eBox cannot currently display elaborate 3D graphics or perform advanced processor-intensive simulations. This however is not a significant obstacle in teaching through lightweight applications that focus on a particular aspect of the subject. Applications can have rich, appealing graphics even if these fall short of realistically-shaded 3D objects, and motion is fluid enough to be perceived as real-time interaction. INCITE is focused on efficiently and attractively teaching concepts, without unnecessary embellishments. The same philosophy applies to handheld design. Being the most numerous devices, these also have to be the simplest in order to keep cost down. No powerful applications can run on these devices, and they act mainly as input/output devices for the eBox, with the addition of limited local storage. However, they are perfectly suited for viewing text and graphical content generated on the eBox, audio note taking, answering tests, and of course, as virtual chalk by means of the embedded laser. The OBEX transfer protocol used over Bluetooth is a well-established and supported standard, so the handhelds can be ultimately replaced with more capable devices such as smart phones or PDAs as their cost decreases. 4. Measuring Success We have strong reasons to believe that INCITE has great potential for improving education for a very large number of students, and for making a significant positive impact on society. This ideal has to be confirmed in practice by implementing INCITE as a pilot-program and measuring its actual success. Data gathered during this program
  15. 15. 15 would be used to find INCITE’s weak points and correct them. Should INCITE be found valuable and implementable according to its design and purpose, plans for large-scale deployment can start. The system’s success in the field can be assessed using the following indicators, measured before and after experiencing INCITE: - average student grades - average attendance - subject comprehension and student involvement in lessons, as indicated by teachers and measured through specially designed tests - student opinion on class attractiveness and teaching efficiency, measured through questionnaires - student self-assessment, including knowledge gained and off-class study time Social integration of students with disabilities in class, as well as their involvement in lessons and comprehension, will be measured by a set of indicators designed by specialists. 5. Further Development A feature-complete alpha version of INCITE is ready. For the beta version, a number of improvements need to be carried out: - replace the handheld prototypes with more compact designs; add optional SD memory support, improve graphics support in software - improve sample educational applications with more elaborate graphics For a commercial version more features would be added, such as integration with smart mobile devices, a collaboration framework that connects central servers from different schools, as well as support for real-time distance learning through audio-video streaming and a version of the handheld-eBox protocol that is encapsulated over the Internet. 6. Conclusions INCITE is a novel, attractive, user-oriented system that enhances school learning and personal development. It allows information to be presented and shared with unprecedented clarity and ease and it facilitates student interaction and collaboration. INCITE is easily deployable, highly mobile cost-effective and easily maintainable. It is robust and extendable. This and its innovative features such as online integration and accessibility, make INCITE stand out on the educational systems market and give it a competitive advantage.
  16. 16. 16 References 1. University of Texas at Austin, Papers of the Faculty Innovation Center 2. Joan Middendorf, Alan Kalish, Indiana University - TRC Newsletter, Fall 1996 3. Texas Education Agency, Report on Public School Dropouts specifically 4. Michael Brooks et. al., ARTD Management and Research Consultants, Underage School Leaving - A report to the National Youth Affairs Research Scheme$File/underage_leave rs.pdf 5. Obot IS., Anthony JC. at Johns Hopkins Univ., School dropout and injecting drug use s=10920595&dopt=Abstract 6. Romanian Parliament’s Education Commission, September 12th talks (in Romanian) 7. EU Calls for proposals for grants regarding education 8. Steve McConnell, Code Complete 2nd edition, Microsoft Press 2004, pg. 850 9. PC World Magazine, Reliability and Service Report Card