Final Report

advertisement
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
Download