Software Engineering
Project 2 - Research Paper Preparation (and a start on the
KCP&L Undergraduate Competition)
15 Points
Due: Oct. 3, 2013 at 11:59:59pm
Introduction:
Working professionals are often asked to prepare a short research
paper. Research papers can serve different purposes, but one
common use it to provide a comparison between different
technologies, techniques, or policies as well as a recommendation.
Objectives:
- Develop a research paper, which can be an important part of
domain analysis, or just a useful tool for making decisions
about technologies, techniques, and policies.
- Practice formal business writing.
- Get a cash prize and an A!
Assignment Structure:
The research paper will be split into four phases. You will
complete two of these phases for Project 2:
1. Preparation: (Must be shown to the
instructor by Sept. 27 and submitted on Oct. 3, 7.5 points)
- Select what you feel is an appropriate topic and clear it with
your instructor.
You can select a topic of interest to you that is relevant to
Software Engineering and can be used to develop an unbiased
comparison between at least one alternative. Unbiased means you
may explain factual advantages and disadvantages in your
research paper. It is reasonable to use some personal
opinion when there is some controversy about a topic. For
example, some literature may show conflicting information.
You should not use personal opinion of whether you like or
dislike something in your research paper aside from describing
why you chose to investigate a particular topic in your
introduction. For example, you may feel that the Agile
process is a better methodology than Waterfall or vice
versa. This research paper is not an appropriate place to
state an opinion such as "Agile is better than Waterfall," and
proceed to say many good things about the Agile method using a
successful Agile example and many bad things about Waterfall by
using a failed Waterfall example. Instead, if you were comparing
methodologies it would be appropriate to indicate features of
each, using comparable examples, showing the utility of such
features in an unbiased manner, and make a comparison that shows
the advantages and disadvantages of each without showing
personal bias toward either method. There will be a
25% penalty for excessive personal bias in a research paper -
this means if your paper is written like a news article and
not a research paper, you will be penalized. Example
topics (just a few, you do not have to choose from this list)
and some starting references include:
- Software development methodologies
- Waterfall -
Royce, Winston (1970),
"Managing the Development of
Large Software Systems"
- Spiral -
Boehm, Barry (1986), "A Spiral Model of Software
Development and Enhancement"
- Dual Vee -
Forsberg,
Kevin and Mooz, Harold (1991), "The Relationship of System Engineering to the
Project Cycle"
- SCRUM - Schwaber, Ken (1995), "SCRUM Development
Process"
- Iterative and Incremental Development - DOD Standard
2167 (1985)
- Novel programming paradigms or tools
- Hadoop and MapReduce - Dean, Jeffery and
Ghemawat, Sanjay (2004), "
MapReduce: simplified data processing on large clusters"
- HBase, MongoDB, Redis, Cassandra and NoSQL Databases -
Lith,
Adam and Mattson, Jakob
(2010), "Investigating
storage solutions for large data: A comparison of
well performing and scalable data storage solutions
for real time extraction and batch insertion of
data"
- Cray's Chapel Programming Language - Bradford L.
Chamberlain , David Callahan , Hans P. Zima, "Parallel
Programmability and the Chapel Language"
- Accelerators, CUDA programming, OpenACC, and OpenCL
- Modeling and design methodologies
- Modeling Languages such as BPMN, EXPRESS, IDEF, UML/OCL,
etc.
- Design Patterns - Baroni, Aline (2003), "Design Patterns
Formalization"
- Architecture Patterns -
Microsoft Application Architecture Guide, 2nd Edition -
October 2009, Chapter 3: Architectural Styles and Patterns
- Symbolic methods
- Testing
- Concurrency, Parallelism, and Performance
- Load Balancing - Willebeek-LeMair, Marc and Reeves,
Anthony (1993), "Strategies for dynamic load balancing on
highly parallel computers"
- OpenMP, MPI, POSIX Threads, etc.
- Parallel Debugging - Charles E. Mcdowell , David P.
Helmbold (1989), "Debugging Concurrent Programs"
- Evolutionary Algorithms
- Particle Swarms - Kennedy, James and Eberhart, Russell
(1995), "Particle Swarm Optimization"
- Genetic Algorithms -
Heinz Mühlenbein (1997), "Genetic Algorithms"
- Differential Evolution - Rainer Storn and Kenneth Price
(1995), "Differential Evolution - A simple and efficient
adaptive scheme for global optimization over continuous
spaces"
- Genetic Programming - Koza, John (1997), "Genetic
Programming"
- Machine Learning
- Reinforcement Learning - Leslie Pack Kaelbling , Michael
L. Littman , Andrew W. Moore (1996), "Reinforcement
learning: a survey"
- Supervised vs Unsupervised -
Xiaojin Zhu (2006), "Semi-Supervised Learning Literature
Survey"
- Pattern Recognition - Anil K. Jain , Robert P. W. Duin ,
Jianchang Mao (2000), "Statistical pattern recognition: A
review"
- Classification and Segmentation -
A. K. Jain , M. N. Murty , P. J. Flynn (1999), "Data
Clustering: A Review
"
- Usability studies
- Begin an initial review of potential sources of information.
The quality of the references will be used to evaluate your
paper, so make sure that the sources you use are high quality,
technically rigorous, and reliable. A web search is a good
start, but most of your information should come from respected
sources (ACM, IEEE, Papers from these resources provided through
CiteSeer / Google Scholar, or other
professional societies; books by qualified authors; journals in
Business Source Premier, etc.).
- Develop an annotated bibliography of at least 5 sources.
Cornell has an excellent description of the intent of an
annotated bibliography: http://olinuris.library.cornell.edu/ref/research/skill28.htm
- Select a thesis.
- Realize that more depth is expected if you choose to review
fewer topics.
For the above topics the thesis may be something like:
- X is the preferable evolutionary algorithm for problem type
A because of evidence Z...
- Method Y is not a good approach for testing with novice
users because ...
- The five most important techniques for developing a software
product are…
Comparisons similar to those in news articles such as
Tom's Hardware, Wired, Engadget, etc., are unacceptable and will
receive a reduced grade.
2. Paper Outline & Peer Review (Due Oct. 3,
7.5 points)
Develop an outline of your planned paper.
You will need a draft outline of your paper that includes
introductory information, background on the topics reviewed,
comparison information, and conclusion.
We will do peer review in class, where your outline will be
critiqued by at least two of your classmates. You will also be
responsible for reviewing the work of at least two of your
classmates.
3. Submission
Submit your thesis, annotated bibliography, draft outline, and
peer reviews of your outline in a zipped file to the eCompanion
Dropbox for this project.
Paper Format:
Required Materials: Title Page, Body, Bibliography
Title Page Contents:
Paper title (Centered on page)
Author (Centered below the title)
Citations: APA style (http://www.library.cornell.edu/resrch/citmanage/apa)
Length: 6-8 pages (not including title and bibliography)
Font: 12 point Times New Roman
Margins: 1 inch margins on all sides
Spacing: Double spaced
Header:
The page title should be in the middle of the header.
The page number should be on the right.
No footer necessary.
Resources:
For an overview of the process of writing a research paper see: http://www.bydewey.com/1steps.html
The Writing Center (http://catpages.nwmissouri.edu/m/WC/selfhelp.html)
has self-help resources as you develop your paper.
The KCP&L Research Paper Competition
This year, Kansas City Power and
Light (KCP&L) is sponsoring a research paper competition with
prize money. The amounts have not been finalized for this
year, but past year’s prizes totaled $1000 cash for first, second,
third, and fourth places. The competition will be based on the
research papers that were submitted in 44-411 (Systems Analysis
and Design) and 44-561 (Software Engineering I). A research
paper, presentation, and submission to the contest for judging is
required in this course. Failure to be selected for
presentation at the contest will not result in a reduced
grade. Participation in the contest is required in one of
two ways - a) if selected to present in the contest you must
present your paper (preferably using the slides you presented in
class) or b) if not selected to present, you must attend at least
one presentation and submit a brief written review of that
presentation. Your instructor believes this to be
fair. If you are unable to attend due to work or illness,
you must provide written proof such as a doctor's note or work
schedule.
Judging Procedures
- A panel of CS/IS faculty members will rank the submitted
papers. To reduce the chance of bias, the panel will
receive papers without the names of the authors.
- The instructors for 44-411 and 44-561 will not participate in
the judging, and the judges will not have access to the grades
that were assigned to the papers.
- On Thursday, Dec. 5, the authors of the top six papers will
make a formal presentation of their research to representatives
of KCP&L.
- The final rankings will be determined as follows:
- The evaluations of the papers by the faculty panel will
count 50%
- The evaluations of the presentations by the KCP&L panel
will count 50%
- Any ties will be broken by the KCP&L panel
Contest Entries
All students from this class will
be entered into the contest and will be required to present their
research in class.
- You are required to submit three printed copies of your
revised paper in which your names have been replaced with your
919 numbers.
- You must prepare, and present in class, a 10-minute
presentation based on your research.
If you are selected for the contest, you should be able to use
the same 10-minute presentation for the contest