Computer Science Master’s Project Guide CIS 700B Computer Science Project Guide Sept-2001 CONTENTS 1. General Procedures 2. Faculty Research Interests 3. Project Proposal Format 4. Project Final Report Format 3 7 12 22 2 Computer Science Project Guide Sept-2001 1. GENERAL PROCEDURES This section describes general guidelines for the Master’s project, including the required proposal, topics, advisors, deadlines, associated courses, etc. Section 2 contains a list of current faculty members and their areas of interest. This list is intended to guide students in their search for an advisor whose interests overlap with those of the student. Section 3 describes the required format for the project proposal. Section 4 describes the format of the written project report and documentation required for the project. 1.1 Project Proposal The PROJECT PROPOSAL is the background and planning document for the project. It must be done with professional care and thoroughness. It must be the product of the student’s own original thought and effort. Any use of others’ work must be properly referenced in accordance with standards of scholarship in general and the NJIT Honor Code in particular. The project proposal is written by the student and must be approved by his/her advisor and by the CS department before the student enrolls in the project course CIS 700B. Master's students should contact a prospective project advisor as early as possible in their course of study since the project advisor may expect certain courses to be taken in preparation for the project. The proposal itself should be developed in consultation with the advisor. It should be initiated by the first half of the semester prior to the semester in which the project is done, and even earlier for some advisors. Completed proposals are submitted to the CS department and reviewed for approval by the Master’s in Computer Science committee. 1.1.1 Proposal Deadlines For projects that are to begin in a Spring semester, the proposal is due at 2 PM on November 15 (or the first business day after November 15 if the office is closed that day). For projects that are to begin in a Summer term or Fall semester, the proposal is due at 2 PM on April 15 (or the first business day after April 15 if the office is closed that day). If approved, the project is then implemented under the guidance of the advisor. 1.1.2 Submission Procedures A hard copy of the proposal, with a signed cover sheet as shown in Section 3 of this document, is submitted to the CS department for approval. Submit the proposal on or before 2 PM of the deadline date to the secretary of the CS Department. Retain a copy of the proposal for yourself. The intended faculty advisor for the project must be indicated and his/her signature must already be on the cover sheet when the proposal is submitted to the Department. When the student submits the proposal, he or she signs up on the next available line on the list of project proposals. The student should write the proposal number on the cover sheet of the proposal and also make a note of the proposal number, since it will be needed in subsequent steps in the process, including submission of the final report. The student must submit the electronic form CS102, which is available at the MS in CS website, within one week of submitting the hard copy of the proposal. 3 Computer Science Project Guide Sept-2001 1.2 Remarks The student must obtain prior approval from the expected project advisor for a project to be done during the summer. A student not finding an advisor may complete two advanced courses in lieu of a Master’s project. A list of courses that may be used to replace the project is available on the MS in Computer Science website (www.cs.njit.edu/~mscs). There is a department limit of 20 project advisees per faculty member each semester. Some advisors under special circumstances allow team projects. The prior permission of the advisor and a joint proposal that clearly identifies the responsibilities of each participant is required. In a team proposal, the final project must be completed before any member of the team can receive a grade other than S. Furthermore, if the team breaks up, a new proposal from each member is required before the project can proceed. 1.3 Department Action On Proposal The CS Department response to the submitted proposal will be POSTED on the MS in CS website (http://www.cs.njit.edu/~mscs) before the first day of the final exams. The possible Department responses are: ACCEPTED: the student may start work on the project, but should contact the advisor for comments and an advisement schedule; CONDITIONALLY ACCEPTED: the student must modify the proposal according to the advisor's indications and approval; upon subsequent approval, the student may then start the project; REJECTED: the proposal is unacceptable: the student may contact the faculty reviewer of the proposal for advice. Proposals that are conditionally accepted must be resubmitted to the Department one week before the start of the next semester. A student should withdraw from CIS 700B if the revised proposal is not approved. If a proposal is rejected the student must withdraw from the project course and submit a new proposal the next semester or pursue the “two advanced courses” option. 1.4 Project Topics Project topics vary greatly. Normally a topic is suggested by an advisor. A student may propose a topic to the advisor, and in any case the student should have some input into the choice of topic. Nevertheless, an advisor has every right to refuse to supervise a project on a student-generated topic. It is important to confirm the appropriateness of a topic with an advisor as early as possible in the development of the proposal. In order to assist students in finding an advisor who is likely to propose a topic of interest to the student, a list of faculty research interests is included in Section 2 of this document. Master's projects are expected to be conceived, designed, and executed at a graduate level of sophistication. Some students may elect to do original research papers in such areas as computer systems, communications and networking, software engineering, data and knowledge engineering, artificial intelligence, graphics and image processing, information and decision-support systems, 4 Computer Science Project Guide Sept-2001 knowledge and expert systems, system simulation and modeling, or algorithms and theory of computing. Typically, a project will involve sophisticated software development. Generally, the amount of work required for a project is expected to be comparable to that entailed by one to two graduate courses. Regardless of the type of project, it must be researched in an in-depth and scholarly manner. 1.5 Master's Project Requirements 1.5.1 Master's Project The course for the Master's Project is CIS 700B (3 Credits). The section of CIS 700B that you enroll in depends on your advisor - each advisor has a separate section. YOU MUST HAVE YOUR REGISTRATION FORM FOR THE APPROPRIATE SECTION OF CIS 700B SIGNED BY YOUR PROJECT ADVISOR. CIS 700B has no scheduled hours; that is up to you and your advisor. You must contact your advisor regularly and keep your advisor well-informed regarding the progress of your work. A student who is not able to complete the project in a given semester must notify the advisor one week before the last day of classes and supply a progress report. Normally such students would receive a grade of “S.” If your project takes more than 1 semester, then you must enroll in an additional 3 credits for the second semester. Of course, only three credits of a Master's project may be counted towards meeting the CS Master's degree requirements. A student who does not enroll in a succeeding semester or who wishes to change advisors must resubmit a proposal prior to the semester in which they plan to do the work. If an advisor change is involved, then both advisors must be aware of and agreeable to the change. Students who find it necessary to use more than 2 semesters to complete the project must request permission to do so from the chairman of the department and provide a written explanation of the circumstances. 1.5.2 Master's Project Reports Final project reports follow the outline given in Section 4, subject to modifications and/or additions required by your advisor. The report should include a hard copy of the source code, and a disk copy if appropriate. TWO COPIES OF THE FINAL REPORT ARE SUBMITTED TO THE PROJECT ADVISOR FOR HIS/HER SIGNATURE. THE STUDENT THEN SUBMITS ONE OF THESE SIGNED COPIES TO THE DEPARTMENT SECRETARY BY THE FIRST DAY OF FINALS. THE STUDENT CANNOT GRADUATE UNLESS A COPY OF THE REPORT IS GIVEN TO THE DEPARTMENT. Students are advised to have their advisor review a draft of the report well before submission of the final report. It is the student’s responsibility to allow sufficient time for the advisor to review and sign the report before it is submitted to the department. 5 Computer Science Project Guide Sept-2001 Note: software developed in a Master's project cannot be considered proprietary. The advisor has the right to use such code in research activities and to supply such code to students for use in derivative projects. An advisor may grant a student the right to copyright the code. 1.5.3 Academic Honesty The project proposal and final report must be the product of the student’s own original thought and effort. Any use of others’ work must be properly referenced in accordance with standards of scholarship in general and the NJIT Honor Code in particular. Furthermore, a student who, without acknowledgement and the consent of the project advisor, submits a project for which he/she has already received academic credit or monetary compensation may be found guilty of self-plagiarism and subject to penalties under the Honor Code. 6 Computer Science Project Guide Sept-2001 2. FACULTY RESEARCH INTERESTS The following is a current list of project advisors and their areas of interest. The telephone extension of the advisor is shown after the name (XXXX). The common prefix (973) 596- is not shown. All email addresses have the extension “njit.edu” which is also not shown. Students may also consult the web page http://www.cs.njit.edu/research.html . This page lists Computer Science faculty grouped by research interests. You may not select an adjunct instructor or a special lecturer as your advisor. Some advisors expect you to take certain courses in preparation for the project. These are shown after their list of interests, but details should be checked with the advisor. Some advisors also run CIS 785 seminars on particular topics. These seminars are not counted towards your degree; however, they are a useful way to identify and prepare for a project topic. MICHAEL A. BALTRUSH (3386); mab@cis, Associate Professor, Ph.D., University of Connecticut. Microcomputers, UNIX, Monitoring. MICHAEL BIEBER (2681); bieber@cis, Associate Professor of Information Systems, Ph.D., University of Pennsylvania. Relationship Management, Hypertext, Hypermedia Functionality, World Wide Web Improvements, Web Engineering, Networked Improvement Communities, Digital Libraries, Management Information Systems, Group Support Systems, Collaborative Systems, Process Management, Process Reengineering, Educational Software Environments, Distributed Education. JAMES CALVIN (3378); calvin@cis, Associate Professor, Ph.D. Stanford University. Probabilistic Analysis of Algorithms, Global Optimization, Regenerative Simulation, Information Based Complexity, Optimization of Stochastic Systems, Search Theory, Stochastic Processes, Applied Probability. JOHN CARPINELLI (3536); carpinelli@njit, Associate Professor of Electrical and Computer Engineering, Ph.D., Rensselaer Polytechnic Institute. Parallel Processing, Computer Architecture, Interconnection Networks, Biomedical Computing, Computer-Aided Instruction. BARRY COHEN (5214); Barry.Cohen@njit.edu, Assistant Professor, Ph.D. SUNY Stony Brook. Algorithms, Biomedical Informatics. ARTUR CZUMAJ (3369); czumaj@cis, Associate Professor, Ph.D. University of Paderborn, Germany. Theoretical Computer Science, Analysis and Design of Algorithms, Randomized Algorithms and their Probabilistic Analysis, Graph Algorithms, String Matching Algorithms, Computational Geometry, Combinatorial Optimization, Parallel and Distributed Algorithms, Complexity Theory. FADI DEEK (2997); fadi@cis, Associate Professor of Information Systems and Associate Dean of the College of Computing Sciences, Ph.D., New Jersey Institute of Technology. Software 7 Computer Science Project Guide Sept-2001 Engineering, Computer Science Education, Instructional Technology, Multimedia Systems, Information Management Systems, Problem Solving, Cognition and Learning Theory. JAMES GELLER (3383); geller@cis, Professor, Ph.D., SUNY Buffalo. Artificial Intelligence, Database Systems, Biomedical Informatics, Ontologies, Object-Oriented Systems, Object-Oriented Databases, Parallel Processing, Parallel Reasoning, Knowledge Based Systems, Expert Systems, Natural Language Processing, Character Recognition. ALEXANDROS GERBESSIOTIS (3244); alexg@cis, Assistant Professor, Ph.D., Harvard University. Parallel Computing; Architecture Independent Parallel Algorithm Design; Parallel Algorithms for Combinatorial and Numerical Problems; Experimental Algorithmics; Graph Theory and Combinatorics; Network Performance Assessment under Realistic Parallel Computer Models. RICKI GOLDMAN-SEGALL (5683); ricki@njit.edu, Professor of Information Systems, Ph.D., Massachusetts Institute of Technology. Epistemological Pluralism, Methodological Pluralism, Advanced Cognitive Technologies. ELSA GUNTER (3382); elsa@cis, Associate Professor, Ph.D. University of Wisconsin, Madison. Software engineering, formal methods, design and use of automated and interactive theorem provers, mathematical semantics of programming languages, proof theory and type theory, order theory, finite solvable group theory. STARR ROXANNE HILTZ (3388); roxanne@eies2, Distinguished Professor of Information Systems, Ph.D., Columbia University. Collaborative Systems; Information Systems Evaluation; Social Impacts of Computer and Information Systems; Design of User-Oriented Interactive Computer Systems; Computer- Mediated Communication; Management Information Systems; Group Decision Support Systems. MS project students must have had CIS 675 with grade of at least B. EDWIN S.H. HOU, (3521); hou@megahertz, Associate Professor of Electrical & Computer Engineering, Ph.D., Purdue University. Scheduling, Genetic Algorithms, Neural Networks, Nonlinear Optimization techniques, Robotics, Infrared Imaging, and Monitoring and Control of Semi Conductor Process. DAO-CHUAN HUNG (3384); dhung@cis, Associate Professor, Ph.D., Purdue University. Computer Vision; Image Processing; Intelligent Manufacturing Inspection; and Partial Shape Recognition. IL IM (5644); ilim@cis, Assistant Professor of Information Systems, Ph.D., University of Southern California. Personalization technologies, Electronic business, Supply chain management, Business process design, Web technologies GAD (QUENTIN) JONES (5290); Quentin.Jones@njit.edu, Assistant Professor of Information Systems, Ph.D., University of Haifa, Israel. 8 Computer Science Project Guide Sept-2001 JOSEPH LEUNG (3387); leung@cis, Distinguished Professor, Ph.D., Pennsylvania State University. Scheduling Theory, Real-Time Systems, Combinatorial Optimization, Complexity, Design and Analysis of Algorithms. CHENGJUN LIU (5280); liu@cis, Assistant Professor, Ph.D., George Mason University. Computer Vision, Pattern Recognition, Image Processing Face Recognition, Automatic Target Detection and Recognition, Content-based Video and Image Retrieval, Evolutionary Computation, Neural Computation QIAN HONG LIU (2872); lily@cis, Assistant Professor, Ph.D., New Jersey Institute of Technology. Database Systems, Online Query Processing, Web Technologies and Electronic Commerce, and Information Retrieval. CONSTANTINE N. MANIKOPOULOS, (3553); cnm8784@tesla, Associate Professor of Electrical and Computer Engineering, Ph.D., Princeton University. Computer Networks, Parallel Processing Applications, Neural Networks, and Image Processing. DAVID MENDONCA (5212); mendonca@adm.njit.edu, Assistant Professor of Information Systems, Ph.D., Renesselaer Polytechnic Institute. Group decision making, Knowledge engineering and management, Decision support systems, Creativity studies; applications in emergency management. JAMES A.M. McHUGH (3394); mchugh@cis, Professor, Ph.D., Courant Mathematical Institute. Algorithmic Graph Theory; Parallel Algorithms; Design and Analysis of Algorithms; Data Structures, Multimedia Applications. ALI MILI (5215); mili@cis, Professor, Ph.D., University of Illinois. Software engineering. MARVIN K. NAKAYAMA (3398); marvin@cis, Associate Professor, Ph.D., Stanford University. Simulation Modeling and Analysis, Fault-tolerant Systems, Communication Networks, Statistics, Applied Probability. DAVID NASSIMI (5645); nassimi@cis, Associate Professor, Ph.D., University of Minnesota. Parallel Processing, Architectures and Algorithms; Interconnection Networks, Data Routing; Parallel Permutation and Sorting. VINCENT ORIA (5767); oria@cis, Assistant Professor, Ph.D., Ecole Nationale Superieure des Telecommunications, Paris. Database. TEUNIS OTT (5776); tjo@cis, Professor, Ph.D., University of Rochester. Performance Analysis, Telecommunications and Networking. RAVI PAUL (5237); paulr@homer.njit.edu, Assistant Professor of Information Systems, Ph.D., Clemson University. Software Engineering for Information Systems Development, Requirements Engineering, Management Information Systems, Customer Relationship Management (CRM), B2B 9 Computer Science Project Guide Sept-2001 E-Commerce, Integrated Enterprise Systems, Data Exchange in the Supply Chain, Configuration Management (CM), and Knowledge Management (KM). YEHOSHUA PERL (3392); perl@cis, Professor, Ph.D., Weizmann Inst., Israel. Design and Analysis of Algorithms; Data Structures; Data Compression; Design of Networks; Sorting Networks; Graph Theory; Hypertext Systems. MICHAEL RECCE (5490); recce@cis, Associate Professor, Ph.D., University College London. Neurophysiology, Neural Basis for Spatial Localization, Models of Spatial Processing, and The Application of Neural Network Algorithms in Robotics. JOHN W. RYON, III (3390); ryon@cis, Associate Professor, Ph.D., Stevens Institute of Technology. Software Engineering (Interactive Systems, User Interface Design Methodology), Computer Graphics (Windows), Theoretical and Computational Neuroscience (Neural Networks and Dynamic Models). EDWARD SARIAN (3391); sarian@cis, Associate Professor, Ph.D., Stevens Institute of Technology. Mathematical Foundations of Computing; Computational Mathematics and Algorithms; Automata and Formal Languages. JULIAN M. SCHER (3395); scher@cis, Associate Professor of Information Systems, Ph.D., New York University. Discrete Event Systems Simulation Languages; Probabilistic and Statistical Methodologies used in Simulation to Simulate Stochastic Phenomena Applications, Database Design, Data Modeling, Semantic Object Data Models and Desktop DBMS, Decision Support Systems, Productivity Toolware, Computer Science Education. RICHARD B. SCHERL (2657); scherl@cis, Assistant Professor, Ph.D., University of Illinois. Artificial Intelligence, Knowledge Representation and Reasoning, Logic and Software, Computational Linguistics, Cognitive Science. FRANK SHIH (5654); shih@cis, Professor, Ph.D., Purdue University. Image Processing; Computer Vision; Computer Graphics; Computer Architecture; Artificial Intelligence; Expert Systems; Neural Networks. ANDREW SOHN (2315); sohn@cis, Associate Professor, Ph.D., University of Southern California. Parallel Computing, Multithreading and Multithreaded Architectures, PC Clusters, Distributed-memory Multiprocessor Architectures, and Computational Science on Large-scale Parallel Machines. DIMITRI THEODORATOS (5213); dth@cis, Associate Professor, Ph.D., University of Paris XI. Database Theory, Query Languages, Query Processing and Optimization, Data Warehousing, OnLine Analytical Processing, Data Integration, Databases and Web, Deductive Databases. ALEXANDER THOMASIAN (6597); athomas@cis, Professor, Ph.D., University of California, Los Angeles. Computer and storage architectures, modeling and analysis of computer and communication systems, traditional and image database systems, transaction processing. 10 Computer Science Project Guide Sept-2001 MARILYN MANTEI TREMAINE (5284); Marilyn.M.Tremaine@njit.edu, Professor of Information Systems, Ph.D., University of Southern California. Auditory Interfaces, Mobile Collaboration, Interfaces for Mobile Computing, Interfaces for Telerehabilitation. MURRAY TUROFF (3399); murray@vc, Distinguished Professor of Information Systems, Ph.D., Brandeis University. Information Systems; Computer Mediated Communications and Groupware; Collaborative Systems; Design of Applications and Interfaces; Management Information Systems; Decision Support Systems; Modeling; Planning; Delphi Design; Forecasting and Planning Methodologies; Computers and Society. BARTEL VAN DE WALLE (5897); bartel@cis.njit.edu, Assistant Professor of Information Systems, Ph.D., University of Gent, Belgium. Group decision and negotiation support. BORIS VERKHOVSKY (3393); boris@cis, Professor, Ph.D., Latvia State University, USSR. Data Communication Networks; Distributed Processing; Algorithms Design and Analysis; Large- Scale Systems Analysis and Design; Optimal Algorithms; Computational Complexity; Communication Networks Design and Analysis; Distributed Algorithms; Scientific Computing; Integrated Networks. JASON T.L. WANG (3396); jason@cis, Professor, Ph.D., Courant Institute, New York University. Data Mining and Databases, Knowledge Engineering, Software Development, Pattern Analysis, Computational Biology, Information Retrieval and Process Management on the World Wide Web. BRIAN WHITWORTH (2666); bwhitworth@acm.org, Assistant Professor of Information Systems, Ph.D., Waikato University, New Zealand. Multi-media design to fit human cognitive processes, generation of computer-mediated agreement, computer-mediated education, interpersonal behavior on computer networks, virtual community environment design and legitimacy issues. BROOK (YI-FANG) WU (5285); Assistant Professor of Information Systems, Ph.D., State University of New York at Albany. Knowledge Organization, Information Retrieval, Natural Language Processing. SOTIRIOS ZIAVRAS (5651); ziavras@hertz, Professor of Electrical and Computer Engineering, Ph.D., George Washington University. Parallel Processing and Supercomputing; Interconnection Networks, Parallel Computing Systems, Reconfigurable Computing Systems, Parallel Algorithms, Mapping Techniques, Massively Parallel Systems, Special Purpose Architectures, Performance Evaluation; Advanced Computer Architecture; Computer Systems Design, Performance Evaluation; Image Processing/Pattern Recognition; Parallel Architectures, Sequential and Parallel Algorithms, Image Representation. 11 Computer Science Project Guide Sept-2001 3. PROJECT PROPOSAL FORMAT 3.1 Introduction Use the outline on the following pages to prepare your proposal. If you feel you need to deviate from the standard outline, consult with your advisor before doing so; otherwise your proposal will be rejected. Use a typewriter or word processor and printer to produce the document. Submit the proposal on 8 1/2 by 11 inch bond paper. Double space all text and use only one side of the paper. YOU MUST STAPLE YOUR PROPOSAL IN THE UPPER LEFT CORNER AND HAVE YOUR PROJECT ADVISOR SIGN THE COVER SHEET IN ORDER TO SUBMIT THE PROPOSAL TO THE DEPARTMENT SECRETARY. DO NOT USE THE STANDARD NJIT RED 3-RING BINDER FOR THE PROPOSAL, BUT DO USE IT FOR THE FINAL PROJECT REPORT. 12 Computer Science Project Guide 3.2 Project Proposal Outline i. Title Page ii. Approval Page iii. Table of Contents 1. Introduction and Background 1.1 Problem Statement 1.2 Previous Work 1.3 Background 1.4 Glossary 2. Project Description 2.1 Functional Specification 2.1.1 Functions Performed 2.1.2 Limitations and Restrictions 2.1.3 User Interface Design [if required] 2.1.4 Other User Inputs [if required] 2.1.5 Other User Outputs [if required] 2.1.6 System Data Files 2.2 Design Specification 2.2.1 System Data Flow Diagrams 2.2.2 System Structure Chart 2.2.3 System Data Dictionary 2.2.4 Equipment Configuration 2.2.5 Implementation Languages 2.3 Implementation Plan 2.3.1 Deliverable Items 2.3.2 Milestone Descriptions 2.3.3 Milestone Completion Criteria 2.3.4 Schedule of Milestone Completion 3. References 4. Qualifications 4.1 Personal Background 4.2 Courses Taken 4.3 Programs Written 4.4 Investigations 4.5 Projects 5. Grading Criteria 13 Sept-2001 Computer Science Project Guide Sept-2001 3.3 Description of Outline Sections This section describes the purpose or format of each of the sections indicated in the preceding proposal outline. i. Title Page See the sample in Section 3.4 for format. ii. Approval Page See the sample in Section 3.4 for format. iii. Table of Contents This should follow the outline given in Section 3.2 of this document. 1. Introduction and Background The purpose of this section is to describe the general problem area. 2. 1.1 Problem Statement Give a brief, general statement of the problem to be investigated or solved by the project. Assume the reader has little knowledge of the subject. 1.2 Previous Work This is an historical or conceptual survey of relevant work done in the area by previous investigators. Each contribution must be accompanied by appropriate references to be listed in the reference section. 1.3 Background Here you develop the theoretical and conceptual framework upon which the project is based. It is appropriate to describe relevant data representations and algorithms. 1.4 Glossary This section defines all terms, concepts, symbols, and acronyms used in the proposal. Project Description The purpose of this section is to describe the proposed project in detail: what will you do, how will you do it, and when will you do it. 14 Computer Science Project Guide 2.1 Sept-2001 Functional Specification This is a detailed specification of functions performed by the proposed system, from an external or user perspective, not from an internal or programmer viewpoint. Thus, the system is regarded as a black box with various inputs and outputs related by the functions performed by the system. The description should be sufficient for another programmer to implement the system. 2.1.1 Functions Performed List and briefly describe each of the functions which the system will be designed to perform for its user: What the system will do. 2.1.2 Limitations and Restrictions List and describe each of the internal (self) and external (environment) limitations and/or restrictions on the range of system functions: What will the system not do. DO NOT INSULT THE READER BY INCLUDING ITEMS THAT WOULD NOT BE A SURPRISE. 2.1.3 User Interface Design Give a detailed description of the system user interface including diagrams of all the ``work'' windows (or screens or panes), a table of operations for each work window, and precise descriptions of each operation that the user would regard as unfamiliar. A work window is one that contains data the user is editing, browsing or viewing. This section is required for all programs that engage the user interactively. Refer to the sample in Section 3.4 of this document. 2.1.4 Other User Inputs Give a precise description of the other inputs to the system including source (human or storage) syntax (format) and semantics (meaning). Give examples. This section is required for all programs that obtain input from their environment non interactively. 2.1.5 Other User Outputs Give a precise description of the other outputs of the system including syntax and semantics. Correlate the outputs with the inputs and the functions performed. Give examples. This section is required for all programs that obtain input from their environment non interactively. 15 Computer Science Project Guide 2.1.6 2.2 Sept-2001 System Data Files Give a precise description of the data files created or maintained by the system. Thus, for example, you would include files in a database and you would exclude executable files and text files. Design Specification This is a top level preliminary or provisional indication of the proposed system architecture and flow. You should correlate system functions with system structure and interface specifications. 2.2.1 System Data Flow Diagrams This is a hierarchical (or leveled) set of diagrams showing the flow of data elements into and out of the functional units of the program, data stores and environmental sources and sinks. Labeled arrows denote data flows. This diagram is complementary to the structure chart described next. Refer to the sample in Section 3.4 of this document. 2.2.2 System Structure Chart(s) This is a (set of) chart(s) showing the functional units of the system hierarchically organized to show which units call, use or contain other units. Each interface between two units (a call) is annotated with small arrows and data item labels to show the data exchanged between the units. Refer to the sample in Section 3.4 of this document. 2.2.3 System Data Dictionary This is a comprehensive dictionary of all the data items that appear in the system data flow diagrams and the structure charts. At a minimum it contains, for each data item, its identifier, any abbreviation used instead of the identifier, the name of the type of the data, and a definition of the data item in the form of either a symbolic expression or a precise description. Refer to the sample in Section 3.4 of this document. 2.2.4 Equipment Configuration Describe the equipment you will use to support the operation and development of your system. 2.2.5 Implementation Languages List the programming languages you plan to use for the implementation of your project and give reasons for choosing each language. 16 Computer Science Project Guide 2.3 3. Sept-2001 Implementation Plan This is a description of the plan for implementing the project. Here you commit yourself to a course of action and specify the criteria by which your performance is to be judged. Your final grade will depend, in large measure, upon your success in achieving the goals agreed upon between you and your project advisor. 2.3.1 Deliverable Items List and describe each of the items you will submit in fulfillment of the project requirements. Deliverable items include, but are not limited to, program executable file(s), program data file(s), program listings, program documentation, user manual and sample program runs. 2.3.2 Milestone Identification Identify each of the milestones or check points that mark the completion of some phase of project implementation. Milestones include, but are not limited to, detailed system analysis, system design, file design, module design, system test design, module coding, working breadboard with stubs, working system with stubs, system testing and documentation. 2.3.3 Milestone Completion Criteria List the criteria by which the completion of each milestone is to be judged. If an objective measure is available then it should be specified. If a personal judgement is required then indicate who will make the determination. This information may be given in tabular form if desired. 2.3.4 Schedule of Milestone Completion Prepare a diagram or table giving the proposed completion date for each of the milestones listed in the previous two sections. See the sample in section 3.4 of this document. References In this section you list in standard bibliographic format the books, papers, course notes and project or thesis reports which you have used in preparing your project proposal. Each item listed here must be accompanied by a brief comment indicating its importance and relevance to the proposal. References must be numbered alphabetically. In the text they should be referred to by squared bracketed numerals, e.g. [1]. The list of references must be typed on a 17 Computer Science Project Guide Sept-2001 separate sheet(s), in the same format as the main text, and ordered consecutively, according to the following models: For a paper in a contributed volume: [1] D.B. Lenat, R. Davis, J. Doyle, M. Genesereth, I. Goldstein and H. Schrobe, "Reasoning about reasoning," in Building Expert Systems (F. Hayes-Roth, D.A. Waterman and D.B. Lenat, eds.) Addison-Wesley Publishing Company, Inc., 1983, pp. 219-240. For a paper in a journal: [2] D.W. Jones, "Concurrent operations on Priority Queues," Communications of the ACM, 32, l(January 1989), pp- 132-137. For a book: [3] H.F. Korth and A. Silberschatz, Database System Concepts, McGraw-Hill, New York, 1986. For an unpublished paper: [4] S.E. Feahlman, A system for representing and using real-world knowledge, MIT Technical Report Al-TR-40, Cambridge, MA, 1977. 4. Qualifications The purpose of this section is to show the advisor that you are capable of successfully completing the proposed project. 4.1 Personal Background Describe any personal experience such as outside employment that is relevant to the proposed project. 4.2 Courses Taken List by department, number and title all courses you have taken. Briefly describe the courses you think have particular relevance to the project. 4.3 Programs Written Describe any programs you have written which either are relevant to the project or are indicative of your ability to complete the proposed work. 4.4 Investigations Describe any work you may have done in preparation for making the proposal such as prototypes or simulations. 4.5 Projects 18 Computer Science Project Guide Sept-2001 Describe any relevant projects you have been involved in or have undertaken. 5. Grading Criteria In this section you establish and define the criteria governing the grading of your project. Here you specify the relative emphasis you wish to be placed upon the different phases of your project. Assign a weight to each of the deliverable items and/or milestones listed in section 5.3 of the proposal so that the weights sum to one. Display this information in a table which your advisor will use in determining your grade for the project. Refer to the sample in section 3.4 of this document. 3.4 Sample Sections of the Project Proposal The following pages illustrate some of the items which each proposal should contain. More samples are available through the MS in Computer Science website, http://www.cs.njit.edu/~mscs 19 Computer Science Project Guide Sept-2001 3.4.1 Sample Cover Sheet for Proposal CIS 700B Master’s Project Proposal Automated Software Configuration Management and Change Control System (SCM) Submitted to the Department of Computer Science College of Computing Sciences New Jersey Institute of Technology in Partial Fulfillment of the Requirements for the Degree of Master of Science by John P. McQueue APPROVALS Proposal Number:________________________________ Agree to Advise: _________________________________ ( Project Advisor) Date Submitted: __________________________________ Approved by: ____________________________________ (MS in CS Committee) Date Approved: __________________________________ 20 Computer Science Project Guide Sept-2001 3.4.2 More Samples Samples of a User Interface Design, a System Data Flow Diagram, a System Structure Chart, a Data Dictionary, a Project Schedule, and Grading Criteria are available in Postscript and PDF formats at the MS in CS website, http://www.cs.njit.edu/~mscs. 21 Computer Science Project Guide Sept-2001 4. PROJECT FINAL REPORT FORMAT Check with your advisor for modifications appropriate to your project, particularly for hardware projects. Submit the documentation, one copy to your advisor, and one copy, with the title page and signed approval page, to the department. YOU MUST USE THE STANDARD NJIT 3-RING RED BINDER. Please note the following: 1) The report should be printed on one side of the page, double-spaced, with wide margins. 2) Your report must be complete when you submit it for acceptance. Pay particular attention to include: Title page Faculty Advisor approval page Contents page Abstract page Text Bibliography 3) Number each sheet consecutively at the bottom of the page. 4) Headings: Chapter titles start on a new page. Chapter numerals should be Arabic, not Roman numerals. Type the chapter number and title in upper and lower case, flush left, at the top of the report page; leave an extra space and then begin the text. Since you will have several levels of subheadings, distinguish one level from another in a consistent way, such as (1, 1.1, 1.2, 2, 2.1, 2.1.1, 2.1.2, 2.2). Avoid having more than three levels of subheadings. 5) Abstract: A brief abstract should be included before the beginning of the text. 6) Footnotes should be used sparingly and should be placed at the bottom of the page in which they are referenced. 7) All tables and figures should be centered in the column on the paper. Table captions should be centered above the table. All figure captions must appear centered under the figure. 8) YOU MUST HAVE THE SIGNATURE OF YOUR PROJECT ADVISOR ON THE FACULTY APPROVAL PAGE. 22 Computer Science Project Guide Sept-2001 4.1 Report Outline Note: Section numbers as shown are mandatory; font, indentation and main section titles in bold are merely for clarity here and are optional. i ii iii iv v vi 1. 2. 3. Title Page Acceptance/Approval Page Abstract Key Words and Phrases Computing Review Subject Codes Table of Contents Introduction and Background 1.1 Statement of Problem Area (brief, non-technical) 1.2 Previous and Current Work, Methods and Procedures (representative) 1.3 Background 1.4 Brief Project Description (overview of new, extended or different functions, structure or operation) 1.5 Purpose/Objectives/justification of Project (theoretical, practical, or educational impacts on hardware, software, or users) System Functional Specification 2.1 Functions Performed (itemize and describe) 2.2 User Interface Design [if required] 2.2 Other User Input Preview [if required] 2.3 Other User Output Preview [if required] 2.4 System Data Base/File Structure Preview 2.5 External and Internal Limitations and Restrictions Prof. Turoff requires the following items as well: 2.6 User Interface Specification 2.6.1 Interface Metaphor Model 2.6.2 User Screens/Dialog 2.6.3 Report Formats/Sample Data 2.6.4 On-line Help Material 2.6.5 Error Conditions and System Messages 2.6.6 Control Functions System Performance Requirements 3.1 Efficiency (speed, size, peripheral device usage) 3.2 Reliability 23 Computer Science Project Guide 3.2.1 4. 5. Sept-2001 Description of Reliability Measures (accuracy, precision, consistency, reproducibility, etc.) 3.2.2 Error/Failure Detection and Recovery (failure modes, failure consequences, error logging and reporting, manual and automatic recovery procedures) 3.2.3 Allowable/Acceptable Error/Failure Rate 3.3 Security 3.3.1 Hardware Security 3.3.2 Software Security 3.3.3 Data Security 3.3.4 Execution Security (user validation) 3.4 Maintainability 3.5 Modifiability 3.6 Portability 3.7 Others System Design Overview 4.1 System Data Flow Diagrams 4.2 System Structure Charts 4.3 System Data Dictionary 4.4 System Internal Data Structure Preview 4.5 Description of System Operation (high level) 4.6 Equipment Configuration (diagram and description) 4.7 Implementation Languages (which and why) 4.8 Required Support Software (pre-existing) System Data Structure Specifications 5.1 Other User Input Specification 5.1.1 Identification of Input Data 5.1.2 Source of Input Data (NOT input device) 5.1.3 Input Medium and/or Device 5.1.4 Data Format/Syntax 5.1.5 Legal Value Specification 5.1.6 Examples 5.2 Other User Output Specification 5.2.1 Identification of Output Data 5.2.2 Destination of Output Data (NOT output device) 5.2.3 Output Medium and/or Device 5.2.4 Output Format/Syntax 5.2.5 Output Interpretation (meaning of output) 24 Computer Science Project Guide 6. 7. Sept-2001 5.2.6 Examples 5.3 System Data Base/File Structure Specification 5.3.1 Identification of Data Base/Files 5.3.2 (Sub)systems Accessing the Data Base (creating, updating, using; frequency) 5.3.3 Logical File Structure (record formats, file organization, access methods, rationale, examples) 5.3.4 Physical File Structure (storage device, blocking, organization, access, etc.) 5.3.5 Data Base Management Subsystems Used (internal or external) 5.3.6 Data Base Creation and Update Procedure (if NOT by system) 5.4 System Internal Data Structure Specification 5.4.1 Identification of Data Structures 5.4.2 Modules Accessing Structures (creating, updating, using) 5.4.3 Logical Structure of Data (format, organization, access, rationale, examples) Module Design specifications (for each module) 6.1 Module Functional specification 6.1.1 Functions Performed 6.1.2 Module Interface Specifications (input/output arguments/global variables/files) 6.1.3 Module Limitations and Restrictions 6.2 Module operational Specification 6.2.1 Locally Declared Data Specifibations (variable dictionary) 6.2.2 Algorithm Specification (flowchart, pseudocode, decision table, etc) 6.2.3 Description of Module Operation System Verification 7.1 Items/Functions to be Tested 7.2 Description of Test Cases 7.3 Justification of Test Cases 7.4 Test Run Procedures and Results 7.5 Discussion of Test Results Prof. Turoff requires the following items as well: 7.6 Evaluation of User System 7.6.1 Protocol Study 7.6.2 User Survey 7.6.3 Real Time Monitoring 25 Computer Science Project Guide 8. 9. 10. 11. 12. Sept-2001 7.6.4 Interviews Conclusions 8.1 Summary 8.2 Problems Encountered and Solved 8.3 Suggestions for Better Approaches to Problem/Project 8.4 Suggestions for Future Extensions to Project Bibliography Appendices Program Listings User Manual 26 Computer Science Project Guide Sept-2001 4.2 Sample pages 4.1 Title Page Automated Software Configuration Management and Change Control System (SCM) Submitted to the Department of Computer Science College of Computing Sciences New Jersey Institute of Technology in Partial Fulfillment of the Requirements for the Degree of Master of Science by John P. McQueue 27 Computer Science Project Guide Sept-2001 4.2 Approval page APPROVALS Proposal Number:_________________________________ Approved by: ____________________________________ ( Project Advisor) Date Submitted: __________________________________ 28