Assignment 11

COP4813 Assignment 11 – Programming the Advisor

Objectives

1. Learn and demonstrate practical uses of programming skills.
2. Utilize dynamic creation of interface elements.

Assignment

You will create a working class advising tool. The purpose of the tool is to be a user friendly software tool that can help students determine what classes they can and should take within a specific program. Some examples are given below in the information.

Here are the software specificationa for the assignment:

1. Pick a program guide or a program for your advisor – you only need to use one program – you can use the program guide search from the DSC Home Page (Click on Catalog) http://www.daytonastate.edu/

2. Develop a data structure (JSON, Array or other) to represent the data. The system will need to check pre-requisites. The examples given might be useful in determining the structure of the JSON – but you should be able to create your OWN structure for the Advisor you create.

3. A key part of the advisor will be the ability for users to specify classes they have taken and see classes they CAN take. You must have this feature.

4. You will add the ability to have OR pre-requisites. For example if a pre-requisite is COP2800 OR COP2001, you must handle this scenario. Also if a student must take COP2800 OR COP2001 – one should disable if the other one is taken.

5. You must now add an interface and ability to attach information to a class. This should be data that is in the associated data structure. An example of this would be if COP2001 OR COP2800 can be taken – you must have a note that says students must select one of the 2 courses, but does not need to take both.

You are free to use my code (see below) and fork it for the assignment, however his is YOUR advisor and YOUR design.  My recommendation – go through my code and video on my code to better understand dynamic creation of interface elements.

Information

You will select a from the program guides at the DSC home page. Alternately you could also pick a program from a different school or a graduate program. If you choose your program (BSIT) use the current catalog.

Here are some examples of Javascript programs to help students find and register for classes. These are relatively simple scripts and should provide an example of different ways to approach the programming problem.

BSET Quick Advisor (non-jQuery, HTML5 and Javascript only) – https://jsfiddle.net/reaglin/nts8kt7L/

This example puts all the data in an array. The check boxes are hard coded in the HTML. Does not use jQuery.

BSIT Quick Advisor (uses jQueryDynamic creation of check boxes) – https://jsfiddle.net/reaglin/ehvgu5tv/

The most simple example of a dynamic interface creation tool. This example puts all of the data in an array of JSON objects. Check boxes are dynamically created in code using the JSON object. Uses jQuery.

BSIT Drag Drop Quick Advisor (jQuery, fully dynamic creation of interface, drag-drop) – https://jsfiddle.net/reaglin/h0L0acyq/

BSIT Advisor Dynamic Spreadsheet (jQuery, fully dynamic interface creation with Youtube supporting video.
BSIT – https://jsfiddle.net/reaglin/s0nL96xo/
BSET – https://jsfiddle.net/reaglin/b6pn9Lx2/
General Education – https://jsfiddle.net/reaglin/p3ug8s5f/
Youtube Video 1 – https://youtu.be/QL9h_Mq51Ks/

There is extensive documentation in the JSFiddle code, if you have question simply post to the discussion board – I will answer your questions.

Here is a more extensive advisor using Drag/Drop with a video lecture to help you understand the code – Lecture – Creating a drag-drop class advisor

Your submission must demonstrate 3 things;

  • 1. Use of JSON to store data that is part of the interface
  • 2. Ability to dynamically create an interface element
  • 3. Ability to respond to events triggered by a dynamically generated element

You can use my code as a base and create a tool for different programs, modify the code to customize to your own application, or any other item that demonstrate the 3 items above.

Include a list of any modifications you made with your submission (you will submit a URL). Examples are;

  1. Did a different degree program
  2. Added co-requisite ability
  3. Added other types of checking
  4. Took different capabilities from the different approaches
  5. Added a dynamic help
  6. Added dynamic links to catalog

Estimated Completion Time

You will need to do some research and some real work here . I estimate 10 hours for the average programmer starting from my code. I do expect students to collaborate on approaches on the bulletin board. I also expect students to get used to collaborating on approaches for solving these real world types of problems.

Supporting Lectures

Lecture – Creating a drag-drop class advisor

Questions and Answers

Q: Are there other programs I could do in place of the Advisor
A: Yes, you can propose an alternate assignment that demonstrates your ability to use the technologies stressed in this assignment. The technologies you must demonstrate are:

  • 1. Use of JSON to store data that is part of the interface
  • 2. Ability to dynamically create an interface element
  • 3. Ability to respond to events triggered by a dynamically generated element

The quick advisor is simply one example I have that meets these requirements and it is easy for you to create your own based on a program from the program guide. Another idea would be to create an advisor that helps you select a major based on your skills that dynamically asks questions on your skills and interests.

External Resources

You will need to use the program guides available from the DSC web site.

Grading Criteria

A working advisor or program that demonstrates the  is worth full credit. You need to demonstrate;

  1. You are capable of designing a JSON data format to represent the data for classes and pre-requisite.
  2. You can manipulate the JSON data and use it to create an interface.
  3. The interface is interactive and responds to the business rules in the data and the user actions.