Time Table Preparation Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Time table preparation is an expansion scheme to achieve a most appropriate and efficient output of scheduling. Constraint programming has found its application through this system which made use of open sources of Java and Struts. Algorithmic approach has much to do with any type of programming procedures. But when constraint solving domain is reached there are more efficacy if algorithms are expanded prior to the approaches linked to the programming procedures. Allowable area of execution is limited to the knowledge of the strata selected for modelling the system. The case becomes clear with the involvement of inputs in the output and vice versa. Historical background of triumph of the constraint systems makes much supportive and confident area of projection. The vastness of the area intended to explore is challengingly enormous even providing a parallel excellence possibility range. Match of the necessity and probabilities unveiled makes up the curiosity level. Perceptible success with the constraint programming for getting an automated system for time table preparation has been exhibited efficiently with the module accomplished. Constraint programming, Java and Struts get united to reach a reliable domain of solver which is in fact an automated approach to time table preparation.

The execution of a timetable preparation procedure always demands for a keen observation of the entire set of resources both tangible as well as intangible to achieve a better utilization for scheduling the activities to get completed on stipulated time. As far as time tables are considered, it is a fact that it is important at all levels of management like schools, colleges, universities, companies etc. Business has a higher expectation in time management sector with major implication and overview on the maximal level of exploitation. The hierarchical allocation of available assets and time to different human resources necessitates for a keen observation. Manual accomplishment can create redundancies in the overall outcome of the system expanded. Automation system is opted in such cases to reduce tedious and troublesome implementations and also becomes applicable to an enhanced level which facilitates trials and error removal to reach up with an efficient outcome. Majority of the implementation demands for complex evaluation and the same comes to picture in the case of the time table preparation system expanded. Java with Struts implementation makes an excellence of technical application in constraints system of solution with respect to the inputs which limits certain outputs. There are higher levels to be achieved in case of programming the constraints with Struts and Java. Linking of the constraint solution sorter with the objectives had to view the entre sets of claims from the part of the system.


To develop a constraint solving system for achieving an excellent domain of time table preparation making an automation procedure happen.


The automated domain of time table preparation has to achieve certain level of completion of activities which are stated below:

Develop an idea on the requirements and possibilities of constraints and constraint solvers

Expand an area of understanding in the achievable success of programming with Java and Struts implementation

Maintain an average at least expertise in research so that maximum output can be made available at academic level

Model a design for the automated system for time table preparation

Execute with the system designed for meeting the requirements

Assess the final scheme expanded to seek for the evaluations and tested results to deduce the further developments possible


Demand for a time table preparation system to be modelled has its history traced back to the time when there had been complications connected to resource allocation and exploitation of available assets. Constraint solving has found itself to be successful in the case of programming based on restrictions having an outlook to reach an outcome with least redundancies and clash. Overlaps and unavailability of essential resources after allocation can be seen as constriction for the system. Again there has a demand for achieving rationalization with least implication in case of absence or reduction of any type of resources. Time framing and scheduling of course wish for a better ground evaluation to see that the complexity of the system is possible with the scheme developed to attain it. Java being an open source with higher level of efficiency when united with Struts which is again an open source possibly to conquer the web application levels pose a complicated but objective oriented organization of programming. Much better statement can be seen in dictating that a complex system to achieve a success in getting a complicated trial broken has been achieved with the time table preparation system. The scheme moulded for the execution of the time table becomes an automated procedural implementation that accepts the inputs consisting of resource lists and restriction for each in the course of utility and time allotment. The outcome of course, a timetable will definitely have the censor from the inputs fed in terms of available supplies of assets. There can be more than one solution for the same but the real implementation demands for a least redundant one with proper observation of surrogating, multiple handling and overlapping issues midst of time table preparation. The system developed has been successful in all these matters with the help of Java and Struts in constraint programming.


Time Table Preparation

Time supervision is the action or procedure of effects aware manages over the quantity of time exhausted on exact performance, in particular to augment competence or output. Time running may be assisted by a variety of talent, equipment, and methods applied to direct time when achieving precise responsibilities, scheme and aims. A time administration scheme is a planned mixture of procedure, equipment, method, and systems. Typically time organization is a requirement in any assignment growth as it decides the scheme conclusion time and capacity.

Time table managing is a main allegation currently to evade diverse inefficiencies simultaneous with physical creation of time tables. Regarding any anxiety of preparation, there suits a requirement of correct assessment and utilization of assets. The time table must allow a plenty foundation by competitor but the predict of events ought to support an intellect of demand. The cipher of actions places a huge set of best presentation guideline in conditions of the management of preparation sector. Broad extend study on the time table supervision schemes have showed that constraint encoding perform fine with time research modus operandi. Specificity of the needs can defer much competent result for research approaches. While production with time table research obligation, there happen to essential to discover and overcome the field of restraint encoding. Answer based on such approaches stipulate for a fine described set of boundaries and property to attain an area of suitable explanations. The head challenges to be faced while arranging time tables are discrepancy association and substitute allotment. Work movement as well as earlier impression about the portion carries high plane of competence to organization.

In executive learning, resource supervision is the competent and efficient operation for an association's sources when they are required. Such property may contain monetary resources, account, human talent, manufacture resources, or information knowledge. In the dominion of scheme administration, procedure, method and viewpoint as to the finest loom for assigning assets have been developed. Resource organization is a key constituent to action resource approximation and scheme human resource organization. Both are necessary mechanism of a complete project running diagram to perform and watch a scheme productively. As is the case with the big regulation of development supervision, there are source organization software tools accessible that computerize and help the procedure of resource share to mission and collection resource visibility containing deliver and claim of resources.

Constraint Programming

In a constraint programming the variables are linked by means of constrains. Actually the constraint programming is not a programming language but it is the concept of programming. The constraint programming has little bits of difference from the ordinary programming concepts, they will not allowing to show the execution steps or intermediate sequence of solution for the execution but they produces the properties of the solutions. Because of this features the constraints programming can termed as a declarative programming. There are many kinds of constraints that are used in a constraints programming. Some of the constraints are used in s constraint satisfaction problems. The constraints may be sandwiched inside the programming language itself or it may be get as a separate software libraries.

In initial developments of constraint programming started with constraint logic programming in which constraints are inserted into the logic programming. Not only with the constraint logic programming the constraint programs can mix with the practical programming, term rephrasing, and crucial languages. There are some programming languages with built in support for constraints, they can be termed as imperative programming and functional programming. The constraint solving toolkits are used to realize the constraints in imperative programming. For an existing imperative programming the constraint solving toolkits are separate software libraries.

In a constrain programming the constraints are added to the host languages. The first host language for the constraint programming is logic programming so the constraint programming is initially called as constraint logic programming. The logic variables and backtracking are two concepts that will produce and share many vital features and information. Currently one or two libraries for constraint programming are needed for implementing Prolog. The approach of constraint programming is the search for state of world. In a constraint programming large number of constraints can be satisfied at the similar time. The state of the word is taken as a problem in constraint programming with a number of unknown variables. The main purpose of the constraint programming is to search values for all the unknown variables.

The constraint programming concept has some similarity to usual action study approach, in that the common lane to an answer is: To understand the clear idea about the problems and solution methods the problem to solve must be analyzed properly. Then format the condition or relationship of the solution method. The conditions and the relationships are the element for solution, so that they are used to model the problems. By the use of this relations and conditions the equations will be formed. To get this step the variables and relationships chosen will not be right itself, some other variables are also used for the development of equation to solve the problems. This equations are used to solve the problem after that the solution for the problem is developed from the equations. Because of the language itself has a built in solvers these solution forming method is very transparent to the user. In a constraint programming the execution steps are absent but the properties are visible.


In an object oriented programming language, codes are executes with items; however, for effortlessness of exercise and for significant motives, Java has ancient nature. Primordial Data kinds only accumulate importance and have no techniques. Prehistoric Types may be thinking of as rare information and are typically fixed characteristic within substance or applied as limited variables in schemes. Because primal types are not sub lessons of the entity fabulous group, each kind has a covering set which is a subclass of article, and can therefore be accumulated in a compilation or arrived as an item.

Java is a strapping category inspection language. There are two notion concerning category and substance. One is the entity form and the other the pattern/group the entity was shaped from. When an entity is shaped, the pattern/group is allocated to that entity which cannot be distorted. nature of an entity however can be altered by kind shine. Category of an item is linked with the entity position that referencing the purpose and decide what process can be carried out on the entity through that item location. Conveying the importance of one article orientation to a dissimilar form of entity situation is called category throwing.

The most frequently employed information arrangement in any coding language is a character string. For this cause java describes a particular article that is String. To collect same kind java substance to a collection, java has a particular collection entity for that. Both java matter and ancient kinds can be cumulated to arrays.


Struts are an open basis structure which creates construction of the web functions easier foundation on the java Servlet and JavaServer sheets knowledge.

Struts structure was shaped by Craig R. McClanahan and passed to the Apache Software basis in 2000.

Creating web functions by means of struts outline is quite compound, but it simplifies effects behind it is setup. It supports software expansion subsequent the MVC plan model. Several web functions are made up of only by JSP or Servlets. With JSP and Servlets, Java program is entrenched in the HTML language and the Java program calls println techniques to produce the HTML cipher correspondingly. Both processes have their reward and disadvantage; Struts congregate their power to obtain the finest of their organization.

Struts are strictly follows on Model-View-Controller plan concept, it is a functioning of JSP Model 2 structural design. Struts is a set of collaborate programmes, servlets, and JSP labels that create up a reworking MVC 2 plan. This description involves that Struts is a structure, rather than a records, but Struts also includes a general tag records and efficacy programmes that effort separately of the outline.

An HTTP demand from the customer browser produces an occurrence. The Web strongbox will react with an HTTP answer. The manager is liable for catching and decoding customer effort into events to be carried out by the model. The organizer is answerable for choosing the next sight oriented on consumer effort and the result of model processes. The manager obtains the demand from the browser, and creates the choice where to throw the demand. With Struts, the manager is an authority plan prototype realized as a servlet.

The trade sense informs the condition of the reproduction and assists to manage the stream of the submission. With Struts this is finished with an achievement group as a thin covering to the real industry sense. A model symbolizes a information of function and encloses the reason for admittance and influence that information. Any facts that are fraction of the constant condition of the request should exist in the model entities.


The scheme is exactly an applied research on constraint programming demanding for a firm foundation of literature and exploration. Initial implications had to be made clear with different stages of primary as well as secondary researches. Qualitative and quantitative investigations had to be mixed in such a way that better depth of Java and Struts were explored out to achieve a higher echelon of proficiency. Dealing with those open sources demanded an exact overview of the actual application leading to a probable apparent approach to constraint programming. Being a wider area, constraint solvers demand for a higher observance of possibilities in the programming podium selected. Java being an open domain had to be made a maid for support as far as the expectations kept, for which a connection to Struts was necessary so that constraints can be handled with their core involvement. Making up of all available features of Java and Struts to reach a solver section of restraint management thereby achieving behaviour of selectivity among the choice kept in programming area of the time table preparation system were completed with the applied research executed. The application of constraints in the overall performance schema of the time table preparation system modelled stipulated for a better level of administration in terms of resource distribution, reorganization, multitude provision and time supervision. Like any other domains of research, it is obvious that applied research demand for excellence of expertise. With respect to any programming application, there exist the possibilities of challenges of linking and coding activities. If constraint solution schemes are to be achieved there is more availability of issues. Established successes and domains of expansions had to be made clear to look out for expected problems and sorted out solutions for the same. From the expertise, changes and amendments could be made to accomplished activities that may produce increased level of efficiency. As a whole, applied research executed had to do much with completed, successful and probable issues linked with constraint programming and solvers with Java and Struts. Application levels of linked topics and domains had been conquered to and utmost heights.


The time table preparation system executed has succeeded in meeting the aim and objectives kept at the proposing period of the model expected to accomplish. A wish to expand an automated setup to achieve most possible efficacy in the constraint approach of resolving had been viewed completed with triumphant results through the project. Java, an open source had to do much under the construction to make the available constraints be linked to the entire system modelled. Struts being another open source for creating web applications often meeting the requirements in more level complexity made it up without creating much level of redundancies. The complicacy of domain of resolution had to be broken up to reach the objectives meeting the aim. Possibilities with respect to the restrictions kept form the part of the input arrays had to be processed in such a way to create a most reliable one at the output. Automation being the necessity of pace had been met with the system expanded. In fact there came complications amidst of programming due to a bit redundancy in the absorbed ideas of resolving with Struts and Java, success was ultimate with it and of course achieved. Other available approaches in the area of constraint programming may or may not be having the same level of complexity, the achieved system had to do much with challenges to reach up with the accrual solution of time table preparation. Constraint programming had to do real implementation of toughness only to reach a cheer of completion with least level of redundancies. Final touch of the scheme can be viewed as a fetching of most excellent one from a pool of average, good and best outcomes.




1. Introduction

1.1 To develop a useful interface to create complex time tables based on user constraints

2. Project Definition

2.1 SAT Solvers

3. Objectives to be achieved

3.1 Easy Access To Information

3.2 Timely updated information

3.3 Enhance Business Administration

4. Recommended Software's and Methodologies

4.1 Eclipse

4.2 Mysql

4.3 Jsp

4.4 Struts 2

4.5 Hibernate

4.6 Java Astrodynamics Toolkit(JAT)


5.1 Learning Outcomes

5.2 Principles of constraint solving.

6. Improve Student and Staff Satisfaction

6.1 Improve Management Satisfaction

6.2 Results

7. Unauthorized Modification

7.1 Corruption

7.2 Challenges

8. Glossary

9. References


Students and others with limited availability are often the most difficult to schedule into time tables or work shifts. We must look to ease many of the features that may be currently presenting an obstruction to the process. Some of the objectives to be achieved by creating this useful interface will be to - enable to create complex time tables based on user constraints. For e.g.

The time table should be able to allow us to specify maximum time slots that each person will be available (such as : 6 time slots or 8 etc)

Shift assignments should be easily modified and once assigned a person's name should be removable to avoid overlapping assignments.

Conflict Control (Prevention from Clashes between Staffs over Duplication, Tension free Substitution Allotment.)should be demonstrated with the use of detailed reports.

We must be able to generate Statistical reports of Allotment, changes, etc in detail. A detailed checklist makes your work lighter!

Misc: (Track Staffs' Working Hours. Ability to check by Day/Period/Subject. Allowing maximum persons, etc. are issues to be handled)

Many students discover the need to develop or hone their time management skills when they arrive at college. Unlike high school where teachers frequently structured your assignments and classes filled your day, in college, you will have less in-class time, more outside of class work, and a great deal of freedom and flexibility. These pages provide you with tips for managing your time well so you can get the most out of your Dartmouth experience.

Advantages of Time table Management

gain time

motivates and initiates

reduces avoidance

promotes review

eliminates cramming

reduces anxiety

Why time management is required ?

Good time management is essential to success at university. Planning your time allows you to spread your work over a session, avoid a 'traffic jam' of work, and cope with study stress. Studying at unit often involves meeting conflicting deadlines, and unless you plan ahead, you'll find it impossible to manage. To meet the demands of study you need to spread your workload over a session. Work out what needs to be done and when. Work out how to use your available time as efficiently as possible. The first step to good time management is to priorities your tasks. In other words, deciding which task is most important and should be completed first. For example, in a choice between reading for an essay due in four weeks or preparing a seminar presentation in two weeks, choose to prepare the presentation. To priorities successfully you must develop weekly and long term time management plans. Many students find long, medium and short term planning useful for organizing their study. Planning ahead saves time, stress and energy.

Project Definition

The aim of this project is to develop a useful interface that will enable to create complex time tables based on user constraints. The time table itself can be produced with a SAT Solver interface or another type of constraint solving software that the student does not have to develop on her/his own.

Still, it should be user friendly and allow user to input constraints, specify changes adjusted to the user's needs. SAT interface allows many complex real-time changes. A wide range of other naturally-occurring decision and optimization problems can be transformed into instances of SAT. It is supposed to be useful in many practical areas.

2.1 SAT Solvers

Numerous applications make pivotal the ability to identify whether a propositional formula is satisfiable [1]. Industry examples span multiple disciplines and include aspects of artificial intelligence, scheduling, and electronic design automation (EDA) [1].

Consider, for instance, electrical engineers, who use Boolean satisfiability (SAT) in verification of circuit designs, a technique that ultimately accelerates the development of newer circuits.

It is well known that SAT is NP-complete [3], which makes these solvers capable of solving many instances pretty fast. We can utilize this capability to adjust many timetable problems which can be solved in reasonable time by these solvers. 3. Other objectives to be achieved

To move from existing timetabling process to a new centralized database system providing Teaching, Class Scheduling, Room Booking and Examination Scheduling capability.

3.2 Easy Access To Information

To generate individual time tables along with reports and usage statistics through print and web and /or other media.

3.3 Timely updated information

This project should aim at adding value to the users by keeping a timely update of the scheduling changes.

3.4 Enhance Business Administration

Centrally produce, publish and distribute accurate timetables with an automated resolution of schedule clashes prior to commencement of teaching. Provide improved flexibility though centralized data input wherever required and optimize resource usage. Investigate business process improvements by establishing a sustainable scheduling environment that ensures best practice operations within this environment. It is expected to achieve savings in direct costs which can be allotted over number of Faculties by redirecting to other tasks approximately one-person year at various staff levels. (Ref: UNESIS). It is anticipated that further potential savings will be identified during system implementation.

4. Recommended Software's and Methodologies

4.1 Eclipse

Eclipse includes features such as Content Assist and code templates that enhance rapid development and others that accelerate your navigation and learning of unfamiliar code. Automatic compilation and building of complex projects provides additional acceleration by giving immediate feedback on code changes and project status. All of these features depend on correct configuration of the projects in your workspace.

Eclipse provides other ways to split these sources into logically separate projects or source folders without changing the original structure, which might be required by other tools or Ant build files. You can add inclusion and exclusion filters on a source folder to explicitly select the files that are or are not used to build this project.

Eclipse has excellent support for team repositories such as CVS.

4.2 MY SQl

MySQL is characterized as a fast, robust database with a good feature set.

free, fast, reliable open source relational database.

All password traffic is encrypted connecting to a server.

A privilege and password system that is very flexible and allows host-based verification.

Handles large databases. Maximum size for a table is 8TB

Clients may connect to the MySQL server using TCP/IP Sockets, Unix Sockets (Unix), or Named Pipes (NT). All ODBC 2.5 functions and many others.

All comparisons for normal string columns are case-insensitive.

The server can provide error messages to clients in many languages.

MySQL Server supports many different character sets that can be specified at compile and runtime.

Includes myisamchk, a very fast utility for table checking, optimization, and repair.

All of the functionality of myisamchk is also available through the SQL interface as well.

All MySQL programs can be invoked with the --help or -? options to obtain online assistance.

4.3 JSP

Auto compilation(translation.....), whenever there is a change in the code we dont have to recompile the jsp. it automatically does the compilation. by using custom tags and tag libraries the length of the java code is reduced.

Not deployment descriptor specific

Multiple deployment is avoided.

it is portable to other operating systems and non-Microsoft Web servers

Easy to embedded java components into the Dynamic pages

JSP segregates both static as well as dynamic content wherein the JSP and HTML programmer can carry out their work almost independently. JSP have all advantages of Java i.e. write once run anywhere. JavaServer Pages (JSP) lets you separate the dynamic part of your pages from the static HTML. You simply write the regular HTML in the normal manner using whatever Web-page-building tools you normally use. You then enclose the code for the dynamic parts in special tags most of which start with < and end with > .

Struts 2

A strut 2 doesn't have thread-safety issues as Action object are instantiated for each request. A servlet container generates many throw-away objects per request, and one more object does not impose a performance penalty or impact garbage collection.

Struts 2, an Action class implements an Action interface, along with other interfaces use optional and custom services. A strut 2 provides a base Action Support class that implements commonly used interfaces. Although an Action interface is not necessary, any POJO object along with an execute signature can be used as an Struts 2 Action object.

Container does not treat the Struts 2 Actions as a couple. Servlet contexts are typically represented as simple Maps that allow Actions to be tested in isolation. Struts 2 Actions can still access the original request and response, if required. While other architectural elements directly reduce or eliminate the need to access the HttpServetRequest or HttpServletResponse.

Struts1 and Struts 2 both supports the manual validation via a validate method.Struts1 uses validate method on the Action Form, or validates through an extension to the Commons Validator. However, Struts 2 supports manual validation via the validate method and the XWork Validation framework. The Xwork Validation Framework supports chaining validation into sub-properties using the validations defined for the properties class type and the validation context.

Programming the abstract classes instead of interfaces is one of design issues of struts1 framework that has been resolved in the struts 2 framework. Struts1 Action classes needs to extend framework dependent abstract base class. But in case of Struts 2 Action class may or may not implement interfaces to enable optional and custom services. In case of Struts 2 , Actions are not container dependent because they are made simple POJOs. Struts 2 provides a base ActionSupport class to implement commonly used interfaces. Albeit, the Action interface is not required. Any POJO object with an execute signature can be used as an Struts 2 Action object.

Struts 2 different lifecycles are created on a per Action basis via Interceptor Stacks. Custom stacks are created and used with different Actions, as required.


Hibernate is used to persist the objects in the database but we have to use the jdbc to connect to database.

Hibernate is basically a ORM tool which allows you to perform database actives without bothering about the Database change. You don't need to change the SQL scripts if you change database. Apart from that you don't need to write most of the SQL scripts for persisting deleting object and parsing the resultsets. With respect to performance hibernate provide the capability to reduce the number of database trips by creating the batch processing and session cache and second level cache. It also supports the transactions. More then this all it is very easy to make a cleaner separation of Data Access Layer from business logic layer. With all the capabilities mention above it is fast and easy to learn hibernate develop application and maintain easily.

It is a ORM tool used for OR Mapping which is not possible using JDBC.

Hiberante is not tightly tied with any underlaying database. Where as JDBC is tightly tield with the underlaying database."Write Once persist anywhere" using hibernate can achieved by changing the dialect in configuration xml file. where as in JDBC we need to change the code.

The automatic mapping of Java objects with database tables and vice versa is called Transparent Persistence. Hibernate provides transparent persistence and developer does not need to write code explicitly to map database tables tuples to application objects during interaction with RDBMS. With JDBC this conversion is to be taken care of by the developer manually with lines of code.

Hibernate is data base independent, same code will work for all data bases like ORACLE, MySQL , SQLServer etc.

As Hibernate is set of Objects, you don't need to learn SQL language. You can treat TABLE as a Object.

Hibernate supports Query cache and It will provide the statistics about your query and database status.

Don't need Query tuning in case of Hibernate. If you use Criteria Quires in Hibernate then hibernate automatically tuned your query and return best result with performance.

You will get benefit of Cache. Hibernate support two level of cache. First level and 2nd level. So you can store your data into Cache for better performance.

Development fast in case of Hibernate because you don't need to write queries.

No need to create any connection pool in case of Hibernate. You can use c3p0. In case of JDBC you need to write your own connection pool.

In the xml file you can see all the relations between tables in case of Hibernate. Easy readability.

You can load your objects on start up using lazy=false in case of Hibernate. JDBC Don't have such support.



"JAT is a library of components to help users create their own application programs to solve problems. It is not an application program, although there are a number of demo programs included. You have to be able to write Java or Matlab programs to use JAT. After using COTS Astrodynamics software, we have learned that no one application can satisfy all the needs of a researcher in the field of Astrodynamics. Therefore, we decided that JAT should be a software component library so that the users could have flexibility to create their own applications. However, since we are asking users to develop their own applications, the software components must be easy to integrate and use". The choice of the programming language is usually a design time issue. However, in this project, the Java programming language was chosen for the following reasons:

1. Java is the preferred programming language of the initiators of the project

2. The initiators of the project already have a significant amount of source code in Java for the project

3. Java microchips have the potential to enable use of this software for spacecraft control in the future.


5.1 Learning Objectives :

When a timetable is constructed by the SAT solver, it will hardly be perfect to the timetable designer. He or she would like to change the period assignment of the timetable by hand or by using the solver again.

We will be able to show how this can be done.

Changing the room assignment may can also be illustrated.

When teachers or classes are absent, adjustments are needed for a single day. These daily adjustments are often needed.

We can show how to handle daily adjustments by creating a new curriculum for that single day, which leads us to a special case of assigning periods, because only a part of the original curriculum is considered, as is only one single day. Absence of teachers or students can last longer than a day, for instance because of a school trip. In that case we need multiple daily adjustments. We'll show how daily adjustments can be extended to multiple daily adjustments.

6. Data flow diagram

7. Improve Student and Staff Satisfaction

Increase student satisfaction by providing a stable timetable where prime time is allocated to core subjects. Gain additional satisfaction through the provision of web-based timetable visibility. Improve staff satisfaction by reducing efforts associated with allocating space, equipment and resources.

7.1 Improve Management Satisfaction

Improve management satisfaction as a result of enhanced resource planning, which will give a clearer picture of the Student - Staff ratio and improve Staff availability and increase Student enrolment. Once all project objectives have been met and products delivered, the responsibility for maintaining the system will lie with the SDU (Student Database Unit)

7.2 Results

Once we know how timetabling can be handled by modelling it as a resolving problem, we want to learn about the performance for future enhancements.

8. Unauthorized Modification

Access to data stored will be password controlled. The Timetabling coordinator will be responsible for establishing user accounts on the database and for maintaining them. Access rights (create, modify, delete, execute) will be applied to every item of every object in the database for each user. Users requiring read-only access (the default) will have all of these rights revoked. The system will prevent any user from modifying data that they do not own, regardless of the assigned rights. Management and maintenance of user accounts will be a priority and carefully controlled activity.

8.1 Corruption

If timetabling data becomes corrupt or is inadvertently modified in an irretrievable way, it is essential that the data be recoverable to the most recent accurate state possible.

9. Challenges

Interfacing with a SAT Solver or constraint solver

Designing a proper input system

Outputting the result

10. Glossary

1. Boolean expression - an expression consisting of a combination of literals and Boolean operators, specifically AND, OR, and NOT, that evaluates to either TRUE or


2. Boolean satisfiability problem (SAT) - a decision problem in which a Boolean expression is analyzed for a set of Boolean variable assignments that would give said expression a TRUE truth value

3. Non-determininistic polynomial (NP)-complete - the class of problems that are the hardest problems in NP, the set of problems most likely not in P, i.e., the set of problems for which there exists no algorithm with better than worst-case exponential-time performance, including polynomial-time performance