Software Project Guide Page 1 of 9 Software Project Guide Semester Spring 2015 Created By, Research and Development section, Department of Computer Science, Virtual University of Pakistan Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 2 of 9 Table of contents: 1. 2. 3. 4. 5. 6. 7. Topics What is a software project? Purpose of a software project Should I take software project? Eligibility Criteria Guidelines to register for a Project Grading Policy Software Projects for Spring 2015 Page no. 3 3 4 4 4 4 5 Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 3 of 9 Whom to Contact? This booklet provides comprehensive details to the students who are planning to take Software development projects as their final projects. Therefore, such students are advised to go through it in complete. If any of the quires are unsatisfied even after having read the information given in rest of the booklet then students should contact to concerned supervisor. 1. What is a Software Project? At first it is important to understand what the software is? “Software” can be defined comprehensively as, 1“Computer Programs that, when executed provide desired function and performance, data structures that enable the programs to adequately manipulate information and documents that describe the operation and use of programs”. Looking at the definition indicates clearly that developing software does not mean mere development of programs (or code) rather it requires the related documents to be produced as well. To develop software effectively requires following a process. Each stage of this process culminates in one or more artifacts. Examples of software projects are, software developed for face recognition, building a Customer Relationship Management (CRM) System, Flight Simulation System, Point of Sale (PoS) System, a Web Portal, an Electronic Store Front etc. Software projects can be aimed at producing a desktop application, an embedded application (like to be used in microwave oven) or some online application. 2. Purpose of a Software Project: The University aims at producing such IT professionals who leave the impression of excellence in knowledge and skills in their professional lives. Students are encouraged to come up with innovative and unexplored ideas while addressing a problem. After having completed the project students will be expected to have the following skills, It will provide the students with an opportunity to implement the concepts they have learned throughout their degree program so far. Awareness of the latest technologies being used in the industry and more importantly the application of those technologies. Knowledge of all the formalities required to undertake a software project. Enough confidence to take the challenges of their practical environment. This definition is taken from the book “Software Engineering A Practitioner’s Approach (Fourth Edition) by Roger S. Pressman” 1 Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 4 of 9 3. Should I take Software Project? The development project is recommended for those students who have an aptitude and interest (equally important) for development. Presence of analytical skills to solve a problem is also highly requisite. If a student finds these ingredients in himself/herself then deficiencies (to a certain extent) in the areas like programming, data base and software engineering etc can be overcome but such a student will have to put extra efforts (depending upon the deficiencies) to make his/her weak areas stronger. As having ambitions only does not lead to the goal, one has to strive for those ambitions to get them materialized. 4. Eligibility Criteria No student below 1.75 Effective CGPA will be allowed to take the project title. MCS/MIT Students must have completed 30 credit hours to become eligible for taking the final project. So don’t enroll in CS619 course or drop your cs619 course if you have earned less than 30 credit hours. BSCS/BSIT Students must have completed 90 credit hours to become eligible for taking the final project. So don’t enroll in CS619 course or drop your cs619 course if you earned less than 90 credit hours. 5. Guidelines to register for a Project Please read the following to get to know, how you can get registered for you final project. First of all, you have to enroll in CS619 course in Spring 2015 semester through course selection (contact course_selection@vu.edu.pk for enrollment). Carefully read the eligibility criteria and only send a request if you are eligible to take a final project title. Otherwise drop your cs619 course. The project selection will be done through LMS. Students will be required to make groups. In a group maximum two (2) students are allowed. A student can also choose to do the project alone (a single member of the group instead of two) Students who fail to submit their final project in specified duration (two consecutive semesters) will need to take course CS619 in extra semester to continue the same project. 6. Grading Policy Students will be clearly communicated about the deliverables they need to submit on specified dates. This is important to remember that each deliverable carries a significant weightage so students are advised to take each deliverable very seriously and submit it according to the date announcements according to the submission schedule. While evaluating the students the following factors will be considered important Effective use of time and of visual aids. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 5 of 9 Organizational and presentation skills. Seriousness and dedication of the students in meeting the announced dates for each deliverable. 7. Software Projects for Spring 2015 Following is the list of projects which have been offered for Spring 2015. Students can only select a project from this given list. Students have to adhere to the requirements specified with each project as the evaluation of the executable artifact will be performed accordingly. Next, each offered project’s detailed information is provided. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 6 of 9 Urdu Stemmer Stemming is the term used in linguistic morphology and information retrieval to describe the process for reducing inflected (or sometimes derived) words to their word stem or root form i.e. generally a written word form. (Wikipedia) The goal of both stemming is to reduce inflectional forms and sometimes derivationally related forms of a word to a common base form. For instance: am, are, is be car, cars, car's, cars' car (Stanford) This application will apply stemming on Urdu words. Given an input comprising one or more words separated by space character, it will reduce them to their base form. Input Output باتوں باتیں بات الحاصل حاصل الزوال زوال The complete method and steps to implement such a stemmer are given in following research paper. So you have to first read and understand it completely. Then implement it the same way. Your final deliverable marks will depend on how well you have implemented the idea from the research paper, in your application: http://www.aclweb.org/anthology/W09-34#page=50 You need to implement everything, so no readymade or built in solutions for various aspects of application, will be acceptable. Don’t forget to put reference of this paper at appropriate place inside your final report. Tools: Java, Microsoft.Net, Python, or any other modern programming language. SQL Server, MS Access, MySQL, Oracle or any DBMS tool. Supervisor Name: Usman Waheed Email ID: usman.waheed@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 7 of 9 Framework for Plagiarism Detection Plagiarism is the term that is used to describe the situation when a writer copies another writer's work and passes it off as their own. A plagiarism checker is an important part of current era. Increased number of students and assignments according to current trends and accessibility of artifact over the Internet has increased the probability of copying. By employing a plagiarism checker, we can quickly check whether a body of work contains any sections that have been copied from elsewhere. Teachers are increasingly aware of the issues of plagiarism and check work frequently. This helps them to identify students who are using plagiarism as a form of cheating. Proposed solution is for java code or other language. Types of plagiarisms: Simple copy-paste with some spacing and comments modification. By renaming Methods, fields, classes Reordering of the code that does not affect the final output. Addition of redundant lines of code and some advance level plagiarism is also done by Changing of the control structures, mixing of several sources, mixing of own and others’ code. Methods to deduct the plagiarism: Following methods will be used to deduct the plagiarism. 1. Attribute counting I. Counting operators and operands 2. Structure metrics I. Compare the structure II. Usage of tokens Following architecture will be used for java code 1. Analyzer – lexical and syntactical analysis of the code I. Language specific II. Produce the syntax tree and stores it into the database based on ANTRL (Another Tool for Language Recognition). 2. Comparator: Compare elements can be used to compare code, parse/ syntax trees or fingerprints. Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 8 of 9 Working of system: i. ii. iii. iv. v. vi. vii. viii. ix. If the database contains Fingerprint for file I, go to IV Call compute Fingerprint (file1) Store the fingerprint f1 into the database If the database contains Fingerprint for file II, go to VII Call compute Fingerprint (file2) Store the fingerprint f2 into the database Forward the fingerprints to the comparator Call compute Similarity (f1, f2) Store the values into the database Report Generated: In the end report will be generated which will show the matching statistic of file 1 to others files. Note: student can choose any language instead of java Supervisor Name: Tanweer Arshad Email ID: as2@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan Software Project Guide Page 9 of 9 “The Smart Miner”-Efficient Data Mining Software It is a desktop/web application which will provide the facility to implement the different Data Mining algorithms to its user. The algorithms include “1R”, “Mean Imputation”, “Hot Deck Imputation” and “Binning”. Understanding and learning of these algorithms is mandatory for the students. Helping/Supporting PPT File Supporting PPT file can be downloaded from: http://vulms.vu.edu.pk/Courses/CS619/Downloads/classification_sm.ppt Requirements 1. There is only one user of this software. 2. The user will enter the data set in the software on which the Data Mining algorithms will be performed. The software should handle any data set (small, big). 3. The software should give the option to classify the data with the help of 1R algorithm. 4. The software should give the option to deal with missing values. a. In this process two algorithms will be used: i. Mean imputation ii. Hot deck imputation 5. The software should give the option to deal with the noisy data. For this purpose “Binning algorithm” will be used. Tools: Development environment: Java, Microsoft.Net framework, or any other modern programming language DBMSs SQL Server, MS Access, MySQL, Oracle Supervisor Name: Shabib Aftab Email ID: shabib.aftab@vu.edu.pk Research and Development Section, Department of Computer Science, Virtual University of Pakistan