0% found this document useful (0 votes)
181 views33 pages

Computer Science Project Guide: CIS 490/491 and CIS 700/710

CVBCVNMVBN

Uploaded by

amaha alemayehu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
181 views33 pages

Computer Science Project Guide: CIS 490/491 and CIS 700/710

CVBCVNMVBN

Uploaded by

amaha alemayehu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Computer Science Project Guide

CIS 490/491 and CIS 700/710


Computer Science Project Guide Feb-99

CONTENTS
1. General Procedures.................................................................................................. 3
2. Advisors' Research Interests..................................................................................... 7
3. Project Proposal Format ........................................................................................ 12
4. Project Oral Presentation Format ........................................................................... 25
5. Project Documentation Report Format................................................................... 28

2
Computer Science Project Guide Feb-99

1. General Procedures
Students in both the Bachelor's and Master's program in computer Science must complete
a project to satisfy the requirements for graduation.

This section describes general guidelines for the project, including the required proposal,
topics; advisors, deadlines, associated courses, etc. Section 2 lists current faculty members
from whom an advisor must be selected and their areas of interest. Section 3 describes the
required format for the proposal. Section 4 describes the format of the required final oral
presentation of the project results. Section 5 describes the format of the written 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.

Bachelor's students develop the project proposal as part of CIS 490 and implement it in
CIS 491.

For Master's students, the project proposal is written by the student and must be accepted
by the CIS department before the student enrolls in the project course CIS 700 and the
accompanying seminar CIS 710. 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 CIS department and reviewed for
approval by the project advisor. The proposal is due 4 weeks before the first day of the
final exams for that semester. If approved, the project is then implemented under the
guidance of the advisor.

The proposal, with a cover sheet in triplicate obtainable from the department, is submitted
to the CIS department for approval. Submit the proposal on or before 2 PM of the
deadline date to the secretary of the CIS Department. Retain a copy of the proposal for
yourself. The intended faculty advisor for the project should be indicated.

1.2 REMARKS

The student must obtain prior approval from the expected project advisor for a project to
be done during the summer.

3
Computer Science Project Guide Feb-99
A student not finding an advisor may request the department to assign an advisor or may
submit a proposal which will be assigned to an advisor by the department. There is a
department limit on the number of advisees per faculty member.

Some advisors under special circumstances allow team projects. The prior permission of
the advisor 6th a joint proposal which 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 a project can proceed.

1.3 DEPARTMENT ACTION ON PROPOSAL

The CIS Department response to the submitted proposal will be POSTED at the CIS
Department 1 week 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 advisor one week
before the start of the next semester. A student should withdraw from CIS 700 if the
project is not approved. If a proposal is rejected the student must withdraw from the
project course and submit a new proposal the next semester.

1.4 PROJECT TOPICS

Project topics vary greatly. A topic may be suggested by an advisor to the student or by
the student to an advisor. It is important to confirm the appropriateness of a topic with an
advisor as early as possible in the development of the proposal.

CIS/BS seniors are advised to extend term projects for CIS 490 into senior projects for
CIS 491. Example topic, are: software packages, screen and text editors, engineering
applications, accounting and business management packages, file processing and database
systems, etc.

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, 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.

4
Computer Science Project Guide Feb-99
1.5 MASTER’S PROJECT AND THESIS REQUIREMENTS

1.5.1 MASTER’S PROJECT

The courses-for the Master's Project are:

CIS 700 (3 Credits) and CIS 710 (1 Credit).

The section of CIS 700 that you enroll in depends on whom your advisor is - each advisor
has a separate section. YOU MUST HAVE YOUR REGISTRATION FORM FOR THE
APPROPRIATE SECTION OF CIS 700 SIGNED BY YOUR PROJECT ADVISOR.
CIS 700 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 his
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 to meeting the CIS Master's degree
requirements. A student who does not enroll in a succeeding semester or 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.

The purpose of CIS 710 is to prepare the student to give an oral report of his/her project
and to present talks on active research by CIS faculty members and outside speakers. The
710 instructor will describe the format required for presentations and conduct trial runs of
presentations. The course does not meet every week; meetings are announced by the
department during the semester.

The student registers for CIS 710 only once: If the project is not completed during the
semester in which 710 is taken, then a temporary grade of "U" is given for 710. This grade
is changed to an "S" upon satisfactory completion and presentation of the project.

1.5.2 MASTER'S THESES

Less frequently, CIS Master's students may do a Master's thesis. The thesis course is:

CIS 701 (6 credits).

A student who wishes to undertake a six credit thesis should consult with the advisor
beforehand. The thesis is expected to lead to a paper submitted for publication in a
professional journal or a professional conference. Such papers may be a joint publication
with the advisor as second author. The 710 requirement is the same as for the project.

5
Computer Science Project Guide Feb-99
1.5.3 MASTER’S PROJECT REPORTS

Final project reports follow the outline given in Section 5, 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 DUE ONE WEEK BEFORE THE
FIRST DAY OF FINALS: ONE COPY FOR THE DEPARTMENT AND ONE FOR
THE PROJECT ADVISOR.

THE STUDENT CANNOT GRADUATE UNLESS THE SECOND COPY IS GIVEN


TO THE DEPARTMENT.

Students are advised to have their advisor review a draft of the report some time before
submission of the final report.

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.

6
Computer Science Project Guide Feb-99

2. CIS FACULTY RESEARCH INTERESTS


The following is a current list of computer science 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.

You may not select an adjunct computer science instructor 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, Assistant Professor, 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, Assistant Professor, Ph.D. Stanford University.


Probabilistic Analysis of Algorithms, Global Optimization, Reginerative 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.

FADI DEEK (2997); fadi@cis, Associate Professor, Ph.D., New Jersey Institute of Technology.
Software Engineering, Computer Science Education, Instructional Technology, Multimedia
Systems, Information Management Systems, Problem Solving, Cognition and Learning Theory.

TOM FEATHERINGHAM (3389); feather@cis, Associate Professor, Ph.D., University of


Pittsburgh. Information Theory and Logic, Programming and Programming Languages,
Philosophy of Computing and Information Systems, Cognitive Science.

JAMES GELLER (3383); geller@cis, Associate 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.

7
Computer Science Project Guide Feb-99
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.

STARR ROXANNE HILTZ (3388); roxanne@eies2, Distinguished Professor, 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.

FRANZ J. KURFESS (5767); franz@cis, Assistant Professor, Ph.D., Technical University.


Munich Knowledge Management, Neural Networks for Knowledge Representation, Intelligent
Systems and their Applications, in particular environmental and educational systems.

QIAN HONG LIU (2872); lily@cis, Assistant Professor, Ph.D., New Jersey Institute of
Technology. Database Systems, Online Query Processing, Web Technologies and Electronic
Commence, 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.

JAMES A.M. McHUGH (3394); mchugh@cis, Professor and Acting Chairman, Ph.D., Courant
Mathematical Institute. Algorithmic Graph Theory; Parallel Algorithms; Design and Analysis of
Algorithms; Data Structures, Multimedia Applications.

MARVIN K. NAKAYAMA (3398); marvin@cis, Associate Professor, Ph.D., Stanford


University. Simulation Modeling and Analysis, Faculty-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.

YUNHEUNG PAEK (5776); paek@cis, Assistant Professor, Ph.D., University of Illinois at


Urbana-Champaign. Data Access Region Analysis, Communication Analysis for Prefetching
Poststoring Strategies, Detection of Data Dependence Information.

8
Computer Science Project Guide Feb-99
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.

AJAZ R. RANA (2661); rana@cis, Assistant Professor, Ph.D., Rutgers University. Distributed
Object Oriented Systems - Architecture, Design, and Development (JAVA, CORBA, Mobile
Agents, etc.); Multimedia for Collaboration Support, and Computer Supported Cooperative Work.

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, 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.

PENGCHENG SHI (2985); ship@cis, Assistant Professor, Ph.D., Yale University. Visual
Information Processing, especially its Biomedical Applications: Physics-based Image Analysis,
Stochastic Dynamics Strategy, Data Fusion, Virtual and Augmented Reality, Biological Systems
Modeling.

FRANK SHIH (5654); shih@cis, Professor, Ph.D., Purdue University. Image Processing;
Computer Vision; Computer Graphics; Computer Architecture; Artificial Intelligence; Expert
Systems; Neural Networks.

AMI SILBERMAN (3382); silber@cis, Assistant Professor, Ph.D., University of Illinois. Real-
time, Distributed, and Parallel Systems Software Engineering.

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.

9
Computer Science Project Guide Feb-99
ALEXANDER STOYEN (5765), alex@cis, Associate Professor, Ph.D., University of Toronto.
Real-Time Systems; Programming Languages; Distributed Systems Operating Systems; Software
Engineering; Scheduling and Network Communications.

MURRAY TUROFF (3399); murray@vc, Distinguished Professor, 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.

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, Associate 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.

BULENT YENER (2666); yener@cis, Assistant Professor, Ph.D., Columbia University. High
Speed Networks, including Multicast Routing. High Performance Computing on Network of Work
Stations, Mobile Communications and Computing.

SOTIRIOS ZIAVRAS (5651); ziavras@hertz, Associate 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.

AFFILIATED FACULTY

YEHESKEL BAR-NESS, (3520), Distinguished Professor of Electrical Engineering, Ph.D.,


Brown University, Applied Mathematics (1969). Adaptive Signal Processing, Interference and
Cross Polarization Cancellation, Adaptive Systems and Arrays, Super Resolution Methods for
Interference Cancellation and Direction Finding, Special Fast Adaptive Algorithms for Blind
Signal Separation and Equalization, Interference Suppression in Mobile and Personal CDMA
Communications, Source Encoding for Data Compression, and Synchronization for Digital
Communications.

EDWARD BOYLAN, (648-1004), Associate Professor, Rutgers-Newark, Ph.D., Princeton


University. Algorithms, Analysis of Algorithms, relationships between Mathematics and
Computers, Simulation, Mathematical Applications.

10
Computer Science Project Guide Feb-99
CYRIL S. KU, Adjunct Professor, Ph.D., Northwestern University. Software Engineering, AI,
Deductive Databases, Logic Programming.

THOMAS MARLOWE, Full Professor of Mathematics and Computer Science at Seton Hall
University, Ph.D., Rutgers. Programming Languages Compilers, Real-Time Systems, Algorithms
for Collection and Use of Compile-Time Information.

ERIC NEUHOLD, Distinguished Professor, D.Sc., Technical University of Vienna.


Multidatabase Systems; Object-Oriented Multimedia knowledge Bases; User Interfaces Integrated
Publication and Information Systems.

MIKLOS A. VASARHELYI, KPMG Peat Marwick Professor, Rutgers-Newark, Ph.D.,


University of California, Los Angeles, Information Systems Management, Artificial Intelligence
and Expert Systems in Accounting and Auditing, Decision making Support Systems

11
Computer Science Project Guide Feb-99

3. PROJECT PROPOSAL FORMAT

3.1 Introduction

Use the outline on the following page in preparing your proposal. Consult with your
advisor before deviating from the standard outline; failure to do so will result in rejection
of the proposal. 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 USE THE STANDARD NJIT RED 3-RING BINDER WHEN
SUBMITTING A PROPOSAL TO THE CIS DEPARTMENT OR TO YOUR PROJECT
ADVISOR.

12
Computer Science Project Guide Feb-99

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
Computer Science Project Guide Feb-99
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.

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.

2. 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 Feb-99
2.1 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.3 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.4 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 Feb-99
2.1.5 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.

2.2 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 Feb-99
2.3 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.

3. 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 Feb-99
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

18
Computer Science Project Guide Feb-99
Describe any work you tay have done in preparation for making the proposal
such as prototypes or simulations.

4.5 Projects

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.

19
Computer Science Project Guide Feb-99

3.4.1 Sample Title Page

Automated Software Configuration Management


and Change Control System (SCM)

Submitted to the

Department of Computer and Information Science

New Jersey Institute of Technology

in Partial Fulfillment of

the Requirements for the Degree of

Bachelor of Science

by

John P. McQueue

20
Computer Science Project Guide Feb-99

3.4.2 Sample Approvals Page

APPROVALS

Agree to Advise: _________________________________


(Signature of Faculty Advisor)

Date Submitted:__________________________________

Date Approved: __________________________________

Approved by: ____________________________________


(Signature of Faculty Advisor)

21
Computer Science Project Guide Feb-99

3.4.3 Sample User Interface Design


Window With Two Panes
The left pane of this window contains an outline or table of contents of the material in the
right pane. The left pane may be used 1) to rapidly locate material for the right pane, or 2)
to edit and reorganize the right pane material.

This is a Window with Two Panes


File Edit View ... Help
1. First Part
1.1 Sub-part
1.2 Sub-part
1.2.1 Sub-sub-part
1.2.2 Sub-sub-part
1.3 Sub-part
2. Second Part
2.1 Sub-part
2.1.1 Sub-sub-part

Operations for Left Pane


Operation Visual Keyboard Mouse Access Menu Access
Feedback Access
Page Up See New Page Up Drag
Page Down Page Page Down Scrollbar
Row Up See Highlight Up Arrow Click On
Row Down Move Down Arrow Row
Move Divider See It Move Drag Divider
New Item See New Form Insert Edit | New
Delete Item Item Vanishes Delete Edit | Delete
New Item opens a dialog box to specify the level and identifier of the new item in the tree.
Delete Item deletes the highlighted item in the left pane and all its associated items in the
right pane.
Operations for Right Pane
Operation Visual Keyboard Mouse Access Menu Access
Feedback Access
Page Up See New Page Up Drag
Page Down Page Page Down Scrollbar
Row Up See Highlight Up Arrow Click On
Row Down Move Down Arrow Row
Edit Item See Edit Form Enter Dbl Clk Item Edit | Item
Edit Item opens a form for editing the item attributes.

22
Computer Science Project Guide Feb-99

3.4.4 Sample System Data Flow Diagram

Get Bal
Bal Initial
Balance
Compute
Balance Bal
Get T
T Trans-
action
Current
Balance

3.4.5 Sample System Structure Chart

Produce
Bank
Statement

Bal Bal Bal Bal

Get Process Write


Initial All New
Balance Transactions Balance

Bal Bal T T, Bal Bal

Read Write Get Compute


Initial Initial One Current
Balance Balance Transaction Balance

T T

Read Write
One One
Transaction Transaction

3.4.6 Sample Data Dictionary


Data Item Abbreviation Type Description
Balance Bal Currency Current amount of money in account
Transaction T Currency Amount of deposit or withdrawal
Statement Record Balance + {Transaction} + Balance

23
Computer Science Project Guide Feb-99

3.4.7 Sample Project Schedule


Item Start End Jan Feb Mar Apr May
Date Date

Design xxxxxx

Code xxxxxxx

Test xxxxxxx

Debug xxxxxx

Document xxxxx

Note: the month names and time bars are merely examples and are not meant to be taken
literally.

3.4.8 Sample Grading Criteria

Item Weight Mark


(%)

User Interface Design 25

Software Design 30

Implementation 30

Test Plan 10

User Manual 5

Totals: 100

Grade:

Notes:

1) Identify each item by name.

2) No weight should be less than 5 percent.

24
Computer Science Project Guide Feb-99

4. PROJECT ORAL PRESENTATION FORMAT

4.1 Presentation Guidelines

An oral presentation of the project is made at the and of the semester in which the project
is completed and is prepared during that semester. For Master's projects the preparation is
done through the CIS 710 course. The presentations are viewgraph presentations, 15
minutes long, with a few minutes for questions. Typically about 15 viewgraph are
required. The transparencies can be purchased from the bookstore.

The schedule for the presentations is announced by the department several weeks before
the end of the semester.

Use the presentation outline below as a guide for the format of your talk. However, check
with your advisor for modifications appropriate to your project, particularly for research
and hardware projects. Generally speaking the viewgraphs will include the following: title
page, problem statement, the functions performed by the project, input identification and
description, outputs, major data structures/files, hierarchical diagram, top-level flowcharts,
description of one or two modules (eg. purpose of module, flowchart for module, required
data structure), and conclusions.

Depending on the project, variations are possible. For example, for many projects a
carefully presented example may help clarify the presentation. For hardware projects,
hardware diagrams will be appropriate. In general:

(a) KEEP IT SIMPLE and understandable - so that when you're done the audience has an
idea of what your project problem and method of solution were. Your presentation
should make sense to a CIS peer who has no prior knowledge of your project. Keep this
criterion in mind as you develop your talk. It should be self-contained, simple, and not
bogged down with unhelpful detail.

(b) Keep the viewgraphs professionally neat, uncluttered, simple, short and to the point.

(c) If appropriate, illustrate your problem with an example. The example could illustrate
both the problem itself, the tables or data needed to solve the problem, and the solution
technique.

The presentation of the example may well span several viewgraphs.

(d) Select an interesting module from your project and give an idea of how it works. The
flow of logic and relevant data structure can be given - but omit overly technical detail.

(e) Ask yourself: do I get across the problem, the basic issues, and how I resolve them?

25
Computer Science Project Guide Feb-99

4.2 Presentation Outline


1. Introduction and Background
• Purpose of Section: Overview of subject and project
• Level of Presentation: Introductory, general, non-technical
1.1 Problem Statement
1.2 Previous Work
1.3 Background
1.4 Brief Project Description (what and why)
2. System Functional Specification
• Purpose of Section: Detailed explanation of what the system does, not
how the function is accomplished
• Level of Presentation: System user, not programmer
2.1 Functions Performed
2.2 User Interface Design [if required]
2.3 Other User Inputs [if required]
2.4 Other User Outputs [if required]
2.5 System Files
2.6 Internal and External Limitations and Restrictions
3. System Design Overview
• Purpose of Section: Overview of system structure and operation
• Level of Presentation: CIS student peer.
3.1 System Organizational Chart
3.2 System Flow Chart (data and/or control)
3.3 System-wide Data Structures (internal)
3.4 Description of System operation
3.5 Equipment Configuration
3.6 Implementation Languages

26
Computer Science Project Guide Feb-99

4. Selected Subprogram Descriptions


• Purpose of Section: Functional (what) and operational (how)
description of selected subprogram.
• Level of Presentation: CIS student peer.
4.1 Subprogram Functional Specification
4.1.1 Functions Performed
4.1.2 Interface Specification (Arg’s, Globals, Files, etc.)
4.1.3 Limitations and Restrictions
4.2 Subprogram Description
4.2.1 Local Data Specification
4.2.2 Algorithm Description
5. Project Testing
• Purpose of Section: Functional (what) and operational (how)
• Level of Presentation: CIS student peer.
5.1 Description of Test Case Selection Procedure
5.2 Test Result Evaluation Method
5.3 Sample Test Runs
5.4 Discussion of Test Results
6. Conclusions
• Purpose of Section: Description of what you learned from working on
the project.
• Level of Presentation: CIS student peer.
6.1 Problems Encountered and Solved
6.2 Suggestions for Better Approach to Problem
6.3 Suggestions for Future Extensions to Project

27
Computer Science Project Guide Feb-99

5. 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 two appropriate header sheets (0.1 and 0.2) 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.

28
Computer Science Project Guide Feb-99

5.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 Title Page
ii Acceptance/Approval Page
iiiAbstract
iv Key Words and Phrases
v Computing Review Subject Codes (see last page)
vi Table of Contents
1. 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)
2. 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
5.5.1 Interface Metaphor Model
5.5.2 User Screens/Dialog
5.5.3 Report Formats/Sample Data
5.5.4 On-line Help Material
5.5.5 Error Conditions and System Messages
5.5.6 Control Functions
3. System Performance Requirements
3.1 Efficiency (speed, size, peripheral device usage)
3.2 Reliability

29
Computer Science Project Guide Feb-99
3.2.1 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
4. 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)
5. 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)

30
Computer Science Project Guide Feb-99
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)
6. 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
7. 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
5.6.1 Protocol Study
5.6.2 User Survey
5.6.3 Real Time Monitoring

31
Computer Science Project Guide Feb-99
5.6.4 Interviews
8. 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
9. Bibliography
10. Appendices
11. Program Listings
12. User Manual

32
Computer Science Project Guide Feb-99

Top Two Levels of New 1982 CR Classification

In order for the reader to be able to grasp the essential structure and coverage of the new classification scheme, we present
first the top two levels of the tree (i.e. the third-level nodes and subject descriptors are omitted). Node designations in
parentheses are cross-references to other nodes which cover similar or related material.

A. General Literature G. Mathematics of Computing


A.0 GENERAL G.0 GENERAL
A.1 INTRODUCTORY AND SURVEY G.1 NUMERICAL ANALYSIS
A.2 REFERENCE (e.g., dictionaries, encyclopedias, glossaries) G.2 DISCRETE MATHEMATICS
A.3 MISCELLANEOUS G.3 PROBABILITY AND STATISTICS
G.4 MATHEMATICAL SOFTWARE
B. Hardware G.m MISCELLANEOUS
B.0 GENERAL
B.1 CONTROL STRUCTURES AND MICROPROGRAMMING H. Information Systems
B.2 ARITHMETIC AND LOGIC STRUCTURES H.0 GENERAL
B.3 MEMORY STRUCTURES H.1 MODELS AND PRINCIPLES
B.4 INPUT/OUTPUT AND DATA COMMUNICATIONS H.2 DATABASE MANAGEMENT
B.5 REGISTER-TRANSFER-LEVEL IMPLEMENTATION H.3 INFORMATION STORAGE AND RETRIEVAL
B.6 LOGIC DESIGN H.4 INFORMATION SYSTEMS APPLICATIONS
B.7 INTEGRATED CIRCUITS H.m MISCELLANEOUS
B.m MISCELLANEOUS
I. Computing Methodologies
C. Computer Systems Organization I.0 GENERAL
C.0 GENERAL I.1 ALGEBRAIC MANIPULATION
C.1 PROCESSOR ARCHITECTURES I.2 ARTIFICIAL INTELLIGENCE
C.2 COMPUTER-COMMUNICATION NETWORKS I.3 COMPUTER GRAPHICS
C.3 SPECIAL-PURPOSE AND APPLICATION-BASED I.4 IMAGE PROCESSING
SYSTEMS I.5 PATTERN RECOGNITION
C.4 PERFORMANCE OF SYSTEMS I.6 SIMULATION AND MODELING (G.3)
C.m MISCELLANEOUS I.7 TEXT PROCESSING (H.4)
I.m MISCELLANEOUS
D. Software
D.0 GENERAL J. Computer Applications
D.1 PROGRAMMING TECHNIOUES (E) J.0 GENERAL
D.2 SOFTWARE ENGINEERING (K.6.3) J.1 ADMINISTRATIVE DATA PROCESSING
D.3 PROGRAMMING LANGUAGES J.2 PHYSICAL SCIENCES AND ENGINEERING
D.4 OPERATING SYSTEMS (C) J.3 LIFE AND MEDICAL SCIENCES
D.m MISCELLANEOUS J.4 SOCIAL AND BEHAVIORAL SCIENCES
J.5 ARTS AND HUMANITIES
E. Data J.6 COMPUTER-AIDED ENGINEERING
E.0 GENERAL J.7 COMPUTERS IN OTHER SYSTEMS
E.1 DATA STRUCTURES J.m MISCELLANEOUS
E.2 DATA STORAGE REPRESENTATIONS
E.3 DATA ENCRYPTION K. Computing Milieux
E.4 CODING AND INFORMATION THEORY (H.1.1) K.0 GENERAL
E.m MISCELLANEOUS K.1 THE COMPUTER INDUSTRY
K.2 HISTORY OF COMPUTING
F. Theory of Computation K.3 COMPUTERS AND EDUCATION
F.0 GENERAL K.4 COMPUTERS AND SOCIETY
F.1 COMPUTATION BY ABSTRACT DEVICES K.5 LEGAL ASPECTS OF COMPUTING
F.2 ANALYSIS OF ALGORITHMS AND PROBLEM K.6 MANAGEMENT OF COMPUTING AND INFORMATION
COMPLEXITY (B.6-7, F. 1.3) SYSTEMS
F.3 LOGICS AND MEANINGS OF PROGRAMS K.7 THE COMPUTING PROFESSION
F.4 MATHEMATICAL LOGIC AND FORMAL LANGUAGES K.8 PERSONAL COMPUTING
F.m MISCELLANEOUS K.m MISCELLANEOUS
Computing Reviews, January 1982

33

You might also like