Skills Our Students Should Acquire

First, general non-programming skills:

  1. Be able to use a computer to find out things the teacher didn't tell you (in general, develop the understanding that you can find anything you need to know about computers and software from the help button or from Google).
  2. Be able to download and install programs (e.g., WinZip, JDK's, etc)
  3. Be able to zip and unzip files.
  4. Be able to find and use your home directory on Windows, Linux, or whatever.

IDE skills:

  1. Be able to create a project/application/whatever on the IDE that we choose.
  2. Be able to add the programming pieces of a zipped assignment to the IDE.
  3. Be able to add new classes or packages to the IDE.
  4. Be able to design JFrames for input and output in the IDE.
  5. Be able to deal with in the IDE.

Java skills:

  1. Be able to compile and execute programs from the command line.
  2. Be able to write programs using JFrames for input and output (with the null layout, since that doesn't require learning anything about layouts). I don't mind if they use the IDE to create the frames, I'd just like them to be able to get their input and output taken care of without too much fuss. An alternative would be to know how to get parameters from the command line, but that's so ugly.
  3. Be able to write programs using and System.out for input and output (for programs requiring file I/O - it's ok if they can deal with just one input file and just one output file).
  4. Be able to use the Java API documentation to use core classes.
  5. Be able to debug a program using breakpoints and examine the execution stack frames.

Java programming: In addition to the syllabus

  1. Exceptions and exception-handling.
  2. Java coding conventions.
  3. Specific Java classes: package java.lang: All the data type wrappers, Object, Math, String, StringBuffer, System package BufferedReader, FileReader, InputStreamReader (I think we can get away with just that). package javax.swing: JFrame, JLabel, JButton, JTextField. package java.util: Arrays, Vector (most of the rest should be introduced in data structures).
  4. I would make threads optional - I'd be willing to live without them, but it would be great if the students knew about them.