CSC360: Mobile and Locative Computing
Classes: Monday – Wednesday 1.10 – 2.30 p.m.
Location: Ford Hall 345
Instructor: Dr. Şadi Evren ŞEKER (Office: Ford Hall 252)
- Tuesday, 13.00 – 16.00
- Other times by appointment/as available
- Lunch meetings available by request for small groups
Web Site: http://sadievrenseker.com/wp/?p=1172
Emphases are on developing applications as a community that run on the Android platform.
Students planning to enroll in this course should have background in computer science and be familiar with Java, XML, and unix.
This course will also give students insight to today’s common procedures for getting their mobile application work academically published
- Be competent in programming in an event-based model used in application development for mobile devices
- Be able to write and deploy a content based application using a mobile computing software framework.
- Be able to describe the differences in software development between mobile device programming and server application programming, and develop applications that incorporate both programming methods to efficiently construct a single application task.
- Understand and be able to implement the Model, View, Controller (MVC) architecture pattern and use to properly separate your application into layouts, activities and classes.
Expected Outcomes of The Course
- Getting used to the Android Studio environment and Java Programming Language
- Understanding a new Operating System architecture (Android)
- Using XML in real life and designing Java Views
- Understanding and being able to program for user interactions on Android’s event system
- Being able to code for the Canvas objects and screen drawings
- Understanding the design of Android applications and being able to navigate through Android API and documentations
- Debugging android applications
- Code optimization for low resources (like low-memory or low-power)
- Understanding and using the emulators for Android devices.
- There is no required text, however if you enjoy using a text to learn at your own pace I can recommend the following:
Android Programming The Big Nerd Range Guide
Android How To Program Second Edition by Deitel
- Also, https://developer.android.com will be the best source for most part of the course
Grading: Attendance on Project Meetings (20%), Course Presentation (30%), Final Project Presentation (50%)
- Class 1, Jan 30 :Introduction to Course, Android Environment (versions) and Android Studio Setup
- Class 2, Feb 1: Hands on Experience for Writing first Application, Running Emulators and Fast review for XML and JAVA
- Class 3, Feb 6: Model – View – Controller Architecture and My Book project [Project Proposals Submission Due Date][Presentation Topic Selection Due Date, will be automatically assigned]
- Class 4, Feb 8: Project Meeting 1 : Reviewing Proposals
- Class 5, Feb 13: Android Activity Life Cycle, Debugging and Debug Bridge
- Class 6, Feb 15:ADB (Debugging) and APK (Android Packages)
- Class 7, Feb 20: Timer, handler and object arrays
- Class 8, Feb 22: Orientation, Bundles, Percelable Interface and Persistent data
- Class 9, Feb 27: Implicit Intents, Localization, Permissions and Activities : Manifest, Activities, Explicit Intents
- Class 10, Mar 1: Images, Drawables, Styles, Themes
- Class 11, Mar 6: JSON (Priority given to file operations, so JSON will appear on next weeks)
- Class 12, Mar 8: Project Meeting 2 : Reviewing Process (GUI and Design Issues)
- Mar 13, 15: No Classes , Spring Recess
- Class 13, Mar 20: SQLite -> Updated: Introduction to Java Script and Node JS
- First HTTP Server Codes
- Class 14, Mar 22: User Interaction and Canvas (2D Drawing) -> Updated: Node JS Http Server and Android HTTP Client
- Mobile Client with HTTP Connection to Server Codes
- Class 15, Mar 27: Sound and Music -> Updated: Express Module and RESTful API on Server Side with NodeJS
- REST API coding with Express Module in Node JS : Codes
- Class 16, Mar 29: Project Meeting 3 : Reviewing: Data and Application Background -> Updated : SQLite
- Class 17, Apr 3: Fragments
- Class 18, Apr 5: Course Presentation 1-> Updated: Project Meeting 3: Reviewing Data and Application Background
- Class 19, Apr 10: [PPT] Course Presentation: Sensors: Accelerometer and Gyroscope (AG & MH)
- Class 20, Apr 12: [PPT] and [Demo Project] Course Presentation:Sensors: Camera & Media (TY & CM)
- Class 21, Apr 17: [PPT]Course Presentation : Participatory Sensing and Citizen Science (Presenter: SLA)
- Class 22, Apr 19: Course Presentation: Sound and Music
- Class 23, Apr 24: Course Presentation : All Your Devices can be Hacked (Security and Privacy) (KG & AA)
- Class 24, Apr 26: Project Meeting 4: Final Review and Questions
- Term Project Submissions Deadline : Apr 28 Midnight
- Class 25, May 1: Project Presentations 1
- Class 26, May 3: Project Presentations 2
Course Presentation Details:
- Course presentations are for 2 people and you will make a research about the topic provided to you. The talk is limited to 1 hour and rest of the class will be up for the discussions and questions.
- You can group up with a friend and apply for one of the presentations until Feb 6 midnight.
- Please send your friends and your name together with the topic you request as an email to the course email (on top of this page).
- The projects will be assigned in first come first gets basis (so, if more than 1 group request for the same topic, the first request will be considered and the other requests will be informed about the situation within 24 hours, so you can pick another topic).
- If you have not selected a topic until Feb 6 midnight, a topic and a group member will be assigned to you automatically (you can also request an auto-assignment with a friend of you, so you will be in the same team but the topic will be auto-assigned)
- Please send me all the materials (like presentation files) at least 2 days in advance to your presentations (I will publish them from the web page) so audience can take notes or get prepared before your presentation.
Term Project Details
- You are asked to come with a new project idea for the course.
- The idea should be useful for the society (please explain the benefits of project to the society in your proposal).
- The idea should cover some basic course content like (but not limited to) : User Interface, Data Management, Sound Effects / Music (you can also add location or server connection if you want to).
- Term Projects are for 2 people (not the same group member from the course presentation)
- We have 4 project meetings on the course schedule and we will discuss your project progress (A detailed list of meeting will be available later, so you can only come on your time slot or you can come and listen for the rest of the projects and get an idea)
- Attendance to the project meetings is very important and it will be graded with 20% of overall grade (if you have something really important to cancel the project meeting, please let me know and I can schedule another time (like office hours) )
- Term Project Presentations will be at the last 2 weeks of the term and the day will be assigned randomly (you can present at May 1 or May 3, so get prepared for May 1)
- A sample proposal outline:
- 1. Title of Project and Group Name (Please be creative about group names and project names 🙂 )
- 2. Introduction: Project idea and brief introduction about your motivation to the project, why do you want to do such a project? What is the benefit for the society?
- 3. Possible user interactions (how many screens do you plan to implement, what are the user interactions in each screen)
- 4. Possible data management plan (if you want to store some information, what, where and how will you store)
- 5. Conclusion: your expectations from the project and possible outcomes and benefits of the project.
Course Presentations are for 2 people and Term Projects are for 2 people (not same 2 people)
Collaboration Policy: You may freely use internet resources and your course notes in completing assignments and quizzes for this course. You may not consult any person other than the professor when completing quizzes or exams. (Clarifying questions should be directed to the professor.) On assignments you may collaborate with others in the course, so long as you personally prepare the materials submitted under your name, and they accurately reflect your understanding of the topic. Any collaborations should be indicated by a note submitted with the assignment.