Course Description
Introduction to software development for mobile devices, such as smartphones and tablets. Topics include life cycle of mobile applications, mobile UI design, views, widgets, location and maps, local data handling, and interaction with Web services and databases. Students design, implement, and analyze mobile applications.
Additional Requirements for Graduate Students:
Each written assignment and programming project in this course
will have additional questions for graduate students. These
questions will require that graduate students read and
understand research papers, write answers that will call upon
the student to critique existing methods and propose
improvements, or use research in implementing new solutions.
Exams will have additional essay-type questions that will
require the graduate student to find limitations of existing
techniques and propose new approaches. All graduate students
will be evaluated in a pool that is separated from
undergraduate students in the course, and the grade cutoffs
will be stricter, thereby implying higher expectations of
accomplishment from graduate students.
Athena Title
Mobile Software Development
Prerequisite
CSCI 2720
Semester Course Offered
Not offered on a regular basis.
Grading System
A - F (Traditional)
Course Objectives
1. Plan, design, implement, test, and deploy a complete mobile application. 2. Utilize a suitable development environment, such as Android Studio, in app development. 3. Understand and use elements of a mobile application, including activities, views, layouts, fragments, styles, and themes. 4. Understand, select, and utilize appropriate screen designs and a proper navigational pattern. 5. Be able to manage an application’s resources and files and be able to utilize a relational database and an external Web Service. 6. Be able to apply a software process, such as agile development, in app development. 7. Effectively describe and demonstrate a functioning app.
Topical Outline
1. Mobile Development Basics a) Android History and Versions b) Android Architecture and Linux c) Java and Event-driven Programming 2. Android Development Environment a) Android Development Environment Setup b) Simple Android Application c) Android Project Structure d) Introduction to XML 3. Android Fundamentals a) Android Application Components b) Activity and Activity Lifecycle c) Common Views d) Android Layouts e) Fragments, Fragment Lifecycle, and Fragment Transactions f) Managing Resources g) Navigational Patterns h) Styles and Themes 4. Interacting with Data Sources a) Relational Databases b) SQLite c) RESTful Web Services 5. Application Development Process a) Software Process b) Development Workflow c) Screen Design, Screen Maps, and Wireframes
Syllabus