Computer Science Project Guide - Department of Computer Science

advertisement
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
Download