Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RUBRICS
Report/Assignment 2
S.No Components Marks(100)
Implementation 90
1.
1) Language used (5)
2) Number of classes (5)
3) Number of functions (5)
4) Data Structures used (5)
5) Variable declaration (5)
6) Number of nested for loops used (5)
7) Database connectivity (5)
8) New mode of Input/output (Hardware (5)
devices) (5)
9) API/Interface (5)
10) Programming Alignment or style (5)
11) Coupling (5)
12) Cohesion (5)
13) Time Complexity (5)
14) Space complexity (5)
15) Snapshots (10)
16) Results (10)
2. Conclusion 5
3. References 5
Total 100
1)Languages Used:
➢ Simple
➢ Object-Oriented
➢ Distributed
➢ Multi-threaded
➢ Dynamic
➢ Portable
➢ Architecture Neutral
In Java programming language all source code is written in plain text files ending with Java
extension. Those source files then compiled into class files by the Javac compiler. A. class
file does not contain code that is native to your processer: it instead contain byte codes- the
machine language of Java Virtual
MySQL
MySQL is the world's most used open source Relational Database Management
system(RDBMS) as of 2008 that runs as a server providing multiuser access to a number of
databases. It is named after co-founder Michael Widenius' daughter, My. The SQL phrase
stands for Structured Query Language. The MySQL development project has made its source
code available under the terms of the GNU General Public License, as well as under a variety
of proprietary agreements. MySQL was owned and sponsored by a single for-profit firm, the
Swedish company MySQL Lab, now owned by Oracle Corporation. MySQL is a popular
choice of database for use in web applications, and is a central component of the widely used
LAMP open source web application software stack—LAMP is an acronym for "Linux, Apache,
MySQL, Perl/PHP/Python." Free-software -open source projects that require a full-featured
database management system often use MySQL.
Subject management module in this project is meant for the users. In this module, subjects are
allocated for users. It does the following tasks:
✔ View timetable
Faculty does
View Timetable
View timetable
Principal does
View Timetable
GENETIC ALGORITHM
2. Genetic algoritms follow the idea of SURVIVAL OF THE FITTEST- Better and better
solutions evolve from previous generations until a near optimal solution is obtained.
4. A genetic algoritm is an interative procedure that represents its candidate solutions as strings
of genes called chromosomes. Generally applied to spaces which are too large.
5. Genetic algorithms are often used to improve the performance of other AI methods such as
expert system or natural selection.
6. The method learns by producing offspring that are better and better as measured by a fitness
function, which is measure of the objective to be obtained. (maximum or minimum).
TILING ALGORITHMS:
A tiling algorithm collects the classes to be scheduled into clusters known as tiles. Each of
these tiles hold classes which can run simultaneously; these tiles are then assigned times using
a separate search algorithm of some kind. This approach was used with some degree of success
(Kingston, 2005), but only in situations such as that in a high school where several classes of
students sit the same subject simultaneously. These groups of classes are clustered into the tiles
for scheduling – this does not tend to happen in a university timetable where cohort groups sit
far more varied courses.
5) VARIABLES USED:
In this for nested for loops are used. The Genetic algorithm and tiling algorithm consists of
four nested loops.
The system is implemented in such a way that all the valid information’s are stored in the
database. Database design converts the data model developed in logical designing to database
definition. This is supported by database software. The management of data involves baoh the
definition of structure of the storage of information and provision of mechanism for the
manipulation of information. In addition database system must provide safety of information
handle, despite the system crashes due to attempts of unauthorized access. A database is a
collection of interrelated data stored with minimum redundancy to serve many users quickly
and efficiently. In database design, several views of data must be considered along with the
person who users them. The logical view is what the data look like, regardless of how they are
stored. The physical view is the way data exist in physical storage. Tables are carefully
designed aiming to achieve its main objectives i.e, to make information access easy, quick,
inexpensive and flexible for user.
NORMALIZATION
Normalization is the process of analyzing the given relation schemas based on their Functional
Dependencies and primary keys to achieve the desirable properties of Minimizing Redundancy,
Minimizing the insertion, deletion and updating anomalies. Normalization is carried out for the
following reasons:
• To structure the data so that perfect relationship between entries can be represented.
• To reduce the need to restructure or reorganize data when new application requirement arises.
A table is in 1NF if there are no duplicate rows in the table. Each cell is single valued. Entries
in a column are of the same kind.
2. Second Normal Form (2NF)
Second Normal form is based on the concept of full functional dependency. A table (relation)
is in 2NF if .It is in First Normal Form and if all non-key attributes are dependent on the key.
Dependent on only a part of the (composite) key, the definition of 2NF is sometimes phrased
as, "A table is in 2nF if it is in 1NF and if it has no partial dependencies.”
Third Normal Form is based on the concept of transitive dependency. A table (relation) is in
3NF if it is in Second Normal Form and if it has no transitive dependencies.
Software Specification
➢ Technology : JSP/SERVLET
➢ Compiler : JDK
➢ Database : MySQL
9) Interfaces
MySQL is primarily an RDBMS and ships with no GUI tools to administer MySQL databases
or manage data contained within the databases. Users may use the included commandlines
tools, or use MySQL "front-ends", desktop software and web applications that create and
manage MySQL databases, build database structures, back up data, inspect status, and work
with data records.. The official set of MySQL front-end tools, MySQL workbench is actively
developed by Oracle, and is freely available for use.
10) CODING:
The system contains 3 users , Faculty , Principal and Admin. Each user have their own
functionalities as follows .
Output : timetable
Logic:
Step 1: Read subject , faculty and semester from the tables subject, faculty and semester
respectively.
Step 3: subject allocated for facultys successfully in the table named Timetable.
Step 1: Read subject , faculty and semester from the tables subject, faculty and semester
respectively.
Input : Date,Reason,Substitute
Logic:
Step 1: Read date, reason and substitute faculty from the tablefac_leave
Step 2: Get Substitute status from fac_leave
Step 3: Request succesfully sent (Approve / Reject) If Facuty need to take a leave the he/she
can apply for leave with setting Substitutes. Here Date at which leave is required , reason and
substitute.
Input : Request
Step 1: Read the information and Apply for leave with providing date ,reason and aubstitute
facilty in the table fac_leave
Input : Request
Input : Request
Output : timetable
Logic:
Step 1: Read subject , faculty and semester from the tables subject, faculty and semester
respectively.
Apply Leave
package autotimetable;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
String path="index.jsp#overlay";;
try {
DB d=new DB();
String uname=request.getParameter("name");
String pass1=request.getParameter("pass1");
String pass2=request.getParameter("pass2");
String fname=request.getParameter("fn");
String lname=request.getParameter("ln");
String addr=request.getParameter("addr");
String contactno=request.getParameter("cn");
String dob=request.getParameter("dob");
String doj=request.getParameter("doj");
String qualific=request.getParameter("qu");
String email=request.getParameter("email");
String maddr=request.getParameter("maddr");
String course=request.getParameter("course");
String subjectlist[]=request.getParameterValues("subjectslist");
String slist="";
for(int i=0;i<subjectlist.length;i++)
{ // System.err.println("subjectlist :"+subjectlist[i]);
slist=slist+subjectlist[i]+",";
a.add(uname);
a.add(pass1);
a.add(pass2);
a.add(fname);
a.add(lname);
a.add(addr);
a.add(contactno);
a.add(dob);
a.add(doj);
a.add(qualific);
a.add(email);
a.add(maddr);
a.add(course);
a.add(slist);
d.addTeacher(a);
path="index.jsp?success"; }
finally { } response.sendRedirect(path); }
Substitute request
%@page import="java.sql.ResultSet"%
<!DOCTYPE html>
out.print("<table id='admin_menu'>");
out.print("<th>");
out.print("</th>");
out.print("<th>");
out.print("</th>");
out.print("<th>");
out.print("Requested By</th>");
out.print("<th>");
out.print("Requested For</th>");
out.print("<th>");
while(r.next())
out.print("<tr>");
out.print("<td>");
<a href='user/leaveAction.jsp?id="+session.getAttribute("id")
+"&date="+r.getString(2)+"&action=approved'
style='textdecoration:none;color:white'>Approve</a></div>");
out.print("</td>");
out.print("<td>");
<a href='user/leaveAction.jsp?id="+session.getAttribute("id")
+"&date="+r.getString(2)+"&action=Rejected'
style='textdecoration:none;color:white'>Reject</a></div>");
out.print("</td>");
11) COUPLING:
Coupling is a term to describe the interactions between components.The lower coupling, the
less interaction(i.e., more independence) between components.
Coupling(C) makes the value larger the more coupled the module is. This number ranges from
For example, if a module has only a single input and output data parameter
If a module has 5 input and output data parameters, an equal number of control parameters,
and accesses 10 items of global data, with a fan-in of 3 and a fan-out of 4,
12) COHESION:
If the methods that serve a class tend to be similar in many aspects, then the class is said to
have high cohesion.In a highly cohesive system, code readability and reusability is increased,
while complexity is kept manageable.
The functionalities embedded in a class, accessed through its methods, have much in
common.
Methods carry out a small number of related activities, by avoiding coarsely grained or
unrelated sets of data.
While in principle a module can have perfect cohesion by only consisting of a single, atomic
element – having a single function, for example – in practice complex tasks are not expressible
by a single, simple element. Thus a single-element module has an element that either is too
complicated, in order to accomplish a task, or is too narrow, and thus tightly coupled to other
modules. Thus cohesion is balanced with both unit complexity and coupling.
Computational complexity theory is the study of the complexity of problems that is, the
difficulty of solving them. Problems can be classified by complexity class according to the time
it takes for an algorithm usually a computer program to solve them as a function of the problem
size. In our problem the complexity is of merging of slots for each faculty. Time that takes for
this research project is much more.
Timeslot has an address in which a subject, student gathering going to the address and educator
showing the subject is related. Also, further on discussing the imperatives, We have utilized
composite configuration design, which make it well extendable to include or uproot as
numerous obligations.
In every obligation class the condition as determined in our inquiry is now checked between
two timetable objects. On the off chance that condition is fulfilled i.e. there is a crash is
available then the score is augmented by one.
15) SNAPSHOTS:
VIEW TIMETABLE:
APPLY FOR LEAVE:
VIEW LEAVE STATUS:
16) RESULTS:
ADMIN:
2. Conclusion:
Separate timetable for the individual class, faculty and labs are generated automatically by this
system. Various slot combinations can be acquired so that another timetable is generated as of
need. The project reduces time consumption and he pain in framing the timetable manually.The
project is developed in such a way that, no slot clashes occur providing features to tailor the
timetable as of wish. Additional features that is included in the project is that faculty
replacement is also made possible by listing out the available faculty who are eligible to be
assigned as temporary faculty until a replacement faculty is assigned The future enhancement
that can be developed from the project is to generate the master timetable for the departments
and to the entire college. This enhancement can be achieved my making further modifications
keeping the approach and techniques used for this project.
3. References:
https://www.ijser.org/researchpaper/Automatic-Timetable-Generation-
using-Genetic-Algorithm.pdf
https://myprojectbazaar.com/product/2016-projects/automatic-time-table-
generation-finalized-application-www-myprojectbazaar-com/
http://ijrise.org/asset/archive/CSE_UG504.pdf
http://edutechwiki.unige.ch/en/Educational_technology