This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Android and the fly likes Free online course starting on Android Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Mobile » Android
Bookmark "Free online course starting on Android" Watch "Free online course starting on Android" New topic
Author

Free online course starting on Android

Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Coursera is about to start a free three course series on Android. The first one is starting Tuesday.

https://www.coursera.org/course/android - starts Tuesday
https://www.coursera.org/course/posa - starts in April
https://www.coursera.org/course/mobilecloud - starts in June

I mentioned this on Facebook and another moderator said he signed up. Which reminded me I should post here to see if any other ranchers are taking it. Then we can talk about it like the Scala course participants did in the functional programming forum. (Just don't share course answers.)


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11437
    
  85

I'm in!


The Sun Certified Java Developer Exam with J2SE 5: paper version from Amazon, PDF from Apress, Online reference: Books 24x7 Personal blog
Steve Luke
Bartender

Joined: Jan 28, 2003
Posts: 4181
    
  21

Yeah, me too. Thanks Jeanne.


Steve
ibrahim yener
Ranch Hand

Joined: Jul 22, 2013
Posts: 127

Count me too.

Edit: I already joined.


WinSystems my Google play account.
Ping Kong
Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

ibrahim yener wrote:Count me too.
What do we have to do to join?


Follow the links Jeanne provided and click the study for free button at which point you will be prompted to register.

I signed up as well although I am more interested in the second and third courses.


[How To Ask Questions][Read before you PM me]
Irina Goble
Ranch Hand

Joined: May 09, 2004
Posts: 91
Thank you Jeanne! I signed up too.
It will be fun to talk about the course. Will it (the discussion) be here? In this forum?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14117
    
  16

I joined too, I intend to do the whole Mobile Cloud Computing with Android specialization, which consists of three courses.

*edit* oh, I see you mentioned the three courses already.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Irina Goble wrote:Thank you Jeanne! I signed up too.
It will be fun to talk about the course. Will it (the discussion) be here? In this forum?

I hope so. If you look in the functional programming forum, you can see people compared experiences.
Irina Goble
Ranch Hand

Joined: May 09, 2004
Posts: 91
How is everybody so far?
Matthew Brown
Bartender

Joined: Apr 06, 2010
Posts: 4376
    
    8

I've signed up as well - Android was always on my list of things to learn (for fun more than anything else), so this seems like a good opportunity. Haven't had time to do anything more than install the IDE yet, though.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Irina Goble wrote:How is everybody so far?

I've been taking the other (far easier) Android class to get prepared so I already had the software and played with the tools. Making this week easy. I'm looking forward to next week.
Irina Goble
Ranch Hand

Joined: May 09, 2004
Posts: 91
I'm using this week to look closer at the tools. I did program for Android a little bit few years ago. Trying to refresh my memories and learn new things. Boy, it's good to get back to programming.
Dave Trower
Ranch Hand

Joined: Feb 12, 2003
Posts: 86
I have signed up. I am also taking the easier android class from Coursera. I am glad I did since I now have the environment setup and I know some of the basics.
Matthew Brown
Bartender

Joined: Apr 06, 2010
Posts: 4376
    
    8

For completeness, here's another basic (i.e. no programming experience required) MOOC on Android: https://www.futurelearn.com/courses/begin-programming-2014. Next start date is 24 February.

(I haven't taken it or seen any of the content, but I gather it's had reasonable feedback)
Heena Agarwal
Ranch Hand

Joined: Dec 25, 2013
Posts: 261
    
    4
I'm also interested in taking up the course but I ain't sure if I'll be able to follow cause I've never worked on the Android emulator before. Do you think someone who has never worked on the emulator before will be able to understand the course content?

How many hours are you putting in every week at a minimum to keep up with what's being discussed ( lectures + lab sessions + practice + assignments + setting the environment etc )? Chances are I might only have weekends ( and perhaps only one of the two days ), so I'm not sure. Plus I must have missed many classes already since I'm already late. Do you suggest I could still take it up?

Another weird thing is ( sorry this is not a pleasant thing to say but it's the truth ) that I don't really enjoy working on graphics, Swing components etc. Is it true that if you're working on mobile apps, you can't afford to ignore the graphics' components.

Last year my workplace organized a training course on Android programming but my project manager didn't let me take it. I wanted to take up the training course cause more than anything I wanted to know what mobile programming is all about..

Steve Luke
Bartender

Joined: Jan 28, 2003
Posts: 4181
    
  21

Heena Agarwal wrote:I'm also interested in taking up the course but I ain't sure if I'll be able to follow cause I've never worked on the Android emulator before. Do you think someone who has never worked on the emulator before will be able to understand the course content?

How many hours are you putting in every week at a minimum to keep up with what's being discussed ( lectures + lab sessions + practice + assignments + setting the environment etc )? Chances are I might only have weekends ( and perhaps only one of the two days ), so I'm not sure. Plus I must have missed many classes already since I'm already late. Do you suggest I could still take it up?

You have missed just one week, which had no points assigned to it and is about setting up the environment. So far, there isn't a lot of experience needed, I don't think, as it instructs you on how to set things up as part of one of the labs. Now is a good time to start if you are going to.

As for time: so far I have put about 2.5 hours into the course in the one week it was running. This includes both the lecture (about 1hr I think), two labs and a quiz (which I took multiple times to get the submission process correct). I am probably not a good reference point, though, since I program in Android already, had the environment fully configured, and what not. The labs did say they should take between 1 and 2 hours to do, so you would expect to have between 2 and 3 hours +/- some for the first week. What will happen going further, I don't know.

Also: I plan to do the same as you, probably one day on a weekend, or one evening during the week on this. This past week I did it all (except the quiz and submission) on a flight from Japan to US, and have a few more flights like that I plan on consuming in the same manner.


Another weird thing is ( sorry this is not a pleasant thing to say but it's the truth ) that I don't really enjoy working on graphics, Swing components etc. Is it true that if you're working on mobile apps, you can't afford to ignore the graphics' components.

No you can't ignore them, there is a different level of attention you need to pay - especially on Android with its different sizes - since you are constrained in both space and input type. On the other hand, working with GUI code on Android is miles easier than Swing ever was, so you might not find it so bad.
Heena Agarwal
Ranch Hand

Joined: Dec 25, 2013
Posts: 261
    
    4
Thanks, Steve. I'm hoping I will be able to give it 4 hours a week.

I've registered already.

Edit : And since I will not have started until the coming Sunday, I will have missed 4 lectures, and two lab sessions by then. So I'm probably going to require about 8-9 hours this week.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14117
    
  16

Irina Goble wrote:How is everybody so far?

There wasn't much going on in the first week; it was just about setting up the development environment, creating a few Hello World programs and running them on the emulator. No assignments with grades that will count towards the end result yet.

I've installed the Android SDK and played a bit with the emulator. I installed Intel HAXM to make the emulator run faster. It indeed runs a lot faster with this installed and the virtual device set up correctly. NOTE: Be sure to follow the installation instructions. If you install it using the Android SDK Manager, it isn't really installed; the SDK Manager only downloads the installer. You have to run the installer yourself. You must also install the Android x86 system image using the SDK Manager and setup your AVD (Android Virtual Device) to use x86 instead of ARM.

I also ran into a small bug, if you enable GPU acceleration ("Use Host GPU" in the AVD settings) then creating screenshots from the virtual device doesn't work; the screenshot will just be black. This is a known bug. To be able to make screenshots of the emulator, you must disable "Use Host GPU".

I also installed the USB driver that was necessary to use my Android devices (a Nexus 5 phone and Nexus 7 tablet) and I also ran the Hello World apps on my phone and tablet.

We didn't really get into programming yet.

Heena Agarwal wrote:I'm also interested in taking up the course but I ain't sure if I'll be able to follow cause I've never worked on the Android emulator before. Do you think someone who has never worked on the emulator before will be able to understand the course content?

That should not be a problem at all.

Heena Agarwal wrote:How many hours are you putting in every week at a minimum to keep up with what's being discussed ( lectures + lab sessions + practice + assignments + setting the environment etc )? Chances are I might only have weekends ( and perhaps only one of the two days ), so I'm not sure. Plus I must have missed many classes already since I'm already late. Do you suggest I could still take it up?

I spent maybe two hours in total for the first week. I also don't have that much time besides work and other things.

Heena Agarwal wrote:Last year my workplace organized a training course on Android programming but my project manager didn't let me take it. I wanted to take up the training course cause more than anything I wanted to know what mobile programming is all about..

If you're really interested in Android programming then just start with the course, nothing is lost if you find later on that you don't have time and you have to stop.
Heena Agarwal
Ranch Hand

Joined: Dec 25, 2013
Posts: 261
    
    4
Thanks, Jesper.

nothing is lost if you find later on that you don't have time and you have to stop.


Yeah..


Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

I posted this in the course forums too. If you are going to use an emulator use Genymotion. The speed difference is phenomenal. It is just better all around. There are Eclipse and IntelliJ plugins as well. I personally prefer to do my Android development in IntelliJ community edition although when I first started I did use the Eclipse ADT so I am familiar.

https://cloud.genymotion.com/page/doc/
Heena Agarwal
Ranch Hand

Joined: Dec 25, 2013
Posts: 261
    
    4
I just finished the first lecture - 'Introduction to the Android Platform'. Got all my answers right luckily. Looks like it's going to be interesting. :-)
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

I finished week 2. I like that he is using JUnit. Although the part 3 test didn't work for me even though Coursera accepted the solution. i suspect a timing problem.

I like that he is starting with code/concepts and not baby apps.
Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11437
    
  85

Currently midway through week 2. I suspect I am spending way too much time doing random experiments to see what would happen.
Dinesh Goud
Greenhorn

Joined: Feb 03, 2014
Posts: 10

thanks jeanne..


dinesh
Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11437
    
  85

Jeanne Boyarsky wrote:I finished week 2. I like that he is using JUnit. Although the part 3 test didn't work for me even though Coursera accepted the solution. i suspect a timing problem.


Very flaky for me - sometimes it would work, and sometimes not. The first time it failed, I stepped through the tests manually and verified that my application was correct for the test results it was looking for - it was just not receiving them. So, similar to you, I assumed a timing issue. I just kept running the same test over and over until I had clean logs that I was happy with. Coursera accepted it, so I have passed week 2. With 1 hour 20 minutes to spare!

Jeanne Boyarsky wrote:I like that he is starting with code/concepts and not baby apps.


Agreed!
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14117
    
  16

To get the correct log output for the tests, it's best to stop and restart the emulator for each test. Run each of the tests separately.

I suspect that when you don't do this, the app might still be in memory in the emulator, and you don't get the expected onCreate() etc. logging. By stopping and restarting the emulator between tests, you can be sure that the app is not still in memory when you start the test.

I also noticed that sometimes, LogCat does not seem to connect to the emulator properly, and you don't get any output at all in the LogCat window. I'm using IntelliJ 13 for development. There are also a few other minor bugs, for example you shouldn't set the amount of memory for the emulator too high (not higher than 768 MB) otherwise it fails to start. Apparently this is a known bug, because if you set it too high you get a warning that setting it higher might not work in Windows. I have the feeling that the emulator is not really rock solid.
Dave Trower
Ranch Hand

Joined: Feb 12, 2003
Posts: 86
For the JUnit test, I had to add sleep statements to the test in order for it to work. Sometimes the app takes a couple seconds to start in the Emulator and the JUnit would fail and with the assertion that the "Start Activity Two" button does not exist. Simularly, when the emulator would click on a button it would take a couple seconds for the screen to populate so the JUnit test would fail and say my count was wrong. Adding sleep statements fixed all of this.
Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

I know I sound like a broken record here, but I use Genymotion and have not had any emulator issues.

Jesper I did have issues getting the test cases to work in IntelliJ. Was there anything special you did to import that?
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Are people still taking this class? I'm finding it good for the concepts, but not so good for learning how to make an Android application. (luckily I have no pressing need to). I feel like there is a lot of look it up in the docs and "how would you know you need to do that" going on.
Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

Jeanne,

I have done Android development professionally and here are my thoughts:

- Each lecture has contained a nugget or 2 of new information that has made the course worth it for me, but there has not been anything huge. I did get a bit more out of the animations lecture since I had not done a lot with that in my projects.
- I think this class is definitely a more structured university style approach to learning. I think perhaps the final project is meant to be the application of those concepts and the next courses will build on that.
- One thing that is a reality when creating production applications that to this point has been ignored is the need to support multiple versions of Android. This requires the use of support libraries for backwards compatibility. Also often times there are libraries out there that are in wide use to solve common problems that Android natively does not handle very elegantly. We have not covered building or using library projects or using 3rd party libraries that most real applications will probably use.

If you take a look at the link below you will see that Gingerbread is still accounts for 19% of the devices out there. Most of the code we have done in this course to date will not run on those devices.
https://developer.android.com/about/dashboards/index.html
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14117
    
  16

Bill Gorder wrote:Jesper I did have issues getting the test cases to work in IntelliJ. Was there anything special you did to import that?

I'm doing it like this:

- Open the skeleton project (it's an Eclipse project, IntelliJ will create an IntelliJ project out of it)
- Open the project settings, set it to "Android API 18"; set language level to "6.0"; click OK, IntelliJ now wants to reload the project
- To import the tests, select File / Import Module and import the test project as a module (click Next / Next / Finish to the import wizard)
- Go to project settings again (Shift + Ctrl + Alt + S)
- Select "Modules" and click the test module
- Go to "Dependencies" (tab in the window on the right)
- Click the + to add a Module Dependency
- Add the skeleton module as a module dependency

Now it should all compile, and the test module should be able to see the classes in the app to be tested. You can now right-click the test classes and you should be able to run the tests.
Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11437
    
  85

I'm still following along, although I feel that he is going out of his way to explain concepts using one set of terms and then setting the labs using a totally different set of terms. I spend far too much time on the labs trying to work out what he is really asking for.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Andrew Monkhouse wrote: I spend far too much time on the labs trying to work out what he is really asking for.

I've stopped spending a lot of time on the labs and used people "walkthroughs" to get the root of it. I was getting more out of the lectures anyway so at least I'm still going through the motions of the labs.

If this wasn't a series of classes, I'd have stopped by now.
Irina Goble
Ranch Hand

Joined: May 09, 2004
Posts: 91
I got caught up with another Coursera class which is in its final week now. So, hope to catch up with the Android class. Was watching the lectures and doing the labs but no more than that. By the way, watching on 1.5x speed makes the lectures way better Just could not stand those "so, here is my device" things Going to sign up for the next class in the series, waiting for "Java concurrency in practice" from the library.
Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

I find myself fast forwarding bits of the lectures as well The labs have not taken me long mostly because I am already familiar, however if I wasn't, I think I would have gotten more out of a book as a reference as I put together some samples applications from scratch. The way I learned Android was trial by fire. Most of what he is going over is straight from the documentation its just organized better. He has brought some things to the front that I had just not noticed yet hence my comments about a few nuggets learned from each lecture.

When I did my first application it was a lot of just trying to get thing laid out right and working correctly. The code was a mess when I was done, and my itch to re-factor set in. That is when I started learning about some of the patterns and best practices. It can be surprisingly difficult in Android to reduce boiler plate and abstract common code because of the way everything extends a class. The strong event driven architecture reminds me a lot of swing.

Anyway going by the name of the next class I am really hoping that it will address some of these patterns and short comings of this first course. I am hoping that they were just trying to keep the concepts and scope very narrow in this first course to get the basic concepts down. The problem is that since nobody ever had to wire up the basic plumbing in any of the labs, none of that is going to stick when you program your own application and your going to be looking a lot of stuff up.

I think one nice thing is there is quite a lot of examples in his git repository. Having a bunch of samples when your tackling problems can be handy to get some ideas. I often looked to popular open source libraries for ideas, there were times it would have been nice to have a repository like that. Since most of the examples in this course are fairly trivial though it wont take you long to start having questions on how to solve problems that are not on the 'happy' path, and then you will have to most likely do some research.

Andrew Monkhouse
author and jackaroo
Marshal Commander

Joined: Mar 28, 2003
Posts: 11437
    
  85

Jeanne Boyarsky wrote:
Andrew Monkhouse wrote: I spend far too much time on the labs trying to work out what he is really asking for.

I've stopped spending a lot of time on the labs and used people "walkthroughs" to get the root of it.

I try to get through as much in an hour as I can, then go to the walkthroughs for the stuff that is really obscure.

Jeanne Boyarsky wrote:If this wasn't a series of classes, I'd have stopped by now.

++

Irina Goble wrote:Just could not stand those "so, here is my device" things

Seriously! Here is my device. And in a minute I am going to start the application. And then I will do something. And then I will do another thing. So here we go. I open the application. And now I do something ....

Good grief!

Bill Gorder wrote: The problem is that since nobody ever had to wire up the basic plumbing in any of the labs, none of that is going to stick when you program your own application and your going to be looking a lot of stuff up.

I worry that this is going to be the case. I am working at converting one of my old Swing apps to Android so that it will stick better.
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

And done. (except for doing the peer review in two weeks - hopefully I won't have forgotten this course exists by then!). Luckily he sends out regular reminders.

The final project was easy except for the one line of undocumented magic that thankfully someone else had originally dealt with (on setting images.) As noted above, if this project wasn't being continued in the next course, I wouldn't have done the project.
Bill Gorder
Bartender

Joined: Mar 07, 2010
Posts: 1648
    
    7

Jeanne,

I have still not had the time to do the final project, lots of other stuff going on. Since I don't care about the certificates it really does not matter to me, but like you said its going to be used in the next course so I suppose I should try and find the time.

A few reviews on this course are below if your interested.
http://www.coursetalk.com/coursera/programming-handheld-systems-with-android
Fleurtje Eliza
Greenhorn

Joined: Mar 30, 2014
Posts: 9

Matthew Brown wrote:For completeness, here's another basic (i.e. no programming experience required) MOOC on Android: https://www.futurelearn.com/courses/begin-programming-2014. Next start date is 24 February.

I was hoping to jump in, even though the course had already started. But that is not possible, unfortunately. However, people can sign up for it again and it start again in October. Can't wait!
Jeanne Boyarsky
internet detective
Marshal

Joined: May 26, 2003
Posts: 30392
    
150

Fleurtje Eliza wrote:
Matthew Brown wrote:For completeness, here's another basic (i.e. no programming experience required) MOOC on Android: https://www.futurelearn.com/courses/begin-programming-2014. Next start date is 24 February.

I was hoping to jump in, even though the course had already started. But that is not possible, unfortunately. However, people can sign up for it again and it start again in October. Can't wait!

You can still watch the videos and learn the material if you want to take the second course.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Free online course starting on Android