[MUSIC] Hi. I'm Professor Adam Porter of the University of Maryland, and it's my pleasure to welcome you to Programming Mobile Applications for Android Handheld Systems, Part 2. If you're taking this course, then I'm assuming that you also took Part 1, and therefore I'm not going to spend a lot of time going over the course logistics again. But as you know we generally stick to the following organization. Each week I'll start by posting a set of video lectures, and those lectures generally last any where from an hour, to an hour and a half. In each of the video lectures, I'll normally start by talking about some concept or API. And as I go through the lecture, I'll demonstrate several sample applications and I'll show screencasts where I walk through the source code for the sample applications I've just demonstrated. And you can get the source code for all of these applications at the courses get hub repository, which is available at this link. Now each week I will also assign a graded quiz. Quizzes are meant to reinforce the lecture material and sometimes to introduce additional concepts and resources. And you can take these quizzes as many times as you like. Finally, each week, I will also assign one or more labs. These labs will usually ask you to implement an application. In most cases, labs will come with skeleton code that implements about 75 to 90% of the application. So you'll need to read and understand the skeleton code, and then you'll need to fill in the parts that are missing. To make sure that you get a chance to put it all together, at the end of week eight, I will assign a mini project, in which you develop a simple app completely from scratch. So before I finish up, let me just say a few words about the specific topics that we'll cover in this course. As you remember, this course is delivered in two parts. In part one, we went over the basics of Android. We talked about the Android platform and its development tools, and we also went over the basic concepts that you need in order to create simple Android apps. For instance, we talked about the activity and fragment classes and their life cycle models. We also talked about key classes and concepts, such as intents and permissions. And finally, we finished up with a broad survey of Android user interfaces. And so now, we're ready to dive in a little deeper. Here in part 2, we're going to talk about the additional services that come into play only when you're ready to create more advanced Android apps. And you've already done weeks 1 through 4. So, this class picks up at week 5. In week 5, we'll go over how to handle concurrency with threads, async tasks, and handlers. And we'll also talk about how to acquire data over the Internet. Next, in week 6, we discuss a number of topics including user notifications, event notification using the broadcast receiver class, and using alarms to invoke code at pre-scheduled times. Week 7 gets into more visual topics including graphics and animation, touch processing, and multimedia. And finally, during week 8, we'll focus on using the many sensors that now come standard on most handheld devices. And we'll also talk about how to acquire and display location information. And we'll then close out week 8 with a lecture on how to manage and store data. Now, as in part 1, we're continuing to work with partners at Amazon to provide you with exciting extra benefits. For instance, as a special part of our partnership with Amazon. The top 50 students from this course will be given the option to share their resumes directly with Amazon recruiters. And we'll have more on this as the course progresses. Now you should have also received an email explaining how you can earn up to $40 of Amazon credits by signing up for this course. By registering as a developer with the Amazon app store and by submitting up to two of your own new apps to the app store. And I hope you'll take advantage of all of these offers. So that's all for my overview of the course. Let's get started.