I need an answer.
Page 1 of 8 Advanced Programming COSC 1295 Assignment Assessment Type Assessment Type: Individual assignment; no group work. Submit online via Canvas → Assignments → Assignment. Marks are awarded for meeting requirements as closely as possible according to assignment specifications and the supplied rubric. Clarifications/updates may be made via announcements/relevant discussion forums. Due Date Due date: end of Week 12 (18th October), Sunday 11:59pm. No Late submissions are allowed unless special consideration has been granted. Marks Weighting: 30 marks out of 100 for assignment. In addition, 5 milestones (4 marks each) to be submitted progressively as 3-minute videos adding up to 20 marks. 1. Overview Assessment Type: Individual assignment; no group work. Submit online via Canvas → Assignments → Assignment. Marks are awarded for meeting requirements as closely as possible according to assignment specifications and the supplied rubric. Clarifications/updates may be made via announcements/relevant discussion forums. NOTE: Carefully read this document. In addition, regularly follow the Canvas assignment discussion board for assignment related clarifications and discussion. Motivation: This individual assignment titled Project Team Formation requires developing a software that allows members to be assigned to project teams taking into consideration specific constraints while attempting to meet objective criteria reflecting ethical considerations, aspirations of project owners and preferences of students. This assignment is based on actual workplace practices and is reflective of tools used for making management decisions meeting multiple criteria such as increasing profits and improving employer satisfaction while meeting mandatory legal requirements. To be useful for managers such tools helping to find near optimal solutions (through the use of appropriate algorithms) must be made easily accessible using custom designed graphical user interfaces and visualization. Using Java as a vehicle, you are required to demonstrate your understanding of object-oriented design principles, design patterns, generics, graphical user interfaces, unit testing, object relational mapping, data structures and algorithms, building on the foundations laid by the Programming Fundamentals course. This Project Team Formation assignment should incorporate appropriate visual elements and event-handling allowing managers to simulate the impact of their decisions visually (sensitivity analysis). It should also assist the manager in finding better solutions by using heuristic algorithms and appropriate data structures. To manage the complexity, the assignment is divided into five milestones (starting from week 3 and going until week 11) each carrying 4 marks and a final submission in week 12 carrying 30 marks. The initial milestones are very prescriptive to help you get started and make steady progress. The final milestone allows adequate room for creativity in interaction, development of fit for purpose algorithms and the use of appropriate design patterns to improve usability. Your assignment submitted will be marked based on functional features, qualitative aspects, reflective practices and explorative learning. During the final face to face assessment you will also be required to justify your design decisions as well as explain how your program can be extended to meet other related requirements. Disclaimer: the specification in this assignment is intended to represent a simplified version of a system in real life and thus is not meant to be a 100% accurate simulation of any real system or service that is being used commercially. Page 2 of 8 2. Learning Outcomes This assessment relates to all of the learning outcomes of the course which are: • CL01: use the Java programming language in the implementation of small to medium sized application programs that illustrate professionally acceptable coding and performance standards. • CL02: demonstrate knowledge of the basic principles of the object-oriented development process and apply this understanding to the analysis and design of solutions for small to medium scale problems. • CLO3: describe and apply basic algorithms and data structures, in particular simple searching and sorting of data stored in data structures and manipulating data. • CLO4: implement basic event-driven programming and graphical user interfaces in Java. 3. Assessment components and details In this assignment and class progress demos you will be incrementally building a program to facilitate effective project team formation, considering the perspectives of project members (students) and owners (clients). The assignment is decomposed into 5 milestones which must be demonstrated to your lab supervisor (adding up to 10 marks). You will be required to demo your progress in the lab every two weeks starting from week 3 or 4, as shown in the table below. These milestones and the final assessment (30 marks) will be graded by your lab assistant who will be tracking your progress and giving you constructive feedback throughout the semester. Type Learning Assessed CLO’s & Bloom’s levels Marks Due-Date Demo 1 Problem Solving with Collections, files and exceptions CLO 1,2,3,4 Blooms 4 4 End of week 3 Demo 2 JUnit Test cases, Generics CLO 1,2,3,4 Blooms 4 4 End of week 5 Demo 3 Problem Solving with Java FX and Event Handling. CLO 1,2,3,4 Blooms 4 4 End of week 7 Demo 4 Problem Solving incorporating relational database through JDBC CLO 1,2,3,4 Blooms 4 4 End of week 9 Demo 5 Problem Solving incorporating heuristic algorithms, threads and patterns. CLO 1,2,3,4 Blooms 4 4 End of week 11 Assignment Problem solving with data structures, heuristic algorithms, OO design, Object relational mapping and MVC architecture. CLO 1,2,3,4 Blooms 5 30 End of week 12 Page 3 of 8 Milestone 1: Preparing the Data (Involves File Processing, Exception Handling and Input Validation) (4 Marks) Write a menu-driven program that helps the project manager capture the details related to each project, project owner, company, student personal details and student preferences, in separate files. There should be an additional menu option to shortlist projects based on student preferences. Note, there can be multiple project owners from the same company and multiple projects by the same project owner. This program should perform appropriate error checking and input validation by validating all user inputs (Your program should not crash at any time because of invalid inputs). Menu A. Add Company B. Add Project Owner C. Add Project D. Capture Student Personalities E. Add Student Preferences F. Shortlist Projects A. Add Company The details related to the company should include a unique company ID, company name, ABN number, company URL and address. The company details added should be saved to the file companies.txt. B. Add Project Owner The details captured by each project owner (contact person) should include first name, surname, a unique project owner ID (of the form Own1, …), role (such as software engineer), email and the ID of the company the project owner represents (of the form C1, ...) The project owner details added should be saved to the file owners.txt. C. Add Project The details captured for each project should include a title, a unique project ID (of the form pr1, …), brief description (one line), ID of the project owner (of the form Own1, …) and the ranking of the skills sought after for the project (4 being the highest and 1 the lowest) in the 4 different technical specialization (Skills) at MRIT university shown in the table below. The project details added should be saved to the file projects.txt. Technical Skill Categories (P) Programming & Software Engineering (N) Networking and Security (A) Analytics and Big Data (W) Web & Mobile applications D. Capture Student Personalities Now assume the project manager can download a file named students.txt capturing the list of students doing the project course in current semester with their average grades (HD=4, DI=3, CR=2, PA=1, NN=0) in project related technical skills (P programming, N networking, A analytics, W web) with the format shown below. Assume students have IDs S1 to S20. Customer Relationship Management (CRM) Pr5 CRM will be developed by a team of 4 using Yii framework Own3 W 4 P 3 N 2 A 1 ….. S1 P 4 N 3 A 2 W 1 …. Possible file format for the file projects.txt file format for students.txt (You need to create such a file with 20 students)) This project owner values Web experience the most and Analytics the least Page 4 of 8 The project manager interviews each of the students in the list during the first week and assigns their personality types as shown in the table below to ensure balanced teams are formed with at least one with leadership attributes in each team. It is required that the personality type assigned to students must be equally distributed across types. Characteristics Personality Type Likes to be a Leader (Director) A Outgoing and maintains good relationships (Socializer) B Detail oriented (Thinker) C Less assertive (Supporter) D In addition, the project manager allows each student to specify up to two others (student-numbers) they cannot work with in a team because of prior personal conflicts. Both the personality and conflict information must be captured and appended to existing file after the interview and saved in a text file studentinfo.txt, as shown below. file format studentinfo.txt Note, all project must be of size 4. Exceptions must be thrown when the personality types of the 4 students assigned by the project manager is not balanced. For example, if there are 20 students, the maximum number of personality types A, B, C and D can only be 5, and hence any attempt to assign A,B,C, D type to more than 5 students should result in an exception. E. Capture Student Preferences Students having attended the presentations for 10 projects decide their preferences and submit them via discussion- board by the end of first week, with 4 for most preferred and 1 for the least.