I would prefer Nithin to work on this, please and thank you.
6/21/2021 Assignment https://scis.lms.athabascau.ca/mod/assign/view.php?id=39109 1/5 Part 1: Essay and Demo Program Write an essay on a selected topic in emerging technology, complete with at least one demo program to illustrate the topic. Your essay should be no longer than 3000 words. Topics Topics will be posted in Week 1 in the COMP 501 Units 7–9 and Assignment 3 forum under the topic Assignment 3 Essay Topics. You may select one of the provided topics, or you may suggest a topic in emerging technology to the course instructor. This last choice allows you the freedom to explore newer topics in emerging technology. To suggest a topic not in the provided list of topics, you must email the instructor with a topic proposal of approximately 200 words before Week 10. Provide the topic name and a brief description. Do not use the course home page discussion forums or internal message system; only email will be accepted. Requests received after the beginning of Week 10 will not be approved. Essay Overview The essay should involve an exploration, exposition, and demonstration of the emerging technology you have chosen to discuss. You must provide the history, background, technical capabilities and restrictions, theory and principles, functionality, examples (code fragments) and figures/screenshots, possible applications, future vision and expectations, references, and a demo Java program. The demo program does not have to be complex, but it must clearly demonstrate the important functionality of the technology. Trivial “hello world” type programs do not meet this criteria and will not be marked. Of the marks for Part 1 of this assignment, 60% will be for the written paper and 40% for a demonstration of the subject of your paper, which includes the demo program that you have written. Reminder: The essay requires at least one complete Java demo program. Demo programs must include documentation and test plans. 6/21/2021 Assignment https://scis.lms.athabascau.ca/mod/assign/view.php?id=39109 2/5 Essay Marking Scheme The essay will be marked according to the following marking scheme: Comprehensiveness 40% Does the essay cover the material it proposes to cover with a sufficient level of detail and depth? Organization 15% Is the essay well organized? You will need to use sections/sub- sections to make your thoughts clear and to smoothly transition from one topic to the next. Readability 15% Is the essay easy to follow? Does it have well-structured sentences and paragraphs that flow logically from one topic to another? Examples 15% Is there an appropriate use of examples/samples (e.g., a list of classes, screen captures, code fragments)? Small pieces of code may help your readers understand your words, but they will not replace the demonstration program. Spelling 5% Watch for incorrect word use (e.g., their, they're, there). Grammar 5% Have you followed the rules of English grammar? Format 5% Does the essay follow the standard essay format? Are all the essay components present? Are the references complete? You may refer to the MScIS Essay Template and the Digital Thesis and Project Room in the AU Library for examples of formatting. If you use the work of others without proper attribution, this is plagiarism and you will be penalized with a mark of 0 on the assignment and possible failure of the course. Electronic aids may be employed to evaluate your essay for proper attribution and to detect plagiarism. The demo program will be marked using the same marking scheme as the other assigned programs; this marking scheme can be found in Part 2 of this assignment. Part 2: Java Program Write and submit one complete Java program to solve the following requirements. Your program will employ packages (i.e., source directories) and contain multiple source files. Because you are using packages, your code should be in a directory named “Greenhouse.” You should be able to compile your code using the command “javac Greenhouse\*.java” from a directory just below the Greenhouse directory. In the program for this assignment, class names have been specified. You must use the supplied class name for both class and source file name (i.e., Animal will be in a file Animal.java). If a program specifies multiple classes, then each class should be in its own separate source file. https://mscis.athabascau.ca/resources/MScIS_StyleGuide_v3_essay_template.pdf http://dtpr.lib.athabascau.ca/index.php 6/21/2021 Assignment https://scis.lms.athabascau.ca/mod/assign/view.php?id=39109 3/5 Greenhouse is a house in which many events could happen; for example, doors may open and close, windows may open and close, fans may turn on or off, lights may turn on or off, an alarm may sound, the thermostat may turn on or off, watering machines may start or stop, and so on. Each event has its own timer and jobs. (Hint: Use a superclass with separate subclasses and a thread.) For example, the alarm may sound five times when the thermostat has failed, and the fans may not come on until this situation is resolved, even if the fans are supposed to be on. Different events may have different priorities. greenhouse_plans.txt: priority=*,10 priority=Light,5 priority=Bell,1 priority=Thermostat,2 event=Thermostat,1000,* event=Light,1000,1000 priority=Water,5 event=Water,3000,5000 test=Bell,1000 failed=Thermostat,7000 event=Water,8000,5000 event=Fan,10000,2000 The greenhouse should be able to restart the process if either of two conditions are met: (1) the user asks the greenhouse to do so; (2) the greenhouse catches an exception when doing jobs according to greenhouse_plan.txt (e.g., if an event is not able to start because no specific event class is implemented). If the second condition occurs, the greenhouse will restart the process, skipping the instruction that caused the problem. Provide the means to read classes from the file and create classes from their names. (Hint:Class.forName().) Use the same methods to provide the capability to add new Event classes and to modify any Event classes without recompiling the Greenhouse class. Note: You should not use inner classes for designing and developing Event classes. Test your program by adding at least two Eventclasses, and make any necessary changes to greenhouse_plan.txt. Before the greenhouse restarts everything, it first has to turn off all events. You may need to use ArrayList or Vector to store the events (and scheduling information). Doing so will avoid the need for additional variables to represent different events and will also allow you to have new Event classes any time you want. 6/21/2021 Assignment https://scis.lms.athabascau.ca/mod/assign/view.php?id=39109 4/5 Documentation and Test Plans You may have encountered documentation and test plans in other courses or at your workplace. For this course, the following are mandatory and should be followed. If the standards for this course differ from others in your past experience, then, for these assignments, the standards of this course supercede all other standards. At the top of every source file, you must place three comment blocks. The first comment block contains your name, student ID, date, assignment number, program name, and a brief program description. The second comment block is the primary documentation for your program. Explain the program purpose, code behaviours, and any particulars of the program. Also include detailed instructions for compiling and executing the program, including example input data if required. Also list separately all classes and instance variables used in the program, with descriptions. The third comment block is the test plan. At its core, a test plan simply tells another person how the program actually worked during testing. In cases where there is no input, there is still often output, so you can still show exactly how the program should function. In programs with input, you can also describe various test cases, including those where incorrect data (or no data) is entered and what output should be expected. Finally, the test plan is a place to discuss limitations of your program and things that could be done to improve it. If you write a program with multiple classes, the first two comment blocks must appear in every source (class) file. The test plan comment block should only appear in the source file that contains the main()method used for testing. Failure to provide all three comment blocks will result in loss of marks, as noted below in Program Marking Scheme. The program “GoodDocs.java” is provided as a complete working example of a program documented to the standards of this course. (See Resources & Tools in the right-hand column of the course home page.) Deliverables Be sure your working directory contains only source code files and any necessary input files as required by the assignment. Zip this directory into a single zip file and then upload it using the assignment drop box. If you experience difficulty uploading the file, contact your tutor before the due date. Once the due date has passed, late penalties are in effect whether you have had difficulties or not. https://comp501r6.athabascau.ca/resources/GoodDocs.java 6/21/2021 Assignment https://scis.lms.athabascau.ca/mod/assign/view.php?id=39109 5/5 Note: Your tutor will not accept assignments by email. Program Marking Scheme Your program assignment is evaluated using the following marking scheme: Program compiles without errors or warnings 20% Program executes correctly 20% Source code meets the exercise requirements without errors 20% Documentation is provided as required 20% Test plan is complete 20% Cautions If your program does not compile, you will lose both compile marks and execution marks, and most likely, also some code marks. If you use components, code fragments, methods, or other work that you did not write yourself, you must clearly show the authorship of that code, including the author’s name and where the code was obtained. This should be done in the documentation comment block. No more than 20% of your program can be the work of others. If you use the work of others without proper attribution, this is plagiarism and will be penalized with a mark of 0 on the assignment and possible failure of the course. 6/21/2021 Unit 7: Selected Topic Readings and Programming https://comp501r6.athabascau.ca/unit7/unit-7.php 1/1 1. Java AI and Machine Learning Libraries (e.g., Deeplearning4j, Weka) 2. Java game development libraries (e.g., jMonkey, LWJGL, LibGDX) 3. Java libraries for Data Visualization (e.g., D3.js) 4. Augmented reality libraries (i.e., Google’s ARCore, AR.js, ARToolKit, DroidAR) 5. Virtual reality libraries (i.e., GuriVR, OpenSpace3D) 6. Java Advanced Imaging 7. Java OpenGL 8. Java Speech API 9. Google Wave 10. Google Lens 11. Google Voice 12. Google Maps Navigation 13. Java Media Framework 14. Java Spring Framework 15. Applications of the Bean Context API 16. Applications of JAF 17. Applications of INFOBUS