Kuwait University College of Engineering and Petroleum Computer Engineering Department CpE 492 Computer Engineering Design Final Report for Mobile Clicker Prepared by Ahmad Al-Toukhy Amir Ahmed Ahmad Ashkanani Date created 26-May-08 Table of Contents 1. Table of Contents 1 2. Purpose of the report 3 3. Information about the team 3 a. b. Team member's CVs Identification of Team leader 3 3 4. Project scope 3 5. Project Background a. b. c. d. e. 4 The outcome of the project Social impacts of the system Environmental impacts of the system Technical impacts of the system Economical impacts of the system 6. Solution Formulation a. b. c. d. 4 4 4 4 4 5 Introduction Proposed Solutions Solution implemented and reasons for selecting it. Required skills for implementation 5 5 9 9 7. Final system usage scenario 10 8. Conclusions and suggestions 23 a. b. c. Problems encountered and solutions Skills and concepts learned from the project Suggestions 9. Copyright and intellectual properties 23 25 25 26 Appendix A 26 Appendix B 27 Appendix C 28 1 Index of Figures Figure 1: Block diagram for the first solution ........................................................................... 5 Figure2 : Block diagram for the second solution ....................................................................... 6 Figure 3: Block diagram for the third solution .......................................................................... 8 Figure 4: Startpup Screen......................................................................................................... 10 Figure 5: Confirmation Dialog 1.............................................................................................. 10 Figure 6: Confirmation Dialog 2.............................................................................................. 11 Figure 7: New course dialog .................................................................................................... 11 Figure 8: Confirmation Dialog 3.............................................................................................. 11 Figure 9: Error Message 1........................................................................................................ 12 Figure 10: Missing information ............................................................................................... 12 Figure 11: Help message .......................................................................................................... 13 Figure 12: The Main Screen .................................................................................................... 13 Figure 13: The main screen with automatic attendance activated ........................................... 14 Figure 14: Setting dialog .......................................................................................................... 14 Figure 15: Manual Addition of Students ................................................................................. 15 Figure 16: Error Message 2...................................................................................................... 16 Figure 17: Error Message 3...................................................................................................... 16 Figure 18: Error Message 4...................................................................................................... 16 Figure 19: Sent question message ............................................................................................ 16 Figure 20: All answers received message ................................................................................ 17 Figure 21: The main screen after the "Get Answers" button has been clicked ........................ 17 Figure 22: Error Message 5...................................................................................................... 18 Figure 23: Manually enter student scores ................................................................................ 18 Figure 24: Confirmation Dialog 4............................................................................................ 19 Figure 25: Input dialog appears when the "New" button is clicked......................................... 19 Figure 26: Add students screen ................................................................................................ 20 Figure 27: Assign dialog .......................................................................................................... 20 Figure 28: Update students screen ........................................................................................... 21 Figure 29: Confirmation Dialog 5............................................................................................ 21 Figure 30: View attendance record .......................................................................................... 22 Figure 31: Network Diagram and Chart .................................................................................. 28 Index of Tables Table 1: Meeting Times ........................................................................................................... 26 Table 2: Task Breakdown Structure ........................................................................................ 27 2 2. Purpose of the report This report illustrates, in detail, the process of implementing our computer design graduation project named Mobile Clicker (also known as mokik). First of all, it gives comprehensive information about the team members’ CVs and a summary of the project's scope and goals. After that, it describes the project’s background information, including social, technical, environmental, and economical impacts. Afterwards, it describes the different alternative solutions conceived for the project, compares between them, and indicates the selected one, plus the skills needed to implement it. Next, it gradually illustrates with diagrams, how the final system works. Finally, conclusions and suggestions are given after that, followed by the appendices that show the team meeting agendas, the project network diagram, the project cost table, plus the glossary and references used in this report. 3. Information about the team a. Team member's CVs (CVs are found at the end of the document) Ahmad Ashkanani Amir Ahmed Ahmad Al-Toukhy b. Identification of Team leader The leader of the development team is Ahmad Ashkanani. The main reason for choosing him as the leader is that he has good skills in equally distributing and managing the tasks among the team members. He also takes into consideration the skills of a team member during task assignment to make sure that the tasks can be appropriately completed by the selected individual. Another reason is that he has experience as a team manager for previous projects that involve group work. 4. Project scope The Mobile Clicker application is a two-part project. The first and most important part is a Java-based PC application that is used by the instructor to take the attendance of the students registered in the class by discovering their Bluetooth mobile devices. It is also used in asking multiple-choice questions, like surveys, for the whole class. The second part is a Java-based mobile application that is used by the student to answer the question or the survey that the instructor may send using the PC application. The project aims to solve two main problems. The first problem it would solve is the relatively long period of time that the instructor would spend at the beginning of class to take attendance. The second problem it would solve is the difficulty of measuring the understanding of students using conventional means (for example, by verbally asking them). The goals of our system are as follows: 1.) To save time taking attendance and ease the process of recording attendance. 2.) To improve the instructor’s evaluation of the students’ knowledge in class by broadcasting a question to all present students and statistically displaying the results. 3.) To provide a scoring feature that allows the instructor to reward marks to students who answer questions correctly. This system is to be used mostly in universities or colleges to provide some kind of interaction between the instructor and the student. Therefore, the direct users of the product are the instructor and the student. The instructor should have the basic knowledge of opening and saving files as well as activating the Bluetooth device of the laptop. The mobile user should have the ability of opening and closing the Bluetooth device of the mobile. The buyers of the system are the educational organizations or the services department of the university/college. 3 5. Project Background a. The outcome of the project The outcome of the project is to produce a system capable of providing an easy form of interaction between the instructor and student through an intuitive and user-friendly interface. The project is also aimed to reduce the time required to take attendance and allow for the possibility to automate the recording of attendance. b. Social impacts of the system The system is designed to improve the social abilities of students by encouraging them to participate in class and to share their opinions and point of views about a subject. This can have a positive impact on the students’ social life later on in their career or elsewhere. The only negative impact of the system on the public ethics is that the students may misuse their Bluetooth devices by chatting and sharing files, images, and videos. This may affect their understanding of the material and their concentration with the instructor. c. Environmental impacts of the system The system uses Bluetooth technology which has no documented positive or negative effects on people’s health or the environment. The system shall be functional in both indoor and outdoor environments, however, it will mostly be used in interior classrooms under optimum temperatures (20~25°C) and relatively average humidity (30~40%). d. Technical impacts of the system Performance: The response time of the system for one transaction has been measured to be an average of 300 milliseconds and has reached a maximum of 2.5 seconds. A transaction is defined as the process of sending or receiving one variably-sized stream of text data from or to the laptop. The performance of the system is therefore found to be an average of 3.33 transactions per second. Reliability: The system has a MTTR of 1 hour and a MTTF of 50 days. e. Economical impacts of the system The only negative economical impact our system will have is that it will need to acquire a budget of its own from the educational organization to supply the instructors with Bluetooth-equipped laptops. Energy Consumption: The required power source for the laptops and mobiles is normal electrical supply of 240V (which can be down-converted to lower voltages where required using a transformer). The average power consumption for one laptop is 55.5 Watts and the average power consumption for one mobile is 1.8 Watts. Assuming a class consists of 40 students and an instructor then the total power consumption during one lecture is 127.5 Watts. Maintainability: This software is open-source and can be freely changed and upgraded by any developer at no cost. However, if the software would become commercial, then maintainability cost would be $200 per thousand lines of code. Manufacturability: The final product will be special-purpose software that is aimed at educational organizations and has fixed functions. It is therefore catered for a specific set of corporations and cannot be used for any other function except the ones that were designated and specified during the design phase. There is no cost for mass production as it is open-source and free. The only cost would be a suitable laptop for the program to reside on. This leads to a cost of about $350 per instructor which is highly affordable to the targeted customers. 4 6. Solution Formulation a. Introduction In this section we shall explain several alternative solutions for building the system, compare them in terms of advantages and disadvantages, and then select the most appropriate one for implementation. b. Proposed Solutions i. Solution 1 The first alternative solution for building the system is to apply a simple clientserver model where the laptop of the instructor is the server while the mobile devices of the students are the clients. In this solution, the mobile device (client) is the connection initiator. 1. components Mokik laptop application on the Instructor’s laptop Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Figure 1: Block diagram for the first solution 2. Required Implementation tools The hardware requirements of this solution are a PC with a Bluetooth device and a mobile device with Bluetooth and java compatibility. The software requirements of this solution are the “mokik” laptop application on the instructor’s laptop and the “mokik” mobile application on the student’s mobile device. The laptop application will act as a server (offers our own service and waits for any client to initiate a Bluetooth connection with it). The mobile application will act as a client (searches for a server and initiates a Bluetooth connection with it). 3. Advantages a. The Bluetooth connection is stable since the instructor’s laptop is the server. b. The Bluetooth connection is guaranteed not to be lost unless the student exits from the application on his mobile (for the same reason in the previous point). 5 4. Disadvantages a. The laptop can be connected to a maximum of 7 Bluetooth devices at a time (students’ mobiles). So, if we have a class with more than 7 students, this solution will not work (almost all classes have more than 7 students). b. If the connection is established, it is very stable. However, in this solution, the mobile (client) is responsible of searching for the instructor’s laptop and connecting to it. This process may take some time if there are a lot of nearby Bluetooth devices. c. Consider a case where there are two laptops in adjacent classrooms using the “mokik” laptop application (acting as a server). This solution may produce an additional delay if the mobile is connected to the wrong laptop. So, we have to add some lines of code to let the laptop check if the client is in the list of mobile devices for this class or not. If the Bluetooth address of the connected mobile is not in the database, then the laptop should close the connection and the mobile should try to search for other servers and connect to them. d. The laptop will accept client connections one by one. This may produce an additional delay if multiple mobile devices try to connect to the laptop at the same (all of them except one device will wait). ii. Solution 2 The second solution for building the system is to make a tree of Bluetooth connections. This is called a Client-Server model. That is, the laptop (server) is connected to 7 mobiles (clients) and every mobile (server) of those 7 devices is connected to other 6 mobile devices (clients) and so on. The mobile device in this case will act as a client and a server at the same time. 1. components Mokik mobile application on student’s mobile Mokik laptop application on the Instructor’s laptop Mokik mobile application on student’s mobile 7 mobile devices 6 mobile devices Mokik mobile application on student’s mobile 6 mobile devices Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Figure 2: Block diagram for the second solution 6 Mokik mobile application on student’s mobile 2. Required Implementation tools The hardware requirements of this solution are a PC with a Bluetooth device and a mobile device with Bluetooth and java compatibility. The software requirements of this solution are the “mokik” laptop application on the instructor’s laptop and the “mokik” mobile application on the student’s mobile device. The laptop application will act as a server (offers our own service and waits for any client to initiate a Bluetooth connection with it). The mobile application will act as a client (searches for a server and initiates a Bluetooth connection with it). The mobile device in this topology will act as a server also so that a mobile will offer our own service and at the same time will search for servers to connect to (if the laptop has a free Bluetooth socket from the 7 sockets, it will connect to it. If not, it will connect to a mobile server). The mobile application will have a buffer so that it will collect the answers of all client mobiles connected to it. It should keep track of the answer of each mobile. 3. Advantages The only advantage of this solution is that the problem of maximum 7 Bluetooth connections is solved. Using this solution, the instructor can send the question to infinite number of student mobile devices. 4. Disadvantages a. In this solution, the mobile device itself is responsible for multiple Bluetooth devices connected to it. So, the Bluetooth connection is not guaranteed since the student may exit from the application for any reason (the battery is empty, pressed the “exit” button by mistake, etc). So, the whole tree beyond this specific mobile will be disconnected from the laptop and it would need so much time to reconstruct the whole tree consisting of all mobile devices of the class again. b. This solution would take more time than the previous one since the instructor should wait for all the mobile devices to be connected to servers and then send the question. If we want to eliminate this delay, then the students should keep the program working through the whole class so that the tree construction process will be done only once every class. However, this will consume the mobile’s battery. c. The tree cannot be guaranteed to be balanced (that is the depths of all leaf node are equal or differs by 1 node only). So, we may have a tree where every mobile device is connected to a server (another mobile device) and has only one mobile device connected to it as a client. In this case, the buffer size to be allocated on the mobile connected on the laptop can be huge depending on the number of mobile devices in the class. 7 iii.Solution 3 In this solution, the mobile would act as a server and the laptop would act as a client. So, the laptop is the connection initiator. In this solution, the laptop is responsible of doing Bluetooth device discovery continuously during the class. It will filter the discovered list to contain the devices for students who are in this class only. Then, it will use this list to initiate Bluetooth connections to them and send questions. 1. components Mokik laptop application on the Instructor’s laptop Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Mokik mobile application on student’s mobile Figure 3: Block diagram for the third solution 2. Required Implementation tools The hardware requirements of this solution are a PC with a Bluetooth device and a mobile device with Bluetooth and java compatibility. The software requirements of this solution are the “mokik” laptop application on the instructor’s laptop and the “mokik” mobile application on the student’s mobile device. The laptop application will act as a client (initiates Bluetooth connections to the class devices discovered previously). The mobile application will act as a server (offers our own service and waits for the laptop to connect to it). 3. Advantages a. The connection is stable since the laptop is the connection initiator and multi-threading is used to implement this solution. Since the Bluetooth device can handle 7 parallel Bluetooth connections, 7 threads will be created when sending questions and receiving answers. All the threads will try to connect to the mobile devices to send the question or get the answers so that every mobile device will have only one thread trying to connect to it. In case failed, the other threads will not be affected and this specific thread will continue its normal function after the failure. b. The Bluetooth connection is held for only few seconds (2 or 3 seconds only) to send the question or receive the answer. c. Using multi-threading technique mentioned in advantage (a), the problem of maximum 7 parallel Bluetooth connections is solved. d. The student can activate the Bluetooth device of his mobile only when the instructor wants to send a question so that the battery won’t be consumed. 8 e. The delay when the question appears to the students on their mobiles is so minimal since multi-threading is used for creating the connection, send question or receive answer, and close the connection. 4. Disadvantages The only disadvantage of this technique is that it is hard to implement since we need multi-threading and thread synchronization skills so that every mobile will be sent the question by one thread only. c. Solution implemented and reasons for selecting it. The selected solution is the third solution. It was selected because of the advantages mentioned above. d. Required skills for implementation The required skills for implementation: a. Java Standard edition programming skills to implement the laptop application. b. Java Mobile edition programming skills to implement the mobile application. c. Multi-threading and thread synchronization programming skills. d. Bluetooth programming skills. e. Database and Java Database Connectivity (JDBC) skills. 9 7. Final system usage scenario This section will explain, step by step, how the final system will work. Detailed and annotated screenshots will be shown with captions to describe the figure. The first figure will show what will appear when the instructor will first open the program. A table showing the courses that were created by the instructor Click to select the highlighted course. (See Figure 12) Click to create a new course (See Figure 7) Click to delete the highlighted course Click to exit the application Figure 4: This is the startup screen which lists the courses that were created by the instructor Figure 5: A confirmation dialog appears when an existing course has been chosen for deletion 10 Figure 6: A confirmation dialog appears when the "Exit" button is clicked Click “Help” to view help message (see Figure 11). Click File Exit to go to startup screen (see Figure 4) Figure ). Text field to enter section number Text field to enter course name Text field to enter course ID Selection menu to choose the semester Text field to enter the academic year Text field to enter the number of tardies for one absence Text fields to enter absence and tardy timeouts in minutes Click to add the course Click to go back to the startup screen (see Figure 4) Figure 7: The dialog for creating a new course Figure 8: A confirmation dialog appears when the "Add Course" button is clicked 11 Figure 9: Error message appears if incorrect data has been entered and “Add Course” button is clicked Highlighted fields indicate missing or incorrect input Figure 10: Highlighted fields will indicate any missing or incorrect input 12 Figure 11: Help message appears when "Help" is clicked A text area for the instructor to write a question A text field to include a score for the question A text field to include a question timeout Click to receive the answers from the students’ mobiles Shows the number of students in class A list of students currently attending the lecture Click to send the question to the students’ mobiles 4 possible answer choices for the question above Click to start taking automatic attendance Click to remove a student from the list Statistical pie chart to view students’ responses Figure 12: The main screen for a course Click to edit student information (see Figure 28) 13 Click to manually add a student (see Figure 15) Click to add new students to the course (see Figure 25) Counter updated with the number of students on the list A list of students currently attending the lecture. Blue means present, yellow means tardy, and red means absent Click to stop taking automatic attendance Figure 13: The main screen with automatic attendance activated Figure 14: Setting dialog appears when File Settings is chosen 14 Choose the state of the student: Present, absent, or tardy List of students with no mobile phones Click to go back to main screen with no changes made Click to add the selected student to the list Figure 15: Dialog to add students that have no mobiles manually to the list (Appears when "Manual" is clicked) 15 Sending a question: Figure 16: Error message appears if "Send Question" is clicked but no question has been entered Figure 17: Error message appears if "Send Question" is clicked with the question timeout checkbox checked but no timeout has been specified Figure 18: Error message appears if "Send Question" is clicked with the score checkbox checked but no score has been specified Figure 19: Message appears when a question has been sent ("Send Question" is clicked) 16 Figure 20: Message appears when all answers have been received after “Get Answers” is clicked Click to save students’ scores Choose the correct answer using the radio buttons Figure 21: The main screen after the "Get Answers" button has been clicked and all answers have been received 17 Figure 22: Error message appears if "Save Scores" is clicked but no correct choice has been selected List of students with no mobile phones Choose the answer choice for the student Click to go back to main screen with no changes made Click to save the students’ choices Figure 23: Dialog appears to enter scores manually for students with no mobiles (after "Get Answers" is clicked) 18 Figure 24: Confirmation dialog appears after "Save Scores" is clicked Adding Students: Figure 25: Input dialog appears when the "New" button is clicked 19 Add student information here Click to find and assign the student’s mobile (see Figure 27) Click to select all students in table Click to return to main screen (see Figure 12) Click to add the students to the course Figure 26: A table to add students in the course Table that lists all mobiles within the vicinity Click to select the highlighted mobile as the student’s mobile Click to return to the “Add Students” screen (see Figure 26) Click to refresh table contents Figure 27: Dialog appears when "Assign" button is clicked to assign student's mobile 20 Update Students: Click to find and assign the student’s mobile (see Figure 27) Can edit student’s score, absence/tardy count and name Click delete highlighted student from the course Click to view student’s attendance record (see Figure 30) Click to save any changes made Click to return to the main screen (see Figure 12) Click to select all students in the table Figure 28: Update screen appears when "Update" is clicked to edit student information Figure 29: Confirmation dialog appears if "Delete" button is clicked 21 List of the dates on which the student was absent or late Click to remove the absent or tardy from the student’s record Click to change the state from absent to tardy or vice versa Click to return to the update screen (see Figure 28) Figure 30: The attendance record of the student appears if "View Attendance Record" is clicked 22 8. Conclusions and suggestions a. Problems encountered and solutions We faced a lot of problems in this project. These are the most important ones: 1. The maximum number of parallel Bluetooth connections is 7 connections. This problem was solved using multi-threading to create connection, send the question or receive the answer, and close the connection. The laptop would act as a client and the mobile device of the student would act as a server. 2. There are 2 Bluetooth connection protocols used, RFCOMM and L2CAP. We decided to use RFCOMM because it has specific functions for sending strings or receiving integers for example. Also, RFCOMM is a reliable protocol (like TCP) and we need reliability for sending the question and receiving the answers from the mobile devices. 3. Storing the Bluetooth address of the student should be done manually by the instructor. He will assign every student in his class a mobile device using the Bluetooth name. Another solution was to let the student enter his name and ID and then the Bluetooth address will be assigned in the database of the laptop automatically. However, this solution was rejected since creating Bluetooth connection and closing it takes time and so this process would take too much time if the class has large number of students. Also, This depends on the response of the student. If the student did not respond by entering his name and Id, the connection will be reserved doing nothing (waiting for the student). Another problem in this solution is that the student may enter his name or Id incorrectly and so it will be saved in the database incorrectly. 4. The initial database design was only one table for each course (adding a new column after each lecture for keeping attendance records). However, this design is not good since a column for the whole class is added every lecture. A better approach would be making two tables for each course where the second table stores the absences and tardy days for those who were absent or tardy only. 5. If there are 2 lectures held in adjacent rooms using the same application, then, a mobile may connect to the wrong laptop. So, we needed some code to validate the student using his Bluetooth address (if the Bluetooth address of the connected mobile is in the table of student information of this class or not). 6. We faced a problem in deleting a course from the startup screen. It was always throwing exception. It seemed that the GUI thread is faster than the database thread so the screen would not know that there is a record deleted from the table while it is still being deleted from the database table. We solved this by clearing the table selections before deleting. This will avoid the GUI thread from fetching the courses from the database (because it will think that there is no change in the table) before deleting the course. 7. An exception was always occurring in the Bluetooth server class on the laptop that the input stream is null and the program on the mobile crashes. After too many trials, we found out that the problem is in String Manipulation functions used in the mobile application which causes the application to crash and so the connection with the server is lost and so the input stream of the laptop becomes null. This problem was solved by correcting the String Manipulation methods used in the application. 8. The mobile application was blocking until it finds the laptop (server) and connects to it. However, we found out that this is not an efficient way since the user cannot do anything else until the mobile connects to the laptop and if it did not find the laptop, it will block forever so that the user will not even be able to close the application. This problem was solved by using multithreading concept in the mobile application by making a thread to search for 23 the server and connect to it while the main mobile screen is working and active (not blocking). 9. The “Update” button in the main GUI screen was not saving the modified data to the database. The cause of this problem was some missing statements of adding and modifying the information in the database. We added those missing statements. 10. The “Update” button in the main GUI screen was not saving the modified data to the database. The cause of this problem was some missing statements of adding and modifying the information in the database. We added those missing statements. 11. In our initial design, we were starting to do a Bluetooth device discovery when the “Start” button is pressed to start taking attendance. The list of discovered devices will be used also in case the instructor wants to assign a mobile device to a student in his list in the program. However, if the instructor did not press the “Start” button, there will be no devices in the discovered list. This would be a problem if the instructor wanted to assign a mobile device to a student in his student list without pressing the “Start” button. This problem was solved by programming the Bluetooth discovery class to start the device discovery whenever the program is launched. However, it will not start the timers of the attendance unless the instructor presses the “Start” button. 12. When using the Bluetooth to take the attendance, and after discovering a Bluetooth device and adding the student’s name to the student list, if the student’s name is changed, the new name will be added again so the student list will have two names belonging to the same student. This problem was solved by replacing the old name with the new name. 13. If the Bluetooth is not turned on, the application will give a message to the user telling him to activate his Bluetooth address. If he did, the “Start” button to start taking attendance will be enabled. However, in some laptops only, it raised an exception “Bluetooth device is not ready”. The cause of this problem is that the code execution is faster than the hardware so that the Bluetooth device won’t be ready yet to start device discovery. This problem was solved by making that specific thread to sleep for 1 second only to wait for the Bluetooth device to be ready. 14. When adding two students with the same student id in the same dialog, it would raise an exception since the student’s id is the primary key for the database. We added a function in the database to check the primary key (student’s id) and reject adding two or more students with the same id. 15. When implementing the feature where the instructor can choose answers for the students, the application will give the instructor a list of students who are currently attending the class and did not answer the question using their mobiles. We were facing a problem when filtering the student list. It was showing some students who are not attending the class. The problem was in the removing process. The student list is done using “ArrayList” in java. When removing from this list, the size of the list dynamically changes and the loop index keeps increasing so the loop will skip some elements without checking. This problem was solved by decrementing the FOR loop index if the removal condition is true. 16. If the “NEW” button is pushed to start entering new students to the database, he will be asked to enter the number of students he wants to enter. If he entered a very big number, an exception will be thrown (Java lang out of memory exception) which will cause the whole program to stop. To solve this problem, we added IF statements to make sure that the entered number is between 1 and 9999 students. If the instructor wants to enter more than 9999 students, he will have to add the students as two separate groups. 17. The mobile application was designed so that it will be waiting to receive a question from the laptop to display it to the user. If a question is sent, it will 24 be waiting for the laptop to connect to send it the answer. The operation had to be done in this specific order (question, answer, question, answer, and so on). This made a problem in case the instructor wants to send 2 questions after each other without collecting the answers of the first question (for example, the instructor has sent an incorrect question at the first time). This problem was solved by making the laptop send the mobile the word “Answer” in case it is connecting to collect the answers from the mobile devices. If the word “Answer” is not sent, then the laptop is connecting to send a new question and so the mobile application will delete the old question and put the new question with its choices. b. Skills and concepts learned from the project 1- Ahmad Al-Toukhy: Responsible for the Bluetooth programming and the mobile application implementation. Learned Bluetooth programming and Java Mobile Edition programming skills. 2- Amir Sadeq: Responsible for all the GUI implementation of the laptop application. Learned a lot of skills related to GUI programming especially table models and making tables using Java. 3- Ahmad Ashkanani: Responsible for the Database design and programming and project logo design. Learned Database design and JDBC skills. Learned Photoshop skills because he did the design of the logo and icon for the program. c. Suggestions This system can be improved by many ways. Those are some suggestions: 1- The system can be improved so that the instructor can let the students give their quizzes or exams using the students’ mobile devices. 2- The system can be improved so that the student would have the ability to submit his HW or any material related to the course using his mobile device and this application so that the Bluetooth connection can be used to submit files also (Document files, PDF files, … etc) instead of sending question only. 3- The instructor could have the ability to check the answer of every student. 4- The database design can be improved so that the instructor can be able to take the attendance for multiple lectures on the same day (The current design gives the instructor the ability to take attendance once a day). 5- The instructor would have the ability to ask a specific student a question on his mobile by choosing a student from the student list. 6- The question sending feature can be improved so that the instructor can send a question with a picture or a table for example. 7- The system can be improved so that it will let the instructor choose the type of statistics graphs used (Histogram or Pie chart). 25 8- The system can be improved so that the instructor would have the ability to send the students their grades (HWs, quizzes, midterms, projects, etc) to their mobiles. 9. Copyright and intellectual properties This software will be considered as open-source software and protected under GPL (GNU General Public License). It can be redistributed and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. Appendix A: 1. Team meeting minutes Meeting No. Date Place Duration Meeting 1 3 / 4 / 2008 IEEE room 40 min. Meeting 2 Meeting 3 3 / 4 / 2008 8 / 4 / 2008 Engineering Library Engineering Cafeteria 1:30 hour 40 min. Meeting 4 9 / 4 / 2008 14 KH 20 min. Meeting 5 10 / 4 / 2008 IEEE room 45 min. Meeting 6 15 / 4 / 2008 Engineering Library 75 min. Meeting 7 17 / 4 / 2008 IEEE room 60 min. Meeting 8 22 / 4 / 2008 IEE room 40 min. Meeting 9 24 / 4 / 2008 Engineering Library 3:15 hours Meeting 10 8 / 5 / 2008 IEEE room 3:30 hours Meeting 11 11 / 5 / 2008 IEEE room 1 hour Meeting 12 12 / 5 / 2008 Engineering library 1:30 hour Meeting 13 25/ 5 / 2008 IEEE room 10 hours Meeting 14 26 / 5 / 2008 IEEE room 2 hours Table 1: Meeting Times 2. Ad-hoc meeting minutes There were no Ad-hoc meetings. All meetings were team meetings. 26 Appendix B: 1. Project work breakdown structure No. name duration Stat date End date 1 Proposal 3 days 24/3/08 26/3/08 2 Requirements specification 5 days 30/3/08 3/4/08 3 Feasibility study 2 days 6/4/08 7/4/08 4 Quality assurance Through the whole project 8/4/08 5 Design 3 days 6 Interface design 7 predecessors resources cost All team members + Microsoft Word ---- Task 1 All team members + Microsoft Word ---- Task 3 All team members + Microsoft Word ---- --- Task 3 Ahmad Ashkanani ---- 8/4/08 10/4/08 Task 3 Ahmad Toukhy and Amir Sadeq ---- 10 days 14/4/08 23/4/08 Task 5 Ahmad Ashkanani + Adobe Reader ---- Component design 10 days 16/4/08 25/4/08 Task 5 Ahmad Toukhy and Amir Sadeq ---- 8 Coding/ implementati on 20 days 26/4/08 15/5/08 Task 6 and Task 7 All team members + Eclipse + NetBeans IDE + laptop ---- 9 Unit testing Through the whole project 8/4/08 --- Task 3 All team members + Eclipse + NetBeans + laptop + mobile device ---- 10 System integration 3 days 18/5/08 20/5/08 Task 4, Task 8 and Task 9 All team members + NetBeans ---- 11 System testing 3 days 22/5/08 24/5/08 Task 10 All team members + NetBeans + laptop + mobile device ---- 12 Deployment 1 day 26/5/08 26/5/08 Task 11 All team members + laptop + mobile device ---- ---- Table 2: Task Breakdown Structure Initial cost = cost of laptop with Bluetooth device and Java compatibility + cost of mobile device with Bluetooth device and Java compatibility = 350 $ + 100 $ = 450 $. There is no specific cost for each task. So, Final cost = 450 $. 27 2. Project actual network diagram T4 10 days 3 days 5 days 2 days 3 days Start T1 T2 T3 T5 T6 20 days 10 days T7 T8 3 days T10 T9 3 days T12 1 day End Milestones Week 1 T11 Week 2 Week 3 Week 4 Week 5 Figure 31: Network Diagram and Chart Appendix C: 1. Glossary: a. MTBF: Mean Time Between Failures b. MTTR: Mean Time To Repair c. Bluetooth: It is a wireless protocol utilizing short-range communications technology facilitating both voice and data transmissions over short distances. d. Sustainability: Expected lifetime of the system 2. References: a. Final Project Report template, 2008-06-1, Computer Engineering department, Kuwait University. 28 Email: shaknon@gmail.com Ahmad M. Ashkanani Computer Engineer Profile: Respect work and enjoy it. Creative. Practical. Honest. Team leader. Career Objectives: To give my best in the work I do. To assure quality in work. To respect coworkers and be respected by them. To develop my skills and gain work experience. Education: Computer Engineering, BAS, Kuwait University, June 2008 Work Experience: Worked as a Treasurer officer in CpE’s Societies (ACM, IEEE-CS and WIE), 2006-2007. Worked in IT department (The Scientific Center of Kuwait) as a Volunteer, 2003. Web Designer and Manager, http://www.multaqana.org, 2001-2003. Experience: Graphics Designer. Photographer. Computer Programmer. Expert with the following languages: JAVA, C++, HTML, VeriLog, ASSEMBLY. Database Programmer, worked with SQL and JDBC. Network programming experience, worked with JAVA network API’s. Training: Modern Technology Explained, Zain – Kuwait, 2008 Technical Analysis of US Stock Market Level II, KUNIV, 2005. Technical Analysis of US Stock Market Level I, KUNIV, 2005. Young Investor, KUNIV, 2003. Beginning Photoshop 5.5, New Horizons CLC, 2001. Intermediate FrontPage 2000, New Horizons CLC, 2001. Beginning Macromedia Flash 4, New Horizons CLC, 2001. 29 Microsoft Excel 2000, Salford IFT, 2000. Microsoft Word 2000, Salford IFT, 2000. Microsoft Windows 2000, Salford IFT, 2000. Interests and Activities: Playing soccer with friends or family. Reading novels. Watching movies. Playing video games during my free time. Collecting stamps and coins. Sometimes I like to paint. Photography. Listening to classic music. 30 Amir Ahmed Sadeq Computer Engineering Undergraduate Student Address: Salmiya, Block 6, Street 3 Telephone: (+965) 7587160 E-mail: cowrider77@hotmail.com Date of birth: 6/2/1987 Career Objective I am a computer engineer undergraduate student in the last semester who is experienced in multiple programming languages and the fundamentals of computer hardware. I am looking to join a development team as a system designer or programmer to work on the capstone design project. Education / Qualification 2004 – 2008 Kuwait University, College of Engineering Computer Engineering major. Completed 128 credits with a cumulative GPA of 3.98 and Major GPA of 4.00. Currently in the last semester where I will be taking Capstone Design as the final course in the computer engineering degree. Expected to graduate in June of 2008. 1991 – 2004 New English School (Jabriya, Kuwait) Completed 10 IGCSEs including Mathematics (grade A), Computer Studies (grade A), English Literature (grade B), Physics (grade A), Chemistry (grade A), and Biology (grade A). Completed 4 AS Levels: Computer Science, Mathematics, Physics and Chemistry all grade A. Training and Experience 2006 – 2007 Association for Computing Machinery (ACM) Joined the ACM as webmaster for Kuwait chapter website and was responsible in improving and maintaining the website. I was also in charge of sending periodic reports to the main ACM chapter. 2006 – 2007 CCNA-1 Cisco Networking Course Enlisted in a training course provided by Cisco Systems which included theoretical and practical studies of networks, intranets, routers, switches, and other peripherals. Passed both practical and theoretical exams. 2007 – 2008 Zain Telecommunications Training Course Applied for and completed the one-week long modern training course provided by Zain Telecommunications for computer engineers. Other Experience I have had experience with the following programming languages based on the knowledge obtained from the courses I took: HTML, JavaScript, Java, C++, SQL, and Verilog. Have a basic 31 background on Oracle databases, PHP, and Visual Basic. Work Experience Worked in groups of two or three in many academic courses including computer organization, computer architecture, and microcontrollers. Mostly, I would choose to be a programmer or a designer. Other Achievements and Memberships I am currently enlisted as a student member in the IEEE for two years and I was an ACM member for one year. I also volunteered to help in redesigning and maintaining websites for several societies and establishments. Interests & Activities I am interested in playing chess and video games during my spare time. I also like to read a lot of literary English books and novels as well as write short stories and articles. Other times, I simply like to watch a movie. Personal Details I am a non-smoker and have driven a car for almost 4 years. I have a Kuwaiti passport. 32 Curriculum Vitae of Ahmed Khaled Al-Toukhy CONTACT INFORMATION Name: Ahmed Khaled Al-Toukhy Address: Block 6, Belajat Street, Building 22, Salmiya, Kuwait Telephone: (+965) 5745856 Cell Phone: (+965) 6070435 Email: ahmadtookhy@hotmail.com ahmadtookhy@gmail.com PERSONAL INFORMATION Date of Birth: 21/7/1986 Place of Birth: Egypt Nationality: Egyptian Visa status: Kuwait residence Gender: Male Marital Status: Single Additional information: Non-smoker, have a driving license and a passport. EDUCATION High School: High school degree from Al-Najat private school. University: last course of Bachelor degree in Computer Engineering, to graduate by June 2007, Kuwait University, Excellence with honors. OBJECTIVE To obtain a high-level of knowledge and experience in all Computer Engineering fields: Software, Hardware, Networks, and Applications. I am very interested in the Software, Networking, and mobile phones fields. PROFESSIONAL QUALIFICATIONS Certifications and Accreditations: Completed CISCO CCNA-1, CISCO CCNA-2 networking courses and “Modern Telecoms Explained” course in ZAIN company. Computer Skills: Using C++, Java, Verilog, Oracle SQL, and Assembly language. Familiar with some electrical engineering softwares such as PSPICE and MATLAB. Familiar with some computer engineering softwares such as Visual C++, Eclipse, NetBeans, Quartus Design program, Oracle Forms builder, Oracle Reports generator. 33 Languages: Fluent in Arabic and English languages. Computer Engineering Electives: 1- Database Fundamentals: relational databases, SQL fundamentals, Forms and Reports building using Oracle Form builder and Oracle Report generator. 2- Advanced Java Programming: Multi-threading, Networking, JDBC (Java Database Connectivity), Servlets (Dynamic Web Programming). 3- Symbian OS Fundamentals: Memory management, Descriptors, Dynamic Arrays, Threads, Active Objects. 4- E-Learning PROJECTS DONE: Binary Clock (Java course). Online Shopping Database System (Database course). Car Museum System (Software Engineering 1 course). E-Coop (Advanced Java programming course). Text-To-Speech software (Symbian course). Grocery Store Machine (Microcontrollers course, using Assembly language). Pipelined Processor (Computer Architecture Course). PROFESSIONAL MEMBERSHIPS IEEE tutorial sessions and ACM volunteer and club member. INTERESTS playing squash, swimming, and reading. 34