Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My wife is a high school maths teacher, and is considering starting a programming club for 13-17 years olds who show an interest. Their interest seems to be around Apps and Android which I have little experience of.

The kids would be (presumably) interested in programming, and have a fairly high level of computing knowledge. We would provide them with resources and some knowledge, but hopefully a lot would be self guided. I'm hoping stack overflow'ers can provide some tips or starting points. Specific things I think I'll need are;

  • A development Environment; Currently I'm looking towards Java and Android, developed in Eclipse, probably installed on donated older hardware

  • Some initial direction; There seem to be a plethora or 'start android' tutorials, so some recommendations for good ones are valuable, as are recommended paper books

  • A Target; Some final project they should be shooting for

  • A Route; This is where I'm most stuck, how to lead them through the required Java concepts and learning they would need

Some related questions already out there
Language+IDE for teaching high school students?
Teaching "web design/development" to high-school home-school group. Good sources?
How can I bootstrap a software development community at my school?

share|improve this question

closed as off-topic by Ixrec, durron597, GlenH7, jwenting, MichaelT May 11 at 0:02

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, jwenting, MichaelT
If this question can be reworded to fit the rules in the help center, please edit the question.

Why Java/Android? Is it sensible if you dont have experience? –  Dave Hillier Sep 8 '12 at 15:55
This is a quite deprived area, and its very hard to get kids to attend non-compulsory things, so keeping their interest is seen as key. They expressed an interest in coding apps for their phones, which they saw as Android (iPhone's being out of their price league generally) –  PaulHurleyuk Sep 8 '12 at 20:06
You could try searching for a CoderDojo nearby. They usually don't enforce an IDE or something like that and when you're starting out you don't need one. There is nothing wrong with kids starting to code with something simple as Notepad. The goal is to get them started with some code and be creative with it. –  Spoike Sep 9 '12 at 0:03
You should check out Coderdojo. Also, from the UK there is codeclub.org.uk - both of these might have some valuable lessons for you. –  James Aug 9 '13 at 22:11
@Spoike Generally I'd agree with you, but the Android Eclipse plugin will do a lot for you such as providing a GUI to help you do the boring parts of layouts and in this case I would recommend using it from the start. I'd expect the new Android Studio will be even better when it comes out of Beta. –  James Aug 9 '13 at 22:14

3 Answers 3

up vote 1 down vote accepted

I highly recommend the learning techniques in the Head First series of books from O'Reilly. Most are very well organized and very practice-driven. Additionally, many give you problems/solutions and possible errors with the understanding that you learn a lot when things don't work as you expect. You ask why?

Head First C# is incredible in this regard and I cannot recommend it highly enough. If you're looking for inspiration on designing a curriculum (i.e., your "route" question) with early-and-repeated positive reinforcement by actually accomplishing practical results, look no further.

That being said, though you indicated an interest in Java / Android development, if the group contains many extremely novice coders, I'd recommend looking at Python. With a language like Python you'll be able to focus on fundamentals without all the technical overhead (e.g., configuration files, complex XML views) required in Android development. Also, since you mention that the development will occur on older hardware you'll get much better performance with Python. (The Android emulator is rarely speedy and I've often waited many minutes for things to deploy to it during development -- which really adds up if you're in a heavy learning, e.g., write a little then run and test, situation).

Here are some additional resources for teaching Python, the examination of which could help inspire the curriculum design:

  • Codecademy.com -- Great site for step-by-step instruction with in-browser results
  • InventWithPython.com -- Al Sweigart has two books on Python game programming. Since games are much more exciting than business line applications, the exercises therein could be useful.

Finally, if you're sure you want to pursue Android development, I'd also recommend considering Unity. If I recall correctly, version 4 provides support for Android compilation within the free edition. While written for version 3, Unity Game Development Essentials offers some great hands-on instruction in learning the IDE and doesn't require extensive previous coding experience. Its projects could be a great intro/pattern to follow in the class. Note that Unity won't be an option with old hardware.

share|improve this answer

If you're looking for Java based teaching then the Greenfoot and Alice are the way to go. You can also look at taking students through codeacademy as an intro to programming in general.

share|improve this answer

My suggestion would be to base the club on learning Java and once the students have a good understanding of the core concepts then move on to Android. As for books on Java I have heard good things about Head First Java.

As for a development environment I would use Eclipse since it would make the migration to Android Eclipse smooth when the time to do so arises.

Last but not least, for a final project I would recommend a rock, paper, scissors game in Android. It may not be the most exciting thing in the world but I don't think they will get too deep into Android due to the time they spend learning Java.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.