
CALIFORNIA STATE UNIVERSITY, NORTHRIDGE Automation for CSUN Computer Science Department Course Scheduling A thesis submitted in partial fulfillment of the requirements For the degree of Master of Science in Computer Science By Rayna Burgess May 2017 SIGNATURE PAGE The thesis of Rayna Burgess is approved: Dr. Adam Kaplan Date Dr. John Noga Date Dr. Rick Covington, Chair Date California State University, Northridge ii TABLE OF CONTENTS Signature Page .................................................................................................................... ii List of Figures ..................................................................................................................... v Abstract ............................................................................................................................. vii 1 INTRODUCTION ...................................................................................................... 1 1.1 The Problem ......................................................................................................... 1 2 LITERATURE REVIEW ........................................................................................... 5 2.1 Timetabling Strategies.......................................................................................... 5 2.2 Available Timetabling Systems ........................................................................... 6 2.3 Time Table Tool Selection ................................................................................... 8 2.4 OptaPlanner Constraint Satisfaction Engine ........................................................ 9 2.4.1 Constraint Satisfaction Problem ................................................................... 9 2.4.2 OptaPlanner Problem .................................................................................. 10 2.4.3 CSUN Scheduler Problem .......................................................................... 11 2.4.4 OptaPlanner Constraint Rules ..................................................................... 12 2.4.5 OptaPlanner Algorithm Configuration ....................................................... 13 2.4.6 OptaPlanner Engine Integration .................................................................. 15 2.5 Web Application Design and Development ....................................................... 16 2.5.1 Spring Boot – Java Server Framework ....................................................... 20 2.5.2 AngularJS – JavaScript Browser Framework ............................................. 23 3 ANALYSIS AND REQUIREMENTS ..................................................................... 24 3.1 Current Manual Process for Schedule Creation ................................................. 24 3.2 Instructor Preferences Automation..................................................................... 25 3.3 Schedule Generation Automation ...................................................................... 26 3.3.1 Schedule of Classes Hard Constraints ........................................................ 26 3.3.2 Schedule of Classes Soft Constraints .......................................................... 27 4 DESIGN OF SOLUTION ......................................................................................... 28 4.1 Web Architecture ............................................................................................... 28 4.1.1 Java Spring Boot ......................................................................................... 29 4.1.2 MySQL Database ........................................................................................ 29 4.1.3 AngularJS .................................................................................................... 30 4.2 Database Design ................................................................................................. 30 iii 4.3 Web Server Design............................................................................................. 33 4.3.1 Web Server File Structure ........................................................................... 35 4.4 Front End Single Page App Design.................................................................... 36 5 IMPLEMENTATION ............................................................................................... 39 5.1 Web Front End Implementation ......................................................................... 39 5.1.1 Instructor Page ............................................................................................ 39 5.1.2 Home Page .................................................................................................. 44 5.2 Web Server Implementation............................................................................... 44 5.2.1 Typical Data Request .................................................................................. 45 5.2.2 OptaPlanner................................................................................................. 51 5.3 Challenges and Lessons Learned ....................................................................... 61 5.3.1 Selecting the Development Stack ............................................................... 61 5.3.2 Acquiring adequate hardware ..................................................................... 62 6 CONCLUSIONS ....................................................................................................... 63 6.1 Practical Schedule Generation ........................................................................... 63 6.2 Instructor Preferences Automation..................................................................... 63 7 FUTURE ENHANCEMENTS ................................................................................. 64 7.1 Authentication and Authorization ...................................................................... 64 7.2 Web Sockets for Engine Controls ...................................................................... 65 7.3 Remaining Constraints ....................................................................................... 65 7.4 Feature Tags for Rooms and Courses ................................................................ 66 7.5 More Flexible Instructor Time Preferences ....................................................... 66 References ......................................................................................................................... 67 Appendix A – User Stories ............................................................................................... 69 Appendix B – Current Instructor Preferences Paper Memo ............................................. 71 iv LIST OF FIGURES Figure 1 Published Schedule of Classes (SOLAR screenshot) ........................................... 1 Figure 2 Timetabling Solution Space Size.......................................................................... 3 Figure 3 Timetabling Tool Choices .................................................................................... 7 Figure 4 General Constraint Satisfaction Problem and Solution ...................................... 10 Figure 5 OptaPlanner Problem and Solution .................................................................... 11 Figure 6 CSUN Scheduler Problem and Solution............................................................. 12 Figure 7 Drools File and Rule Format Definitions ........................................................... 13 Figure 8 OptaPlanner Phases and Configurable Algorithms ............................................ 14 Figure 9 OptaPlanner Engine Integration ......................................................................... 16 Figure 10 Web Application Terms and Concepts ............................................................. 19 Figure 11 Spring Boot Relation to Spring ........................................................................ 20 Figure 12 Current Method of Generating Schedules ........................................................ 25 Figure 13 High Level Architecture ................................................................................... 29 Figure 14 Database High Level Entity Relationship Diagram ......................................... 32 Figure 15 Database Solution Entity Relationship Diagram .............................................. 32 Figure 16 Database Instructor Entity Relationship Diagram ............................................ 33 Figure 17 Web Server Architecture .................................................................................. 35 Figure 18 Web Server Code File Structure ....................................................................... 36 Figure 19 Front End Architecture ..................................................................................... 38 Figure 20 CSUN Scheduler Navigation Bar ..................................................................... 39 Figure 21 User Time Preference Grid ............................................................................... 41 v Figure 22 Instructor Course Preference Selection with No Courses ................................ 42 Figure 23 Add Courses Modal .......................................................................................... 42 Figure 24 Add Courses Modal Search Box ...................................................................... 43 Figure 25 Get List of Terms Sequence Diagram .............................................................. 45
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages79 Page
-
File Size-