1st SIT COURSEWORK 1 QUESTION PAPER Year Long 2023/2024
Module Code: CS5003NI Module Title: Data Structures and Specialist Programming Module Leader: Mr. Prithivi Maharjan |
Coursework Type: Individual Coursework Weight: This coursework accounts for 30% of your total module grades. Submission Date: Friday, 12 January 2024 When Coursework is Week 7 given out: Submit the following to Islington College’s MST portal Submission before the due date and before 1PM on the due date: Instructions: ● Report file/s should be in .pdf ● Whole project folder should be zipped Warning: London Metropolitan University and Islington College takes Plagiarism seriously. Offenders will be dealt with sternly. |
© London Metropolitan University
1
Plagiarism Notice
You are reminded that there exist regulations concerning plagiarism. Extracts from University Regulations on Cheating, Plagiarism and Collusion
Section 2.3: “The following broad types of offence can be identified and are provided as indicative examples ……
(i) Cheating: including copying coursework.
(ii) Falsifying data in experimental results.
(iii) Personation, where a substitute takes an examination or test on behalf of the candidate. Both candidate and substitute may be guilty of an offence under these Regulations.
(iv) Bribery or attempted bribery of a person thought to have some influence on the candidate’s assessment.
(v) Collusion to present joint work as the work solely of one individual. (vi) Plagiarism, where the work or ideas of another are presented as the candidate’s own.
(vii) Other conduct calculated to secure an advantage on assessment. (viii) Assisting in any of the above.
Some notes on what this means for students:
(i) Copying another student’s work is an offence, whether from a copy on paper or from a computer file, and in whatever form the intellectual property being copied takes, including text, mathematical notation and computer programs.
(ii) Taking extracts from published sources without attribution is an offence. To quote ideas, sometimes using extracts, is generally to be encouraged. Quoting ideas is achieved by stating an author’s argument and attributing it, perhaps by quoting, immediately in the text, his or her name and year of publication, e.g., ” e = mc2 (Einstein 1905)”. A reference section at the end of your work should then list all such references in alphabetical order of authors’ surnames. (There are variations on this referencing system which your tutors may prefer you to use.) If you wish to quote a paragraph or so from published work then indent the quotation on both left and right margins, using an italic font where practicable, and introduce the quotation with an attribution.
Further information in relation to the existing London Metropolitan University regulations concerning plagiarism can be obtained from http://www.londonmet.ac.uk/academic regulations
2
Deliverables
You are required to submit two components before the submission deadline. 1. The software with the entire coursework project containing Java classes source codes. For this you can zip your NetBeans Java application project. 2. Report in PDF format.
Case Study
Using appropriate classes from the Java Collections framework, you must create a Java software system based on “My Address Book”.
Many people need a way to store contact information. However, many existing addresses book applications are either too complex or too expensive
The simple address book application is a simple and affordable way to store contact information. It is easy to use and does not require a database.
Account general details:
1) ID
2) First Name, Middle Name, Full Name
3) Nickname
4) Address
5) Number Type (Personal, office, Mobile)
6) Number
7) Address added date
8) Email
9) Address (permanent & temporary)
10) Company
11) Notes
3
Development
Part 1: System Features
1. The user interface of a system should be appropriately shown. 2. Can create a new data on the system.
3. Can delete the existing data from the system.
4. Display at least 5 list of existing addresses with their relevant information. 5. The option to update personal information should be provided for address holder errors, while essential identifiers like ID numbers must remain unchanged. 6. The task involves implementing a reliable data structure to store information, such as creating a LinkedList or ArrayList with functionalities for adding, removing, and managing data.
7. We will implement a search functionality for address information, utilizing the efficient Binary Search algorithm. Additionally, users will have the option to refine their search by specifying the account type and account status for more targeted results.
8. The system must incorporate sorting functionality based on the account balance, using any sorting algorithm covered in our module. This feature should allow sorting in ascending, descending, or both orders, ensuring efficient organization of data according to the data.
4
Part 2: System enhancement
To fulfil this coursework requirement, you are required to develop an original implementation of a data structure and a searching/sorting algorithm.
As per the Part 1 of the project, the implementation should involve the utilization of classes and methods from the Java Collections framework, ensuring adherence to professional and clear coding practices.
Following requirements are must complete to complete part 2:
1. Validation and exception handling
During data registration, it is essential to verify the existence of the account by cross referencing with a unique identifier such as a phone number.
2. Programming styles
In the Java code section, adhere to proper naming conventions and utilize meaningful comments effectively to ensure code clarity and maintain professionalism.
3. Proper use of classes and methods
Efficiently apply object-oriented programming principles to minimize code redundancy by utilizing methods and classes effectively.
4. Use of proper messages
When attempting to create a new account, an appropriate prompt will be displayed if any entered information is invalid, such as providing numerical input in the full name field.
5
Report
A reflective report (1500 words), which concisely documents:
1. Prepare a comprehensive report with well-organized sections, including font size, font family, and alignment for a polished appearance. The report should encompass an introduction, conclusion, and other essential elements to present the project findings effectively.
2. Provide a detailed account of the tools and techniques employed throughout the project, such as NetBeans and Java. Explain the features and advantages of these tools, supported by relevant images to showcase their application in the project.
3. Present a detailed explanation of the utilized algorithm, covering its implementation rationale and the reasons behind its selection. Offer a step-by step breakdown of the algorithm with the aid of diagrams, flowchart diagrams, and pseudocode to enhance comprehension.
4. Elaborate on the chosen data structure, its purpose, and the motivations underpinning its adoption in the project. Employ diagrams, flowchart diagrams, and pseudocode to illustrate its functioning in a systematic manner.
5. Create a comprehensive class diagram highlighting the purpose, properties, and methods of each class in the project. Provide a detailed description of these classes to offer a clear understanding of their respective functionalities.
6. Plan and present a series of test cases with concrete evidence in the form of system screenshots. A minimum of five test cases should be included to validate the project’s functionality thoroughly.
7. Engage in thoughtful reflection on the development process, discussing any encountered challenges and their respective solutions. Share valuable lessons learned during the course of the project, offering insights into personal growth and improvement as a developer.
6
Marking Scheme for CS5003 Individual Coursework 1
This coursework counts for 30% of the module mark. Please see the table below for the marking criteria and its weighting.
Marking Criteria | Weightage | |
Development Requirements | 70 | |
Part 1 | Feature | 50 |
1 | Application User Interface | 10 |
2 | Create a new account | 5 |
3 | Delete account | 5 |
4 | Display the list of existing accounts | 5 |
5 | Update existing account information | 5 |
6 | Appropriate use of Data Structure | 5 |
7 | Use of binary search algorithm | 10 |
8 | Use of any sorting algorithm | 5 |
Part 2 | Quality and style | 20 |
9 | Validation and exception handling | 5 |
10 | Programming styles (comments and naming) | 5 |
11 | Proper use of classes and methods | 5 |
12 | Proper messages shown to user | 5 |
Report Requirements | 30 | |
1 | Well-structured report | 5 |
2 | Test Cases | 5 |
3 | Algorithm Explanation | 5 |
4 | Class diagram | 5 |
5 | Method description | 5 |
6 | Development process with tools used | 5 |
Total Mark | 100 |
7