0% found this document useful (0 votes)
37 views7 pages

Formative Assessment 2 Project: Beginner Java

Uploaded by

Mbulelo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views7 pages

Formative Assessment 2 Project: Beginner Java

Uploaded by

Mbulelo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

FORMATIVE ASSESSMENT 2

Project
Beginner Java
JD521

2024
Table of Contents
Beginner Java ............................................................................................................................................................... 1
JD521 ........................................................................................................................................................................... 1
Project-based Questions (100) ....................................................................................................................... 5
Project Tasks:........................................................................................................................................................ 5
Additional Requirements: .................................................................................................................................... 6
Submission Guidelines: ........................................................................................................................................ 6
Formative Assessment 2 Marking Rubric ............................................................................................................. 7

Page 2 of 7 JD521 Formative Assessment 2 2024V1


Please complete the declaration of authenticity below for all assignments:

DECLARATION OF AUTHENTICITY

I _________________________________________________________________ hereby

(FULL NAME)
declare that the contents of this assignment are entirely my own work with the exception of the following
elements: (List the elements of work in this project that were not self-generated as well as who the originator
of the element is)

Element Originator

Signature: _____________________________ Date: _____________

Page 3 of 7 JD521 Formative Assessment 2 2024V1


Software Design & Development
Module: Beginner Java
Module Code: JD521
NQF: 5
Credits: 22
Assessment type: Formative Assessment
Mark allocation: 100
Hand out date: 05 April 2024
Hand in date: 19 April 2024

Instructions:
Read each question carefully and consider the mark allocation prior to answering.
• Ensure you answer all questions.
• The use of AI tools is strictly prohibited in completing this assessment.
• For final submission, submit a compressed file that includes: The Declaration of Authenticity,
Source Code, and ReadMe file.

Unit Standards:
• Demonstrate an understanding of the handling of errors in a computer programming environment
• Apply the principles of designing computer system inputs and outputs
• Manage software development source files using appropriate tools
• Demonstrate logical problem solving and error detection techniques
• Demonstrate an understanding of sort and search techniques used in computer programming
• Test a computer program against a given specification.

Assessment outcomes:
• Understanding Exceptions
• Understanding Assertions
• Working with real world exceptions.
• Describe collections
• Understanding generics
• Understanding and using strings
• Understanding regular expressions

Page 4 of 7 JD521 Formative Assessment 2 2024V1


Project-based Questions (100)
Instructions: Read the scenario and answer the following questions.

Library Management System.


You have found WIL placement at a local library and quickly noticed that they use a manual book search.
Develop a simple Library Management System. This system should allow users to manage books and
members of the library. The system will require the implementation of various functionalities, including
adding new books, searching for books by title or author, registering new members, and checking out books.

Objectives:
• Using Exceptions: Properly handle errors such as trying to check out a book that is not available
or entering invalid data.
• Using Assertions: Use assertions to validate the state of the program at various points, such as
ensuring a book's availability status is correctly updated when checked out.
• Using Collections and Generics: Utilize collections such as lists or dictionaries to manage books
and members. Generics should be used for flexibility and type safety.
• Using Strings and Regular Expressions: Implement functionality to search for books and
members using strings and validate inputs (like email addresses for members) using regular
expressions.

You pitched this whole idea to the library manager and got approval, however, the library manager asked
for a readme file, in which you will explain how the program works.
Source: Mashile T., (2024)

Project Tasks:
Task 1: Implementing the Book and Member Classes
• Book Class: Should have properties such as Title, Author, ISBN, and IsAvailable.
Include a method to toggle the IsAvailable status.
• Member Class: Should include properties such as Name, Email, and a list of borrowed books.
Use regular expressions to validate the email format upon member creation.

Task 2: Managing Collections


Implement collections using generics to manage books and members within the library system. Use a
List<Book> for books and List<Member> for members.

Task 3: Implementing Search Functionality


Allow users to search for books by title or author. Use string manipulation and search techniques to find
matches. Ensure searches are case-insensitive.

Task 4: Handling Book Checkouts


Implement a checkout system where members can borrow books if available. Use exceptions to handle cases
where books are not available for checkout.

Task 5: Assertions and Input Validation


Use assertions to ensure that books are properly checked out and returned. Validate user inputs using regular
expressions and exceptions to prevent invalid data entry.

Page 5 of 7 JD521 Formative Assessment 2 2024V1


Additional Requirements:
• Include a simple text-based menu system to navigate through the library's functionalities.
• Ensure robust error handling for all user interactions, displaying friendly error messages when
something goes wrong.
• Write clear and concise code with proper comments explaining the logic.

Submission Guidelines:
• Students should submit their source code files along with a brief document explaining their design
decisions and how they addressed each objective on a ReadMe text file.
• Include unit tests demonstrating the use of exceptions, assertions, collections, and string
manipulations.

End of project [Total = 100 Marks]

End of paper

Page 6 of 7 JD521 Formative Assessment 2 2024V1


Formative Assessment 2 Marking Rubric
Penalties: Points may be deducted for significant shortcomings in any evaluation area, such as frequent program
crashes, major bugs, or failure to compile.

Assessment Criterion
Student name/number:
Criterion Mark allocation
10 – 6 5 –0
1. Using Exceptions (20 Marks)
Proper Implementation (10 Marks): Assess whether exceptions are used appropriately to
handle errors such as unavailable books or invalid data entries.
Error Messages (5 Marks): Evaluate the clarity and usefulness of the error messages displayed to the user
when an exception occurs.
Error Recovery (5 Marks): Check if the program gracefully recovers from exceptions, allowing the user to
continue using the system without crashing or behaving unpredictably.
2. Using Assertions (15 Marks)
Correct Use (10 Marks): Determine if assertions are correctly used to check the program's
state at critical Marks, ensuring the system works as intended (e.g., a book’s availability after
being checked out).
Applicability (5 Marks): Evaluate whether the assertions are meaningful and contribute to the stability and
reliability of the application.
3. Using Collections and Generics (20 Marks)
Implementation (10 Marks): Assess the use of collections and generics to manage books and
members, looking for type safety, flexibility, and the efficient use of data structures.
Data Handling (10 Marks): Evaluate how well the program manipulates collection data,
including adding, removing, and searching elements within collections.
4. Using Strings and Regular Expressions (20 Marks)
String Manipulation (10 Marks): Review the implementation of search functionality and any
other feature requiring string manipulation for effectiveness and efficiency.
Regular Expressions (10 Marks): Assess the use of regular expressions for validating inputs,
such as email formats, ensuring they are correctly applied and functional.
5. Code Quality and Documentation (15 Marks)
Readability and Structure (5 Marks): The code should be well-organized, with meaningful variable names,
consistent indentation, and a clear separation of functionalities into methods/classes.
Comments and Documentation (5 Marks): Inline comments and documentation should clearly explain the
purpose and logic of the code, making it easy for another developer to understand and maintain.
Design and Scalability (5 Marks): Evaluate the overall design of the system, including the use of object-
oriented principles and how easily new features (like new book or member services) could be added.
6. User Interface and Experience (10 Marks)
Usability (5 Marks): The text-based menu system should be intuitive, with clear instructions on how to
perform each action.
Robustness (5 Marks): The application should handle user inputs gracefully, preventing crashes and guiding
the user towards correct usage.

TOTAL /100

Page 7 of 7 JD521 Formative Assessment 2 2024V1

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy