ITEC 334 Fall 2011
Computer Programming in the Web Era
Research Project (RP)
To be done in TEAMS (of 3)
Last Updated 8/21/11
The idea behind this project is simple. In this course you will learn the basic foundations behind online business application development and implementation. Because it would be impossible to cover a wide range of programming tools, methods and languages in one semester course. However, this course should help you acquire the knowledge to either: (1) continue your learning to become an application developer; and/or (2) make business application development decisions when working with system developers and contractors. This research project will give you the opportunity to utilize what you have learned in class to research and compare one particular web programming platform/technology/language of interest to you. This project is due at the end of the semester, but students are required to submit deliverables on a timely basis, per the class schedule, and make presentations when scheduled to complement lecture materials.
The main requirements for this project include:
Class presentation. The presentation date will be assigned by the professor to match the lecture topics. The presentation should be brief but informational and should not exceed 15 minutes, including Q&A. Because a particular presentation may take place long before the final project report is due, the presentation should be viewed as an important information sharing forum with the rest of the class and a feedback exercise with the professor. The content of the presentation should be similar to the content required for final project reports. Some important components that presentations should have include:
Technical description of the topic (5-7 min)
Brief summary of similarity and differences to aspects covered in class (approx 2-3 min)
Brief demo of the technology (approx 3-5 min). This demo can be either: (1) a short program developed by a team member; (2) a program or portion of it developed by a colleague or acquaintance, which a team member can explain; (3) a program or video demonstration found during the research (please acknowledge the source) -- Important: no audio will be allowed in video demonstrations -- the team must do all the talking.
Final project deliverable. This is due as indicated in the class schedule. The main part of this deliverable is an article in a PDF file, supported by the necessary references, attachments, exhibits, illustrations and appendices, which are in addition to the 2 pages of your article. More specifically The content of the final deliverable must include:
A 2-page article in
PDF file format, 2-columns;
single-spaced, 11pt font, 1 inch margins all around; written and formatted in
magazine article style. This article will be distributed to your classmates so
that they can benefit from your research. Great articles will also be featured
in the course's web site for future students to learn from you. The article
should contain the following:
a) An informational
description of the technology (approx
1 page). Superficial information as that one found
in marketing materials published by the makers or sellers of the technology
will NOT be evaluated favorably. This section must demonstrate that
the student has acquired sound knowledge of this technology.
Also, the description must be in the student's own words. No copy/paste
from external sources will be allowed. The main idea is for you to
research the topic and then tell us what you learned in your own words.
b) A brief analysis of
similarities and
differences with
what we have covered in class (approx 1/2 page).
Again, the more specific and informational, the higher
the grade. This section is critical to demonstrate the
knowledge you have acquired in the course. You need
to discuss in what ways the technology is similar and/or or different to
what we have discussed in class. Please note that you don't have to
discuss everything we did in class, only what is relevant. Examples of things to consider (these are
just examples, so don't limit yourself to these): is
the technology client-side, server-side or both? does
it use scripting languages or full programming languages?
does any of the associated software languages resemble
JavaScript, VB.NET, ASP.NET, etc.? does it interact with
databases? does it process HTML? etc. The idea is to help your classmates contrast
what you have learned in your research with what they learned in class.
c) A
short
essay of how this research
study has helped you personally learn about the
practice of developing online business applications and how you think
this may affect your business career (approx 1/2 page). This should be your final
conclusions or a personal discussion section where you can share your team's
experiences in the class. Please refrain
from pontificating the benefits of the technology, the study you did
or the course. The idea here is not to describe your enthusiasm (or disappointment)
with the technology or the course, but to be analytical and find out how
this knowledge will influence your future work. It is perfectly OK if
you didn't find the technology very useful, as long as your arguments
are well founded and well articulated.
RP-Deliverable 1: Project proposal and selection of a web development technology or platform to research
RP-Deliverable 2: Submit a brief preliminary research report (1 page, double-spaced) descring what you have learned so far and which external sources you have used in your research.
RP-Deliverable 3: Submit a more detailed technology description report (3 pages double-spaced max). This report should be viewed as your first draft of item 1 above and is intended as a feedback exercise with your professor. You will then be able to edit this section and incorporate into your main article.
RP-Deliverable 4: In class presentation, on a date assigned by your professor.These will be brief, but concise and informational, approx 10 minutes.
RP-Deliverable 5: Article and additional materials
You can select your own topic, but the topic needs to receive approval from your instructor. The topic must be very relevant to the practice online business application development and can include things like web programming languages, development platforms, web application technologies, application development tools. I have prepared a suggested list of topics for you to consider, but you don't need to limit yourself to these:
HTML 5: is the latest revision of HTML (currenly HTML4.01 and XHTML 1.1) and it is still under development, but some browsers are already supporting some of its new features. HTML 5 is supposed to subsume HTML 4.01, XHTML 1.1, JavaScript and the document object model (DOM) and also provide the ability to render high quality multi-media without the need for plug-ins.
AJAX: Asynchronous JavaScript and XML. This is becoming a very popular development platform. Have you noticed in Google searches or Facebook that when you type material in a search box you get suggested text listed. This is AJAX at work. Every character you type generates a query to update the suggested list. The nice thing about AJAX is that there is nothing new, but it is just a clever combination of other familiar technologies (e.g., JavaScript and XML)
JQuery: This has little to do with queries. It is a cross-browser library of JavaScript templates and plug-ins that you can download for free to create special effects and actions with little JavaScript programming. This is a very popular library of JavaScript programs to do things like popup menus, animations, event handling, etc.
PhP and/or LAMP: PhP is similar to ASP but it is "open source", so it is very popular among developer who prefer not to use Microsoft products. LAMP refers to the popular combination of Linux (operating system), Apache (web server), MySQL (database) and PhP.
PERL and CGI Scripts: Perl is the langugage of choice for Unix web server (e.g., Apache) applications. The server-side scrips are compiled into Common Gateway Interface (CGI) scripts
ColdFusion: Adobe's web development platform widely used at AU (e.g., old My.American portal)
SharePoint: A Microsoft development platform, intended primarily to develop collaboration systesms that involve information sharing, document routing, workflow management, etc., which is now widely used at AU (e.g., new My.American portal)
Java Server Pages (JSP), Java language and/or Java EE: JSP are the Java equivalent of ASP, which are processed on the server side. This is one of the most popular platforms for commercial applications. Java language is one of the most popular web programming languages for commercial strength applications. Java Enterprise Edition (EE) is a widely used platform to develop server side applications and it includes software libraries to facilitate rapid development.
iPhone and/or Mobile Application Development: Especial emphasis should be placed on client/server applications -- i.e., applications that run on the mobile phone but that need to connect to server(s) to request services (e.g., dowload maps, retrieve location data, etc.). For example, you can explore Apple's iOS Software Development Kit (iOS SDK, formerly iPhone SDK) to learn how to develop simple applications for the iPhone and iPad.
Drupal: An "open source" content management development platform. Drupal is a popular platform to build applications that manage web content, like blogs, knowledge management systems and collaboration applications, and it has strong information security features. Drupal itself is written in PhP and it is used to power about 1.5% of all the web sites worldwide, including the whitehouse.gov.
WordPress: Is somewhate similar to Drupal, free and "open source" but less powerful and a bit easier to implement for lighter applications, particularly blogs. It also runs on PhP and MySQL WordPress is a popular platform for consultants who need to build blogs and web sites that manage content.
RSS/XML: stock tickers, news, music, etc.). XML is not a programming language per se, but a page definition language. However, it requires some knowlege of the XML language to use. XML is the de-facto standard for encoding and sharing data across the Internet (e.g., invoices, work orders, purchase orders, news feeds, etc.). Because RSS is implemented with XML the two topics go well together.