Final Year Project 
Handbook 
Computer Engineering Students 
Professor D. Vernon 
Revision 2.0 
January 2007 
And paste pdf into powerpoint - C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF in C#.net, ASP.NET MVC, WinForms, WPF
Online C# Tutorial for Creating PDF from Microsoft PowerPoint Presentation
pdf conversion to powerpoint; converting pdf to powerpoint online
And paste pdf into powerpoint - VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to PDF in vb.net, ASP.NET MVC, WinForms, WPF
VB.NET Tutorial for Export PDF file from Microsoft Office PowerPoint
how to convert pdf slides to powerpoint; create powerpoint from pdf
Table of Contents 
1. 
The Importance of Final Year Projects  
2. 
Choosing Your Project  
3. 
Planning, Executing, and Managing Your Project 
3.1 Problem Identification  
3.2 Requirements Elicitation 
3.3 Problem Modelling 
3.4 Systems Analysis and Specification 
3.5 System Design 
3.6 Module Implementation and System Integration 
10 
3.7 Testing and Evaluation 
10 
3.8 Documentation 
11 
3.9 Good Engineering Practice and Safety Regulations  
11 
3.10 Back to the Beginning – Managing Your Project 
12 
4. 
Documenting Your Project 
15 
4.1 Project Specification  
15 
4.2 Interim Progress Report  
17 
4.3 Final Report  
19 
4.4 Presentations  
22 
4.5 A Very Short Guide to Good Writing  
23 
5. 
Project Assessment and Marking  
25 
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Ability to copy selected PDF pages and paste into another PDF file. Copy three pages from test1.pdf and paste into test2.pdf.
how to convert pdf into powerpoint presentation; convert pdf to powerpoint online no email
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Ability to copy PDF pages and paste into another PDF file. Support ' Copy three pages from test1.pdf and paste into test2.pdf. Dim
add pdf to powerpoint presentation; convert pdf file to ppt online
1. The Importance of Final Year Projects 
Your final year project is one of the most important aspects of your engineering degree. 
To see why, let’s look at a definition of engineering, taken from the IEEE. 
“Engineering is that profession in which knowledge of the mathematical, 
computational, and natural sciences gained by study, experience, and practice 
is applied with judgement to develop economically effective use of matter, 
energy, and information to the benefit of humankind.” 
Engineering is first and foremost the application of knowledge. However, the 
application must be carried out with judgement, to ensure that the resultant system is 
effective and efficient, and that it is of benefit (which raises the issue of the ethical 
responsibilities of engineers – a topic for another day).  The final year project is one of 
the primary the mechanisms used by the College to provide you with an opportunity to 
gain experience in the practical, effective, efficient, and beneficial application of what 
you have been studying for the past several years.  Naturally, you will continue to gain 
engineering experience after you graduate but the final year project will be your first 
exposure to the full rigour of engineering practice. It is essential that you learn from 
this exposure and practise all of the engineering methodologies involved.  It is 
particularly important that you learn not just to apply what you know, but to apply it 
with judgement, with the ability to assess what you are doing and to be critical of it. 
There is another reason why your final year project is so important: it will inevitably be 
used as a discriminator to decide how good an engineering student you are.  If you end 
up with a result in your degree examinations which is on the borderline between one 
grade and another, the examiners will look at how you performed in your project and 
then they will make a decision as to which grade you should be assigned.    
Finally, your final year project counts for 25% of your 5
th
Year marks and 17.5% of  
your overall degree mark. 
So, for the next 8 months, you should devote yourself totally to your final year project.  
Think of it as your passport to the engineering profession – your formal studies are 
your ticket but without your passport, you can’t travel.   Note, however, that you 
shouldn’t neglect your other studies in the pursuit of your project: a passport is 
useless without a ticket! 
Now that we have established the importance of your final year project, let’s look at the 
important issues in pursuing it.   There are four principal concerns: 
1. Choosing a project 
2. Planning, executing, and managing your project 
3. Documenting your project 
4. Assessment of your project 
We will look at each of these in the following sections. 
C# PDF insert text Library: insert text into PDF content in C#.net
Parameters: Name, Description, Valid Value. value, The char wil be added into PDF page, 0
convert pdf to editable powerpoint online; convert pdf to editable ppt
VB.NET PDF insert image library: insert images into PDF in vb.net
project. Import graphic picture, digital photo, signature and logo into PDF document. Add file. Insert images into PDF form field in VB.NET. An
how to convert pdf slides to powerpoint presentation; how to change pdf file to powerpoint
2. Choosing Your Project 
Given that you are going to spend a lot of time working on your project, it is essential 
that you pick a project which you like and which you are capable of doing.  Note that 
these are not necessarily the same things: just because you like a particular project 
doesn’t mean you are qualified to do it.  You may not have taken all of the requisite 
courses or it may be a more theoretically-aligned project whereas you might be a more 
practically-oriented engineering student (or vice versa).  Think long and hard before 
making your final choice.   At the very least, you should take the following steps in 
assessing and choosing an appropriate topic. 
1. Find out what are your options. 
A list of projects proposed by academic staff will be distributed to you in week 1.  
You should: 
• 
Read all the descriptions 
• 
Identify the ones that interest you 
• 
Read them again 
2. Make a short-list of three projects. 
3. Think about proposing your own project.  Using the descriptions you have read as 
a guideline, write your own proposal.  Note, however, that the feasibility and 
suitability of your proposal will have to be assessed before it can be added to your 
list.  Submit your proposal to the Project Coordinator who will have it reviewed by 
an appropriate member of staff. 
4. Go and talk to the supervisors (i.e. the member of staff who proposed the project or 
the person nominated by the project coordinator in the case of your own proposal). 
5. Go away and write down what you think the project is about. 
6. Submit a ranked project selection form to the project coordinator by the end of 
Week 2. 
7. Your selections will now be reviewed by the project coordination panel. 
8. A list of allocated projects will be published in Week 3. 
9. Now you can begin your project in earnest … you should begin by making a 
preliminary plan (see next section). 
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF file into two or multiple files in ASP.NET webpage online. Support to break a large PDF file into smaller files in .NET WinForms.
pdf to powerpoint converter; adding pdf to powerpoint
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
how to convert pdf to powerpoint on; how to convert pdf into powerpoint presentation
3. Planning, Executing, and Managing Your Project 
Most students have no idea how to begin their project.  This is understandable: it is the 
first time they will have had to tackle a large amount of work that is probably poorly 
defined (the project descriptions provided by lecturers are rarely complete!)  To get 
started, it helps to know the key activities that result in a successful project.  They are: 
1. Problem identification 
2. Requirements elicitation 
3. Problem modelling 
4. System analysis and specification 
5. System design 
6. Module implementation and system integration 
7. System test and evaluation 
8. Documentation 
9. Project management 
3.1 Problem Identification 
Problem Identification involves a lot of background work in the general area of the 
problem.  Normally it calls for the use of prior experience, typically experience you may 
not yet have.  It requires an ability to look at a domain (e.g. telecommunications or 
engine control) and to identify the issue that needs to be addressed and the problem to 
be solved (e.g. elimination of noise or cross-talk on a communication channel, or 
engine control for temperature-dependent fuel efficiency).  It also required an 
understanding of the theoretical issues by which we can model the problem.  So, the 
first thing you need to do in your project is become an expert in the problem at hand: a 
problem-domain expert. 
At the same time, you also need to know how to handle the tools that will enable you to 
solve the problem.  These might include the operating system, the programming 
language, the application programming interface (API) definitions, class libraries, 
toolkits, or any application-specific analysis utilities.  That is, you also need to become 
solution-domain expert. 
The only way to become an expert in both the problem domain and the solution 
domain is to learn as much as possible about the area and to learn it as quickly and 
efficiently as possible.   Many people come unstuck at this first step and they launch 
themselves into a frenzy of unstructured research, reading much but learning little.   
Here are some tips to avoid this happening. 
ɽ 
Collect any papers, articles, book chapters you can on the area and make a copy 
for your own personal archive. 
ɽ 
Make sure you keep a full citation index, i.e., you must record exactly where every 
article you copy comes from.  Typically, you need to record the title of the article, 
the authors, the name of the magazine/journal/book, the volume and number of 
the journal or magazine, and the page numbers.  If it’s a chapter in a book and the 
author of the chapter is different from the editor of the book, you need to record 
both sets of names.   
ɽ 
Not all the articles you collect will be equally relevant or important.  Consequently, 
it’s not efficient to give each of them the same attention.  But it’s not easy to know 
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Import graphic picture, digital photo, signature and logo into PDF document. Merge several images into PDF. Insert images into PDF form field.
how to convert pdf to ppt using; convert pdf to powerpoint slides
C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF File into Two Using C#. This is an C# example of splitting a PDF to two new PDF files. Split PDF Document into Multiple PDF Files in C#.
adding pdf to powerpoint slide; drag and drop pdf into powerpoint
how relevant it is until you read it.  So how do you proceed?  To solve this dilemma, 
you should know that there are three levels of reading: 
1. Shallow Reading: you just read the article quickly to get an impression of the 
general idea. Read it twice.  This should take a half-an-hour to an hour. 
2. Moderate Reading: Read the article in detail and understand all of the main 
concepts; this will probably require you to read it several times and take a 
couple of hours to assimilate. 
3. Deep Reading:  Here you make an in-depth study of the article.  This may take 
you several hours or even a couple of days.  After many careful readings, you 
should know as much about the topic as the author. 
The way to proceed with your ‘reading in’ is to  
♦ Shallow read everything and write a 5-line summary of the article 
♦ If you think the article is directly relevant to your project, label it, and put it on 
a list of articles to be read at the next level, i.e. Moderate Reading. 
♦ Read all the labelled articles and write a 1-page summary. 
♦ If the article is going to be used directly in the project, e.g. as a basis for a 
hardware design or a software algorithm, then you need to add it to your list of 
articles to be read at the next level, i.e. Deep Reading. 
♦ Read all the Deep-Read articles and write extensive notes on them. 
Note that the ‘reading in’ phase of the project can last quite a long time (there’s a lot of 
reading and writing to be done) and it can overlap partially with some of the other early 
tasks, such as requirement elicitation, the topic of the next section. 
Finally, it is very important that you realize that, in order to fully understand anything 
that you read, you must write it up in your own words.   If you can’t express or speak 
about a given idea, then you haven’t truly understood it in any useful way. This is so 
important that it’s worth saying a third time:   
Writing is an Essential Part of Understanding 
This is why, in all of the above guidelines, you see recommendations to write things 
down.   
3.2 Requirements Elicitation 
Having chosen your project, you will have in your possession a short description of 
what is involved in the project.  You will realize by now that this is completely 
insufficient for you as a basis for doing the project.  Consequently, your next task must 
be to find out exactly – and completely – what the project entails.  This isn’t as easy as 
it sounds.  You might think that you should just ask your supervisor and he or she 
should tell you.  It doesn’t work like that.  Quite often, a supervisor won’t have an 
exact (and complete) model of what is required – supervisors are just like engineering 
clients and customers in the business and industrial world.  It is your job to help your 
supervisor identify exactly what he wants.  That’s what good engineers do: they help 
people understand what they want and then they build it for them.   Here’s how you do 
it. 
1. Talk to your supervisor. 
2. Write down everything he or she says (by ‘write down’ I mean take notes of his or 
her words). 
3. Write up everything he or she says (by ‘write up’ I mean express what your 
supervisor said in your own words). 
4. Build a document describing what you think is required. 
5. Go back to your supervisor and ask for her or his comments. 
6. Return to step 1, and keep returning until you are both happy with your 
requirements document. 
This all translates into one simple rule:  find out what you want the final system to do 
and how it should behave, write it down, and get everyone involved to agree to it … in 
writing.  And don’t spare the detail: every single aspect of what’s wanted should be 
teased out and agreed:  what it does, what it doesn’t do, how the user is to use it or 
how it communicates with the user, what messages it displays, how it behaves when 
the user asks it to do something it expects, and especially how it behaves when the 
user asks it to do something it doesn’t expect.    
This process is called requirements generation. It’s also called requirements elicitation 
because it reflects better the fact that you have to work actively with the client to find 
out what they really want (as opposed to what they initially say they want, which is a 
completely different thing).  Perhaps it should be called requirements extraction because 
it’s sometimes like pulling teeth (but, of course, not in the case of any of the Etisalat 
University College supervisors!)  Once you have been though the requirements 
elicitation process several times and you are happy that you really know where you 
want to go, you must write it down and get everyone concerned to agree to it.  This 
then becomes part of the system specification: it says what you are going to do.  But 
that’s the subject of the section after next.   
3.3 Problem Modelling 
Once you know the requirements, and are an expert in the problem domain, you can 
abstract the problem from the problem space and model it computationally:  this 
means we can identify the theoretical tools we need to solve the problem.  Examples 
include statistical analysis for the elimination of noise on the communication channel, 
characterization of the relationship between fuel consumption and engineer cylinder 
temperature for the engine control; the extraction of facial features from images, and 
the statistical classification techniques used to match these feature with faces in a 
database.   
This is the foundation of all engineering and science: the creation of a rigorous – 
usually mathematical – description of the real physical problem to be addressed, be it 
control, communications, electronics, or some computational model.  For example, if 
your problem concerned with packet routing, you might represent it using a graph and 
deploy formal graph theoretic tools for its analysis; if your problem is concerned with 
signal analysis, you might choose a Fourier representation or an eigen-vector 
representation and deploy the appropriate theorems in Fourier analysis or linear 
system theory.  If your problem is to do with building a database, you will probably 
model the system with an  entity-relationship diagram and validate the model by 
normalization. 
The key to all successful engineering is the use of an explicit model: if you don’t have a 
model, you are probably not doing engineering.  Connecting components (or lines of 
code) together is not engineering, irrespective of whether it works or not.  Without the 
model you won’t be able to analyze the system and, thereby, make firm statements 
about its robustness, operating parameters, and limitations. 
You may also wish to consider the use of a symbolic mathematics package such as 
Maple in the development of your mathematical model. 
3.4 Systems Analysis and Specification 
With the requirements document, problem definition, and computational model 
identified, we can now say exactly what our system will do and under what 
circumstances it will do it. This is the system specification.    In writing the 
specification, you should begin with the requirements document and then you should 
identify the following. 
ɽ 
The system functionality 
ɽ 
The operational parameters (conditions under which your system will operate, 
including required software and hardware systems) 
ɽ 
Failure modes and actions on failure 
ɽ 
Limitations & restrictions 
ɽ 
User interface or system interface 
It should also include
1
1. A functional model. This will usually take the form of a functional 
decomposition: a hierarchical breakdown of the major functional blocks 
involved in the processing/analysis/transformation. Typically, this will be a 
modular decomposition of the computational model.  Each leaf node in the 
functional decomposition tree should have a short description of the 
functionality provided, the information (data) input, and the information (data) 
output. 
2. A data model. The identification of the major data-structures to be used to 
represent input, output, and temporary information. This is sometimes known 
as a data dictionary.  Note that we are not interested here in the 
implementation of the data-structures (e.g. linked list, trees, arrays) but with 
the identification of the data itself.  Very often, it is useful to use entity-
relationship diagrams to capture the data model. 
3. A process-flow model.  This model specifies what data flows into and out of 
each functional block (i.e. into and out of the leaf nodes in the functional 
1
These terms refer to the procedural or imperative programming model; different but 
related terms apply to the object-oriented model. 
decomposition tree).  Normally, data-flow diagrams are used to convey this 
information, and are organized in several levels (i.e. DFD level 0, DFD level 1, 
etc.)  The level zero DFD is equivalent to the system architecture diagram and 
shows the sources and sinks of information outside your system. 
4. A behavioural model.  This will typically use a state-transition diagram to 
show the behaviour of the system over time, i.e. the different states it can be in, 
the event and triggers that cause a change in state, and the functional blocks 
associated with each state.  It is also often useful to create a control-flow 
diagram: a version of the data-flow diagram with events and triggers 
superimposed on each process. 
5. A clear and detailed definition of all the user and system interfaces; one of the 
best ways of encapsulating this information is to create a user-manual
All this information is collectively known as the ‘system specification’ and is the 
result of an activity know as systems analysis. 
Once you have this specification, before proceeding you must return and see if it 
actually matches what the user needs: i.e. you need to validate that the system 
specification satisfies the requirements (you would be surprised how often it doesn’t).  
If it does, you can proceed to the next activity: software design. If it doesn’t, then either 
the requirements were wrong and need to be changed, or the specification was wrong, 
and needs to be changed, or, more likely, both were wrong and need to be changed. 
You should get the explicit agreement of your supervisor that all is in order.  If it isn’t, 
then you must go back to requirements if necessary and revise them and the 
specifications (with your supervisor’s agreement on everything).  After this, you validate 
again, and you keep doing this until everyone agrees. Then, and only then, should you 
proceed to the next phase of the execution of your project: Design. 
3.5 System Design 
You are now in a position to design your system using whatever design methodology is 
appropriate for the area (and these will inevitably be specific to the particular area, be 
it filter design, amplifier design, software design, and so on).  That said, there are a few 
general guidelines that apply to all areas: 
ɽ 
Identify several design options – algorithm, data-structures, files, interface 
protocols –  and compare them. 
ɽ 
Analyze your design to ensure it is technically feasible (i.e. validate its 
realizability). Remember, you can’t always build everything you design, either 
for theoretical reasons (ideal filters, for example) or for pragmatic reasons (a 1-
Farad capacitor would make for some interesting implementation problems). 
ɽ 
Analyze your design to ensure it meets the specifications (i.e. validate its 
operational viability) 
ɽ 
Cost your system (i.e. validate its economic viability) 
ɽ 
Choose the best design. You will have to define what ‘best’ means for your 
particular project. It might mean the cheapest to manufacture, it might mean 
the fastest, and it might mean the smallest – it all depends.  It’s up to you to 
identify the test for optimality.  As John Canny in MIT once put it when 
10 
comparing different filtering techniques:  you choose your optimality criterion, 
and you take your choice.  
Note well that this is the hallmark of good engineering: the practice of 
qualitative and quantitative assessment of different options.  Note too that our 
original definition of engineering is reflected in this design process: the creation 
of effective, efficient, and beneficial systems. 
3.6 Module Implementation & System Integration 
Finally, we are at the point where we can build the hardware and/or write the 
software.  There is not much to say here since the construction methodologies are so 
domain specific, even more than in the case of design.  However, there is one small 
piece of advice which is applicable to all areas:  use a modular construction approach.  
Don’t attempt to build the entire system in one go in the hope that, when you switch it 
on or run it, it will work.  This is the so-called Big Bang approach (everything comes 
into existence at one instant) and its name is very appropriate for it almost always 
results in initial chaos.  It is much better to build (and test) each component or 
modular sub-system individually and then link them or connect them together, again 
one component at a time. 
3.7 Testing and Evaluation 
Most undergraduate engineers (and some graduate ones) misunderstand the meaning 
of the word testing They think it means showing that something works: their project, 
for example.  But it doesn’t.  Testing means much more than this.   Certainly,  you 
need to show that it works (i.e. that it meets the requirements and operates according 
to the specification), but a good testing strategy also attempts to break the system: to 
show not where it works but where it fails.    This is sometimes referred to as stress 
testing.  A well-engineered system will always have been stress-tested:  that is, taken 
beyond the point at which it was expected to operate to see how it behaves under 
unexpected circumstances.  This is  particularly important for safety-critical systems 
(e.g. a heart pacemaker, an airline navigation system,  a stock-exchange transaction 
processing system …).  In engineering, we normally formalize the testing process by 
referring to three distinct goals: 
1. Validation  
Simply stated, this test answers the questions: Have I built the right system? Does it 
satisfy the requirements?  It may seem obvious, but you’d be surprised the number 
of times that the system which is built isn’t what is wanted at all.  You should 
compare the system’s behaviour with the original requirements and system 
specification.  Validation is extremely important and it should be carried out with 
great attention to detail.  
2. Verification  
In this case, the questions are:  Have I built the system right? Is it computing the 
right answer?  This is what most people understand by testing. 
3. Evaluation  
Finally, we ask: How good is the system?  Again, the hallmark of good engineering: 
we seek to assess the systems performance and compare it to that of other similar 
systems.   Ideally, you should identify some quantitative metric by which to 
Documents you may be interested
Documents you may be interested