BDA100 Group Assignment


Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

 BDA100 Group Assignment

Release Date : 25th February 2025

Due Date : 18th April 2025 11:59 pm

Value : 35% of total assessment

Marks : Marked out of 100

Assessment Mode : Group Assessment

Penalty for late submission : 5 marks per day

RATIONALE

This assignment has been designed to allow students to test and demonstrate their understanding and ability to write Python program using concepts such as functions, variables, iterations, file processing and Object – Oriented (OO) approach.

· CLO3: Demonstrate the ability to code algorithms, debug and test using an IDE according to programming standard (P4, PLO3, MQFC3a).

CASE STUDY

Develop a Python-based To-Do List Application that helps users efficiently manage their daily tasks. The system should allow users to add, update, search, delete, and mark tasks as complete/incomplete while maintaining an organized structure.

Key Features & Requirements

1. Task Management

• Users can add new tasks with the following attributes:

Task ID (unique identifier)

Task Description

Priority Level (High, Medium, Low)

Due Date (YYYY-MM-DD format)

Status (Pending / Completed)

• Tasks should be stored using a Dictionary.

2. Task Operations (Ask for user input on which operation they desire)

· Add New Task → Prompt the user to input task details.

· Mark Task as Completed → Update the task’s status to "Completed".

· Edit Task Details → Allow modification of description, priority, or due date.

· Delete Task → Remove a task permanently from the list. 

3. Task Searching & Filtering

· Search for tasks by:

Priority (High, Medium, Low)

Due Date (Upcoming tasks within a given range of dates)

Status (Pending/Completed) 

4. Display Tasks in a Structured Format

· Display all tasks in an organized tabular format:

Example:

+-----------+-----------------------------------+----------+----------------+-------------+

| Task ID   | Description                | Priority | Due Date       | Status         |

+-----------+-----------------------------------+----------+----------------+--------------+

| Task001   | Submit project report        | High         | 2024-03-05 | Pending      |

| Task002   | Buy groceries                          | Medium  | 2024-02-28 | Completed |

+-----------+-----------------------------------+------------+--------------+---------------+

5. Save & Load Tasks from a File

· Users should be able to save their task list into a text file (tasks.txt) and reload saved tasks whenever needed.

· The program should handle file errors gracefully (e.g., file not found).

Detailed requirements

1. The program provides a clear menu structure, guiding users through different modules or functionalities. Users can navigate between modules seamlessly, with options to return to the main menu or correct accidental module selections.

2. The system will have two main classes.

· Task - Represents a single task with the following attributes:

o task_id (unique identifier)

o description (short description)

o priority (low, medium, high)

o due date (date)

o status (True (complete)/False (incomplete))

· ToDoList - This class will store all tasks in a dictionary and provide methods for the Task Operations.

3. The program will apply the Dictionaries concept to store the Tasks. No List/Tuple is allowed in this program. 

4. Do not construct the program in a single main function only. Students are required to apply the Functions concept to make the program look smart and neat. Include comments as a good programming habit.

Instructions

1. Solve the case study using Jupyter Notebook.

2. Save all your coding files and external text files into a folder and then compress the folder into a zip file. Submit the zip file through the LMS submission link.

3. There will be a 15-minute program demonstration (including Q&A) in the next class after submission. Refer to the marking rubric.

Notes

i. If you are not clear about the assignment requirements, please contact the lecturer.

ii. You may refer to the materials from textbooks or any other references, but you must cite the source, no matter how brief. Failure to do so will result in zero marks being awarded for the assignment.

iii. The codes will go through an AI software check. If it is determined that the code is AI-generated, you will receive a zero on this assignment.

iv. All assignments should be accompanied by a completed assignment cover sheet and submitted to the LMS assignment submission link.

v. A penalty of 5 marks per working day (including Saturday) will be imposed for late submission.


Marking Rubric:

Student Name:

Student Name:

 

No

Descriptions

Marks

1.

Program Development (40 Marks)

i. Clear instructions are given to guide the users to use the program successfully. (5)

ii. Module navigation is smooth whereby the program provides options to let users to go back to main menu or sub menu if the wrong module is accidentally selected. (10)

iii. Attempts at error handling. (5)

iv. Comments written in the programming codes as a good programming habit. (5)

v. Proper and neat program structure. (5)

vi. Program runs successfully with no errors. (10)

 

 

2

Dictionaries and Sets (5 Marks)

i. Able to use various identifiers for storing constant or dynamic data. (5)

 

 

3

Defining Classes (20 Marks)

i. Able to create the Class and import into the main program successfully. (5)

ii. Able to include all attributes into the Class successfully. (5)

iii. Able to provide all get and set methods for all attributes successfully. (5)

iv. Able to perform all tasks through classes created. (5)

 

 

4

File Handling (15 Marks)

i. Able to import and export files. (5)

ii. Able to process files. (10)

 

 

5

Presentation and Q&A (20 Marks)

i. Successful demonstration of program. (10)

ii. Demonstration of knowledge in QnA. (10)

 

 

Penalty (AI-generated/late submission)

 

 

Total over 100%

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注