COMP1815 JVM Programming Languages Assignment

Assignment Help JAVA Programming
Reference no: EM133045057

COMP1815 JVM Programming Languages - University of Greenwich

Timetable Clash Detection System

You have been asked to work on a University Timetable Clash Detection System. The system should load teaching activities for a particular programme of study and check whether there are any clashes in the timetable.
The following information needs to be captured:

• A programme of study can be undergraduate or postgraduate
o An undergraduate programme runs over three years
o A postgraduate programme runs over one year
• Each year of study consists of two terms
o Term 1 - September to December
o Term 2 - January to April
• A programme of study consists of modules
o Modules can be compulsory or optional
o In total, a student will study four modules each term (can be a combination of compulsory and optional modules)
• For each module there can be one or more activities
o Activities can be lecture, lab, tutorial, seminar or workshop
o Activities start on the full hour
o Activities must not start before 9:00 or finish after 21:00
o Activities can only be scheduled Monday to Friday

When checking for clashes, you would need to consider the year of study (e.g., a year 2 module can run at the same time as a year 1 module without creating a clash).

In a complete timetabling system, students and staff would have to be allocated to activities, but for this assignment we are ignoring these.

The system will need to provide the following functionality:

- Set up/manage modules
- Set up/manage programmes of study
- Timetable activities for modules, according to the rules specified above
- List activities for a particular programme, year and term
- Check for potential clashes (the system must highlight the potential clash) Currently, the only type of user of the system will be an administrator.

Part A - Implementation

Organise yourselves into groups consisting of 3 or 4 students. Exceptionally, you can work individually, but please approach the tutor if you are thinking of doing this. If you cannot find a group to join, your tutors will allocate you to a group.

a) Java GUI for Project Management - Java:

Use Java to create a desktop application with a graphical user interface which enables users to set up and manage modules, programmes of study and timetable activities. It should also be possible to view the timetable of a programme by year and term.

The application should look pleasant and be easy to use.

b) Object-Oriented Design - Kotlin (10%)

Create domain and entity classes that create an object-oriented structure supporting the Java GUI application. You should apply separation of concern to ensure that the Java GUI application contains only the user-interface related functionality, and all other responsibility is assigned to the domain and entity classes. These classes should be implemented in Kotlin and integrated into the Java GUI

c) Persistence and Lambda - Kotlin

Implement persistence for the module, programme and activity data, which makes it possible to save this data. It is up to you to decide how you wish to save the information (e.g. save it to file or to database). You should use Lambda expressions to manage the collections of data. This should be implemented in Kotlin and integrated into Java GUI.

d) Clash Detection - Kotlin

Implement an object-oriented component in Kotlin that can check for potential clashes in a given programme. When clashes are identified, details of the clash should be provided.

e) Integration - Kotlin/Java

Integrate the clash detection component into the programme management process, so that when a programme timetable is edited, the system automatically checks for clashes in the background. A user should also be notified when a clash happens and details of the clash should be provided..

f) Clash Detection - Scala

You implemented the clash detection algorithm using an object-oriented approach in Kotlin. Now implement a clash detection algorithm using a functional approach in Scala.

g) Integration - Scala/Kotlin/Java

Integrate the Scala implementation of the clash detection algorithm into the Java/Kotlin application you developed. Ideally, it should be possible to choose whether the object-oriented or functional implementation should be used at run-time.

Part B - Report

The report is to be completed individually.

Write a report consisting of all the following sections:

• Section 1. - (approx. 700-1,000 words) On this module you have been taught object-oriented and functional programming paradigms, using three different languages (i.e. Kotlin, Scala and Clojure). Critically compare your experience with these different paradigms and languages. You should include discussion of their suitability to different problems and what you perceive their strengths and weaknesses to be.

• Section 2. (approx. 700-1,000 words) An evaluation of the evolution of your application. You should discuss any problems you had during implementation. You should be critical (both positive and negative) of your implementation. Be prepared to suggest alternatives. You should also include a reflection on how it was to work in a group and of your role within the team. Discuss lessons learnt, what you think went well and what you think could have been improved and how.

• Section 3. Screenshots demonstrating each of the features that you have implemented. Give captions or annotations to explain which features are being demonstrated.

• Section 4. Code listing of any code files you have written. You do not need to include generated code. Please clearly label the code, so it indicates the source file and programming language.

The Implementation
The following assessment criteria are used to determine the quality of your implementation and should be addressed in the development process:

• If you have incorporated features that were not explicitly asked for, but which add value to the application, they may be considered if you draw our attention to them.
• The application should look pleasant and be easy to use.
• Code structure - does your code demonstrate low coupling and high cohesion? Have you avoided hard coding (i.e. is your code stateless)? Have you reused external components? Have you minimised code duplication? How much impact would a further change of persistence medium have on your application?
• Quality of Design - how flexible is your application? How easy would it be to add in new functionality, or alter the presentation layer, or change the data source?
• Robustness of the application. Have you properly handled errors and validated input? Is there evidence of testing?
• Quality of code -
o Is the code clear to read, well laid out and easy to understand?
o Is the code self-documenting? Have you used sensible naming standards?
o Is your code structure logical?
o Have you commented appropriately?

The Report

The document should be clear, accurate, complete, and concise. State any assumptions you have made.

• Are all the required sections included and completed properly?
• Does the report give an accurate reflection of what you have achieved?
• Is the report clear and easy read? Does it follow the structure specified?
• Is the evaluation realistic and does it show that you have really thought about your implementation and the specified issues as well as how they may be enhanced to be ready for live deployment. Do you show insight into the complexities of software development?

Demonstration
• You should be able to demonstrate the implementation level achieved in a clear logical and unambiguous manner without encountering errors. You must be able to show knowledge of your code and design choices.

Attachment:- JVM Programming Languages.rar

Reference no: EM133045057

Questions Cloud

The case of salesforce : 1. Why do you think Salesforce.com decided to tackle pay inequity between men and women?
Competence in human resources professional practice : What professional development activities should a new professional undertake in order to achieve ongoing competence in human resources professional practice onc
Knowledge of the organization environmental situation : 1. What are the main reasons why certain stakeholders are more important than others at Amazon. Fully explain your opinion.
Common performance deficiencies : We have all been on class project teams where one or more members have not contributed. Professor Kanar encourages teams to learn to resolve such issues on thei
COMP1815 JVM Programming Languages Assignment : COMP1815 JVM Programming Languages Assignment Help and Solution, University of Greenwich - Assessment Writing Service
Evaluate effectiveness of recruitment-selection techniques : How companies can evaluate the effectiveness of their Recruitment and Selection techniques? Please provide examples to support your answers.
Identify an example of a management scenario : Identify an example of a management scenario from your own experiences or current events involving adverse selection or moral hazard.
Collect requirements for project superhero : How would you collect requirements for Project Superhero? What method do you recommend, which stakeholder(s) are involved? Why?
Cultural effects of the industrial revolution : What are some of the positive and negative societal and cultural effects of the industrial revolution?

Reviews

len3045057

12/10/2021 10:22:30 PM

This assignment consists of two parts: • Part A 70% (implementation) will be completed in a group • Part B 30% (report) must be completed individually Part B you can 1800 words approx in total Also send me below - 1. Video of how to set up and run Project 2. I need to Demonstrate this Project so send me script as well I can use to demonstrate Please do it carefully, follow each and every instruction and Marking Criteria and References Very STRICTLY. Follow word limit if any is given.

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd