CS 1699 Special Topics in Computer Science Introduction to Android Programming (Section 1115) Spring 2018 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contact Information |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Course Description |
This course covers the main components of
the Android's application framework, namely activities, services, broadcast receivers,
and content providers. The course starts with an overview of the Android
operating system and its architecture. Other course topics include
application permissions, intents, threading, user notification mechanisms,
network socket programming, device sensors, and storage management. Students
will design and implement a few Android applications as part of course
assignments and a group project. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Prerequisites |
CS 0445 and CS 1550 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Recommended Books |
There
is no particular textbook for the course. We will have recommended reading
assignments from the below books. Android Developer
Guides are a very useful resource as well. [Cornez] Trish Cornez and
Richard Cornez, Android Programming Concepts (2017) ISBN-13:
9781284070705 [Phillips] Bill Phillips, Android Programming: The Big Nerd Ranch Guide (3rd
Ed., 2017) ISBN-13:
978-0134706078 [Levin] Jonathan Levin, Android Internals::Power
User's View (2015) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grading Policy |
Midterm and Final exams (35%): 25% on higher grade and
10% on lower. Make-up exams can be scheduled well in advance. Assignments (30%): Team Project (25%): In teams of Quizzes (10%): 2 quizzes during the
lectures |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Important Dates |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Weekly Schedule |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Students with Disabilities |
If you have a disability for which you are
or may be requesting an accommodation, you are encouraged to contact both
your instructor and Disability
Resources and Services (DRS), 140 William Pitt Union, (412) 648-7890,
drsrecep@pitt.edu, (412) 228-5347 for P3 ASL users, as early as possible in
the term. DRS will verify your disability and determine reasonable
accommodations for this course. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Academic
Integrity |
Students have
the responsibility to be honest and to conduct themselves in an ethical
manner while pursuing academic studies. Students have the right to be treated
by faculty in a fair and conscientious manner in accordance with the ethical
standards generally recognized within the academic community (as well as
those recognized within the profession). Should a student be accused of a
breach of academic integrity or have questions regarding faculty
responsibilities, procedural safeguards including provisions of due process
have been designed to protect student rights. These may be found in
Guidelines on Academic Integrity: Student
and Faculty Obligations and Hearing Procedures. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Other books on
Android |
Android Development John Horton, Helder
Vasconcelos, Raul Portales, Android: Programming for Developers
Paperback (2017) Dawn Griffiths, David Griffiths, Head
First Android Development: A Brain-Friendly Guide (2nd Ed., 2017) Prajyot Mainkar, Expert Android Programming:
Master skills to build enterprise grade Android applications (2017) Joseph Annuzzi Jr., Lauren Darcey, Shane Conder, Introduction to Android Application Development: Android Essentials (5th Ed. 2015) Antonio Pachon
Ruiz, Mastering Android Application Development (2015) Paul Deitel,
Harvey Deitel, Alexander Wald, Android 6 for
Programmers: An App-Driven Approach (3rd Ed., 2015) Joseph Annuzzi
Jr., Lauren Darcey, Shane Conder,
Advanced Android Application Development (4th Ed., 2014) Erik Hellman, Android Programming: Pushing
the Limits (1st Ed., 2013) James Sheusi,
Android Application Development for Java Programmers (1st Ed.,
2012) UI Ian G. Clifton, Android User Interface
Design: Implementing Material Design for Developers (2nd Edition) (Usability)
(2015) Database Adam Stroud, Android Database Best Practices
(Android Deep Dive) (1st Ed., 2016) Sunny Kumar Aditya, Android SQLite Essentials
(2014) Jason Wei, Android Database Programming
(2012) Design Kyle Mew, Android Design Patterns and Best
Practices (2016) Greg Nudelman,
Android Design Patterns: Interaction Design Solutions for Developers (1st
Ed., 2013) Optimization Herv Guihot, Pro Android Apps Performance
Optimization (1st Ed., 2012) Doug Sillars, High Performance Android Apps:
Improve Ratings with Speed, Optimizations, and Testing (1st Ed.,
2015) Android Security Joshua J. Drake et. al., Android
Hacker's Handbook (1st Ed., 2014) Nikolay Elenkov, Android Security Internals: An In-Depth Guide to
Android's Security Architecture (1st Ed., 2014) Pragati Ogal Rai,
Android Application Security Essentials (2013) Android Games Avisekhar Roy, The Android Game Developer's Handbook (2016) John Horton, Learning Java by Building
Android Games - Explore Java Through Mobile Game Development (2015) John Horton, Android Game Programming by
Example (2015) James S. Cho, The Beginner's Guide to
Android Game Development (2014) Android Internals G. Blake Meike,
Inside the Android OS: Building, Customizing, Managing and Operating Android
System Services (2018) Roger Ye, Android System Programming:
Porting, customizing, and debugging Android HAL (2017) Karim Yaghmour,
Embedded Android: Porting, Extending, and Customizing (2nd Ed.,
2015) Roger Ye , Embedded
Programming with Android: Bringing Up an Android System from Scratch (Android
Deep Dive) (1st Ed., 2015) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Acknowledgements |
Most of the slides and example code of this
course are based on Marty Stepp's CS 193A course at Stanford.
Slides on Content Providers are based on Dr. Douglas C. Schmidt's CS 282 course at
Vanderbilt University. |