Isit320 Paper 2014

Write a paper at least 5 pages long on a technical subject covered in this class. The subject can be of your choosing, or based on one of the recommendations below. Writing your paper should, in most cases, involve doing at least a bit of research.

##Justification

There is a rule, or a strong recommendation, that for this course, and Isit322, because they are upper level courses, should have a written component.

There is also real benefits to be derived from:

  • Doing research
  • Verifying your understanding of a subject by putting it in your own words.

Grading

When looking at these papers, I will not be looking at grammar, nor will I be particularly tough when grading them. Your papers may contain screen shots and code listings, but should also be about half filled with original prose. The text should be double spaced.

Topics

If you decide to choose a topic of your own, please send me email to run it by my first. Here are some suggestions from which you can freely choose:

  • Pick a technology we use a lot, such as Node, Git, NodeMon, Grunt, JsHInt, jQuery, Angular, Node-Debug, etc. Explain what the technology does, how you use it, and do a bit of research on some feature that you don’t yet fully understand. For instance, if you don’t yet fully understand jQuery ajax calls, do some reading on that subject, and put into words what you learn.

  • Write about the Chrome and/or FireFox debuggers found in their developer tools. Explore at least one feature of the debugger that you don’t fully understand, and report what you learn.

  • Describe the role that HTTP play in a modern application. For instance, if we designed an application that has three tiers: the client, the server, and a database, how is HTTP used to communicate between these tiers?” I would want you to describe the kinds of applications we are building. The kind with JavaScript in the client and server, and CouchDb for a database. I would be looking for a description of how we use jQuery ajax calls such as $.getJSON or $.ajax. How does the server (express app) talk to couchDb? The answer, of course is “nano”, but then I would want at least a few words on what nano is, and perhaps a discussion or the request library.

  • What is a difference between a RequireJs based application and one that is built using traditional script tags in an HTML file. Explain the role of the require.config section in Main.js.”

  • When we are using Angular, we find familiar bits of syntax. For instance, Angular works at times a bit like requirejs, a bit like handlebars (a template library), a bit like Express (routing), it has promises built into it, etc. What is AngularJs, and why does it seem to have bits and pieces of other libraries in it?

  • What is REST and what role does it play in our programs?

  • What is WebGL, what relationship does it have with OpenGL and the HTML5 Canvas element?

  • What is the difference between JavaScript and other more traditional languages such as C# or Java?”

  • What is the difference between a NOSQL database and a relational database? When might we find it useful to use a NOSQL database?

I want you to see this as a learning opportunity. This is your chance to take a subject that you want to understand better, and to explore it more fully.

Turn it in

Create your document in one of the following manners:

  • Use Google Docs to create the document, and place your document in our shared folder
  • Use markdown to create your document, and check it into Git. Go to your online Git repository and view the document to ensure that that any screenshots and code look good when viewed on BitBucket (or on some other markdown viewer of you choice.)

When you turn in the assignment, let me know which option you chose.