You are on page 1of 11

İstanbul Aydın University

Software Engineering Department

1. Project Proposal

1.1. Guide for Writing Project Proposals

This is a summary of how to write good, concise proposals for course projects. The focus of this
summary is on research and programming or implementation projects, but the general ideas can
be applied to most proposals. The recommended lengths of sections are given assuming a
document length of 3 to 4 pages (when using 11 pt. Times New Roman font in the main body text,
Arial font in headings, and 2.5 cm space on each side of a page.) Use appropriate scaling for
longer proposal documents.

Sample Outline

The following is a sample outline for a project proposal. Note that all questions for a section may
not apply to your proposal, and should be used as a general guide only.

1. Introduction (1 or 2 paragraphs)

Briefly state the topic chosen, why it is of interest, the goals, and how you intend to carry
this out. This should be a short paragraph of about 4-5 sentences:

 Motivation sentence
 Summarize the problem (1 or 2 sentences)
 Summarize some possible solutions (1 or 2 sentences)
 Describe format of rest of proposal (sections, etc.)

2. Related Work (1 or 3 paragraphs)

Describe the chosen area, which should be fairly narrowly defined, giving references to
relevant work. This description should be terse and at a high technical level (e.g. do not
spend time defining technical terms used). Next give reasons why the area is of current
interest to the technical community in general and to you in particular. Finally, list (at least
three) potential problems which merit further investigation. (Note: your project need not
necessarily advance the state of the art, but it must advance the state of your knowledge
and skills.)

 What is the history of the problem?


 Why is this problem interesting?
 When and why does the problem occur?
 Is the problem already solved? What is done now?
 Are there any similar systems or solutions to the one you propose? If so, reference
and very briefly explain them.
 Are there are possible improvements to current solutions?

3. Project Summary (2 paragraphs)

Describe in some detail the problem which you have chosen to attack and the reasons for
its importance in relation to the other problems, if any, listed above. Describe your
proposed method of investigation. Give some convincing reasons why you believe you will
be able to complete the project as proposed by the end of the semester. It is better to
propose a modest project and complete it successfully by the end of the semester than to
make a vague or grandiose proposal which you are unable to complete.

 What in general will this project achieve? (Do not delve into details or timelines.)
 What data will you use? If you are collecting new data, how will you do it?
 What method or algorithm are you proposing? If there are existing implementations,
will you use them and how? How do you plan to improve or modify such
implementations? You don't have to have an exact answer at this point, but you
should have a general sense of how you will approach the problem you are working
on.
 How will you evaluate your results? Qualitatively, what kind of results do you expect
(e.g. plots or figures)? Quantitatively, what kind of analysis will you use to evaluate
and/or compare your results (e.g. what performance metrics or statistical tests)?

4. Project Details

Describe in some detail the problem which you have chosen to attack and the reasons for
its importance in relation to the other problems, if any, listed above. Describe your pro

 Deliverables (2-3 paragraphs - point-form may be used for some of the


description)
o What will the project produce? (program, report, etc.)
o Describe in relative detail the features of each of the project's products.
o You may wish to separate deliverables into phases and indicate optional
components given time.
o Emphasize what your project contributes or achieves!

 Timeline (1 paragraph - point-form is suitable)


o Provide an estimated timeline of project deliverables and important dates.
o A division of the work into phases with a timetable for completion of the
phases would be helpful.

 Architecture and Environment (2-3 paragraphs + figures)


o Diagrams (UML, MS Visio, ...) and figures are useful here if appropriate.
o Describe the project environment (software, hardware, languages,
organizations, etc.)
o at software, hardware, or tools will you use?

 Implementation Issues and Challenges (2-3 paragraphs)


o What will be the most difficult issues and challenges in the implementation?
o How are you using or extending current tools/systems for your problem?
o What makes your project unique?

5. Conclusion (1 paragraph)

 Summarize the project including the problem, motivation, and proposed solution,
and re-state important (planned) contributions.

6. References

You should include Internet or other references at this stage to relevant research papers
or background articles. The style of references follow that used in some recognized
Computer Science academic publications, such as the IEEE Computer, ACM Computing
Surveys, etc.
 List references used to compile proposal and references that will be used for project
(if already known).

2. Project Paper

2.1. Project Paper Format

Your final Project Paper is required to be between 10 - 12 pages using the provided template,
structured like an academic paper. Please use the given template (03-Project Paper Template-
AI.docx) so we can fairly judge all student projects without worrying about altered font sizes,
margins, etc.

The following is a suggested structure for your paper, as well as the rubric that we will follow when
evaluating reports. You don't necessarily have to organize your report using these sections in this
order, but that would likely be a good starting point for most projects.

Refer to Project Report and Progress Notes.pdf for more fine-grained details and explanations
of each separate section.

 Title, Author(s)

 Abstract: Briefly describe your problem, approach, and key results. Should be no more
than 300 words.

 1. Introduction (10%): Describe the problem you are working on, why it's important, and
an overview of your results

 2. Related Work (10%): Discuss published work that relates to your project. How is your
approach similar or different from others?

 3. Overview, Methods and Tools (10%):

Briefly and technically introduce your project here in this section. Write sentences giving
the answers for the following typical questions:

Discuss your approach for solving the problems that you set up in the introduction. Why is
your approach the right thing to do? Did you consider alternative approaches? You should
demonstrate that you have applied ideas and skills built up during the quarter to tackling
your problem of choice. It may be helpful to include figures, diagrams, or tables to describe
your method or compare it with other methods.

If you use any open software module as a base code for your project, first give information
about this module by referencing its address which is given in the references part of your
report. Explain how you use it in your project.

Draw diagrams, preferable UML diagrams (at least package and class diagrams if your
code has more that one package and many classes), showing the relations between
software packages and classes of your project.

Explain the language and software tools that you use in your project.
 4. Architecture, Algorithms, Models and Data (20%):

Formulate your software solution using Agents and AI terminology and AI solutions
methods that were presented in class. Think about using the following examples:

 Write PEAS for your solution.


 What are the properties of your agent software? (like observable, deterministic,
episodic, sequential, static, discrete, single/multi-agent software, … etc.)
 States, Initial State, Successor Function, Goal Test, …
 Some typical examples of graphs generated during runtime can be drawn.
 Completeness, Optimality, Time and Space Complexity information about your
solutions.
 For example, for a project using backtracking algorithm in Sudoku game you can
say that “our software is based on improved Backtracking Algorithm which is a
solution for a Constraint Satisfaction Problem using ordering and filtering
heuristics.” Variables, Domains, and Constraints of the program must be given for
this kind of agent software.

Describe the software and hardware architecture; introduce the algorithms, models used,
and data. Use UML diagrams for software architecture, other figures and tables to give
different abstraction views of your solution.

Data: Describe the data you are working with for your project. What type of data is it?
Where did it come from? How much data are you working with? Did you have to do any
preprocessing, filtering, or other special treatment to use this data in your project?

 5. Experiments, Analysis and Performance (30%): Discuss the experiments that you
performed to demonstrate that your approach solves the problem. The exact experiments
will vary depending on the project, but you might compare with previously published
methods, perform an ablation study to determine the impact of various components of your
system, experiment with different hyperparameters or architectural choices, use
visualization techniques to gain insight into how your model works, discuss common failure
modes of your model, etc. You should include graphs, tables, or other figures to illustrate
your experimental results.

 6. Conclusion (10%) Summarize your key results - what have you learned? Suggest ideas
for future extensions or new applications of your ideas.

 7. References (5%) Write all related references and use them in the Related Work and
other parts of your report.

 Writing / Formatting (5%) Is your paper clearly written and nicely formatted?

 Supplementary Material, not counted toward your 10-12 page limit and submitted as a
separate file.

o Your supplementary material might include:


 Source code (if your project proposed an algorithm, or code that is relevant
and important for your project.).
 Cool videos, interactive visualizations, demos, etc.
o Examples of things to not put in your supplementary material:
 The entire TensorFlow/PyTorch Github source code.
 Any code that is larger than 10 MB.
 Model checkpoints.
 A computer virus.

Submission: You will submit your final report as a PDF and your supplementary material as a
separate PDF or ZIP file. We will provide detailed submission instructions as the deadline nears.

Additional Submission Requirements: I will also ask you do do the following when you submit
your project report:

 Your report PDF should list all authors who have contributed to your work; enough
to warrant a co-authorship position. This includes people not enrolled in SEN503 such
as faculty/advisors if they sponsored your work with funding or data, significant mentors
(e.g., PhD students or postdocs who coded with you, collected data with you, or helped
draft your model on a whiteboard). All authors should be listed directly underneath the title
on your PDF. Include a footnote on the first page indicating which authors are not enrolled
in SEN503. All co-authors should have their institutional/organizational affiliation specified
below the title.
 If you have SEN503 contributors, you will be asked to describe the following:
o Specify the involvement of non-SEN503 contributors (discussion, writing code,
writing paper, etc).
o Specify whether the project has been submitted to a peer-reviewed conference or
journal. Include the full name and acronym of the conference (if applicable). This
only applies if you have already submitted your paper/manuscript and it is under
review as of the report deadline.
 Any code that was used as a base for projects must be referenced and cited in the
body of the paper. This includes SEN503 assignment code, finetuning example code,
open-source, or Github implementations. You can use a footnote or full reference /
bibliography entry.
 If you are using this project for multiple classes, submit the other class PDF as well.
Remember, it is an honor code violation to use the same final report PDF for multiple
classes.

In summary, include all contributing authors in your PDF; include detailed non-SEN451 co-author
information; tell us if you submitted to a conference, cite any code you used, and submit your dual-
project report.

2.2. More on Project Paper Format

Title
Author(s)
Abstract
1. Introduction
2. Related Work
3. Overview, Methods and Tools
4. Architecture, Models and Data
5. Experiments, Analysis and Performance
6. Conclusion
7. References

Example: 01-Real and OPNET Modeling and Analysis of an Enterprise Network and Its Security Structures-2010.pdf
Fig. 1. The format of Project Report.
Fig. 2. The abstract and introduction are most important parts of a Project Report or paper.

After all revisions are completed, prepare an abstract that summarizes in about YYY (eg. 100)
words what you did, why you did, what you found out, and what it means to your readers.

Select a title that clearly conveys your subject in as few words as possible.

Remember: Many will decide whether or not to read your report / paper based on the title, abstract,
and introduction.

2.3. Writing Good Introduction

Try to take the following questions and issues in the introduction part:

 What’s the problem?


 Why is it important?
o Mention some application, existing problems, …
 Why is it difficult?
o Ask some not-very-obvious questions or explain naive approach.
 What others did?
 What’s my contribution?
o Contribution bullet list.
o (Paper organization).
 Build some excitement / surprise.
 Keep reading! You will find something interesting later.
 Every word should be carefully picked.
Fig. 3. Details of a Typical Research Paper Structure.

2.4. Easy-to-Read Report / Paper

 You can always make it complicated later.


 Comprehensive Figures and Tables – Figure speaks!!
o Summary of notations.
 Define models / architecture precisely.
 Explicitly write down assumptions.
 Input, output, property, goal function.
 Make a connection.
 Write concisely (not long sentences, this is a technical paper).
 Follow guidelines (paper/figure limit, LaTeX/Word etc.).

3. Project Progress: Notes and Report


3.1. Project Progress Notes Template

1. Summary of Weekly Studies

The names of the project staff will be given and the works completed in the last week will be summarized.
Who did what and contributed must be clearly written.

Give specific information about what each member did in the last week. Use such statements in a bulleted
list form:

Ahmet Çalışkan:
 Found all articles and internet documents [1 - 6], and, some code examples [7, 8]. He read the
first 3 documents and run code examples.
 He learned the Backtracking algorithm and its heuristics. He transfered this knowledge to other
team members in the meetings.
 Wrote the “2. Related Work” and “7. References” sections of our Project Report.
Fatma Azimli:
 Read 2 papers [2], [3] and 3 Internet documents [4], [5], [6] given in the references.
 Summarized the important points for the References section and wrote related paragraphs.
 Managed to run the code given in the Github repository [7].
 Started to write project code on top of the open source code given in [7].
 Wrote 3 methods (about 70 lines of code) in Sudoku.py.

2. Analysis, Design and Implementation Records

The weekly studies will be explained. The screenshots of all the details of design and implementation steps
and code will be given and briefly explained here.

“Write your program for people first, computers second”.


(A rule from Code Complete, Steve McConnell, Microsoft Press, 2004)
This is especially true and very important when you are writing for your course, and for a big project. If your
project report and programming style are not good, (class and variable names and code descriptions are
not clear, and code indentation is bad), your instructor will not try to understand what you have done. And
also, your product will not be able to be used by other people (maybe, by your project team members). Even
sometimes you can not remember what you have done with your own code when you look at it later!
If your programs are short, include your programs here. You can also include only importand sections or
algorithms that you developed. Follow Software Enginerring Principles as much as possible. It may be better
to put the names of your files and give brief information about files and LOC (Lines of Code) for each file in
a table here.
Especially pay attention to code readeability and understandability: The names of your classses, functions,
methods, and variables. Don’t use unnecessary comments. Code indentation is very important...
If your program has more than 2 classes, include the software architecture diagram of your program. An
example software architecture of a program is given below in Fig. 4.

Fig. 4. The software architecture of a program (UML class diagram).


If some code is included in this section, it must be in 9-point Consolas font. Please pay attention to the
code indentation when writing your code. If you use TAB characters for white spaces (code indentation)
when writing your program in any editor, you can copy and then paste that program into your Microsoft Word
document without any problem in general. After you have copied your programs into the project document,
if there are some lines which are not aligned, correct them manually.
A simple example source code is given below:
// A good header needed for each program: See how to write a good program header... 
/* A recursive utility function to solve Knight Tour problem */ 
int solveKTUtil(int x, int y, int movei, int sol[N][N],  
                int xMove[N], int yMove[N])  
{  
   int k, next_x, next_y;  
   if (movei == N*N)  
       return 1;  
   
   /* Try all next moves from the current coordinate x, y */ 
   for (k = 0; k < 8; k++)  
   {  
       next_x = x + xMove[k];  
       next_y = y + yMove[k];  
       if (isSafe(next_x, next_y, sol))  
       {  
         sol[next_x][next_y] = movei;  
         if (solveKTUtil(next_x, next_y, movei+1, sol, xMove, yMove) == 1)  
             return 1;  
         else 
             sol[next_x][next_y] = ‐1;// backtracking  
       }  
   }  
   return 0;  
}

Deep Neural Network Architecture: Explain your DNN Architecture and its details by figures having
different levels of abstraction and explanations. Look at the paper given in 00-Course Project/Age and
Gender Classification using Convolutional Neural Networks-2015.pdf.
Data: Describe the data you are working with for your project. What type of data is it? Where did it come
from? How much data are you working with? Did you have to do any preprocessing, filtering, or other special
treatment to use this data in your project?
Training and Testing: How did you split your data for training and testing phases? How did you do training
on data? How long did it take? How did you improve your training time?

3. Problems Encountered

Technical and administrative problems, solutions and suggestions for unsolved problems will be given.

The following part will be requested in your last week’s Project Progress Notes:

4. Project Work Products and Contribution Summary

General Information
Number of source files developed / adapted # for developed / # adapted
Total number of Lines of Code (LOC)
(Other important summary information...)
Software: Written/Adapted Program Source Files
Developer Name File Name LOC (Written) LOC (Adapted) Total

Software Developer Name Total (LOC) (Written or Adapted)

Documents
Author (s) Project Report (Section) and Other Documents

Technologies Learned and Used in the Project


Technology, Algorithm Name Explanation

You might also like