Click here to see your recently viewed pages and most viewed pages.

Mobile Courses

Android is a software stack for mobile devices that includes an OS, middleware and key applications. The Android SDK site provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.


Available courses

Android Development Short Course

This course provides a basic understanding of Android development, including the use of content providers, creating audio and video services, and implementing location and maps.


Certificate in Android Application Development

This course focuses on helping people become an Android application developer and releasing high-quality apps to the marketplace. Learn about the various stages of development on the Android platform and study topics related to UI, application services, permissions and security, graphics and video resources, data persistence, monitoring tools, mobile app marketing, application hosting and more. Develop core Java development skills while you explore key concepts for building rich applications using advanced features. Learn from instructors and guest speakers working in the industry.


Creating Android Apps

This course focuses on building apps for Android devices (e.g., phones, tablets) using Google's App Inventor. Course work will include several assignments intended to teach app development using App Inventor followed by a final project of the student's choosing. Android phones will be provided to registered students.


Mobile Application Development (CSE 40333/60333)

The rapid emergence and widespread adoption of devices such as smart phones and tablets have opened the doors for a new generation of mobile applications and services. Examples include the use of smart phones for mHealth (mobile health) applications, location-based services, and the remote monitoring of critical infrastructure. Application development for mobile devices differs significantly from desktop development and in this course, you will learn hands-on about mobile development environments, different mobile platforms and operating systems, and the constraints and challenges in mobile application development.


Smartphones: Hardware Platform, Software Development, and Applications

Smartphones is a hands-on class that introduces the hardware platform, the OS and software development platform, and applications of smartphones. The class is designed for senior undergraduate (ECE 194BB) and graduate students (ECE594 BB) within the Computer Engineering, Electrical Engineering, and Computer Science majors. The primary focus of this class will be on Android phones. Students enrolled in this class are expected to have a computer architecture background and be proficient programmers. Students do not need to own an Android phone to take this class. There will be about 12 phones available for check-out for homework assignments and for the term project.


Mobile Application Development

Mobile Application Development is an experimental course at Olin College offered by Mark L. Chang, co-taught by professors Stephen Schiffman and Lynn Andrea Stein. The objective of the course is to investigate the mobile marketplace through the lenses of design, entrepreneurship, and engineering. In the final project for the course, students work in teams to develop commercially viable Android applications. We draw inspiration for this course from Hal Abelson's Building Mobile Applications at MIT, Stanford's CS 193P iPhone Application Programming, and Maneesh Agrawala's CS160 Introduction to Human Computer Interaction at Berkeley.

This course aims to offer an experience at the intersection between design, engineering, and entrepreneurship. Mobile Application Development leverages required coursework at Olin in software design, user-oriented design, and business and entrepreneurship, and applies these concepts in the mobile space. Technically, students learn about all aspects of the Google Android platform and SDK. Students, through Design, engage in ideation, user study, and lightweight rapid prototyping. Using Entrepreneurship, students unpack the mobile market space to find points of opportunity.


Wireless Networks and Mobile Computing

CS439 is an undergraduate course on wireless networks and mobile computing. It introduces the fundamental concepts of wireless networks, radio propagation, and physical layer. It includes an extensive discussion on the MAC layer, IEEE802.11, location-sensing systems, wireless technologies (e.g., IEEE802.11, WiMAX, Bluetooth, RF tags, Wii), various data dissemination and access paradigms/architectures (e.g., infostation, mesh networks, mobile peer-to-peer) and wireless networks (e.g., ad hoc, mesh, sensor, infrastructure networks), routing protocols for wireless networks, applications for mobile computing systems (e.g., social networking & location-based applications on Android, ambient intelligence), monitoring wireless networks, statistical analysis and modeling of wireless network measurements, and analyzing the performance of mobile computing systems. Finally, the course introduces the cognitive radio technology and various spectrum markets.

The course also includes theoretical and programming/development projects that will enable students to experiment with the wireless networks and mobile computing.


Agile Methods and Open Source

This lecture + exercises respectively internship or project teaches you how agile methods of software development and how open source software development works. The classes consist of lecture (2 SWS) and exercises for the lecture (2 hours) per week, for total of 5 ECTS. You can also on related internship (bachelor) or participate in the project (master), which group work outside of lecture + exercises require total, for 10 ECTS.


Android Application Development

This course introduces mobile application development for the Android platform. Lecture slides, labs, syllabus, and course assignments with grading rubrics are provided. Individual and small team assignments encompass a course-long, student-conceived Android app. Materials are based on a ten-week four-unit course offered at Cal Poly - San Luis Obispo in Winter 2010. Java programming experience is assumed.


Android Real Time Systems

This class prepares you to understand advanced research issues in real-time systems. You will be introduced to schedulability theory, resource handling, timing analysis, real-time operating systems, real-time system design, embedded architectures, soft real-time systems, middleware, quality-of-service, power-awareness, distributed real-time systems and sensor networks.


Android Programming

The objective of this course is to train students to develop software applications on the open-sourced smart phone platform. You will find lecture slides, notes, and detailed materials in the files below all developed by Zhe Jiang University in China.


Mobile Computing

The course content includes slides on Android development and a number of Android tutorials that build on each other.


App Inventor for Android with Studio-Based Learning

The site provides a framework for teaching introductory Computer Science for non-majors (CS0) using App Inventor for Android with Studio-Based Learning. App Inventor for Android makes smart phone application development accessible to novices, and Studio-Based Learning is an effective pedagogy for engaging students in creative learning experiences.The site is designed primarily for instructors, and as such, it provides structure and recommendations for how the technology and pedagogy can be adopted to local constraints.


Programming Handheld Systems (CMSC 436)

This course teaches fundamental programming principles with a focus on the mobile environment and the Android Platform. The course emphasizes practical application of numerous academic concepts. Students should already have a familiarity with Java, an understanding of basic OOP, studied basic algorithms and data structures. Course projects and lab exercises will be written in Java for the Android platform using the Android SDK.


Video Lectures

These videos are great opportunities for students and faculty to hear directly from some of the current pioneers in high-tech. They can also potentially serve as "guest lectures" for courses in these areas.

Introduction to Android
Presenter: David Conway
Building an Android Application 101

Presenter: Jason Chen

This session is a practical introduction to building Android applications using the SDK and developer tools. We'll walk through building a non-trivial application and use it as the basis for discussing the various facets of the Android application framework.

Writing Real-Time Games for Android

Presenter: Chris Pruett

Do vertex arrays keep you up at night? Do you have nightmares involving framerates and event loops? If so, this session might have the cure for your condition. Chris Pruett will discuss the game engine that he developed, using it as a case study to explain the common pitfalls and best practices for building graphics-intensive applications. You'll learn how to properly pipeline game and rendering code, manage drawing surfaces, and incorporate 2D and 3D graphics cleanly.