Mentioned in the file called assignment2.v2.pdf, example outcome is duplication_example.csv.
UEEN1043 Object-Oriented Concept and Programming Techniques 2019 Assignment #2 In this assignment, you are asked to demonstrate a program which uses the concept of inheritance and polymorphism in OOP to automatically find all the duplicated titles in the UTAR library collection. The outcome will be one single CSV file named as duplication.csv. The format of the CSV file is described in duplication_example.csv. Each row in the CSV file contains all the information of the same TITLEs from different databases DBs; i.e. the information are the TITLE, DB, ISSN, e-ISSN, ISBN, and e-ISBN numbers. The input file is library-titles.xlsx. Each row of the input file contains the related information of one single title. An ISSN or e-ISSN can have 5 to 8 digits; some are separated by ‘-’ while some are not. An ISBN or e-ISBN is either 10 digits or 13 digits; some are separated by ‘-’ while some are not. Hence, you need to reset those which are not conforming to the aforementioned digit formats to null, instead of not dropping, before comparison. Conditions for a duplication: 1) Exact match of all ISSN, e-ISSN, ISBN, and e-ISBN as well as the TITLE name 2) Matches must come from different DB. 3) Only output one record for the duplicated titles in duplication.csv; see below: All of the scenarios above are considered the same description of duplication and your output should use scenario 3 where unqiue duplicates are sorted alphabetically by DB. Marking scheme: (Total 30 marks) 1. Use a flow chart to explain how you plan to solve the problem. (3 marks) 2. Demonstrate modular programming technique. (3 marks) 3. Show effective use of list comprehension or dictionary comprehension. (2 marks) 4. Show improved code readability by using map() or apply() or applymap(). (3 marks) 5. Show effective use of pandas and numpy modules. (3 marks) 6. Able to apply masking technique to select the desired rows or columns. (3 marks) 7. Show effective use of the inheritance and polymorphism concepts in OOP to avoid nested if-then-else statements if your solution can relax the condition 1) to accept a row whose ISSN, e-ISSN, ISBN, and e-ISBN are all nulls but its TITLE matches that in the duplication list produced using the condition 1). (5 marks) UNIVERSITI TUNKU ABDUL RAHMAN page 1 Scenario 1 TITLE DB ISSN ... TITLE DB ISSN ... TITLE DB ISSN ... ttle1 A 1234-4567 … ttle1 B 1234-4567 … ttle1 A 1234-4567… Scenario 2 TITLE DB ISSN ... TITLE DB ISSN ... ttle1 B 1234-4567 … ttle1 A 1234-4567 … Scenario 3 TITLE DB ISSN ... TITLE DB ISSN ... ttle1 A 1234-4567 … ttle1 B 1234-4567 … UEEN1043 Object-Oriented Concept and Programming Techniques 2019 8. The solution does not have any nested loops within the main or any functions. (2 marks) 9. The Solution can run to completion without error messages. (2 marks, not a dummy run) 10. Output filename and its contents must conform with the given formats. (2 marks) 11. With clear and sufficient comments in the program to explain your design. (2 mark) You are not allowed to change the format of any inputs for your convenience as the marking will feed different contents using the same input format to your solution. Also, you should not assume any other inputs from the keyboard or files unless otherwise specified later. Submission The deadline is 6pm on 19th April 2019 (Friday) NO LATE submission is accepted. One submission for one group is sufficient. Do NOT submit input files. Only submit your solution in Python by emailing them to
[email protected] with email subject equal to ◦ UEEN1043 2019 A2 G[group number] ◦ e.g. UEEN1043 2019 A2 G[13] for group #13. Your Python file should follow the naming format below: ◦ G[group number]_A2.py ◦ e.g. G[13]_A2.py for group #13. Failure to conform to the naming format above will result in 10% deduction of your total mark. UNIVERSITI TUNKU ABDUL RAHMAN page 2 mailto:
[email protected] All Campus DBTITLEISSNe-ISSNISBNe-ISBN MACM Computing Surveys 0360-03001557-7341 MACM Journal of Computer Documentation 1527-68051557-9441 MACM Journal on Emerging Technologies in Computing Systems 1550-48321550-4840 MJournal of Data and Information Quality 1936-19551936-1963 MJournal of Experimental Algorithmics 1084-66541084-6654 MJournal of the ACM 0004-54111557-735X MJournal on Computing and Cultural Heritage 1556-46731556-4711 MJournal on Educational Resources in Computing 1531-42781531-4278 MProceedings of the ACM on Computer Graphics and Interactive Techniques2577-6193 MProceedings of the ACM on Human-Computer Interaction2573-0142 MProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies2474-9567 MProceedings of the ACM on Measurement and Analysis of Computing Systems2476-1249 MProceedings of the ACM on Programming Languages2475-1421 MACM Letters on Programming Languages and Systems 1057-45141557-7384 MACM Transactions on Accessible Computing 1936-72281936-7236 MACM Transactions on Algorithms 1549-63251549-6333 MACM Transactions on Applied Perception 1544-35581544-3965 MACM Transactions on Architecture and Code Optimization 1544-35661544-3973 MACM Transactions on Asian Language Information Processing 1530-02261558-3430 MACM Transactions on Asian and Low-Resource Language Information Processing 2375-46992375-4702 MACM Transactions on Autonomous and Adaptive Systems 1556-46651556-4703 MACM Transactions on Computation Theory 1942-34541942-3462 MACM Transactions on Computational Logic 1529-37851557-945X MACM Transactions on Computer Systems 0734-20711557-7333 MACM Transactions on Computer-Human Interaction 1073-05161557-7325 MACM Transactions on Computing Education 1946-6226 MACM Transactions on Cyber-Physical Systems2378-962X2378-9638 MACM Transactions on Database Systems 0362-59151557-4644 MACM Transactions on Design Automation of Electronic Systems 1084-43091557-7309 MACM Transactions on Economics and Computation 2167-83752167-8383 MACM Transactions on Embedded Computing Systems 1539-90871558-3465 MACM Transactions on Graphics 0730-03011557-7368 MACM Transactions on Human-Robot Interaction 2573-9522 MACM Transactions on Information Systems 1046-81881558-2868 MACM Transactions on Information and System Security 1094-92241557-7406 MACM Transactions on Intelligent Systems and Technology 2157-69042157-6912 MACM Transactions on Interactive Intelligent Systems 2160-64552160-6463 MACM Transactions on Internet Technology 1533-53991557-6051 MACM Transactions on Knowledge Discovery from Data 1556-46811556-472X MACM Transactions on Management Information Systems 2158-656X2158-6578 MACM Transactions on Mathematical Software 0098-35001557-7295 MACM Transactions on Modeling and Computer Simulation 1049-33011558-1195 MACM Transactions on Modeling and Performance Evaluation of Computing Systems 2376-36392376-3647 MACM Transactions on Multimedia Computing, Communications, and Applications 1551-68571551-6865 MACM Transactions on Parallel Computing 2329-49492329-4957 MACM Transactions on Privacy and Security 2471-25662471-2574 MACM Transactions on Programming Languages and Systems 0164-09251558-4593 MACM Transactions on Reconfigurable Technology and Systems 1936-74061936-7414 MACM Transactions on Sensor Networks 1550-48591550-4867 MACM Transactions on Social Computing2469-78182469-7826 MACM Transactions on Software Engineering and Methodology 1049-331X1557-7392 MACM Transactions on Spatial Algorithms and Systems 2374-03532374-0361 MACM Transactions on Speech and Language Processing 1550-48751550-4883 MACM Transactions on Storage 1553-30771553-3093 MACM Transactions on the Web 1559-11311559-114X MIEEE/ACM Transactions on Audio, Speech and Language Processing 2329-92902329-9304 MIEEE/ACM Transactions on Computational Biology and Bioinformatics 1545-5963 MIEEE/ACM Transactions on Networking 1063-6692 MACM Inroads2153-21842153-2192 MCommunications of the ACM0001-07821557-7317 MComputers in Entertainment 1544-3574 MCrossroads1528-49721528-4980 MInteractions1072-55201558-3449 MQueue1542-77301542-7749 MStandardView1067-99361557-7376 MUbiquity1530-2180 MXRDS: Crossroads, The ACM Magazine for Students1528-49721528-4980 MeLearn1535-394X Mintelligence1523-88221557-9425 MnetWorker1091-35561558-3473 MALGOL Bulletin0084-6198 MComputational Linguistics0891-2017 MEvolutionary Computation1063-65601530-9304 MJournal of Computing Sciences in Colleges1937-47711937-4763 MJournal of Usability Studies1931-3357 MLinux Journal1075-3583 MPersonal and Ubiquitous Computing1617-4909 MProceedings of the VLDB Endowment2150-8097 MThe Journal of Machine Learning Research1532-44351533-7928 MThe VLDB Journal — The International Journal on Very Large Data Bases1066-8888 M3C ON-LINE1078-2192 MACM Communications in Computer Algebra1932-2240 MACM Lisp Bulletin MACM SIGACCESS Accessibility and Computing1558-23371558-1187 MACM SIGACT News0163-5700 MACM SIGAPL APL Quote Quad0163-6006 MACM SIGAPP Applied Computing Review1559-69151931-0161 MACM SIGARCH Computer Architecture News0163-5964 MACM SIGART Bulletin0163-5719 MACM SIGAda Ada Letters1094-3641 MACM SIGBED Review1551-3688 MACM SIGBIO Newsletter0163-5697 MACM SIGBioinformatics Record2331-92912159-1210 MACM SIGCAPH Computers and the Physically Handicapped0163-5727 MACM SIGCAS Computers and Society0095-2737 MACM SIGCHI Bulletin0736-6906 MACM SIGCHI Bulletin - a supplement to
interactions1558-1217 MACM SIGCOMM Computer Communication Review0146-4833 MACM SIGCPR Computer Personnel0160-2497 MACM SIGCSE Bulletin0097-8418 MACM SIGCSIM Installation Management Review0163-5972 MACM SIGCUE Outlook0163-5735 MACM SIGDA Newsletter0163-5743 MACM SIGDOC Asterisk Journal of Computer Documentation0731-1001 MACM SIGEVOlution1931-8499 MACM SIGFORTH Newsletter1047-4544 MACM SIGGRAPH Computer Graphics0097-8930 MACM SIGGROUP Bulletin2372-74032372-739X MACM SIGHIT Record2158-8813 MACM SIGHPC Connect2168-135X MACM SIGICE Bulletin1558-1144 MACM SIGIR Forum0163-5840 MACM SIGITE Newsletter2166-16851550-1469 MACM SIGITE Research in IT1944-0278 MACM SIGKDD Explorations Newsletter1931-01451931-0153 MACM SIGLASH Newsletter0036-147X1931-1095 MACM SIGLOG News2372-3491 MACM SIGMAP Bulletin0163-57861931-1184 MACM SIGMETRICS Performance Evaluation Review0163-5999 MACM SIGMICRO Newsletter1050-916X MACM SIGMINI Newsletter0163-576X MACM SIGMIS Database: the DATABASE for Advances in Information Systems0095-00331532-0936 MACM SIGMOBILE Mobile Computing and Communications Review1559-16621931-1222 MACM SIGMOD Record0163-5808 MACM SIGMultimedia Records1947-4598 MACM SIGNUM Newsletter0163-5778 MACM SIGOA Newsletter0737-819X MACM SIGOIS Bulletin0894-0819 MACM SIGOPS Operating Systems Review0163-5980 MACM SIGPC Notes0163-5816 MACM SIGPLAN Fortran Forum1061-72641931-1311 MACM SIGPLAN Lisp Pointers1045-3563 MACM SIGPLAN Notices0362-13401558-1160 MACM SIGPLAN OOPS Messenger1055-6400 MACM SIGSAC Review0277-920X MACM SIGSAM Bulletin0163-5824 MACM SIGSIM Simulation Digest0163-6103 MACM SIGSMALL Newsletter0272-720X MACM SIGSMALL/PC Notes0893-2875 MACM SIGSOC Bulletin0163-5794 MACM SIGSOFT Software Engineering Notes0163-5948 MACM SIGUCCS Newsletter0736-6892 MACM SIGUCCS plugged in2168-8516 MACM SIGWEB Newsletter1931-17451931-1435 MACM SIGecom Exchanges1551-9031 MAI Matters2372-3483 MCommunication Design Quarterly Review2166-12002166-1642 MGetMobile: Mobile Computing and Communications2375-05292375-0537 MSIGSPATIAL Special1946-7729 M3DOR: 3D Object Retrieval M3DVP: 3D Video Processing MA-MOST: Advances in Model-Based Testing MA2CWiC: Amrita ACM-W Celebration on Women in Computing in India MAAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications MAADEBUG: Automated analysis-driven debugging MAAMAS: Autonomous Agents and Multiagent Systems MACDC: Automated Control for Datacenters and Clouds MACET: Advances in Computer Entertainment Technology MACISNR: Applications of Computer and Information Sciences to Nature Research MACL2: ACL2 Theorem Prover and its Applications MACM DEV: Computing for Development MACM POLICY: ACM POLICY MACM SE: Annual Southeast Regional Conference MACM-BCS: ACM-BCS MACM: ACM Annual Conference/Annual Meeting MACPIS: Aspects, Components, and Patterns for Infrastructure Software MACSAC: Annual Computer Security Applications Conference MACoM: Assessment of Contemporary Modularization Techniques MADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems MADKDD: Data Mining and Audience Intelligence for Advertising MADPUC: Advanced Data Processing in Ubiquitous Computing MAFFINE: Affective-Aware Virtual Agents and Social Robots MAFIPS: AFIPS MAFM: Automated Formal Methods MAFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa MAGENTS: Autonomous Agents MAH: Augmented Human MAIEE-IRE: AIEE-IRE MAIEMPro: Automated Information Extraction in Media Production MAIGC: Artificial Intelligence in Grid Computing MAINTEC: Asian Conference on Internet Engineering MAIPACa: Applications of Private and Anonymous Communications MAIRS: Asia Information Retrieval Symposium MAIRWeb: Adversarial Information Retrieval on the Web MAISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics MAISec: Artificial Intelligence and Security MALICE: Alice Symposium MAM: Audio Mostly MAMC: Ambient Media Computing MAMCMM: Audio and Music Computing Multimedia MANCS: Architectures for Networking and Communications Systems MAND: Analytics for Noisy Unstructured Text Data MANNA: Analysis of Neural Network Applications MANSS: Annual Simulation Symposium MAOM: Aspect-Oriented Modeling MAOMD: Aspect Oriented Middleware Development MAPGV: Applied Perception in Graphics and Visualization MAPL: APL MAPLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications MAPOS: Scrutinizing Agile Practices MAPS: Adaptive, Personalization & the Semantic Web MAPSys: Asia-Pacific Workshop on Systems MAREA: Analysis and Retrieval of Events MARM: Adaptive and Reflective MIddleware MARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams MASE: Automated Software Engineering MASIA CCS: Information, Computer and Communications Security MASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation MASID: Architectural and System Support for Improving Software Dependability MASPDAC: Asia and South Pacific Design Automation Conference MASPLOS: Architectural Support for Programming Languages and Operating Systems MAST: Automation of Software Test MAUIC: User Interface MAUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing MAUS-CE: Australasian Conference on Computing Education MAVI: Advanced Visual Interfaces MAVSTP2P: Advanced video streaming techniques for peer-to-peer