Project 4
Topic/Article Selection Due October 13
Due Nov 1, 11pm
OOP Research Review
SCHEDULE - TBA (see blackboard announcements)
150 points - 50 proposal, 100 points remaining (peer reviewed)
This is a group project of at most 2-3 people. You will find an article on OOP research or
state of the art OOP related topic (see below) and create a tutorial/presentation
on the subject. You are to propose the topic to your instructor before
preceeding.
Search our library and on the Internet for information, images, research,
etc. on your selected choice. Review materials and save all references
including both library materials and on-line site locations (URL) as
well as create a review/summary of the information in each piece of
review material. See the requirements below for the tutorial and presentation
components of this project.
Tutorial Requirements:
- Format: Ideally implement as an HTML tutorial. However, you
may use Power-Point if you do not know HTML.
- Mixed-Media: You must have a minimum of 5 pictures or diagrams
illustrating the concept you are discussing. As appropriate include
video or audio also. If you borrow images, you must reference in the
legend where you retrieved them from.
- Organization: The tutorial should be organized. It SHOULD
not look like a long paper. You should have a nice intro with an easy
navigation scheme present throughout the site's pages
- Originality: Your writing should be original. You can NOT
paraphrase large blocks of text. If you need to paraphrase smaller
items, you need to refer to the article in which the text comes from
and surround the text with quotes. You should keep to a bare minimum
the number of times you paraphrase others words.
- Length: Someone should be able to go through your tutorial
on their own within 15 minutes.
- Level of Detail: I expect that you will delve into your
topic at a sufficient level of detail for the audience to be able
to understand how things are implemented or created and with possible
reference to your article(s) (that you quote) be able to recreate
or build the system(s) described. For example:
- If you are discussing a topic that involves the development
of software or algorithms, you should present a minimum of one
algorithm or piece of code on the topic. You should discuss how
the algorithm works and if there are alternatives compare them
to others, summarizing with what you think (and others may think)
are superior algorithms (and why). Also, give the user an idea
when you might apply one technique over another.
- If you are discussing a topic that is theoretical, you should
discuss the various options, limitations and conditions under
which the theory is applicable. Discuss applications of the theory
and how it improves operations. Contrast and compare the theory
with other theories/techniques that may accomplish the same or
similar goals.
- Annotated Bibliography: You are required to have links
in your tutorial to an annotated bibliography. You must have a minimum
of 1 reference (please note different pages on the same web-site do
NOT count). Throughout your on-line tutorial, each time you wish to
quote a reference, it should be represented by a number that is hyper-text
linked to the annotated bibliography. In this bibliography page, you
will have listed in order of appearance (hence the numbers) your references
each followed by an annotation of the contents of the reference. Specifically,
you must include not only the title, author, date, source, but also,
a sysnopsis, and a reliability rating. For example, for the second
reference you would have:
[2] "Java is Great", Lynne Grewe, PC Weekly, May, 1996., p.g.
21-33.
synopsis: this is a journal article that discusses the benefits
Java brings to the programming world and contrasts it with other
high-level languages.
reliablity: L. Grewe is an independent researcher and professor.
PC Weekly is an popular computer industry magazine that publishes
technical articles, mainly to a non-research but, technical
audience.
- Publication: You should post your tutorial to your ebox account
and create a link to it through a posting on our blackboard system.
You are responsible for fully testing your tutorial.
Proposal Submission Guidelines
Select a topic(see below on Topic guidelines). Topics are given out on a first come first serve basis. The list of topics (but again you can suggest your own) will be given on a discussion board topic "Project 4 topics". You MUST look there and not select some topic that has already been claimed via another student's posting. I will
respond to each of your postings with either approval, denial or request for more information in the proposal (pending).
The proposal must contain the following information (please number them as seen here) AND IMPORTANTLY the subject title of your posting should be the title of your topic e.g. "Qt framework for C++".
- Title of topic (e.g. "Qt Framework for C++")
- Author (your name)
- 1 to 2 paragraphs detailing what you are going to talk about (this requires that you have done some research /reading on the subject).
(e.g. Qt is a C++ framework that is popular in indsutry and provides support for developing applicaiton software with a GUI and Non-GUI features like SQL database access, XML parsing, thread management, network support and a unified cross-platform application programming interface for file handling. In this way, it provides some of the features we have in standard Java that are missing in standard C++. .>>>blah,blah,blah).
- table of contents - break down the subject into sub-topics (each could be a major link on your website).
For example, you might have for "Qt"
- What is Qt
- define when Qt used and how
- Qt installation
- how Qt is setup
- Qt the GUI
-here describe and give some examples of how Qt uses Model-View-Controller pattern to implement GUI.
- Qt and Database
-there are many non-GUI features of Qt and I will highlight its ability to access Databases and give sample code.
- Example Programs and List of Companies Actively using Qt
-I (meaning you) will give readers some sample programs to get a better sense of a complete program using Qt.
-I will also give readers an idea of what companies are using Qt and how.
- The Future and Conclusions
-I (meaning you again) will let readers know about the research labs (CMU, etc) doing research in this area and what they are currently working on (I will send and email and contact professor in charge of lab to ask about it).
- References
-I will list some references (preferablly online) that used in making this tutorial
- At least 2 sources you have read (preferrably online links or attachments to posting) on the subject and used to create the paragraph.
Presentation & Evaluation:
You will present a 15 minute talk in class during which time you will
go through your tutorial. Groups will be scheduled throughout
the remainder of the term(see instructor). You are to take the class
to at least five related sites on the Internet from within your presentation tutorial. Bring
any printed reference material you used if possibe with you to your presentation
for students to look at. The students will use the following form to
review your presentation. See below for grading criteria
Grading Criteria:
Your grade will be termined through peer review. The following evalution
form will be completed by each of the other and you will recieve
an average of the values. The following form will be used:
peer review form
You will evaluate every other students except your own tutorial and presentation. This will be done with a shared google document. You must have recieved an invitation to edit this document. This will be done in one class period and it is your responsibility if you are not there to make the request to the instructor at the email address you provide to get the invitation.
Topics:
Must be approved by instructor. Topics are approved on a first-come-first-served basis. Here are some that are approved and suggested.
YOU may come up with your own topic
THIS QUARTER
This quarter I want to feature tutorials that deal with Frameworks and/or other OOP languages not covered in class. Today, OOP programers more and more are required to use frameworks in creation of programs/systems. Having this skill sets you apart in the job market. Hence I am strongly suggesting that you cover a topic related to OOP in a language like Objective C or Python or PHP or XXXX AND you cover a Framework that has been developed and is popular in that language. With that in mind you may also choose to cover a framework in Java. The framework can not be trivial but, may be topical --- i.e. applied to GUI development, or applied to Web or to Networking or XXXX.
NOTE: only if you are in love with another OOP topic and can convince me of its importance at the same level as frameworks will I allow you to do another non framework topic.
- Objective-C :teach it. (see http://en.wikipedia.org/wiki/Objective_C)
- Python: teach it. (see http://en.wikipedia.org/wiki/Python_%28programming_language%29 )
- PHP and either Yii or CodeIgnitor Frameworks
- Java Framework: Struts or Java Server Faces or Spring
- iPhone and iPad OOP technologies -this is a "framework" for Apple mobile devices. review of new GUI ("pinch",etc.) and review of Carbon and other related iPhone/iPad SDK (see http://developer.apple.com/iphone/index.action ) along with demo of devlopment environment , simple app and simulator. Student MUST have a mac laptop for demonstration (see system requirments at apple).
- Android OOP technologies - this is "framework" for Android mobile devices (most all non Apple smart devices) we will discuss basics in class. So your tutrorial MUST GO DEEPER. For example, detailed use of camera and third partie APIs (possibly) and real code with sample APP that you demo and add your own to (don't just copy someone elses...add something of your own).
- Ruby on Rails
- JavaScript frameworks JQuery or Dojo
- Framework for X (where X is some topic area like Web, Networking, GUI, etc) ---must be a real Framework with some popularity (like those mentioned above)
other less attractive topic....ONLY if you convince me how this is important to you and the class and as or more important than a framework based topic.
Gettting your own idea for a topic as well as getting material to build a Proposal
Search our library (try ACM and IEEE portals listed off library website...contact library reference personnel if you do not know how to do this) and on the Internet
for information, images, research, etc. on this topic. Review materials
and save all references including both library materials and on-line site
locations (URL) as well as create a review/summary of the information
in each piece of review material. See the requirements below for the on-line
tutorial and presentation components of this project.
Deliverables
- Turn in either your PowerPoint or the URL to your website that contains the Project 4 tutorial to Blackboard->Discussion Board->"Project 4-Final Presentation"
- Presentations to be scheduled on due date