CS 441 - Distributed Object Programming

Fall 2007

Programming Assignment 4: AJAX Survey Engine

Due: Thursday 12/6/2007 by 11:59 pm

Extra Credit - Added 11/28/2007

The assignment doesn't state anything about showing the date from the surveys once it has been collected. You can do this to receive extra credit.

For 10 pts extra credit, display the data is a web page in some very simple yet organized manner.

For 10 more pts extra credit, display the data in some more complicated form. This should take into account the standing information the user was to have entered when filling out the survey.

Grading of the Assignment

Each group will need to give a demo of their project to the TA. A sign-up sheet will be posted on the instructor's office door (919 SEO) with available demo times. Sign-up will occur on a first-come-first-served basis (the earlier you show up, the better chances of better a better time). You will be emailed when the sign-up sheet is posted. No matter when your demo time is, you are still to submit your project via turnin by 11:59 pm on the due date.

Original Write-Up

For this assignment, you are to use AJAX to create an online survey engine for ABET assessment evaluation. It is assumed that your server is using PHP as the server side scripting language. The assignment is being written such that PHP file access should be able to handle any data storage needs. Thus connection to a database surver, such as MySQL, is not needed or required for this project (if you wish to use such a database server, you are more than welcome).

You are allowed (but not required) to work on this project with another student in the class. It is assumed that you will be able to provide a machine that you can use as your PHP enabled server. If you are unable to do so, please contact Prof. Troy to make arrangements for access to such a machine. Note that access to such machines may be available on a limited basis.

For the ABET assessment, there are a number of criteria that a curricula is to meet. These criteria are called outcomes. These outcomes are normally identified with aphlabetic letters (typically a through k). Each outcome will have a number of survey questions related to it Each course in the curricula is mapped to zero or more of these outcomes. At the end of a course, the students will answer they survey questions for all of the outcomes mapped to that course.

When taking a survey at the end of a semester, a student will first specify the course(s) the student is taking. This will result in the HTML page being populated with the desired questions to be asked. There may also be some generic questions that will be asked of all students no matter what course(s) are being taken. The student's answers will then be stored on the server machine so they can be accessed later.

All data is to be transferred from the server using XML formatting. This data will include the course names, the questions.

One question that will be asked of all students is the current standing (freshman, sophomore, junior or senior) of the student. When answering the outcome questions, the standing is to be recorded with each each answer.

Another question that will be asked to all students in the student's UIN. The student's UIN will be stored with the course number to allow for tracking of which students filled out the survey. This is used to block a student from filling out the survey multiple times for a single course. However, a student may answer the questions for one course at one time and then answer the questions for another course at another time. A future enhancement may be to restrict a user from answering questions for a course that the student is not registered.

The following table shows the matrix that associates courses with outcomes.
a b c d e f g h i j k
CS 101 x   x     x     x   x
CS 102 x x x   x x x       x
CS 107 x   x     x     x x x
CS 108 x   x     x     x x x
CS 109 x   x     x     x x x
CS 201 x x x   x x x   x   x
CS 202 x x   x x x         x
CS 266 x x x   x           x
CS 335           x x   x    
CS 340 x   x   x   x   x   x
CS 366 x   x   x           x
CS 376             x   x   x
CS 385 x   x   x   x        
CS 401 x x                  
CS 469 x   x   x           x
The following list shows the ABET Outcomes.

For each question in the survey, a statement is made. The answer is to reflect how well you agree with the statement. The answers are:
  1. Not applicable (default value)
  2. Strong disagreement with the statement
  3. Disagreement with the statement
  4. Agreement with the statement
  5. Strong agreement with the statement
The questions for the survey are given as follows:
Question NumberAssociated OutcomeSurvey Statement
1. a1 Course contributed to students' ability to apply knowledge of mathematics
2. a2 Course contributed to students' ability to apply knowledge of sciences
3. a3 Course contributed to students' ability to apply knowledge of engineering
4. b1 Course contributed to students' ability to design experiments
5. b2 Course contributed to students' ability to conduct experiments
6. b3 Course contributed to students' ability to analyze and interpret data
7. c1 Course contributed to students' ability to design components to meet needs
8. c2 Course contributed to students' ability to design a process to meet needs
9. c3 Course contributed to students' ability to design a system to meet needs
10. e1 Course contributed to students' ability to identify engineering problems
11. e2 Course contributed to students' ability to formulate engineering problems
12. e3 Course contributed to students' ability to solve engineering problems
13. f1 Course contributed to students' understanding of professional responsibility
14. f2 Course contributed to students' understanding of ethical responsibility
15. g1 Course contributed to students' ability to communicate by writing effectively
16. g2 Course contributed to students' ability to communicate through presentations effectively
17. k1 Course contributed to students' ability to use techniques in engineering practice
18. k2 Course contributed to students' ability to use specialized skills in engineering practice
19. k3 Course contributed to students' ability to use contemporary tools in engineering practice
20. d Course contributed to students' ability to function on multi-disciplinary teams
21. h Course contributed to students' receiving broad educational perspectives
22. i Course contributed to students' recognition of need, and ability, to engage in life-long learning
23. j Course contributed to students' knowledge of contemporary issues
Remember that you would only ask those questions that are associated with the outcomes for a course. Thus is a student took CS 335, they would only be asked questions:
    f1, f2, g1, g2, and i
since those are the questions associated with the outcomes for CS 335.

If a student was taking both CS 335 and CS 376, they would be asked the following questions:

   f1, f2, g1, g2, and i for CS 335
and
   g1, g2, i, k1, k2 and k3 for CS 376
Note the student would be asked 3 questions twice. Once to be answered with respect to CS 335 and once with respect to CS 376.

Your program is to be submitted electronically via the turnin command on the CS Department's LINUX machines. The project name for this is mp1. All programs are expected to be written in good programming style using the java programming language.

How to turn in your work

Turnin your program electronically using the "turnin" command from your CS account as follows:

turnin -c cs441 -p mp1  [your project directory]
where the [your project directory] is the directory name under which you have all your files related to this programming problem. The turnin command will automatically compress the data under your directory, so there is no need to do the compression by yourself.

Notice you can only invoke turnin command on the Linux machines in the lab or after logging into the server machine oscar.cs.uic.edu.


If you want to verify that your project was turned in, look in the turnin directory for a file with your userid. For instance for this project, from your CS account you would type:
  

    turnin -c cs441 -p mp1 -v

Note that you can execute turnin as many times as you would like, up until the program deadline when turnin will be disabled for this project. Each time you execute turnin for a project, you overwrite all of what you had turned in previously for that project.It does not work in an incremental way.