If you are interested in general programming and want to think about how you will approach creating an application, use the first option.
If you wish instead to focus on only JavaScript, use the second.
Option 1
General Programming Project
Preparation
Imagine you are writing an application. This can be a web page, a desktop application, a video game, an Operating System, a text parsing script, whatever you want. Don’t make it too complex!
The Task:
Answer the following questions about your application, what programming language or languages you will use to create it and what things you will need to plan for and consider as you develop your app. This is not intended to be a full plan or design for an application. It should just be enough to get you started on a path to building something.
- What does your application do?
- What platforms will your application run on (web, iPhone, windows desktop, linux server, etc…)?
- What will you need to consider before beginning to write your application?
- What languages will you use to write it and why?
- Who is your user?
- Will you integrate with any other software, use existing libraries or use web APIs?
- What data will you need (from a user or from a 3rd party like google maps)?
- Are there security concerns (such as user input)?
- How you will test your application (what is the acceptance criteria)?
- What are your application limits? What considerations will you have for memory, CPU and bandwidth.
Example
- What does your application do?
- What platforms will your application run on (web, iPhone, windows desktop, linux server, etc…)?
- What will you need to consider before beginning to write your application?
- What languages will you use to write it and why?
- Who is your user?
- Will you integrate with any other software, use existing libraries or use web APIs?
- What data will you need (from a user or from a 3rd party like google maps)?
- Are there security concerns (such as user input)?
- How you will test your application (what is the acceptance criteria)?
I will test my application using the Apple iPhone Development kit and the iPhone simulator. Acceptance criteria will include:- Logging in as a Twitter user
- Receiving a list of updates from the user’s Twitter subscriptions
- Sending an update to Twitter
- What are your application limits? What considerations will you have for memory, CPU and bandwidth.
I am writing a Twitter application for the iPhone.
It will only run on the iPhone.
Before starting to write my application, I will need to get the Apple iPhone Dev Kit and learn their toolset. Then I will need to research Twitter APIs and figure out how to call them to fetch and post information.
My application will be written in Objective C because that is the primary language for writing iPhone applications. Objective C offers a robust library for me to access visual elements and API connection classes I will need.
The user base for my application is iPhone users who want to see twitter updates from their friends and post their own updates with photos and their location.
It will pull data from Twitter web APIs and use iPhone tools for interfacing with the phone itself.
My application will accept user input in the form of text, photos and location information provided by the iPhone and will retrieve data from the Twitter APIs online.
Since Twitter filters input on their servers, I don’t have to worry about parsing data from their APIs or filtering user input before sending it to Twitter.
There will be limits on how many updates I retrieve from Twitter and how often I make these calls. This app doesn’t require much CPU or memory. Bandwidth is the main concern.
Option 2
JavaScript Questions
1. What is JavaScript?
2. How do you declare a variable in JavaScript?
3. What does the ‘var’ keyword mean in JavaScript?
4. What is one way to declare a function in JavaScript?
5. What does it mean if a variable is null?
Due
This assignment is due by the end of the last day of class (April 15th, 2009).
You can email me your assignment or hand it to me in class.
I will not accept this assignment late.