EECS 3214: Assignment 3
Submit this assignment using the submit command (see the instructions below). The deadline is Dec 3, 11:59 pm.
Objective:
The objective of this assignment is to understand the issues involved in building an interactive platform like iClicker (you have likely used it in your classes at York). There are two parts to this assignment.
Part 1: Programming assignment
The parties involved in this part are
(a) a server (running on the instructor's computer) that communicates to nodes to connect
(b) nodes (apps running on students' phones or other mobile devices).
The basic functionality that your program must support is a JOIN command from nodes -- the server must log this with event with the time (at the server), and some ANSWER commands from the nodes. The server must log these as well.
You may assume that the server does not have to send questions. The instructor does this on the board or projector. Also assume for simplicity that the instructor does not close the window for accepting the answer to a question before opening it for the next one, so a student can answer questions in the wrong order (in reality the UI would not allow this). You need not implement a fancy UI for this assignment. Assume also that all questions are multiple choice (choices A-E, one choice sent for each question) and questions have numbers. You may assume that if a student answers a question more than once, their last answer will be recorded.
At the end of the class, the user (instructor) manually stops the program (not with control-C!) and then the server must close all sockets and output the log in the following format:
Student1: join time
q1: answer
q2: answer
....
Student2: join time
.....
Student 3: .....
The parts of this assignment are:
-
Design the basic architecture using a client-server paradigm
-
Work out the basic UI for client and server so that each can act as described above
-
Implement and test the program with one server and 3 nodes
We will test this code with 3 students and 3 questions.
Part 2: Written assignment
You may know that iClicker has the attendance functionality. An instructor can turn the ``take attendance'' function on, and the app automatically takes attendance. To be counted as attending, a student's device must be deemed to be in the classroom for the duration of the class (alowing perhaps for a short washroom or other break).
How can the location sensing function be implemented? Do a literature search and report on the issues involved and solutions. If you use ideas from an external source (including but not limited to books, papers, websites), you MUST cite them. If you take text from them without paraphrasing, you MUST use quotation marks. You can share sources with classmates but do not copy text from another person's report.
Submission instructions
Submit the programs using the following command:
- submit 3214 a3 a3.zip, or use websubmit.
- name your classes node, server respectively. Also include the log file "server.log" in the zipped folder you are submitting.
- The second part should be in a file called report.pdf.
-
The programs you submit should work and be documented.
-
Your documentation should include:
-
situations (if any) when your program may not work correctly
- instructions to compile and run your program. Definitely include this if you have used helper classes
Demonstration
The TA may ask you to demonstrate that your program works on the departmental Linux machines. You will run the server and 3 nodes and show that the program implements the specifications described above.
Grading
Each part of this assignment has equal weight.
For the programming part, the grading scheme is:
Program works correctly : 70%
quality of code and in-line documentation : 30%
For the report, you will be marked on completeness of problems identified and quality of solutions
proposed.
NOTE: Late submissions will not be accepted.
Copying, teamwork
Copying of programs (also written homeworks and exams) or teamwork on
an assignment (written or programming) is not permitted. No form
of copying is tolerated in this (or any) course, in accordance with
departmental policy.