This course assumes that you already know how to program in Java. Perhaps you’ve take my Intro to programming course.
It is focused on teaching the core features of Swing: how to use it and make useful programs. It is not a typical second computer programming course as we're not learning data structures etc (see last paragraph).
From personal experience I believe that mentoring is one of the best ways to learn, so this course will be run using Slack. It will be interactive: lessons and instructions will be posted there, and you can ask questions and I’ll answer them, help you when you’re stuck , etc. I think that this is better than just watching a bunch of videos. The other good thing about this, is that when you ask questions, others can answer them too – since I won’t be online 24/7 .
I can probably handle somewhere between 25 and 40 people in this course.
I’ve been teaching Java programming to high school students for about 10 years now. I've worked with Swing a lot and know which parts are the most useful. There are parts of Swing that I don't use. I teach my students everything they need to make turnbased and realtime games using Swing.
Most of my online projects though are PHP based (https://demo.iquark.ca), but I don’t know PHP well enough to teach it. You can see some of my Java stuff at https://github.com/salamander2/functionID and other repositories there. (We’ll be going over a lot of the content found on Salamander2)
It’s hard to estimate this. I think that about 10 hours a week, though you could probably do it with less. Also, I’ll need regular feedback about pacing – am I going too slowly or too fast?
I don’t really know. It depends on the pacing. I've added the approximate number of hours to do each lesson. At 22 hours + the final project, it looks like this will take 3 weeks.
Free? Yes. Why?
This course really is free. Normally I teach in a classroom, so I'm still learning about how to package this online. It won't be 100% slick, but that's okay. I would like to eventually offer this as a paid course online. (A paid course means that people are likely to be more committed and less likely to quit for no reason.) All that I want from you is to tell me what works well and what needs improving.
I recommend using Eclipse IDE, but you can use another if you wish.
Everything we do can be done with Java 8. We don’t need and won’t be learning the latest and newest additions. (See the final paragraph on this page.)
● = subtopic
► = assignment to do
(approx hours in parentheses)
In terms of data structures, this course doesn't teach much about them. We learn objects and 2D arrays.
For the space invaders project we'll use arraylists.
Hashmaps are not needed, but would come in handy for a text-adventure game.
Enums may be handy but also are not needed.
There's also no reason to learn sorting algorithms, trees, lists, queues, etc. for the graphics projects that we're doing. We also don't learn about lambdas, streams, NIO, sockets, etc.