{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Necessary pip installs: \n", "# pip install pandas\n", "# pip install pdfminer.six\n", "# pip install xlsxwriter" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "# moduleCatalogue paths \n", "\n", "# Masters\n", "MS_IS_all_modules = \"./module_catalogues/MS_IS_all_modules.pdf\"\n", "\n", "MS_MM_all_modules = \"./module_catalogues/MS_MM_all_modules.pdf\"\n", "\n", "\n", "# Bachelors\n", "BA_IS_all_modules = \"./module_catalogues/BA_IS_all_modules.pdf\"\n", "\n", "BA_MM_all_modules = \"./module_catalogues/BA_MM_all_modules.pdf\"\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import re\n", "from pdfminer.high_level import extract_text\n", "import pandas as pd\n", "\n", "# Read PDF file\n", "text_Module_Catalogue = extract_text(BA_MM_all_modules)\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "# Pattern to remove Master Information Systems\n", "removal_patterns_MS_IS = [\n", " r\"Module Catalogue for the Subject\\nInformation Systems\\nMaster’s with 1 major, 120 ECTS credits\",\n", " r\"JMU\\sWürzburg\\s•\\sgenerated\\s\\d{1,2}-[A-Za-z]+-\\d{4}\\s•\\sexam\\.\\sreg\\.\\sda-\\nta\\srecord\\sMaster\\s\\(120\\sECTS\\)\\sInformation\\sSystems\\s-\\s\\d{4}\",\n", " r\"Master’s\\s+with\\s+1\\s+major\\s+Information\\s+Systems\\s+\\(\\d{4}\\)\",\n", " r\"page\\s+\\d+\\s+/\\s+\\d+\",\n", " r'^\\s*$'\n", " ]\n", "\n", "# Pattern to remove Bachelor Information Systems\n", "\n", "removal_patterns_BA_IS = [\n", " r\"Module Catalogue for the Subject\\nBusiness Information Systems\\nBachelor’s with 1 major, 180 ECTS credits\",\n", " r\"JMU\\sWürzburg\\s•\\sgenerated\\s\\d{1,2}-[A-Za-z]+-\\d{4}\\s•\\sexam\\.\\sreg\\.\\sda-\\nta\\srecord\\sBachelor\\s\\(180\\sECTS\\)\\sWirtschaftsinformatik\\s-\\s\\d{4}\",\n", " r\"Bachelor’s\\s+with\\s+1\\s+major\\s+Business\\s+Information\\s+Sy-\\n+stems\\s+\\(\\d{4}\\)\",\n", " r\"page\\s+\\d+\\s+/\\s+\\d+\",\n", " r'^\\s*$'\n", " ]\n", "\n", "# Pattern to remove Bachlor Wirtschaftswissenschaften\n", "removal_patterns_MS_MM = [\n", " r\"Module Catalogue for the Subject\\nManagement\\nMaster’s with 1 major, 120 ECTS credits\",\n", " r\"JMU\\sWürzburg\\s•\\sgenerated\\s11-Mai-2023\\s•\\sexam\\.\\sreg\\.\\s\\ndata\\srecord\\sMaster\\s\\(120\\sECTS\\)\\sManagement\\s-\\s2018\",\n", " r\"Master’s\\s+with\\s+1\\s+major\\s+Management\\s+\\(\\d{4}\\)\",\n", " r\"page\\s+\\d+\\s+/\\s+\\d+\",\n", " r'^\\s*$'\n", " ]\n", "\n", "removal_patterns_BA_MM = [\n", " r\"Module Catalogue for the Subject\\nBusiness Management and Economics\\nBachelor’s with 1 major, 180 ECTS credits\",\n", " r\"JMU Würzburg • generated \\d{2}-[A-Za-z]{3}-\\d{4} • exam\\. reg\\. data re-[\\s\\S]*?Bachelor \\(180 ECTS\\) Wirtschaftswissenschaft - 2008\",\n", " r\"Bachelor’s\\s+with\\s+1\\s+major\\s+Business\\s+Management\\s+and\\s+Economics\\s+\\(\\d{4}\\)\",\n", " r\"page\\s+\\d+\\s+/\\s+\\d+\",\n", " r'^\\s*$'\n", " ]\n" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "# regex patterns to get attributes of Master Information Systems\n", "from enum import Enum\n", "\n", "class Patterns_MS_IS(Enum):\n", " PATTERN_ENTIRE_MODULE = r\"Module title[\\s\\S]*?(?=Module title|$)\"\n", " MODULE_TITLE = r'Module title\\s*\\n*\\s*(.*)'\n", " ABBREVIATION = r'Abbreviation\\s*\\n*\\s*(.*)'\n", " MODULE_OFFERED_BY = r\"^(Faculty|Institute).*\"\n", " MODULE_COORDINATOR = r\"^(Holder|holder|Dean).*\"\n", " ETCS = r\"^\\d{1,2}$\"\n", " METHOD_GRADING = r\".*(not\\s)?successfully completed|numerical grade.*\"\n", " DURATION = r\"^\\d\\ssemester$\"\n", " MODULE_LEVEL = r\"^(?:graduate|undergraduate)$\"\n", " CONTENTS = r'Contents([\\s\\S]*?)Intended learning outcomes'\n", " INTENDED_LEARNING_OUTCOMES = r'Intended learning outcomes\\n\\n([\\s\\S]*?)\\n\\nCourses \\(type'\n", " COURSES = r'if other than German\\)([\\s\\S]*?)Method of assessment'\n", " ASSESSMENT = r'whether\\s*\\nmodule is creditable for bonus\\)([\\s\\S]*?)Allocation of places'\n", " ALLOCATION = r'Allocation of places([\\s\\S]*?)Additional information'\n", " ADDITIONAL_INFORMATION = r'Additional information([\\s\\S]*?)Workload'\n", " WORKLOAD = r'Workload([\\s\\S]*?)Teaching cycle'\n", " TEACHING_CYCLE = r'Teaching cycle([\\s\\S]*?)Referred to in LPO I'\n", " REFERRED_LPO = r'regulations for teaching-degree programmes\\)([\\s\\S]*?)Module appears in'\n" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "from helper_methods import extract_first_match, extract_LineMatch, clean_entries\n", "import xlsxwriter\n", "\n", "# Extract modules to xlsx -> Method shall be used generically for all modules later\n", "\n", "def extract_modules_to_xlsx (text, patternsToRemove, file_path):\n", "\n", " modules = re.findall(Patterns_MS_IS.PATTERN_ENTIRE_MODULE.value, text)\n", " modules = clean_entries(modules, patternsToRemove)\n", "\n", " workbook = xlsxwriter.Workbook(file_path)\n", " worksheet = workbook.add_worksheet()\n", "\n", " # set columns\n", " column_names = ['Module title', 'Abbreviation', 'Module coordinator', 'Module offered by', 'ETCS', 'Method of grading',\n", " 'Duration', 'Module level', 'Contents', 'Intended learning outcomes', 'Courses', 'Method of assessment',\n", " 'Allocation of places', 'Additional information', 'Workload', 'Teaching cycle', 'Referred to in LPO I']\n", " \n", " for i in range(len(column_names)):\n", " worksheet.write(0, i, column_names[i])\n", "\n", " counter = 1\n", " # Extract module attributes\n", " for i in range(len(modules)):\n", " module_attributes = []\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.MODULE_TITLE.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.ABBREVIATION.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.MODULE_OFFERED_BY.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.MODULE_COORDINATOR.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.ETCS.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.METHOD_GRADING.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.DURATION.value))\n", " module_attributes.append(extract_LineMatch(modules[i], Patterns_MS_IS.MODULE_LEVEL.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.CONTENTS.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.INTENDED_LEARNING_OUTCOMES.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.COURSES.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.ASSESSMENT.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.ALLOCATION.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.ADDITIONAL_INFORMATION.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.WORKLOAD.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.TEACHING_CYCLE.value))\n", " module_attributes.append(extract_first_match(modules[i], Patterns_MS_IS.REFERRED_LPO.value))\n", " \n", " # Write to xlsx file\n", " for j in range(len(module_attributes)):\n", " worksheet.write(counter, j, module_attributes[j])\n", " \n", " counter += 1\n", " workbook.close()\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "# Use write to xlsx method for Master Information Systems\n", "\n", "extract_modules_to_xlsx(text_Module_Catalogue, removal_patterns_MS_MM, \"BA_MM_all_modules.xlsx\")\n" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Module title\n", "\n", "Introduction to Market-Oriented Management\n", "\n", "Abbreviation\n", "\n", "12-Mark-G-082-m01\n", "\n", "Module coordinator\n", "\n", "Module offered by\n", "\n", "holder of the Chair of Business Management and Marke-\n", "ting\n", "\n", "Faculty of Business Management and Economics\n", "\n", "ECTS Method of grading\n", "\n", "Only after succ. compl. of module(s)\n", "\n", "5\n", "\n", "numerical grade\n", "\n", "--\n", "\n", "Duration\n", "\n", "Module level\n", "\n", "Other prerequisites\n", "\n", "1 semester\n", "\n", "undergraduate\n", "\n", "--\n", "\n", "Contents\n", "\n", "Description\n", "In this module, students will acquire the theoretical foundations of market-oriented management.\n", "\n", "Content:\n", "With the stakeholder approach as a starting point, the basic design of market-oriented management will be ex-\n", "plained and exemplified in the 5 classical steps: situation analysis, objectives, strategies, tools and control-\n", "ling. The course will focus not only on the behavioural approaches of consumer behaviour but also on industri-\n", "al purchasing behaviour. A case study introducing students to the fundamental principles of market research ba-\n", "sed on a conjoint analysis will provide students with deeper insights into the topic.\n", "\n", "Outline of syllabus:\n", "1. Marketing, entrepreneurship and business management\n", "2. Explanations of consumer behaviour\n", "3. Fundamentals of market research\n", "4. Strategic marketing; marketing tools\n", "5. Corporate social responsibility versus creating shared value\n", "\n", "Reading:\n", "Foscht, T. / Swoboda, B.: Käuferverhalten: Grundlagen -- Perspektiven -- Anwendungen, 4th revised and exp. ed.,\n", "Wiesbaden 2011.\n", "Homburg, Ch.: Grundlagen des Marketingmanagements: Einführung in Strategie, Instrumente, Umsetzung und\n", "Unternehmensführung, 4th revised and exp. ed., Wiesbaden 2012.\n", "Homburg, Ch.: Grundlagen des Marketingmanagements: Einführung in Strategie, Instrumente, Umsetzung und\n", "Unternehmensführung, 3rd ed., Wiesbaden, 2012a.\n", "Kroeber-Riel, W. /Weinberg, P.: Konsumentenverhalten, 9th ed., Munich 2009.\n", "Meffert, H. / Burman, Ch / Kirchgeorg, M.: Marketing -- Grundlagen marktorientierter Unternehmensführung: Kon-\n", "zepte -- Instrumente -- Praxisbeispiele, 11th revised and exp. ed., Wiesbaden 2012.\n", "Meffert, H. / Burman, Ch / Becker, Ch.: Internationales Marketing-Management -- Ein markenorientierter Ansatz,\n", "4th ed., Stuttgart 2010.\n", "Meyer, M.: Ökonomische Organisation der Industrie: Netzwerkarrangements zwischen Markt und Unternehmung,\n", "Wiesbaden 1995.\n", "Porter, M. E.: Wettbewerbsvorteile -- Spitzenleistungen erreichen und behaupten, 8th ed., Campus Frankfurt /\n", "New York 2014. (Original: Porter, M.: Competitive Advantage, New York 1985.)\n", "Simon, H. / Fassnacht, M.: Preismanagement, Strategie -- Analyse -- Entscheidung -- Umsetzung, 3rd ed., Wies-\n", "baden 2009.\n", "\n", "Intended learning outcomes\n", "\n", "The students have a basic understanding of business management and are able to classify the knowledge syste-\n", "matically. In addition, they can use the acquired knowledge solve and identify the conventional problem fields of\n", "business management.\n", "\n", "Courses (type, number of weekly contact hours, language — if other than German)\n", "\n", "V + Ü (no information on SWS (weekly contact hours) and course language available)\n", "\n", "Method of assessment (type, scope, language — if other than German, examination offered — if not every semester, information on whether\n", "module is creditable for bonus)\n", "\n", "written examination (approx. 60 minutes)\n", "\n", "Allocation of places\n", "\n", "Number of places: 405. No restrictions with regard to available places for Bachelor's students of Wirtschaftswis-\n", "senschaft (Business Management and Economics), Wirtschaftsmathematik (Mathematics for Economics) and\n", "Wirtschaftsinformatik (Business Information Systems). The remaining places will be allocated to students of\n", "other subjects. Should the number of applications exceed the number of available places, places will be allo-\n", "cated in a standardised procedure among all applicants irrespective of their subjects according to the following\n", "quotas: Quota 1 (50% of places): total number of ECTS credits already achieved in the respective degree subject;\n", "among applicants with the same number of ECTS credits achieved, places will be allocated by lot. Quota 2 (25%\n", "of places): number of subject semesters of the respective applicant; among applicants with the same number of\n", "subject semesters, places will be allocated by lot. Quota 3 (25% of places): allocation by lot. Applicants who al-\n", "ready have successfully completed at least one module component of the respective module will be given prefe-\n", "rential consideration. Places on all courses of the module component with a restricted number of places will be\n", "allocated in the same procedure. A waiting list will be maintained and places re-allocated as they become availa-\n", "ble.\n", "\n", "Additional information\n", "\n", "--\n", "\n", "Referred to in LPO I (examination regulations for teaching-degree programmes)\n", "\n", "--\n", "\n", "Module title\n", "\n", "Abbreviation\n", "\n", "Supply, Production and Operations Management. An Introduction\n", "\n", "12-BPL-G-082-m01\n", "\n", "Module coordinator\n", "\n", "Module offered by\n", "\n", "holder of the Chair of Business Management and Industrial\n", "Management\n", "\n", "Faculty of Business Management and Economics\n", "\n", "ECTS Method of grading\n", "\n", "Only after succ. compl. of module(s)\n", "\n", "5\n", "\n", "numerical grade\n", "\n", "--\n", "\n", "Duration\n", "\n", "Module level\n", "\n", "Other prerequisites\n", "\n", "1 semester\n", "\n", "undergraduate\n", "\n", "--\n", "\n", "Contents\n", "\n", "This course will provide students with an overview of fundamental processes in procurement, production and lo-\n", "gistics and the related corporate functions as well as a model-based introduction to related planning procedu-\n", "res.\n", "\n", "Intended learning outcomes\n", "\n", "The students will be able to describe and discuss the objectives and major processes in the domains of corpo-\n", "rate procurement, production and logistics as well as their interdependencies. Furthermore, they are capable of\n", "developing and applying basic planning models in these fields.\n", "\n", "Courses (type, number of weekly contact hours, language — if other than German)\n", "\n", "V + Ü (no information on SWS (weekly contact hours) and course language available)\n", "\n", "Method of assessment (type, scope, language — if other than German, examination offered — if not every semester, information on whether\n", "module is creditable for bonus)\n", "\n", "written examination (approx. 60 minutes)\n", "\n", "Allocation of places\n", "\n", "Number of places: 405. No restrictions with regard to available places for Bachelor's students of Wirtschaftswis-\n", "senschaft (Business Management and Economics), Wirtschaftsmathematik (Mathematics for Economics) and\n", "Wirtschaftsinformatik (Business Information Systems). The remaining places will be allocated to students of\n", "other subjects. Should the number of applications exceed the number of available places, places will be allo-\n", "cated in a standardised procedure among all applicants irrespective of their subjects according to the following\n", "quotas: Quota 1 (50% of places): total number of ECTS credits already achieved in the respective degree subject;\n", "among applicants with the same number of ECTS credits achieved, places will be allocated by lot. Quota 2 (25%\n", "of places): number of subject semesters of the respective applicant; among applicants with the same number of\n", "subject semesters, places will be allocated by lot. Quota 3 (25% of places): allocation by lot. Applicants who al-\n", "ready have successfully completed at least one module component of the respective module will be given prefe-\n", "rential consideration. Places on all courses of the module component with a restricted number of places will be\n", "allocated in the same procedure. A waiting list will be maintained and places re-allocated as they become availa-\n", "ble.\n", "\n", "Additional information\n", "\n", "--\n", "\n", "Referred to in LPO I (examination regulations for teaching-degree programmes)\n", "\n", "--\n", "\n", "Module title\n", "\n", "Managerial Accounting\n", "\n", "Module coordinator\n", "\n", "holder of the Chair of Business Management and Accoun-\n", "ting\n", "\n", "Abbreviation\n", "\n", "12-IntUR-G-082-m01\n", "\n", "Module offered by\n", "\n", "Faculty of Business Management and Economics\n", "\n", "ECTS Method of grading\n", "\n", "Only after succ. compl. of module(s)\n", "\n", "5\n", "\n", "numerical grade\n", "\n", "--\n", "\n", "Duration\n", "\n", "Module level\n", "\n", "Other prerequisites\n", "\n", "1 semester\n", "\n", "undergraduate\n", "\n", "--\n", "\n", "Contents\n", "\n", "Content:\n", "This course offers an introduction to aims and methods of managerial accounting (cost accounting).\n", "\n", "Outline of syllabus:\n", "1. Managerial accounting and financial accounting\n", "2. Managerial accounting: basic terms\n", "3. Different types of costs\n", "4. Cost centre accounting based on total costs\n", "5. Job costing based on total costs\n", "6. Cost centre accounting and job costing based on direct/variable costs\n", "7. Budgeting and cost-variance analysis\n", "8. Cost-volume-profit analysis\n", "9. Cost information and operating decisions\n", "\n", "Reading:\n", "Coenenberg/Fischer/Günther: Kostenrechnung und Kostenanalyse, Stuttgart.\n", "Friedl/Hofmann/Pedell: Kostenrechnung. Eine entscheidungsorientierte Einführung.\n", "(most recent editions)\n", "\n", "Intended learning outcomes\n", "\n", "After completing the course \"Management Accounting and Control\", the students will be able to\n", "(i) set out the responsibilities of the company's internal accounting and control;\n", "(ii) define the central concepts of internal enterprise computing restriction and control and assign case studies\n", "the terms;\n", "(iii) apply the basic methods of internal corporate accounting and control on a full and cost base to idealized ca-\n", "se studies of medium difficulty that calculate relevant costs and benefits and take on this basis a reasoned deci-\n", "sion.\n", "\n", "Courses (type, number of weekly contact hours, language — if other than German)\n", "\n", "V + Ü (no information on SWS (weekly contact hours) and course language available)\n", "\n", "Method of assessment (type, scope, language — if other than German, examination offered — if not every semester, information on whether\n", "module is creditable for bonus)\n", "\n", "written examination (approx. 60 minutes)\n", "\n", "Allocation of places\n", "\n", "Number of places: 640. No restrictions with regard to available places for Bachelor's students of Wirtschafts-\n", "wissenschaft (Business Management and Economics), Wirtschaftsmathematik (Mathematics for Economics)\n", "and Wirtschaftsinformatik (Business Information Systems). The remaining places will be allocated to students\n", "of other subjects. Should the number of applications exceed the number of available places, places will be allo-\n", "cated in a standardised procedure among all applicants irrespective of their subjects according to the following\n", "quotas: Quota 1 (50% of places): total number of ECTS credits already achieved in the respective degree subject;\n", "among applicants with the same number of ECTS credits achieved, places will be allocated by lot. Quota 2 (25%\n", "of places): number of subject semesters of the respective applicant; among applicants with the same number of\n", "\n", "subject semesters, places will be allocated by lot. Quota 3 (25% of places): allocation by lot. Applicants who al-\n", "ready have successfully completed at least one module component of the respective module will be given prefe-\n", "rential consideration. Places on all courses of the module component with a restricted number of places will be\n", "allocated in the same procedure. A waiting list will be maintained and places re-allocated as they become availa-\n", "ble.\n", "\n", "Additional information\n", "\n", "--\n", "\n", "Referred to in LPO I (examination regulations for teaching-degree programmes)\n", "\n", "--\n", "\n" ] } ], "source": [ "modules = re.findall(Patterns_MS_IS.PATTERN_ENTIRE_MODULE.value, text_Module_Catalogue)\n", "modules = clean_entries(modules, removal_patterns_BA_MM)\n", "\n", "for i in range (3):\n", " print(modules[i])" ] } ], "metadata": { "kernelspec": { "display_name": "py38", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.16" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }