Syllabus

Android Application Development
Computer Science Summer Workshop York College, CUNY
Summer 2014
Instructor: Shweta Jain Email: email_sjain
Office: AC-2D04 Office Hours: None, sufficient opportunity to clarify doubts during the sessions
Phone: 718-262-3856 Room: AC-2E03B
Time: Saturdays 12pm-4pm Website: https://sond.commons.gc.cuny.edu

Workshop Description:

This workshop is designed to teach young researchers the basic application development skills that they can use to design research prototypes. Knowledge of the JAVA programming language is not assumed in this workshop. Therefore, this workshop will start with a quick introduction to JAVA for C++ programmers. Our young researchers will then begin learning android application development skills and hopefully pick up essentials of the JAVA programming language along the way.  They will develop a simple representative  application every week and piece them together to design a complete networked application at the end of the workshop

Textbook and Material

Most of the course material will be based on the official android tutorial which can be found here

Learning Objectives At the end of this workshop, young researchers will be able to

  1. Write programs using the JAVA programing language
  2. Write networked applications for android based smart phones and tablets using WiFi-peer-to-peer and other network based APIs
  3. Be prepared enough to develop more complex applications in their own time

Policies

Attendance is mandatory. Researchers who sign up for this workshop must be committed to attend each session and are allowed fewer than 2 absences. Each researcher should be willing to spend 3-4 hours after each workshop to complete the required assignments.

Other Requirements

Researchers should complete all programming assignments before attending each session. Homework is NOT collected but you are encouraged to complete them for the best learning experience. Completion of the weekly activities will enhance your own experience. Your dedication and performance WILL be used to judge if you are ready for the second phase of the project.

Schedule of Topics

 Week 1: JAVA for C++ programmers: Variables, Methods, input/output statements, strings and try-catch statements.

Hand-on activity: Installing android studio, build your first application with a simple user interface with a “Hello World” text and a button, run the application on an emulator or a real device.

Homework: Extend the application. Use the tools you learned so far and your own imagination to write an application that takes down some information. Perhaps you can design a survey, an application form or build a CV. Your application may not store the data yet but you will learn more as we move along, either by reading yourself or in the workshop sessions. Post screenshots of your application on your blog and please add some text describing the efforts, issues you faced and anything else you would like to add.

Week 2: Developing your User interface: Starting another activity in response to a button/action, Adding action bars and navigation, Supporting different screen sizes, Managing the lifecycle of application activities

Hand-on activity: Write an application that consists of two activities. The first activity will have some text fields that take in 4 letter words and a send button. The second activity will be invoked when you press the button. The text from the first activity will be displayed in the second one but it will be scrambled. Another button on the action bar will quit the application.

HomeworkExtend the application you wrote last week so that there are more than one activities. Each activity can contain its own form field, buttons etc. Action bars can take the user to the previous or next activity. Again use your own imagination for example, you may not allow a user to move forward without completing all previous steps. Similarly, you might not want them to go back and change some fields. Your application still doesnt know how to store data but it will soon. Post screenshots of your application on your blog and please add some text describing the efforts, issues you faced and anything else you would like to add.

Week 3: Working on the back-end and incorporating some multimedia: Save data to a file (obtain permissions, query free space, save files), Capture and save photos!

Hand-on activity: Write an application that consists of two activities. The first activity will allow the user to take a picture and the second will allow the user to enter a description of the picture such as location, context, people in the picture etc. (use your own ideas). Finally the picture and information will be saved in two files with similar names but different file extensions.

HomeworkExtend the application you have been writing. Your file now saves the data that the user enters. You may continue to save the data in a file or optionally follow the android tutorial to save data in a database. The last activity in the file will take a picture, or may be you want to take more pictures (it is up to you). Now your application saves the data, pictures and everything. Post screenshots of your application on your blog and please add some text describing the efforts, issues you faced and anything else you would like to add. With what you learned so far do you want this application to do something specific? How about writing a little blog about what you want to develop in the coming weeks?

Week 4: Connect devices wirelessly: Learn how to provide and advertise services, connect to services and use wifi-p2p to connect to each other

Hand-on activity: Write an application that consists of three activities or (reuse one of the previous ones). The first two activities will allow users to take pictures and enter some information while the third will enable wirelessly sending the picture and the description to another device. You can potentially play a game of sending pictures around!

Homework: This project might need some team work. Write a chat application that allows you to send and receive messages to other devices in the wireless p2p network. Post screenshots of your application on your blog. Perhaps you are ready to post an apk for others to try? Please add some text describing the efforts, issues you faced and anything else you would like to add.

Week 5 to 8:  So far you have learned the basics of application development and hopefully mastered some of the most important tools. The next 4 weeks will be hands-on software development project. You can work in a team or be a loner. You might need to learn some more material and we will be there to help you with that.

Week 5: Come up with an idea for an application that you want to develop. You need to use your own imagination to come up with an application around multimedia and information sharing. It could be a game or a social networking idea.

a)  Write your idea in your blog clearly and concisely.

b) You will pitch your ideas during week 5 and have discussions with other researchers in the workshop. Each team or person will get 10 minute slots to pitch the idea followed by 5 minute Q&A. Please bring powerpoint slides!

Week 6: Present your user interface to your fellow researchers.

a)  Post screen shots on your blog with text explaining the pictures

b) Present your ideas to your fellow researchers (Bring powerpoint slides!)

c) Be prepared to critique others and take criticism as well

Week 7: Present the alpha version of your app

a)  Post screen shots and may be the apk on your blog with text explaining the pictures

b) Present your ideas to your fellow researchers (Bring powerpoint slides!)

c) Be prepared to critique others and take criticism as well

Week 8: Distribute the beta version of your app!

a)  Post screen shots on your blog with text explaining the pictures

b) Bring the apk for others to try!

c) Present your ideas to your fellow researchers (Bring powerpoint slides!)

d) Be prepared to critique others and take criticism as well

Post Workshop reporting:

a)  Post screen shots of your final application on your blog with text explaining the pictures

b) Submit your report on the entire experience with the workshop (blog)