April 2006

I am just coming into day two of teaching the Programming I course. This course should be a real challenge, there are 21 students!!!  That is by 6 the most I have ever had in this course.  My project management course had 28, but that requires less one on one interaction.

By the way, one of the things I love about teaching the University of Phoenix online courses is that I have students who live in places ranging from the northwest, CA, across the USA, the east cost and even Guam (actually 2 of them who found out they know each other and live there but didn't know they were attending the U of Phx!).

Anyway, in the first few days the main gaol is to get everyone to the same level. This involves getting everyone with the same JDK installed,downloading a text editor and getting their first app running. For a text editor I recommend JGrasp but don't enforce it.  The next step they need to create a program that prints their name or the proverbial "Hello World" just to show they have everything installed.  The students, though generally very experienced in their careers, quite possibly have not had a lot of experience programming.  Most have done one other programming course in C at this point.  Therefore some get frustrated when they cannot get their programs working.  This is 99% of the time 1 of 2 problems. 

1) They did not name their public class the same as their Java file.

2) They had something in lower case or at least the wrong case.  For instance system.out.println instead of System.out.println. 

You can imagine this becomes very frustrating when you first start out.  Therefore I have always recommended when you reach the boiling point to walk away and do something else for awhile or at least go away and write it down on paper.  This always worked for me and seems to be a great method to see the "forest through the trees".

Therefore I was really happy to see this entry on the Hacknot.info website.  Especially the portion with the text Take A Break as this was almost word for word what I tell my students.   

What other useful hints do people have that I could pass on to my students? 

I am making final preparation for another online University of Phoenix course today and it has put me in a reflective mode on teaching and learning Java. Maybe because I am also burying myself in the world of JSF and AJAX this weekend in connection with a project I am working on I am thinking more about learning new topics.

Anyway, I am teaching a Programming I course (POS 406) where I usually teach the Programming II course. This semester I have been assigned the predecessor and I have been updating my discussion questions, exercises and syllabus all day. Here is the 5 week class layout (note there are simple programming assignments at each step):

Java Basics

· Explain the Java Virtual Machine.

· Explain the terminology of object-oriented terminology.

· Explain documenting, coding, compiling, executing, testing, and debugging Java programs.

Data Types

· Define data types.

· Explain classes and methods

Selection and Repetition

· Explain selection

· Explain repetition


· Explain arrays.


· Explain objects.

The challenge in teaching this course are many. One is creating an interesting and fun environment for students to learn in. The other is the diversity of backgrounds of the students. Some come with many years of practical experience and are finally taking time to get their degree where others are newbies to CS and development. Finally, for this class is not to make it a Learn Java only but to teach the topics generically while using Java as a tool. This was why I was looked at integrating BlueJ, but decided against it as strays too far from the norm for the Univerisity.

The challenges for this course are really different for my GMU IT 443 Course. This course is not a selective but a mandatory course. Also, I believe it contains a lot of theoretical information which you need to teach differently. Finally, when programming in Java you can see a result from a program fairly quickly, in project management this is hard to do in a 15 week, 1 night a week format. Don't get me wrong, I think each is as important as the other, just find teaching Java much easier.

Speaking of teaching Java, the company I work for the FDM Group is looking for Java programmers. I will blog about this later but in the meantime check out the FDM Academy.