OFFERS! offer image Get Expert-crafted assignments
Save 51%

CS4001NT Programming 1st Sit Coursework 2 Question Paper 2026 | London Metropolitan

Looking for Plagiarism-Free Answers for Your US, UK, Singapore, New Zealand, and Ireland College/University Assignments?

Talk to an Expert
Published: 15 Apr, 2026
Category Assignment Subject Computer Science
University London Metropolitan University (LMU) Module Title CS4001NT Programming
Academic Year 2026/27

London Metropolitan University (LMU)

CS4001NT Programming

1st Sit Coursework 2 Question Paper

Coursework Type Individual
Coursework Weight This coursework accounts for 50% of the overall module grades.
Coursework given out Week 11 (Jan 12, 2026)
Submission Date Milestone 1: Week 18 (Mar 06, 2026)
Milestone 2: Week 24 (Apr 17, 2026)
Final Submission: Week 28 (May 15, 2026)
Submission Instructions Submit the following to the Islington College’s MST portal before 06:00 PM on the due date:
• A report (document) in .pdf format in the MST portal or through any medium which the module leader specifies.
Warning London Metropolitan University and Itahari International College take plagiarism very seriously. Offenders will be dealt with sternly.

1. Aim

The aim of this assignment is to implement a real-world problem scenario using object- oriented concepts in Java. You will create a class to represent an AIModel, along with two subclasses: PersonalPlan and ProPlan. Additionally, you will prepare a report that provides detailed information about your program.

The GUI part of the coursework focuses on expanding the project by integrating a new class to implement a graphical user interface (GUI). The goal is to create a system that stores AlModel details within an ArrayList. This class will contain the main method and will be executed via the terminal. Additionally, you are required to submit a report explaining the functionality and structure of your program.

2. Deliverables

Create a new project in BlueJ and define four classes within it: A/Model, Personal Plan, ProPlan, and SubscriptionGUI. Both PersonalPlan and ProPlan are subclasses of AlModel.

SubscriptionGUI class should contain the implementation of Graphical User Interface (GUI). Once your solution is complete, submit the SubscriptionGUI.java file along with the three other mentioned java source files. Ensure that no other files from the project are included. Additionally, submit your report in PDF format.

3. Scenario

Imagine that you are a software developer working on contract with a technology company based in Itahari that provides subscription services of the Al models to individual and team customers. The organisation provides personal plans targeting recreational users who need only a limited number of prompts and pro plans targeting teams, which offer new functions, including specific slots of team members. The work to be done is to create and implement the Java application to manage the subscriptions to Al models, track quotas, and perform plan-specific actions- say enrolment of extra prompts or adding team members. It should be possible that the system can determine differentiation between personal and pro plans, verify all entered data (such as model names, prices of subscriptions, and index numbers), and enforce the rules (such as monthly prompt limits and available team slots). In addition to these tasks, such an application is to provide a user-friendly interface allowing the staff to plan new plans, estimate any rest quotas, organize teamwork, and import/export data in file formats. By completing this project, you will become familiar with object-oriented programming features, inheritance, polymorphism, abstraction and encapsulation and will fully validate the data and create a practical GUI that would meet the requirements of the real world of managing subscriptions.

Get Solution of CS4001NT Programming Coursework before Deadline

Chat With Experts

4. Program

The program should consist of the following classes (with no additional methods or attributes)

4.1. AI Model class

The AIModel class is a parent class which has the following structure:

Attributes

The AlModel class has the following four attributes: modelName, price (in Nepali Rupee(s) per 1 Lakh tokens), the model parameter count (in billions), and the context window size (e.g. 64 thousand (64K) tokens). The pricing is a decimal value, the number of parameter count is an integer, context window and model names are text values.

Constructor

The constructor of this class accepts four parameters that correspond to attributes of the given class. Each attribute of the class is initialized with the parameters passed through the mentioned constructor.

Accessor Methods

Each attribute of the class has a corresponding accessor/getter method. Methods
A display method will output the value of attributes mentioned above i.e. name of the ai model, pricing, parameters count and the context window size. Return the value as String.

4.2. PersonalPlan Class

The PersonalPlan class is a child class of the AlModel. It has the following structure: Attributes
This class has only one attribute which represents the number of prompts remaining in monthly quota (Let's say 500 prompts per month). The number of prompts must be counted as integer value.

Constructor

The value of this class attribute is initialized in the constructor using one of five parameters passed to the constructor. Other parameters of the constructor are initialized with the value of parameter passed as model name, price, parameter count, and context window respectively. Values of four parameters mentioned are passed to the constructor of its parent, the AlModel class.

Accessor Methods

The attribute of this class has an accessor method.

Methods

The PersonalPlan class has a method which allows users to purchase additional prompts (using parameters) so that prompts can be added to the monthly quota of the user. Prevent users to enter the number of prompts to less than zero. If the number of prompts is less than zero, return a message saying that user must enter positive value or user must upgrade to pro plan. When the value of prompt is positive, add it to the monthly prompts quota.

There should be another method that represents the user entering a prompt. The user provides prompt text and the expected output length in tokens. If the number of prompts are sufficient in the quota then the message should be returned with prompt details and token usage and the remaining prompt is reduced by one. A message is returned informing the user that the monthly plan has been reached.
There should also be a method that displays the details of PersonalPlan. This method should have the same signature as its parent class and it will also call the method in the parent class (AIModel class). This method then returns the model name, pricing. parameters count, context window and the number of prompts remaining in the monthly quota (suitably annotated).

4.3. ProPlan Class

The PersonalPlan class is another child class of the AlModel. When a personal plan is not enough then the user chooses this plan. The pro plan is for teams. It has the following structure:

Attributes

This class has just one attribute which represents the slot for collaborating with available team members.

Constructor

The attribute mentioned in this class is initialized in the constructor by assigning the value of one of the five parameters of the constructor. The other four parameters represent the attributes of the parent class.
These four parameters are passed to the constructor of its parent class.

Methods

The ProPlan class has a method for adding team members which takes a parameter representing the team member name and if there are enough available slots in the pro plan, decreases the available team slots accordingly. Error message is returned otherwise.
There is another method that removes the team members which takes a parameter representing the team member name to remove and increase the available team slots accordingly.
Another method to display the details of the pro plan is required and this method has the same signature as its parent class method. It also makes a call to the parent class method (suitably annotated) to display attributes provided in the parent as well as the attribute of this (ProPlan class).

4.4. SubscriptionGUI

This class should store an ArrayList of the type AIModel to hold the Al model plans. Example:
The SubscriptionGUI class should store an array list (not an array) of type AlModel to hold the Al subscription plans. An example GUI should contain fields for Model
Name, Pricing, Parameters, Context Window, along with buttons for "Add Personal Plan", "Add Pro Plan", "Display All", "Clear", and sections for managing entering prompts and team collaboration.
ArrayList<AlModel> <reference-variable-name>= new ArrayList():
Text Fields

There should be text fields for entering:

1. The model name
2. The pricing (per 1 Lakh tokens)
3. The parameter count (in billions)
4. The context window
5. The initial prompts quota (when adding a Personal Plan) 6. The initial team member slots (when adding a Pro Plan)
7. The prompt text (when making an API call)
8. The response length (when making enter a prompt)
9. The team member name (when adding/removing team members)
10.The index number of an object in an arraylist

Display Number Input Method

The input method for the index number differs from the input methods used for other text fields. This method follows a specific validation process:

  • The method begins by initializing the display number to -1
  • The input from the user via the GUI is tested using a try/catch statement. The method checks if the entered value is an integer. If it is an integer, the method verifies that it falls within the valid range of the array list indices
  • If the input is an integer but falls outside the acceptable range, a suitable error message is displayed using a message dialog box and if the input cannot be parsed as an integer, an alternative error message is displayed using a message dialog box.
  • The method returns -1 if there was an input error and the method returns a valid index value if the input corresponds to an Al model in the array list
  • Any method that uses the index number must check that the returned value is not equal to -1. Operations should only proceed if the display number value is valid (not equal to -1)

Buttons

Add Personal Plan

The model name, pricing, parameter count, context window and prompt quota are input via the GUI. When this button is pressed, the methods to get these values are called, and they are used to create a new object of type Personal Plan, which is added to the array list of Al subscription plans.

Add Pro Plan

The model name, pricing, parameter count, context window and team member slots are input via the GUI. When this button is pressed, the methods to get these values are called, and they are used to create a new object of type ProPlan, which is added to the array list of Al subscription plans.

Display All

When this button is pressed, the index number is printed and the method to display the details of the Al subscription plan is called, for each plan in the array list. Note: When displaying data, you are free to choose JTextArea or JTable.

Clear

When this button is pressed, the text is cleared from each of the given text fields.

5. Report

The report should contain the following:

5.1. Class Diagram

A class diagram including AlModel class and other 3 classes. The class diagram should display the name of the class, the data types and name of the instance variables, return type and signatures of all constructor(s) and method(s).
There should be a combined class diagram showing IS-A relationship between classes. The relationship diagram must follow the correct notation.

5.2. Pseudocode

Provide a pseudocode for the following button-handling methods in GUI (for actionListener):
1. Adding a personal plan
2. Adding a pro plan
3. Making a prompt
4. Getting the index number from GUI
5. Checking a plan type
6. Exporting data to a file and loading data from a file

5.3. Method Description

A short description of each method you have written inside AlModel.java, PersonalPlan.java, ProPlan.java Every Method descriptions should include the following:

Method name
Type of parameter Return type
Brief description of the method

  • Internal working of the method

5.4. Testing

Give evidences using appreciate screenshots for the following (Table 1) testing on program you have developed:

Test Case

Test 1
Test 2
Test 3
Test 4
Test 5
Test 6

Description

Compile and run program using CLI
Add personal and pro plan to the array
list
Make a prompt
Add team member
Show message dialog for invalid index value entered
Show successful file writing and loading of file created earlier and display data in a table or textarea
Table 1: Test Cases

5.5. Error Detection and Correction

The report should include a section on error detection and error correction where you give examples and evidence of three errors encountered in your implementation.
It should have following errors and should be distinctive and not of the same type.
Description of the error
• Steps taken to identify the error
Solution implemented
• Evidence (screenshot of the error message, or code snippet)
• At least one syntax error and one runtime error must be included.
Note: Total three errors (not to be confused with three errors of each type)

5.6. Conclusion and Reflection

The report should contain a conclusion, where you evaluate your work, reflecting on what you learnt from the assignment.

5.7. References

Include all the references in this section. The references included here must be cited properly.

5.8. Appendix

Include all code listings in the appendix section. Include code listing for parent class as well as child classes.

6. Assessment Criteria

Table 2 illustrates the assessment criteria and weight.

No. Criterion Weight Explanation
1 Class diagram 10% You need to provide a class diagram as described in section 5.1. This likely includes classes, attributes, and relationships.
2 Pseudocode for button-handling methods 6% Write pseudocode for methods that handle button actions, as described in section 5.2.
3 Descriptions of all methods in given classes 15% Give detailed explanations for all methods, including parameters, return values, and functionality (section 5.3).
4 Test cases 6% Provide test cases to show how your methods work, as in Table 1.
5 Error detection and correction 2% Describe any errors in your program and how they are handled or corrected (section 5.5).
6 Conclusion 3% Summarize your report and findings (section 5.6).
7 Report quality 3% Make sure your report has a proper title page, is properly formatted, includes a table of contents/list of figures, and is presented neatly.

Achieve Higher Grades of CS4001NT Programming Coursework & Raise Your Grades

Order Non Plagiarized Assignment

Struggling with your CS4001NT Programming Coursework 2 at London Metropolitan University (LMU)? Get expert-guided Assignment Help UK tailored to your needs. We provide reliable Programming Assignment Help with clear explanations of residential construction concepts, design principles, and assessment requirements. Our resources include a free list of assignment sample answers to help you understand structure, formatting, and key topics with ease. Achieve better grades with well-researched, plagiarism-free support designed to boost your confidence and academic performance. Start your journey toward success with trusted academic assistance today.

Workingment Unique Features

Hire Assignment Helper Today!


Latest Free Samples for University Students

AUEC3-059 Obtaining resources for engineering activities Assignment Answers Solution PDF

Category: Assignment

Subject: Engineering

University:

Module Title: AUEC3-059 Obtaining resources for engineering activities

View Free Samples

EAL L3 Eng AUEC3-003 Working efficiently and effectively in advanced manufacturing and engineering Assignment Answers

Category: Assignment

Subject: Engineering

University: EAL Level 3 Diploma in Advanced Manufacturing and Engineering – Technical Support Technician

Module Title: EAL Level 3 AUEC3-003 Working efficiently and effectively in advanced manufacturing and engineering

View Free Samples

QUALIFI L5 BUS503 Business Development Assignment

Category: Assignment

Subject: Business Management

University: Qualifi

Module Title: BUS503- Business Development

View Free Samples

CII M92 – Insurance business and finance Coursework Assignment Answers

Category: CII Assignments

Subject: business

University: _______

Module Title: CII M92 – Insurance business and finance

View Free Samples

ECE5004 Professional Practicum 1: Early Childhood Education and Care Practicum Report Sample

Category: Assignment

Subject: Healthcare

University: New Zealand School of Education

Module Title: ECE5004 Professional Practicum 1: Early Childhood Education and Care

View Free Samples
Online Assignment Help in UK