CT108-3-1-PYP Group Assignment Page 1 of 8
Course Learning Outcomes
Upon completion of this assignment, you should be able to:
CLO2 Construct a programmable solution using appropriate problem-solving methods and
programming concepts to the given scenario. (C3, PLO2)
1.0 Group Assignment Description
Work with your group to develop a program based on the following guidelines:
1. You are required to employ a Python language only to create a program based on the case
studies below.
2. You are advised to use your own logic flow to create the program.
3. You are required to form a team (in a group of FOUR (4) persons)
4. Your group is required to solve the following case study as group assignment:
Case Study: Smart Campus Event Management System
Your task is to collaboratively design and develop a Smart Campus Event Management System that allows students, faculty, and administrators to manage campus events effectively. The system will have four user roles with clearly defined functionalities. Each group must implement a command-line application that simulates this system.
The following characteristics are important to be included in your system:
User Roles and Functions: 1. Event Organizer
• Create a new campus event (title, date, location, description, capacity).
• Update event details.
• Cancel an existing event.
• View list of registered participants for an event.
2. Participant (Student/Faculty)
• Browse/search upcoming events.
• Register for an event.
• Cancel registration.
• View personal event calendar (list of events they registered for).
3. Administrator
• •
Approve or reject event proposals submitted by organizers.
View system statistics (total events, most popular event, number of users).
Degree
Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment Page 2 of 8
• Generate reports (.txt file) of event data.
• Manage user roles (promote participant to organizer, etc.). 4. Venue Manager
• View upcoming events scheduled for each venue.
• Mark venues as unavailable for maintenance or other reasons.
• Approve or reject venue booking requests.
• Suggest alternative venues if a preferred one is unavailable.
Example Program Outline
Here’s a general structure to get started with the project:
• Main Menu: Display options for selecting a role (e.g., Event Organizer, Participant, ...).
• Role-Specific Menus: Based on the role selected, show relevant functionalities.
• File Operations: Read, write, update, and delete data in respective files for each
functionality.
• Error Handling: Include checks to handle file access errors and validate user input.
IMPORTANT INSTRUCTIONS:
This is a group assignment. Upon submission of your assignment, you are required to present your assignment at a date and time specified by your module lecturer.
Each team member is required to contribute towards some features in the system & documentation, present and explain his or her work accordingly. Each team member should be able to answer questions during presentation with regards to the overall systems project or specific question(s) related to the codes used in the development.
2.0
i. ii.
iii. iv.
Requirements
Roles and Functionalities: There will be four(4) roles, each with specific five(5)functions. File Handling: All data will be stored and managed using text file handling without using classes or object-oriented programming.
Menu Navigation: Users should access functionalities through a command-line menu system.
You are required to
a. carry out research relevant to the existing program(s) that is/are similar to the program
you are going to develop.
b. document any logical assumptions in terms of functionalities that can be embedded to
your program.
Degree Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment Page 3 of 8
v. Your program should use constants ONLY where appropriate. Validations need to be included to ensure the accuracy of the program. State any assumptions that you make under each function.
vi. You are required to store all data in text files. There is no limit on the number of text files that can be used but they should be kept minimum.
vii. You are expected to use list and functions in your program. Your program must embrace modular programming technique and should be menu driven. Your program also should provide a termination function.
viii. You may include any extra features which you may feel relevant and that add value to the system.
ix. There should be no need for graphics in your program, as what is being assessed, is your programming skill not the interface design. The marking scheme for the assignment has been provided so that you clearly know how the assessment for this assignment would be done.
x. You should include the good programming practice such as comments, variable naming conventions and indentation.
xi. In a situation where a student:
- Failed to attempt the assignment demonstration, overall marks awarded for the assignment will be adjusted to 50% of the overall existing marks.
- Found to be involved plagiarism, the offence and will be dealt in accordance with APU regulations on plagiarism.
xii. You are required to use Python programming language to implement the solution. Use of any other languages like C/C++/Java/... is not allowed.
Do’s Don’ts
Use Modular Functions:
• Create separate functions for each specific task (e.g., add_student(), view_courses()).
• This modular approach keeps code organized and allows reusability without using Object Oriented Programming.
Use Text Files for Storage:
• Don’t Use External Libraries:
• Avoid any libraries, even common ones like pandas or csv, to stick with the project requirements.
• Don’t Use Classes or Objects:
• Refrain from creating classes or using self, __init__, or other OOP concepts.
Degree Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment Page 4 of 8
• Store and manage all data in text files, such as students.txt, courses.txt, grades.txt.
• Use CSV-style formatting (comma-separated values) to easily parse and update data in each text file.
• Use basic Python file operations (e.g., open(), read(), write()) and built- in data structures.
Use Conditionals and Loops for Menu Navigation:
• Implement a simple menu-driven system using loops (while) and conditionals (if, elif, else) to allow users to navigate between functionalities based on role.
Implement Error Handling for File Operations:
• Include try-except blocks when opening, reading, or writing to files to handle file-related errors (e.g., FileNotFoundError).
• Add user-friendly messages for any file errors encountered.
Use Built-In Functions for Data Processing:
• Use Python’s built-in string and list functions (e.g., split(), join()) to process data from text files.
• When reading data, split lines by commas to parse the data and join data with commas to write to files.
Keep the Data Format Consistent:
• Use consistent formatting in each text file (e.g., comma-separated values for each entry).
• Make sure that each role interacts with the correct data format to avoid errors.
• Avoid using classes, inheritance, or any OOP principles, as this project is designed without OOP.
• Use only functions, conditionals, loops, and basic data handling methods.
• Keep the code purely functional, where all functionalities are independent and handled by functions alone.
• Don’t Hard-Code Data:
• Avoid hard-coding data directly in the code (e.g., avoid pre-defined student names or courses).
• All data should be dynamically read from or written to text files, making the system adaptable and realistic.
• Don’t Use Hardcoded File Paths:
• Don’t hardcode absolute file paths (like
/home/user/desktop/students.txt).
• Use relative paths, such as students.txt, so the project works across different
systems.
• Don’t Overcomplicate File Handling:
• Avoid opening, closing, and reading files multiple times within a single function, as it can slow down the program.
• Instead, open a file, process the data in a single pass (if possible), and close it efficiently.
• Avoid Mixing Role Functionalities:
• Ensure each role has access only to its specific functions (e.g., students shouldn’t access add_student()).
• Keep role-based functions separate and only allow relevant functions in each role’s menu to avoid confusion and maintain data integrity.
• Don’t Ignore Data Formatting and Spacing:
• When writing to files, ensure that commas, line breaks, and spacing are
Degree Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment
Page 5 of 8
Validate User Input:
• Validate inputs to avoid malformed data entries (e.g., check if IDs are numeric, if dates follow a valid format).
• Prompt the user again if the input is invalid, ensuring that files only contain clean, correct data.
Comment Code for Clarity:
• Add comments to explain the purpose of each function and important code sections.
• This makes the code easier to understand and maintain, especially when skipping OOP principles.
consistent so the data can be read back
easily.
• If records need updating or deleting,
maintain formatting consistency to prevent issues with data parsing.
• Avoid Excessive Data Duplication:
• Avoid duplicating records in different files unless necessary (e.g., only store student data in students.txt and avoid duplicating it in other files).
• If different files reference the same data (e.g., student ID in grades.txt and enrollments.txt), use the ID consistently across files to avoid data redundancy.
3.0
Deliverables
Sample submission
You are required to submit a softcopy of:
i. ii.
Program coded in Python – submitted as .py file.
Text files created through testing data – submitted as .txt files. (The .py and .txt files should be placed in a zip file)
Degree
Asia Pacific University of Technology and Innovation
October 2024
CT108-3-1-PYP Group Assignment Page 6 of 8
iii. A documentation of the system – submitted as pdf file - that incorporates basic documentation standards such as header and footer, page numbering and includes:
- Cover page – include all group member names & TP numbers
- Table of contents
- Introduction and assumptions of your system developed.
- Design of the whole program by using pseudocode or flowcharts.
- Screenshots of program source code with explanation of programming concepts applied based-on the system developed. The following is an example:
▪ Application of storage types (list, tuple, dictionary, text files and etc)
▪ Application of control structure
• Selective: if.. else, nested if
• Iteration: for loop, while loop
▪ Application of Try ... Except
▪ Application of validation
▪ main() function
▪ Roles and functionalities (Each function() within the program must have
explanation)
- Additional features source code with explanation (if any)
- Screenshots of sample input/output with explanation
- Conclusion
▪ The advantages of your system developed
▪ Any limitation discovered
▪ Suggestion to overcome the limitation for further enhancement
- References using APA referencing format
- Appendix
▪ Workload Matrix
▪ Screen shot of every text file contents
iv. Only the submission through Moodle will be graded. v. This task requires a group submission.
Team leader is required to upload a word documentation and a system solution ZIP file to the Moodle system by 16th June 2025, Monday of Week 12, no later than 11:59 pm.
The documentation should be named using format:
“<GroupNo>_<student ID-leader>_<student ID-member1>_<student ID-member2>.docx”.
For example, “G1_TP012345_TP012344_TP012123.docx” Refer to the sample submission below.
Degree Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment Page 7 of 8
The zip file must adhere to the following name format:
“<GroupNo>_<student ID-leader>_<student ID-member1>_<student ID-member2>.zip”
For example, “G1_TP012345_TP012344_TP012123.zip”
vi. Submission due date: 16th June 2025 (Monday) before 11:59 p.m. 4.0 Performance Criteria
Distinction (80% and above)
This grade will be assigned to work which meets all the requirements stated in the question. The program runs smoothly when executed. There is clear evidence and application of Python concepts up to advanced level. The program solution is unique with excellent coding styles and validation. The program implemented maps completely against the design (pseudocode and flowchart) as seen in the documentation. The design of the solution varies in styles and has unique logic with hardly any errors / omissions. The documentation does not have any missing components. Sample inputs/outputs documented have clear explanation. Student must be able to provide excellent explanation of the codes and work done, show additional concepts / new ideas used in the solution, able to answer all questions posed with accurate / logical answers / explanation provided with sound arguments and clear discussion. The overall an excellent piece of work submitted.
Credit (65%-74%)
This grade will be assigned to work which is considered to be a good standard and meets most of the requirements stated in the question. The program runs smoothly when executed. There is clear evidence and application of Python concepts up to at least intermediate level. The program solution is unique with good coding styles and validation. The program implemented maps well against the design (pseudocode and flowchart) as seen in the documentation. The design of the solution varies
Degree Asia Pacific University of Technology and Innovation October 2024
CT108-3-1-PYP Group Assignment Page 8 of 8
in styles and has unique logic with minor errors / omissions. The documentation does not have any missing components. Sample inputs/outputs documented with some explanation. Student must be able to provide good explanation of the codes and work done, answer most questions posed with mostly accurate / logical answers / explanation.
The overall a good assignment submitted.
Pass (50%-64%)
This grade will be assigned to work which meets at least half of the basic requirements (approximately 50%) stated in the questions. The program runs smoothly when executed. There is clear evidence and application of Python concepts at basic level. The program solution is common with basic coding styles and validation. The program implemented somewhat maps with the design (pseudocode and flowchart) as seen in the documentation. The design of the solution is average in terms of logic and style with some errors / omissions. The documentation has some missing components. Sample inputs/outputs documented but without any explanation. Student must be able to explain some codes and work done and able to answer some questions posed with some accurate / logical answers / explanation. The overall an average piece of work submitted.
Fail (Below 50%)
This grade will be assigned to work which achieved less than half of the requirements stated in the question. The program is able to compile but not able to execute or with major errors. The program solution has only basic coding styles with no validation. The program solution has little or no mapping with the design. The design of the solution has major / obvious errors / omissions. The documentation has some missing essential components. Student is barely able to explain the codes / work done and answer given on the questions posed but with mostly inaccurate / illogical answers / explanation. The overall poor piece of work submitted.
Degree Asia Pacific University of Technology and Innovation October 2024
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。